PPA协议解析加速功能是将PPA业务的报文解析部分和流表查找部分的处理卸载到卡上,由芯片来处理这部分逻辑,并将处理的结果携带给报文上送到PPA业务软件,Host上部署芯片提供的PPA驱动软件,达到报文解析加速、提升节点的包率性能和带宽、卸载主机CPU算力的目的。PPA功能的流表查找,依赖PPA业务软件下发到卡内的流表规则,通过对HASH表和TCAM表的查找,将表项附带的Action动作随报文一起上送给PPA驱动和业务软件。
图1 PPA协议解析加速原理图
PPA协议解析加速功能基于以下子功能的实现:
- 应用场景适配:PPA功能非默认支持功能,需要在特定业务场景下,支持通过命令使能此功能。因此,需要能够通过工具或命令实现PPA功能的使能或去使能。
- 流表管理功能:PPA流表的管理主要是通过DPDK通用API接口实现对流表的增删查改动作。
- KEY组合功能:PPA场景的流表KEY主要是基本的五元组,包括源IP、目的IP、源端口、目的端口和协议号,传输层的协议有UDP和TCP,但也需要支持根据IP层定义的协议去匹配其他协议。
- Action功能:PPA场景的Action动作主要是信息的携带,将Action中定义的信息随报文一起上送给PPA驱动及业务软件。
- GTP报文的流表查找功能:PPA功能要能够识别GTP-U类型报文,在报文外层五元组无法匹配到规则时,对GTP-U报文内层进行解析,获取内层报文IP地址作为Key进行流表匹配。
- PPA流表查找功能:PPA功能是将PPA业务的报文解析部分和流表查找部分的处理卸载到卡上,由芯片来处理这部分逻辑,并将处理的结果携带给报文上送到PPA业务软件;Host上部署芯片提供的PPA驱动软件。PPA的芯片处理功能需要Host上的大内存来存放流表,通过PCIE通路去查询,通过SRIOV直通到Host,实现报文的快速转发。
- 功能规格和性能实现:PPA业务协同网卡进行联创即是要将性能的瓶颈点卸载到网卡上来,以提升PPA业务软件的处理性能,解决业务的痛点;除了基本卸载功能之外,性能的提升是一项重要的指标和目标。
- 未匹配到流表规则的报文直接丢弃:当前PPA功能实现时,针对收到的报文,无论是否匹配到规则,都会上送到OS,让用户决定报文的处理方式。大部分场景下,用户在处理未匹配到流表规则的报文时,也是直接丢弃,所以为了避免未匹配到规则的报文上送可能导致的队列拥塞,需要在卡内对此报文直接丢弃而不上送。此功能为可选功能,默认不开启,用户可根据实际场景和需要选择打开,即未匹配到流表的报文不上送。