TestPMD使用中的 ixgbe filter 设置

640?wx_fmt=jpeg

作者简介

赵伟  

intel软件工程师

主要从事DPDK开发与测试工作。

640?wx_fmt=gif

使用TestPMD时,我们经常需要将包放入指定队列中。ixgbe网卡已经提供了此种可能,相信下面关于ixgbe filter 的一些背景知识也会有所帮助。ixgbe支持多种型号的网卡,例如82599、x540、x550和x552等等。不同型号网卡的filter类型不同,filter的类型决定了接受包的目的队列,下面将一一讲解。目前,DPDK已通过rte_flowAPI在 pf口号中使用这些filter,用户可使用TestPMD应用进行体验。该应用通过rte_flowAPI创建或删除这些ixgbe filter 。当然,API在filter 配置中还另有作用,但不属于本文的讨论范围。

《TestpmdApplication User Guide》的4.12部分提供了关于TestPMD中使用rte_flow的基本信息,请参照其中的介绍。本文将重点分析在rte_flow指令和API的使用中,一些限制ixgbefilter 的关键参数。

ixgbe网卡在收包时会根据上述标准及以下的顺序将包分配至相应队列:

•L2 EtherType filter (如果匹配)

此类filter 识别的是包的L2Ethertype,识别后将它们分配到接受队列。

•L3/L4 5-tuple filter (如果匹配)

此类filter 识别的是某些或成组的L3/L4 flow。filter由5-tuple(协议、IP的源地址和目的地址、TCP、UDP和SCTP的源端口号和目的端口号)构成,识别后将包分配到一个Rx队列中。82599和x540型号的网卡中有128个此类filter ,而 X550和X552中则没有.

•SYN filter (如果匹配)

导流TCP包,同时将包的SYN标志设置成独立的队列。

•flow director filter (如果匹配)

此类filter 识别的是某些或几组flow,并将它们分配至特定队列中。X550和X552型号支持三种不同模式的flowdirector (PERFECT、MAC_VLAN和TUNNEL),但82599和x540型号只支持PERFECT模式.

PERFECT:5-tuple filter

MAC_VLAN:MAC, VLAN 过滤

TUNNEL:NVGRE或者VXLAN 过滤

•RSS (如果匹配)

RSS(接收方扩展)将包分配至不同的描述符队列中,包处理在多个处理器内核上进行。

•  分配至零队列

PART 1

Ethertype

(x540、x552、x550 和 82599可以支持)

****PATTERN****

  1. 第一个非void的item必须为ETH.

  2. 源MAC地址必须进行掩码; 目标MAC地址也必须被完全掩码. 也就是被掩码的说源MAC地址应为{0x00, 0x00, 0x00, 0x00, 0x00, 0x00};被掩码的目标MAC地址应为{0x00, 0x00, 0x00, 0x00, 0x00, 0x00} .

  3. ETH的EtherType 字段的值不应是0x0800和0x86DD;

  4. 接下来的非void item必须是END. 

640?wx_fmt=png

****ACTIONS****

  1. 第一个非void action应为QUEUE. 如果是QUEUE, queue id < queue number.

  2. 接下来的非void action应为END.

640?wx_fmt=png


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值