跳转至

FLOW


属性 struct rte_flow_attr 流规则属性和优先级
模式项 struct rte_flow_item
匹配模式 匹配项的组合
动作 struct rte_flow_action 匹配后执行的动作

属性

|群组|组号:默认0| |优先级| |流量方向| |转发|

模式项

模式项由两种:

  • 匹配协议头和报文数据
  • 匹配元数据或匹配项掩码
结构名 描述
spec 匹配值
last 匹配范围结束值
mask 匹配掩码,和speclast配合

例如:
spec值10.1.2.3, last值10.3.4.5,mask值255.255.0.0,
实际范围是: 10.1.0.0 ~10.3.255.255.

匹配模式

匹配模式按报文封装得协议类型组成。其中可插入元数据。
模式以END项结尾。

例如:TCPv4 as L4
|Index|Item| |---|---| |0|Ethernet| |1|IPv4| |2|TCP| |3|END|

例如:带元数据项目得4层TCPv4报文 |Index|Item| |---|---| |0|VOID| |1|Ethernet| |2|VOID| |3|IPv4| |4|TCP| |5|VOID| |6|VOID| |7|END|

例如:TCPv6 in VXLAN
|Index|Item| |---|---| |0|Ethernet| |1|IPv4| |2|UDP| |3|VXLAN| |4|Ethernet| |5|IPv6| |6|TCP| |7|END|

例如:UDPv6任意位匹配 |Index|Item| |---|---| |0|IPv6| |1|UDP| |2|END|

例如:无效匹配项,缺少3层报头 |Index|Item| |---|---| |0|Ethernet| |1|UDP| |2|END|

元数据项类型

END

匹配列表结束标识
默认为数值0
spec last mask值均为ignore

VOID

占位符,默认直接丢弃
spec last mask值均为ignore

INVERT

反向匹配
spec last mask值均为ignore

PF

VF

PHY_PORT

PORT_ID

MARK

TAG

META

数据匹配项类型

ANY

RAW

ETH

VLAN

IPV4

IPV6

ICMP

UDP

TCP

SCTP

VXVLAN

E_TAG

NVGRE

MPLS

GRE

GRE_KEY

GRE_OPTION

FUZZY

GTP, GTPC, GTPU

ESP

GENEVE

GENEVE

ARP_ETH_IPV4

IPV6_EXT

IPV6_FRAG_EXT

ICMP6

ICMP6_ND_NS

ICMP6_ND_NA

ICMP6_ND_OPT

ICMP6_ND_OPT_SLA_ETH

ICMP6_ND_OPT_TLA_ETH

META

GTP_PSC

PPPOES/PPPOED

PPPOE_PROTO_ID

NSH

IGMP

AH

HIGIG2

L2TPV3OIP

ECPRI

PACKET_INTEGRITY_CHECKS

CONNTRACK

PORT_REPRESENTOR

REPRESENTED_PORT

FLEX

L2TPV2

匹配 L2TPv2头
flags_version: flags(12b),version(4b)
length: 报文总长
tunnel_id: identifier for the control connection.
session_id: identifier for a session within a tunnel.
ns: sequence number for this date or control message.
nr: sequence number expected in the next control message to be received.
offset_size: offset of payload data.
offset_padding: offset padding, variable length.
默认只匹配flags_version

PPP

匹配PPP头
addr:PPP头
ctrl:PPP协议
proto_id:PPP协议标识
默认全匹配

动作

名称 ---
END 结束动作链
VOID 无动作
PASSTHRU 交给后续规则处理
JUMP
FLAG
QUEUE
DROP
COUNT
RSS
PF
VF
PHY_PORT
METER
SECURITY
OF_POP_VLAN