PA

About the manual

数据包加速器(PA)是网络协处理器(NETCP)外设的主要组件之一。该PA与安全加速器(SA)和千兆位以太网交换机子系统一起形成网络处理解决方案。NETCP中PA的目的是执行数据包处理操作,例如数据包报头分类,校验和生成和多队列路由。
 

介绍

1.1外围设备的用途

数据包加速器(PA)是网络协处理器(NETCP)外设的主要组件之一。该PA与安全加速器(SA)和千兆位以太网交换机子系统一起形成网络处理解决方案。NETCP中PA的目的是执行数据包处理操作,例如数据包报头分类,校验和生成和多队列路由。

1.2特点

NETCP具有以下硬件功能:

•提供高性能的数据包DMA控制器

    – 9个发送通道

    – 24个接收通道

•提供用于数据包查找和修改操作的数据包加速器

    –包含6个独立的打包数据结构处理器(PDSP)

    –提供3个第一遍查找表(LUT1)加速器

         ›支持多达64个条目

         ›所有查找操作均以线速发生

         ›基于字段匹配评分的查找结果(基于RFC4301)

–提供1个第二遍查找表加速器

         ›支持多达8K条目

         ›所有查找操作以线速发生

         ›在进行添加或删除操作时可能会发生查找

1.3功能框图

图1-1显示了数据包加速器(PA)的功能框图。PA提供以下硬件模块:

•第2层分类引擎

•(2)第3层分类引擎

•第4层分类引擎

•(2)修改/多路由引擎

•数据包ID管理器

•PA统计模块

PA_第1张图片

Architecture

2.1时钟控制

数据包加速器(PA)具有一个时钟,它从网络协处理器(NETCP)接收。该时钟用于操作所有的PA逻辑,以及通用的NetCP逻辑,例如数据包DMA控制器和数据包流交换机。因此,在使用安全加速器(SA)或千兆位以太网(GbE)交换机时,还必须启用PA时钟域。为了降低功耗,默认情况下禁用此时钟。因此,在使用PA之前必须启用此时钟。有关此时钟的更多信息,包括工作频率,请参阅《 KeyStone设备用户网络协处理器(NETCP)用户指南》和设备特定的数据手册。有关PA的电源管理的更多信息,请参阅第2-6页的第2.10节“电源管理”。

2.2 Packet Accelerator发送队列接口

从主机将数据包发送到数据包加速器(PA)时,必须通过多核导航器队列接口发送数据包。有6个硬件TX队列,用于将数据包发送到PA进行处理,每个队列直接映射到PA中的特定引擎。当描述符(带有链接数据包)被推入TX队列之一时,PA数据包DMA自动将数据包传输到PA中的特定引擎。表2-1中显示了队列和PA硬件处理引擎之间的映射。

PA_第2张图片

有关数据包DMA和队列的更多信息,请参阅《多核导航器用户指南》。

2.3使用底层驱动程序对数据包加速器进行编程

为了通过抽象许多硬件细节来简化对数据包加速器(PA)进行编程的任务,已生成了与PA一起使用的低级驱动程序(LLD)软件包。PA LLD随附的固件映像必须在使用PA之前加载到PDSP。由于固件和PA LLD之间的相互依赖性,所有用户都必须使用PA LLD。不使用PA LLD将导致不确定的行为。PA LLD提供了一组API,可以将其分为以下3类:

•系统API-为PA提供基本的系统功能

•配置API-主要用于配置PA

•实用功能-格式命令供PA使用

表2-2中简要描述了PA LLD API。偶尔会添加和更改PA LLD API,因此,请参阅PA LLD文档以获取有关PA LLD API的最完整和最新信息。

PA_第3张图片1-

PA_第4张图片

PA_第5张图片

2.4 L2分类引擎架构

本节讨论L2分类引擎的体系结构。L2分类引擎主要用于对具有MAC或其他自定义L2标头的数据包进行分类。L2分类引擎包括一个带有随附固件的PDSP,一个查找表(LUT1)和一个计时器,PDSP可以将它们用于各种计时任务。在PDSP上运行的固件映像由PA LLD提供(不支持用户编写的固件),并且在尝试使用PA之前必须将其下载到PDSP指令RAM中。提供Pa_downloadImage API可帮助完成此任务。PDSP固件通过向LUT1模块提交查找请求来对数据包进行分类,并且LUT1根据存储在其查找表中的条目的内容返回查找结果。根据LUT1模块的结果,PDSP会将数据包定向到下一个目的地,如果与任何LUT1条目都不匹配,则将其丢弃。L2分类引擎LUT1最多可以存储64个条目。LUT1不包含寄存器接口,因此PDSP必须通过配置数据包添加和删除条目。可以通过队列640将配置和数据包发送到L2分类引擎。数据包也可以从其他位置(例如,千兆位以太网交换机)通过数据包流式交换机到达。

