#defineRTE_PTYPE_UNKNOWN0x00000000
No packet type information.
Definition at line 75 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_L2_ETHER0x00000001
Ethernet packet type. It is used for outer packet for tunneling cases.
Packet format: <'ether type'=[0x0800|0x86DD]>
Definition at line 83 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_L2_ETHER_TIMESYNC0x00000002
Ethernet packet type for time sync.
Packet format: <'ether type'=0x88F7>
Definition at line 90 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_L2_ETHER_ARP0x00000003
ARP (Address Resolution Protocol) packet type.
Packet format: <'ether type'=0x0806>
Definition at line 97 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_L2_ETHER_LLDP0x00000004
LLDP (Link Layer Discovery Protocol) packet type.
Packet format: <'ether type'=0x88CC>
Definition at line 104 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_L2_ETHER_NSH0x00000005
NSH (Network Service Header) packet type.
Packet format: <'ether type'=0x894F>
Definition at line 111 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_L2_ETHER_VLAN0x00000006
VLAN packet type.
Packet format: <'ether type'=[0x8100]>
Definition at line 118 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_L2_ETHER_QINQ0x00000007
QinQ packet type.
Packet format: <'ether type'=[0x88A8]>
Definition at line 125 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_L2_ETHER_PPPOE0x00000008
PPPOE packet type.
Packet format: <'ether type'=[0x8863|0x8864]>
Definition at line 132 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_L2_ETHER_FCOE0x00000009
FCoE packet type.
Packet format: <'ether type'=[0x8906]>
Definition at line 139 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_L2_ETHER_MPLS0x0000000a
MPLS packet type.
Packet format: <'ether type'=[0x8847|0x8848]>
Definition at line 146 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_L2_MASK0x0000000f
Mask of layer 2 packet types. It is used for outer packet for tunneling cases.
Definition at line 151 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_L3_IPV40x00000010
IP (Internet Protocol) version 4 packet type. It is used for outer packet for tunneling cases, and does
not contain any header option.
Packet format: <'ether type'=0x0800 | 'version'=4, 'ihl'=5>
Definition at line 161 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_L3_IPV4_EXT0x00000030
IP (Internet Protocol) version 4 packet type. It is used for outer packet for tunneling cases, and
contains header options.
Packet format: <'ether type'=0x0800 | 'version'=4, 'ihl'=[6-15], 'options'>
Definition at line 171 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_L3_IPV60x00000040
IP (Internet Protocol) version 6 packet type. It is used for outer packet for tunneling cases, and does
not contain any extension header.
Packet format: <'ether type'=0x86DD | 'version'=6, 'next header'=0x3B>
Definition at line 181 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_L3_IPV4_EXT_UNKNOWN0x00000090
IP (Internet Protocol) version 4 packet type. It is used for outer packet for tunneling cases, and may or
maynot contain header options.
Packet format: <'ether type'=0x0800 | 'version'=4, 'ihl'=[5-15], <'options'>>
Definition at line 191 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_L3_IPV6_EXT0x000000c0
IP (Internet Protocol) version 6 packet type. It is used for outer packet for tunneling cases, and
contains extension headers.
Packet format: <'ether type'=0x86DD | 'version'=6, 'next header'=[0x0|0x2B|0x2C|0x32|0x33|0x3C|0x87],
'extension headers'>
Definition at line 202 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_L3_IPV6_EXT_UNKNOWN0x000000e0
IP (Internet Protocol) version 6 packet type. It is used for outer packet for tunneling cases, and may or
maynot contain extension headers.
Packet format: <'ether type'=0x86DD | 'version'=6, 'next
header'=[0x3B|0x0|0x2B|0x2C|0x32|0x33|0x3C|0x87], <'extension headers'>>
Definition at line 213 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_L3_MASK0x000000f0
Mask of layer 3 packet types. It is used for outer packet for tunneling cases.
Definition at line 218 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_L4_TCP0x00000100
TCP (Transmission Control Protocol) packet type. It is used for outer packet for tunneling cases.
Packet format: <'ether type'=0x0800 | 'version'=4, 'protocol'=6, 'MF'=0, 'frag_offset'=0> or, <'ether
type'=0x86DD | 'version'=6, 'next header'=6>
Definition at line 230 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_L4_UDP0x00000200
UDP (User Datagram Protocol) packet type. It is used for outer packet for tunneling cases.
Packet format: <'ether type'=0x0800 | 'version'=4, 'protocol'=17, 'MF'=0, 'frag_offset'=0> or, <'ether
type'=0x86DD | 'version'=6, 'next header'=17>
Definition at line 242 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_L4_FRAG0x00000300
Fragmented IP (Internet Protocol) packet type. It is used for outer packet for tunneling cases.
It refers to those packets of any IP types, which can be recognized as fragmented. A fragmented packet
cannot be recognized as any other L4 types (RTE_PTYPE_L4_TCP, RTE_PTYPE_L4_UDP, RTE_PTYPE_L4_SCTP,
RTE_PTYPE_L4_ICMP, RTE_PTYPE_L4_NONFRAG, RTE_PTYPE_L4_IGMP, RTE_PTYPE_L4_ESP).
Packet format: <'ether type'=0x0800 | 'version'=4, 'MF'=1> or, <'ether type'=0x0800 | 'version'=4,
'frag_offset'!=0> or, <'ether type'=0x86DD | 'version'=6, 'next header'=44>
Definition at line 262 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_L4_SCTP0x00000400
SCTP (Stream Control Transmission Protocol) packet type. It is used for outer packet for tunneling cases.
Packet format: <'ether type'=0x0800 | 'version'=4, 'protocol'=132, 'MF'=0, 'frag_offset'=0> or, <'ether
type'=0x86DD | 'version'=6, 'next header'=132>
Definition at line 274 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_L4_ICMP0x00000500
ICMP (Internet Control Message Protocol) packet type. It is used for outer packet for tunneling cases.
Packet format: <'ether type'=0x0800 | 'version'=4, 'protocol'=1, 'MF'=0, 'frag_offset'=0> or, <'ether
type'=0x86DD | 'version'=6, 'next header'=1>
Definition at line 286 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_L4_NONFRAG0x00000600
Non-fragmented IP (Internet Protocol) packet type. It is used for outer packet for tunneling cases.
It refers to those packets of any IP types, while cannot be recognized as any of above L4 types
(RTE_PTYPE_L4_TCP, RTE_PTYPE_L4_UDP, RTE_PTYPE_L4_FRAG (for IPv6), RTE_PTYPE_L4_SCTP, RTE_PTYPE_L4_ICMP,
RTE_PTYPE_L4_IGMP (for IPv4), RTE_PTYPE_L4_ESP).
Packet format: <'ether type'=0x0800 | 'version'=4, 'protocol'!=[1|2|6|17|50|132], 'MF'=0,
'frag_offset'=0> or, <'ether type'=0x86DD | 'version'=6, 'next header'!=[1|6|17|44|50|132]>
Definition at line 303 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_L4_IGMP0x00000700
IGMP (Internet Group Management Protocol) packet type.
Packet format: <'ether type'=0x0800 | 'version'=4, 'protocol'=2, 'MF'=0, 'frag_offset'=0>
Definition at line 311 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_L4_ESP0x00000800
ESP (IP Encapsulating Security Payload) transport packet type.
Packet format: <'ether type'=0x0800 | 'version'=4, 'protocol'=50, 'MF'=0, 'frag_offset'=0> or, <'ether
type'=0x86DD | 'version'=6, 'next header'=50>
Definition at line 322 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_L4_MASK0x00000f00
Mask of layer 4 packet types. It is used for outer packet for tunneling cases.
Definition at line 327 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_TUNNEL_IP0x00001000
IP (Internet Protocol) in IP (Internet Protocol) tunneling packet type.
Packet format: <'ether type'=0x0800 | 'version'=4, 'protocol'=[4|41]> or, <'ether type'=0x86DD |
'version'=6, 'next header'=[4|41]>
Definition at line 338 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_TUNNEL_GRE0x00002000
GRE (Generic Routing Encapsulation) tunneling packet type.
Packet format: <'ether type'=0x0800 | 'version'=4, 'protocol'=47> or, <'ether type'=0x86DD | 'version'=6,
'next header'=47>
Definition at line 349 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_TUNNEL_VXLAN0x00003000
VXLAN (Virtual eXtensible Local Area Network) tunneling packet type.
Packet format: <'ether type'=0x0800 | 'version'=4, 'protocol'=17 | 'destination port'=4789> or, <'ether
type'=0x86DD | 'version'=6, 'next header'=17 | 'destination port'=4789>
Definition at line 362 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_TUNNEL_NVGRE0x00004000
NVGRE (Network Virtualization using Generic Routing Encapsulation) tunneling packet type.
Packet format: <'ether type'=0x0800 | 'version'=4, 'protocol'=47 | 'protocol type'=0x6558> or, <'ether
type'=0x86DD | 'version'=6, 'next header'=47 | 'protocol type'=0x6558'>
Definition at line 376 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_TUNNEL_GENEVE0x00005000
GENEVE (Generic Network Virtualization Encapsulation) tunneling packet type.
Packet format: <'ether type'=0x0800 | 'version'=4, 'protocol'=17 | 'destination port'=6081> or, <'ether
type'=0x86DD | 'version'=6, 'next header'=17 | 'destination port'=6081>
Definition at line 389 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_TUNNEL_GRENAT0x00006000
Tunneling packet type of Teredo, VXLAN (Virtual eXtensible Local Area Network) or GRE (Generic Routing
Encapsulation) could be recognized as this packet type, if they can not be recognized independently as of
hardware capability.
Definition at line 396 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_TUNNEL_GTPC0x00007000
GTP-C (GPRS Tunnelling Protocol) control tunneling packet type. Packet format: <'ether type'=0x0800 |
'version'=4, 'protocol'=17 | 'destination port'=2123> or, <'ether type'=0x86DD | 'version'=6, 'next
header'=17 | 'destination port'=2123> or, <'ether type'=0x0800 | 'version'=4, 'protocol'=17 | 'source
port'=2123> or, <'ether type'=0x86DD | 'version'=6, 'next header'=17 | 'source port'=2123>
Definition at line 416 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_TUNNEL_GTPU0x00008000
GTP-U (GPRS Tunnelling Protocol) user data tunneling packet type. Packet format: <'ether type'=0x0800 |
'version'=4, 'protocol'=17 | 'destination port'=2152> or, <'ether type'=0x86DD | 'version'=6, 'next
header'=17 | 'destination port'=2152>
Definition at line 428 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_TUNNEL_ESP0x00009000
ESP (IP Encapsulating Security Payload) tunneling packet type.
Packet format: <'ether type'=0x0800 | 'version'=4, 'protocol'=50> or, <'ether type'=0x86DD | 'version'=6,
'next header'=50>
Definition at line 439 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_TUNNEL_L2TP0x0000a000
L2TP (Layer 2 Tunneling Protocol) tunneling packet type.
Packet format: <'ether type'=0x0800 | 'version'=4, 'protocol'=17> | 'destination port'=1701> or, <'ether
type'=0x86DD | 'version'=6, 'next header'=17 | 'destination port'=1701> or, <'ether type'=0x0800 |
'version'=4, 'protocol'=115> or, <'ether type'=0x86DD | 'version'=6, 'protocol'=115>
Definition at line 458 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_TUNNEL_VXLAN_GPE0x0000b000
VXLAN-GPE (VXLAN Generic Protocol Extension) tunneling packet type.
Packet format: <'ether type'=0x0800 | 'version'=4, 'protocol'=17 | 'destination port'=4790> or, <'ether
type'=0x86DD | 'version'=6, 'next header'=17 | 'destination port'=4790>
Definition at line 471 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_TUNNEL_MPLS_IN_GRE0x0000c000
MPLS-in-GRE tunneling packet type (RFC 4023).
Packet format: <'ether type'=0x0800 | 'version'=4, 'protocol'=47 | 'protocol'=0x8847> or, <'ether
type'=0x0800 | 'version'=4, 'protocol'=47 | 'protocol'=0x8848> or, <'ether type'=0x86DD | 'version'=6,
'protocol'=47 | 'protocol'=0x8847> or, <'ether type'=0x86DD | 'version'=6, 'next header'=47 |
'protocol'=0x8848>
Definition at line 492 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_TUNNEL_MPLS_IN_UDP0x0000d000
MPLS-in-UDP tunneling packet type (RFC 7510).
Packet format: <'ether type'=0x0800 | 'version'=4, 'protocol'=17 | 'destination port'=6635> or, <'ether
type'=0x86DD | 'version'=6, 'next header'=17 | 'destination port'=6635>
Definition at line 505 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_TUNNEL_MASK0x0000f000
Mask of tunneling packet types.
Definition at line 509 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_INNER_L2_ETHER0x00010000
Ethernet packet type. It is used for inner packet type only.
Packet format (inner only): <'ether type'=[0x800|0x86DD]>
Definition at line 517 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_INNER_L2_ETHER_VLAN0x00020000
Ethernet packet type with VLAN (Virtual Local Area Network) tag.
Packet format (inner only): <'ether type'=[0x800|0x86DD], vlan=[1-4095]>
Definition at line 524 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_INNER_L2_ETHER_QINQ0x00030000
QinQ packet type.
Packet format: <'ether type'=[0x88A8]>
Definition at line 531 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_INNER_L2_MASK0x000f0000
Mask of inner layer 2 packet types.
Definition at line 535 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_INNER_L3_IPV40x00100000
IP (Internet Protocol) version 4 packet type. It is used for inner packet only, and does not contain any
header option.
Packet format (inner only): <'ether type'=0x0800 | 'version'=4, 'ihl'=5>
Definition at line 544 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_INNER_L3_IPV4_EXT0x00200000
IP (Internet Protocol) version 4 packet type. It is used for inner packet only, and contains header
options.
Packet format (inner only): <'ether type'=0x0800 | 'version'=4, 'ihl'=[6-15], 'options'>
Definition at line 553 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_INNER_L3_IPV60x00300000
IP (Internet Protocol) version 6 packet type. It is used for inner packet only, and does not contain any
extension header.
Packet format (inner only): <'ether type'=0x86DD | 'version'=6, 'next header'=0x3B>
Definition at line 562 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN0x00400000
IP (Internet Protocol) version 4 packet type. It is used for inner packet only, and may or maynot contain
header options.
Packet format (inner only): <'ether type'=0x0800 | 'version'=4, 'ihl'=[5-15], <'options'>>
Definition at line 571 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_INNER_L3_IPV6_EXT0x00500000
IP (Internet Protocol) version 6 packet type. It is used for inner packet only, and contains extension
headers.
Packet format (inner only): <'ether type'=0x86DD | 'version'=6, 'next
header'=[0x0|0x2B|0x2C|0x32|0x33|0x3C|0x87], 'extension headers'>
Definition at line 581 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN0x00600000
IP (Internet Protocol) version 6 packet type. It is used for inner packet only, and may or maynot contain
extension headers.
Packet format (inner only): <'ether type'=0x86DD | 'version'=6, 'next
header'=[0x3B|0x0|0x2B|0x2C|0x32|0x33|0x3C|0x87], <'extension headers'>>
Definition at line 592 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_INNER_L3_MASK0x00f00000
Mask of inner layer 3 packet types.
Definition at line 596 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_INNER_L4_TCP0x01000000
TCP (Transmission Control Protocol) packet type. It is used for inner packet only.
Packet format (inner only): <'ether type'=0x0800 | 'version'=4, 'protocol'=6, 'MF'=0, 'frag_offset'=0>
or, <'ether type'=0x86DD | 'version'=6, 'next header'=6>
Definition at line 608 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_INNER_L4_UDP0x02000000
UDP (User Datagram Protocol) packet type. It is used for inner packet only.
Packet format (inner only): <'ether type'=0x0800 | 'version'=4, 'protocol'=17, 'MF'=0, 'frag_offset'=0>
or, <'ether type'=0x86DD | 'version'=6, 'next header'=17>
Definition at line 620 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_INNER_L4_FRAG0x03000000
Fragmented IP (Internet Protocol) packet type. It is used for inner packet only, and may or maynot have
layer 4 packet.
Packet format (inner only): <'ether type'=0x0800 | 'version'=4, 'MF'=1> or, <'ether type'=0x0800 |
'version'=4, 'frag_offset'!=0> or, <'ether type'=0x86DD | 'version'=6, 'next header'=44>
Definition at line 635 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_INNER_L4_SCTP0x04000000
SCTP (Stream Control Transmission Protocol) packet type. It is used for inner packet only.
Packet format (inner only): <'ether type'=0x0800 | 'version'=4, 'protocol'=132, 'MF'=0, 'frag_offset'=0>
or, <'ether type'=0x86DD | 'version'=6, 'next header'=132>
Definition at line 647 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_INNER_L4_ICMP0x05000000
ICMP (Internet Control Message Protocol) packet type. It is used for inner packet only.
Packet format (inner only): <'ether type'=0x0800 | 'version'=4, 'protocol'=1, 'MF'=0, 'frag_offset'=0>
or, <'ether type'=0x86DD | 'version'=6, 'next header'=1>
Definition at line 659 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_INNER_L4_NONFRAG0x06000000
Non-fragmented IP (Internet Protocol) packet type. It is used for inner packet only, and may or maynot
have other unknown layer 4 packet types.
Packet format (inner only): <'ether type'=0x0800 | 'version'=4, 'protocol'!=[1|6|17|50|132], 'MF'=0,
'frag_offset'=0> or, <'ether type'=0x86DD | 'version'=6, 'next header'!=[1|6|17|44|50|132]>
Definition at line 672 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_INNER_L4_ESP0x08000000
ESP (IP Encapsulating Security Payload) transport packet type. It is used for inner packet only.
Packet format (inner only): <'ether type'=0x0800 | 'version'=4, 'protocol'=50, 'MF'=0, 'frag_offset'=0>
or, <'ether type'=0x86DD | 'version'=6, 'next header'=50>
Definition at line 684 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_INNER_L4_MASK0x0f000000
Mask of inner layer 4 packet types.
Definition at line 688 of file rte_mbuf_ptype.h.
#defineRTE_PTYPE_ALL_MASK0x0fffffff
All valid layer masks.
Definition at line 692 of file rte_mbuf_ptype.h.
#defineRTE_ETH_IS_IPV4_HDR(ptype)((ptype)&RTE_PTYPE_L3_IPV4)
Check if the (outer) L3 header is IPv4. To avoid comparing IPv4 types one by one, bit 4 is selected to be
used for IPv4 only. Then checking bit 4 can determine if it is an IPV4 packet.
Definition at line 699 of file rte_mbuf_ptype.h.
#defineRTE_ETH_IS_IPV6_HDR(ptype)((ptype)&RTE_PTYPE_L3_IPV6)
Check if the (outer) L3 header is IPv6. To avoid comparing IPv6 types one by one, bit 6 is selected to be
used for IPv6 only. Then checking bit 6 can determine if it is an IPV6 packet.
Definition at line 706 of file rte_mbuf_ptype.h.