2.5 L3分类引擎架构

本节讨论L3分类引擎的体系结构。该PA包含2个L3分类引擎。L3分类引擎0主要用于对具有IP或其他自定义L3标头的数据包进行分类。L3分类引擎1主要用于对IPsec隧道中的内部IP标头进行分类。L3分类引擎包括一个带有随附固件的PDSP,一个查找表(LUT1)和一个计时器,PDSP可以将它们用于各种计时任务。在PDSP上运行的固件映像由PA LLD提供(不支持用户编写的固件),并且在尝试使用PA之前必须将其下载到PDSP指令RAM中。提供Pa_downloadImage API可帮助完成此任务。PDSP固件通过向LUT1模块提交查找请求来对数据包进行分类,并且LUT1根据存储在其查找表中的条目的内容返回查找结果。根据LUT1模块的结果,PDSP会将数据包定向到下一个目的地,如果与任何LUT1条目都不匹配,则将其丢弃。L3分类引擎LUT1最多可以存储64个条目。LUT1不包含寄存器接口,因此PDSP必须通过配置数据包添加和删除条目。可以通过队列641将配置和数据包发送到L3分类引擎0,并通过队列642将数据包和数据分组发送到L3分类引擎1。数据分组还可以通过分组流交换机从其他位置(例如L2分类引擎)到达。

2.6 L4分类引擎架构

本节讨论L4分类引擎的体系结构。L4分类引擎主要用于对具有UDP,TCP或其他自定义L4标头(例如GTPU)的数据包进行分类。L4分类引擎包括一个带有随附固件的PDSP,一个查找表(LUT2)和一个计时器,PDSP可以将它们用于各种计时任务。在PDSP上运行的固件映像由PA LLD提供(不支持用户编写的固件),并且在尝试使用PA之前必须将其下载到PDSP指令RAM中。提供Pa_downloadImage API可帮助完成此任务。PDSP固件通过向LUT2模块提交查找请求来对数据包进行分类,并且LUT2根据存储在其查找表中的条目的内容返回查找结果。根据LUT2模块的结果,PDSP将把数据包定向到下一个目的地,例如,将数据包DMA传递给主机,或者如果它与任何LUT2条目都不匹配,则它可以丢弃该数据包。L4分类引擎LUT2最多可以存储8192个条目。尽管LUT2不包含寄存器接口,但不支持通过寄存器接口添加条目。PDSP必须通过配置数据包添加和删除所有条目。配置和数据包可以通过队列643发送到L4分类引擎。数据包也可以通过数据包流交换机从其他位置(例如L3分类引擎)到达。

2.7修改/多路由引擎架构

本节讨论修改/多路由引擎的体系结构。PA包含2个修改/多路由引擎,用于各种任务,例如生成CRC校验和,多路由数据包,提供PA统计数据以及许多其他任务。这两个修改/多路由引擎均包含一个带有随附固件的PDSP,以及一个可由PDSP用于各种定时任务的计时器。在PDSP上运行的固件映像由PA LLD提供(不支持用户编写的固件),并且在尝试使用PA之前必须将其下载到PDSP指令RAM中。提供Pa_downloadImage API可帮助完成此任务。可以通过队列644和队列645将数据包发送到修改和多路由引擎。PALLD将确定是将数据包定向到修改/多路由引擎0还是修改/多路由引擎1,并将此信息传递回去。API。

2.8将条目添加到分类引擎

本节将讨论将条目添加到分类引擎。之前,分类引擎可用于数据包分类,输入必须加入到分类引擎的查找表。条目是可配置的,并通过将配置数据包发送到所需的配置引擎进行注册。必须使用PA LLD生成所有配置数据包,其中包含几个用于添加条目的API(有关更多信息,请参阅表2-1或PA LLD文档)。PA还提供了在分类引擎之间链接条目的功能。这样就可以指定L2 / L3 / L4地址的特定组合。例如,可以将L4分类引擎中的UDP地址链接到L3分类引擎中的IP地址,然后将其链接到L2分类引擎中的MAC地址。所述PA LLD提供了许多代码示例,将条目添加到所述查找表,但高级概述在过程2-1提供。

过程2-1向分类引擎添加条目

1配置分类引擎用来对数据包进行分类的标头字段

2配置分类引擎将在分类后用于路由数据包的路由信息

​​3(可选)配置链接到先前分类引擎中的条目

4使用PA LLD生成配置包(例如Pa_addIp)

5将配置包链接到描述符以准备将要发送到PA的包

6设置要通信的协议特定信息字到分类引擎,即这是一个配置包。

7可选地设置描述符软件信息字。

8将打包的配置推送到所需分类引擎的传输队列中(此信息由生成配置包的PA LLD提供)

9PA分类引擎将发送配置响应数据包,以指示是否条目已成功添加到分类引擎。用户可以等待响应继续,或者可以继续其他任务,直到配置响应到达。

10检查条目是否已成功添加到分类引擎,并通过使用Pa_forwardResult API允许PA LLD检查响应数据包,将其注册到PA LLD。

2.9 DMA事件支持

数据包加速器(PA)的所有DMA事件都通过网络协处理器(NETCP)中的数据包流交换机和数据包DMA控制器处理。有关数据包流交换机的更多信息,请参见KeyStone设备用户网络协处理器(NETCP)。有关和数据包DMA控制器的详细信息,请参阅《 KeyStone设备的网络协处理器(NETCP)用户指南》或《 KeyStone设备的多核导航器用户指南》。

2.10电源管理

数据包加速器(PA)的电源通过网络协处理器(NETCP)的电源域以及通过禁用操作PA逻辑的时钟进行管理。PA与NETCP中的其他模块共享电源域,因此不能独立于NETCP断电。PA的时钟默认情况下处于禁用状态,并且可以独立于NETCP中的其他模块进行控制。有关PA的电源管理的更多信息,请参阅《 KeyStone设备的网络协处理器(NETCP)用户指南》或设备特定的数据手册。

数据流示例


3.1概述

以下各节介绍了数据包通过数据包加速器(PA)和网络协处理器(NETCP)中的硬件的流程示例。由于PA是高度可配置的,因此数据流取决于PA的设置方式。本节涵盖以下示例:

•接收分类示例

•发送校验和生成示例

3.2接收分类示例

以下部分涵盖了PA中非加密数据包的接收数据包路由的示例。该数据包源自千兆以太网(GbE)交换子系统,并将显示一个将数据包通过PA路由到主机的示例。

PA_第6张图片

此示例假定设置了L2,L3和L4分类引擎以匹配每个标头的源地址和目标地址,并且到达的数据包具有MAC,IPv4和UDP标头。
1. SGMII0从电线接收数据包。
2.数据包被路由到千兆以太网交换机的端口1中。
3.数据包从GbE交换机的端口0路由出去,并传输到PA L2分类引擎。PA L2分类引擎根据L2分类引擎查找表中的条目匹配MAC地址和以太类型。
4.数据包被路由到PA L3分类0引擎,其中L3分类引擎0根据L3分类引擎0查找表中的条目匹配IPv4地址。
5.数据包被路由到PA L4分类引擎,其中L4分类引擎根据L4分类引擎查找表中的条目匹配数据包中的UDP地址。
6. NETCP接收数据包DMA使用配置的接收流从空闲描述符队列中弹出一个描述符,并用数据包数据填充链接的数据缓冲区。
7.数据传输完成后,NETCP接收数据包DMA将描述符推入目标队列。


3.3发送校验和生成示例

以下部分涵盖了PA中非加密数据包的发送数据包路由的示例。这显示了将发送数据包通过PA路由到千兆以太网(GbE)交换机子系统的一个示例。数据包来自主机,在通过网络发送出去之前,将被发送到修改/多路由引擎以进行UDP校验和。

PA_第7张图片

此示例假定数据包具有MAC,IPv4和UDP标头,并显示了用于生成UDP校验和的修改/多路由引擎0。
1.主机处理器生成一个数据包,并将其推入传输队列644,以进行修改/多路由引擎0。
2. NETCP传输数据包DMA从传输队列中弹出描述符,并传输数据包数据以修改/多路由引擎0。
3.传输完成后,NETCP发送数据包DMA将发送描述符推入发送完成队列。当PA修改/多路由引擎0收到数据包时,它将计算L4校验和并将其插入数据包。
4.修改/多路由引擎将数据包传输到千兆以太网交换机的端口0。
5.千兆位以太网交换机将数据包从端口1传输到SGMII0。
6. SGMII0通过有线传输数据包。

 

你可能感兴趣的:(DSP)