70. ICE:advanced iavf with FDIR capability

Support flow director to steering packets to queue/queue group in iavf Enable fdir filter for IPv4/IPv6 + TCP/UDP/SCTP (OS default package) Enable fdir filter for GTP (comm #1 package) Enable fdir filter for L2 Ethertype (comm #1 package) Enable fdir filter for PFCP (comm #1 package) Enable fdir filter for IPv4/IPv6 + GRE + IPV4/IPV6 + TCP/UDP

70.1. Description

70.1.1. Pattern and input set

Packet Type Pattern Input Set
IPv4/IPv6 + TCP/UDP/SCTP MAC_IPV4_PAY [Source IP], [Dest IP], [IP protocol], [TTL], [DSCP]
  MAC_IPV4_UDP [Source IP], [Dest IP], [TTL], [DSCP], [Source Port], [Dest Port]
  MAC_IPV4_TCP [Source IP], [Dest IP], [TTL], [DSCP], [Source Port], [Dest Port]
  MAC_IPV4_SCTP [Source IP], [Dest IP], [TTL], [DSCP], [Source Port], [Dest Port]
  MAC_IPV6_PAY [Source IP], [Dest IP], [IP protocol], [TTL], [TC]
  MAC_IPV6_UDP [Source IP], [Dest IP], [TTL], [TC], [Source Port], [Dest Port]
  MAC_IPV6_TCP [Source IP], [Dest IP], [TTL], [TC], [Source Port], [Dest Port]
  MAC_IPV6_SCTP [Source IP], [Dest IP], [TTL], [TC], [Source Port], [Dest Port]
L2 Ethertype L2 Ethertype [Ethertype]
PFCP MAC_IPV4_PFCP_NODE [Dest Port], [S-field]
  MAC_IPV4_PFCP_SESSION [Dest Port], [S-field]
  MAC_IPV6_PFCP_NODE [Dest Port], [S-field]
  MAC_IPV6_PFCP_SESSION [Dest Port], [S-field]
L2TPv3 MAC_IPV4_L2TPv3 [Session ID]
  MAC_IPV6_L2TPv3 [Session ID]
ESP MAC_IPV4_ESP [Source IP], [Dest IP], [SPI]
  MAC_IPV6_ESP [Source IP], [Dest IP], [SPI]
  MAC_IPV4_AH [SPI]
  MAC_IPV6_AH [SPI]
  MAC_IPV4_NAT-T-ESP [Source IP], [Dest IP], [SPI]
  MAC_IPV6_NAT-T-ESP [Source IP], [Dest IP], [SPI]
IPv4 + GTP-U outer MAC_IPV4_GTPU outer:[Source IP], [Dest IP], [TEID]
  MAC_IPV4_GTPU_EH outer:[Source IP], [Dest IP], [TEID], [QFI]
IPv6 + GTP-U outer MAC_IPV6_GTPU outer:[Source IPV6], [Dest IPV6], [TEID]
  MAC_IPV6_GTPU_EH outer:[Source IPV6], [Dest IPV6], [TEID], [QFI]
IPv4 + GTP-U + inner IPv4 MAC_IPV4_GTPU_IPV4 inner:[Source IP], [Dest IP]
  MAC_IPV4_GTPU_IPV4_UDP inner:[Source IP], [Dest IP], [Source Port], [Dest Port]
  MAC_IPV4_GTPU_IPV4_TCP inner:[Source IP], [Dest IP], [Source Port], [Dest Port]
  MAC_IPV4_GTPU_EH_IPV4 inner:[Source IP], [Dest IP]
  MAC_IPV4_GTPU_EH_IPV4_UDP inner:[Source IP], [Dest IP], [Source Port], [Dest Port]
  MAC_IPV4_GTPU_EH_IPV4_TCP inner:[Source IP], [Dest IP], [Source Port], [Dest Port]
  MAC_IPV4_GTPU_EH_DL_IPV4 inner:[Source IP], [Dest IP]
  MAC_IPV4_GTPU_EH_DL_IPV4_UDP inner:[Source IP], [Dest IP], [Source Port], [Dest Port]
  MAC_IPV4_GTPU_EH_DL_IPV4_TCP inner:[Source IP], [Dest IP], [Source Port], [Dest Port]
  MAC_IPV4_GTPU_EH_UL_IPV4 inner:[Source IP], [Dest IP]
  MAC_IPV4_GTPU_EH_UL_IPV4_UDP inner:[Source IP], [Dest IP], [Source Port], [Dest Port]
  MAC_IPV4_GTPU_EH_UL_IPV4_TCP inner:[Source IP], [Dest IP], [Source Port], [Dest Port]
IPv4 + GTP-U + inner IPv6 MAC_IPV4_GTPU_IPV6 inner:[Source IPv6], [Dest IPv6]
  MAC_IPV4_GTPU_IPV6_UDP inner:[Source IPv6], [Dest IPv6], [Source Port], [Dest Port]
  MAC_IPV4_GTPU_IPV6_TCP inner:[Source IPv6], [Dest IPv6], [Source Port], [Dest Port]
  MAC_IPV4_GTPU_EH_IPV6 inner:[Source IPv6], [Dest IPv6]
  MAC_IPV4_GTPU_EH_IPV6_UDP inner:[Source IPv6], [Dest IPv6], [Source Port], [Dest Port]
  MAC_IPV4_GTPU_EH_IPV6_TCP inner:[Source IPv6], [Dest IPv6], [Source Port], [Dest Port]
  MAC_IPV4_GTPU_EH_UL_IPV6 inner:[Source IPv6], [Dest IPv6]
  MAC_IPV4_GTPU_EH_UL_IPV6_UDP inner:[Source IPv6], [Dest IPv6], [Source Port], [Dest Port]
  MAC_IPV4_GTPU_EH_UL_IPV6_TCP inner:[Source IPv6], [Dest IPv6], [Source Port], [Dest Port]
  MAC_IPV4_GTPU_EH_UL_IPV6 inner:[Source IPv6], [Dest IPv6]
  MAC_IPV4_GTPU_EH_UL_IPV6_UDP inner:[Source IPv6], [Dest IPv6], [Source Port], [Dest Port]
  MAC_IPV4_GTPU_EH_UL_IPV6_TCP inner:[Source IPv6], [Dest IPv6], [Source Port], [Dest Port]
IPV4/IPV6+GRE+IPV4/IPV6 MAC_IPV4_GRE_IPV4 [Inner Source IP], [Inner Dest IP], [Inner DSCP]
  MAC_IPV6_GRE_IPV4 [Inner Source IP], [Inner Dest IP], [Inner DSCP]
  MAC_IPV4_GRE_IPV6 [Inner Source IP], [Inner Dest IP], [Inner TC]
  MAC_IPV6_GRE_IPV6 [Inner Source IP], [Inner Dest IP], [Inner TC]
IPV4/IPV6+GRE+IPV4/IPV6+TCP MAC_IPV4_GRE_IPV4_TCP [Inner Source IP], [Inner Dest IP], [Inner DSCP], [Inner Source Port], [Inner Dest Port]
  MAC_IPV6_GRE_IPV4_TCP [Inner Source IP], [Inner Dest IP], [Inner DSCP], [Inner Source Port], [Inner Dest Port]
  MAC_IPV4_GRE_IPV6_TCP [Inner Source IP], [Inner Dest IP], [Inner TC], [Inner Source Port], [Inner Dest Port]
  MAC_IPV6_GRE_IPV6_TCP [Inner Source IP], [Inner Dest IP], [Inner TC], [Inner Source Port], [Inner Dest Port]
IPV4/IPV6+GRE+IPV4/IPV6+UDP MAC_IPV4_GRE_IPV4_UDP [Inner Source IP], [Inner Dest IP], [Inner DSCP], [Inner Source Port], [Inner Dest Port]
  MAC_IPV6_GRE_IPV4_UDP [Inner Source IP], [Inner Dest IP], [Inner DSCP], [Inner Source Port], [Inner Dest Port]
  MAC_IPV4_GRE_IPV6_UDP [Inner Source IP], [Inner Dest IP], [Inner TC], [Inner Source Port], [Inner Dest Port]
  MAC_IPV6_GRE_IPV6_UDP [Inner Source IP], [Inner Dest IP], [Inner TC], [Inner Source Port], [Inner Dest Port]

70.1.2. Supported function type

validate create destroy flush list

70.1.3. Supported action type

queue index drop rss queues passthru mark mark/rss

70.2. Prerequisites

  1. Hardware: Intel® Ethernet Network Adapter E810-XXVDA4/Intel® Ethernet Network Adapter E810-CQDA2

  2. Software: DPDK: http://dpdk.org/git/dpdk scapy: http://www.secdev.org/projects/scapy/

  3. Copy specific ice package to /lib/firmware/intel/ice/ddp/ice.pkg Then reboot server, and compile DPDK

  4. Generate 2 VFs on each PF and set mac address for each VF:

    echo 2 > /sys/bus/pci/devices/0000:86:00.0/sriov_numvfs
    echo 2 > /sys/bus/pci/devices/0000:86:00.1/sriov_numvfs
    ip link set enp134s0f0 vf 0 mac 00:11:22:33:44:55
    ip link set enp134s0f0 vf 1 mac 00:11:22:33:44:66
    ip link set enp134s0f1 vf 0 mac 00:11:22:33:44:77
    ip link set enp134s0f1 vf 1 mac 00:11:22:33:44:88
    
    If test set HW checksum and SW checksum:
    ip link set enp24s0f0 vf 0 trust on
    ip link set enp24s0f0 vf 0 spoofchk off
    ip link set enp24s0f0 vf 1 trust on
    ip link set enp24s0f0 vf 1 spoofchk off
    

    0000:86:00.0 generate 0000:86:01.0 and 0000:86:01.1 0000:86:00.1 generate 0000:86:11.0 and 0000:86:11.1 define 86:01.0 as vf00, 86:01.1 as vf01, 86:11.0 as vf10, 86:11.1 as vf11. assign mac address of pf0 is 68:05:ca:a3:1a:60, assign mac address of pf1 is 68:05:ca:a3:1a:61.

  5. Bind VFs to dpdk driver:

    ./usertools/dpdk-devbind.py -b vfio-pci 86:01.0 86:01.1 86:11.0 86:11.1
    
  1. Launch the app testpmd with the following arguments:

    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xff -n 6 -a 86:01.0 -a 86:01.1 --file-prefix=vf -- -i --rxq=16 --txq=16
    testpmd> set fwd rxonly
    testpmd> set verbose 1
    
  2. on tester side, copy the layer python file to /root:

    cp pfcp.py to /root
    

    then import layers when start scapy:

    >>> import sys
    >>> sys.path.append('/root')
    >>> from pfcp import PFCP
    >>> from scapy.contrib.gtp import *
    >>> from scapy.contrib.mpls import *
    

70.2.1. Default parameters

VF00 MAC:

[Dest MAC]: 00:11:22:33:44:55
[Multicast Dest MAC]: 11:22:33:44:55:66

Note

The LSB of the first byte “11” is 1, it says it to be multicast MAC address.

VF01 MAC:

[Dest MAC]: 00:11:22:33:44:66

VF10 MAC:

[Dest MAC]: 00:11:22:33:44:77

VF11 MAC:

[Dest MAC]: 00:11:22:33:44:88

outer/inner IPv4:

[Source IP]: 192.168.0.20
[Dest IP]: 192.168.0.21
[Multicast Dest IPv4]: 224.0.0.1
[IP protocol]: 255
[TTL]: 2
[DSCP]: 4

outer/inner IPv6:

[Source IPv6]: 2001::2
[Dest IPv6]: CDCD:910A:2222:5498:8475:1111:3900:2020
[Multicast Dest IPv6]: ff01::2
[IP protocol]: 0
[TTL]: 2
[TC]: 1

UDP/TCP/SCTP:

[Source Port]: 22
[Dest Port]: 23

GTP-U data packet:

[TEID]: 0x12345678
[QFI]: 0x34

L2 Ethertype:

[Ethertype]: 0x8863 0x8864 0x0806 0x8100 0x88f7

PFCP:

[Dest Port]: 8805
[S-field]: 0/1

70.2.2. Send packets

  • MAC_IPV4_PAY

    matched packets:

    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", proto=255, ttl=2, tos=4) / Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", proto=255, ttl=2, tos=4)/UDP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    

    mismatched packets:

    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.22",dst="192.168.0.21", proto=255, ttl=2, tos=4) / Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.1.21", proto=255, ttl=2, tos=4) / Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", proto=1, ttl=2, tos=4) / Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", proto=255, ttl=3, tos=4) / Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", proto=255, ttl=2, tos=9) / Raw('x' * 80)],iface="enp134s0f1")
    
  • MAC_IPV4_PAY multicast

    matched packets:

    sendp([Ether(dst="11:22:33:44:55:66")/IP(src="192.168.0.20",dst="224.0.0.1", proto=255, ttl=2, tos=4) / Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="11:22:33:44:55:66")/IP(src="192.168.0.20",dst="224.0.0.1", proto=255, ttl=2, tos=4)/UDP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    

    mismatched packets:

    sendp([Ether(dst="11:22:33:44:55:66")/IP(src="192.168.0.22",dst="224.0.0.1", proto=255, ttl=2, tos=4) / Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="11:22:33:44:55:66")/IP(src="192.168.0.20",dst="224.0.0.2", proto=255, ttl=2, tos=4) / Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="11:22:33:44:55:66")/IP(src="192.168.0.20",dst="224.0.0.1", proto=1, ttl=2, tos=4) / Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="11:22:33:44:55:66")/IP(src="192.168.0.20",dst="224.0.0.1", proto=255, ttl=3, tos=4) / Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="11:22:33:44:55:66")/IP(src="192.168.0.20",dst="224.0.0.1", proto=255, ttl=2, tos=9) / Raw('x' * 80)],iface="enp134s0f1")
    
  • MAC_IPV4_UDP

    matched packets:

    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", ttl=2, tos=4) /UDP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    

    mismatched packets:

    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.1.20",dst="192.168.0.21", ttl=2, tos=4) /UDP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.22", ttl=2, tos=4) /UDP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", ttl=2, tos=4) /UDP(sport=21,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", ttl=2, tos=4) /UDP(sport=22,dport=24)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", ttl=64, tos=4) /UDP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", ttl=2, tos=1) /UDP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", ttl=2, tos=4) /TCP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    
  • MAC_IPV4_TCP

    matched packets:

    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", ttl=2, tos=4) /TCP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    

    mismatched packets:

    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.1.20",dst="192.168.0.21", ttl=2, tos=4) /TCP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.22", ttl=2, tos=4) /TCP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", ttl=2, tos=4) /TCP(sport=21,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", ttl=2, tos=4) /TCP(sport=22,dport=24)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", ttl=64, tos=4) /TCP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", ttl=2, tos=1) /TCP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", ttl=2, tos=4) /UDP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    
  • MAC_IPV4_SCTP

    matched packets:

    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", ttl=2, tos=4) /SCTP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    

    mismatched packets:

    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.1.20",dst="192.168.0.21", ttl=2, tos=4) /SCTP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.22", ttl=2, tos=4) /SCTP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", ttl=2, tos=4) /SCTP(sport=21,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", ttl=2, tos=4) /SCTP(sport=22,dport=24)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", ttl=64, tos=4) /SCTP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", ttl=2, tos=1) /SCTP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", ttl=2, tos=4)/Raw('x' * 80)],iface="enp134s0f1")
    
  • MAC_IPV6_PAY

    matched packets:

    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2", nh=0, tc=1, hlim=2)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2", nh=0, tc=1, hlim=2)/UDP(sport=22,dport=23)/("X"*480)], iface="enp134s0f1")
    

    mismatched packets:

    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2022", src="2001::2", nh=0, tc=1, hlim=2)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::1", nh=0, tc=1, hlim=2)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2", nh=2, tc=1, hlim=2)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2", nh=0, tc=2, hlim=2)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2", nh=0, tc=1, hlim=5)/("X"*480)], iface="enp134s0f1")
    
  • MAC_IPV6_PAY multicast

    matched packets:

    sendp([Ether(dst="11:22:33:44:55:66")/IPv6(dst="ff01::2", src="2001::2", nh=0, tc=1, hlim=2)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="11:22:33:44:55:66")/IPv6(dst="ff01::2", src="2001::2", nh=0, tc=1, hlim=2)/UDP(sport=22,dport=23)/("X"*480)], iface="enp134s0f1")
    

    mismatched packets:

    sendp([Ether(dst="11:22:33:44:55:66")/IPv6(dst="ff01::1", src="2001::2", nh=0, tc=1, hlim=2)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="11:22:33:44:55:66")/IPv6(dst="ff01::2", src="2001::1", nh=0, tc=1, hlim=2)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="11:22:33:44:55:66")/IPv6(dst="ff01::2", src="2001::2", nh=2, tc=1, hlim=2)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="11:22:33:44:55:66")/IPv6(dst="ff01::2", src="2001::2", nh=0, tc=2, hlim=2)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="11:22:33:44:55:66")/IPv6(dst="ff01::2", src="2001::2", nh=0, tc=1, hlim=5)/("X"*480)], iface="enp134s0f1")
    
  • MAC_IPV6_UDP

    matched packets:

    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2",tc=1, hlim=2)/UDP(sport=22,dport=23)/("X"*480)], iface="enp134s0f1")
    

    mismatched packets:

    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2021", src="2001::2",tc=1, hlim=2)/UDP(sport=22,dport=23)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2002::2",tc=1, hlim=2)/UDP(sport=22,dport=23)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2",tc=3, hlim=2)/UDP(sport=22,dport=23)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2",tc=1, hlim=1)/UDP(sport=22,dport=23)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2",tc=1, hlim=2)/UDP(sport=21,dport=23)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2",tc=1, hlim=2)/UDP(sport=22,dport=24)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2",tc=1, hlim=2)/TCP(sport=22,dport=23)/("X"*480)], iface="enp134s0f1")
    
  • MAC_IPV6_TCP

    matched packets:

    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2",tc=1, hlim=2)/TCP(sport=22,dport=23)/("X"*480)], iface="enp134s0f1")
    

    mismatched packets:

    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2021", src="2001::2",tc=1, hlim=2)/TCP(sport=22,dport=23)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2002::2",tc=1, hlim=2)/TCP(sport=22,dport=23)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2",tc=3, hlim=2)/TCP(sport=22,dport=23)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2",tc=1, hlim=1)/TCP(sport=22,dport=23)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2",tc=1, hlim=2)/TCP(sport=21,dport=23)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2",tc=1, hlim=2)/TCP(sport=22,dport=24)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2",tc=1, hlim=2)/SCTP(sport=22,dport=23)/("X"*480)], iface="enp134s0f1")
    
  • MAC_IPV6_SCTP

    matched packets:

    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2",tc=1, hlim=2)/SCTP(sport=22,dport=23)/("X"*480)], iface="enp134s0f1")
    

    mismatched packets:

    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2021", src="2001::2",tc=1, hlim=2)/SCTP(sport=22,dport=23)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2002::2",tc=1, hlim=2)/SCTP(sport=22,dport=23)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2",tc=3, hlim=2)/SCTP(sport=22,dport=23)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2",tc=1, hlim=1)/SCTP(sport=22,dport=23)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2",tc=1, hlim=2)/SCTP(sport=21,dport=23)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2",tc=1, hlim=2)/SCTP(sport=22,dport=24)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2",tc=1, hlim=2)/UDP(sport=22,dport=23)/("X"*480)], iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2",tc=1, hlim=2)/("X"*480)], iface="enp134s0f1")
    
  • MAC_IPV4_GTPU_EH

    matched packets:

    p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/IP()/Raw('x'*20)
    p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/IP(frag=1)/Raw('x'*20)
    p_gtpu3 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/IP()/UDP()/Raw('x'*20)
    p_gtpu4 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/IP()/TCP(sport=22,dport=23)/Raw('x'*20)
    p_gtpu5 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/IP()/ICMP()/Raw('x'*20)
    p_gtpu6 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/IPv6()/Raw('x'*20)
    p_gtpu7 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/IPv6(nh=44)/Raw('x'*20)
    p_gtpu8 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/IPv6()/UDP()/Raw('x'*20)
    p_gtpu9 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/IPv6()/TCP(sport=22,dport=23)/Raw('x'*20)
    p_gtpu10 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/IPv6()/ICMP()/Raw('x'*20)
    p_gtpu11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/Raw('x'*20)
    p_gtpu12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/IP()/SCTP(sport=22,dport=23)/Raw('x'*20)
    p_gtpu13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/IPv6()/SCTP(sport=22,dport=23)/Raw('x'*20)
    

    mismatched packets:

    p_gtpu12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x1234567)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/IP()/Raw('x'*20)
    p_gtpu13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x35)/IP()/Raw('x'*20)
    p_gtpu14 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/Raw('x'*20)
    
  • MAC_IPV4_GTPU

    matched packets:

    p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/Raw('x'*20)
    p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP(frag=1)/Raw('x'*20)
    p_gtpu3 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/UDP()/Raw('x'*20)
    p_gtpu4 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/TCP(sport=22, dport=23)/Raw('x'*20)
    p_gtpu5 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/ICMP()/Raw('x'*20)
    p_gtpu6 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6()/Raw('x'*20)
    p_gtpu7 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6(nh=44)/Raw('x'*20)
    p_gtpu8 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6()/UDP()/Raw('x'*20)
    p_gtpu9 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6()/TCP(sport=22, dport=23)/Raw('x'*20)
    p_gtpu10 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6()/ICMP()/Raw('x'*20)
    p_gtpu11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/Raw('x'*20)
    p_gtpu12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/SCTP(sport=22, dport=23)/Raw('x'*20)
    p_gtpu13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6()/SCTP(sport=22, dport=23)/Raw('x'*20)
    

    mismatched packets:

    p_gtpu15 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x1234567)/IP()/Raw('x'*20)
    
  • MAC_IPV6_GTPU_EH

    matched packets:

    p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/Raw('x'*20)
    p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP(frag=1)/Raw('x'*20)
    p_gtpu3 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/UDP()/Raw('x'*20)
    p_gtpu4 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/TCP(sport=22, dport=23)/Raw('x'*20)
    p_gtpu5 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/ICMP()/Raw('x'*20)
    p_gtpu6 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IPv6()/Raw('x'*20)
    p_gtpu7 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)
    p_gtpu8 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IPv6()/UDP()/Raw('x'*20)
    p_gtpu9 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP( dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IPv6()/TCP(sport=22, dport=23)/Raw('x'*20)
    p_gtpu10 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IPv6()/ICMP()/Raw('x'*20)
    p_gtpu11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP( dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/SCTP(sport=22, dport=23)/Raw('x'*20)
    p_gtpu12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP( dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IPv6()/TCP(sport=22, dport=23)/Raw('x'*20)
    

    mismatched packets:

    p_gtpu11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/Raw('x'*20)
    p_gtpu12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x1234567)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/Raw('x'*20)
    p_gtpu13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x35)/IP()/ICMP()/Raw('x'*20)
    p_gtpu14 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::3", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/TCP()/Raw('x'*20)
    p_gtpu15 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/UDP()/Raw('x'*20)
    
  • MAC_IPV6_GTPU

    matched packets:

    p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/Raw('x'*20)
    p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP(frag=1)/Raw('x'*20)
    p_gtpu3 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/UDP()/Raw('x'*20)
    p_gtpu4 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP( dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/TCP(sport=22, dport=23)/Raw('x'*20)
    p_gtpu5 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/ICMP()/Raw('x'*20)
    p_gtpu6 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6()/Raw('x'*20)
    p_gtpu7 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)
    p_gtpu8 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6()/UDP()/Raw('x'*20)
    p_gtpu9 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP( dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6()/TCP(sport=22, dport=23)/Raw('x'*20)
    p_gtpu10 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6()/ICMP()/Raw('x'*20)
    p_gtpu11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP( dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/SCTP(sport=22, dport=23)/Raw('x'*20)
    p_gtpu12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP( dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6()/SCTP(sport=22, dport=23)/Raw('x'*20)
    

    mismatched packets:

    p_gtpu11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x1234567)/IP()/Raw('x'*20)
    p_gtpu12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::3", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/TCP()/Raw('x'*20)
    p_gtpu13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/UDP()/Raw('x'*20)
    
  • L2 Ethertype

    PPPoED packets:

    sendp([Ether(dst="00:11:22:33:44:55")/PPPoED()/PPP()/IP()/Raw('x' *80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55", type=0x8863)/IP()/Raw('x' * 80)],iface="enp134s0f1")
    

    PPPoE packets:

    sendp([Ether(dst="00:11:22:33:44:55")/PPPoE()/PPP(proto=0x0021)/IP()/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55", type=0x8864)/IP()/Raw('x' * 80)],iface="enp134s0f1")
    

    ARP packets:

    sendp([Ether(dst="00:11:22:33:44:55")/ARP(pdst="192.168.1.1")],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55", type=0x0806)/Raw('x' *80)],iface="enp134s0f1")
    

    EAPS packets:

    sendp([Ether(dst="00:11:22:33:44:55",type=0x8100)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/Dot1Q(vlan=1)],iface="enp134s0f1")
    

    ieee1588 packet:

    sendp([Ether(dst="00:11:22:33:44:55",type=0x88f7)/"\\x00\\x02"], iface="enp134s0f1")
    
  • PFCP

    MAC_IPV4_PFCP_NODE:

    sendp(Ether(dst="00:11:22:33:44:55")/IP()/UDP(sport=22, dport=8805)/PFCP(Sfield=0),iface="enp134s0f1")
    

    MAC_IPV4_PFCP_SESSION:

    sendp(Ether(dst="00:11:22:33:44:55")/IP()/UDP(sport=22, dport=8805)/PFCP(Sfield=1, SEID=123),iface="enp134s0f1")
    

    MAC_IPV6_PFCP_NODE:

    sendp(Ether(dst="00:11:22:33:44:55")/IPv6()/UDP(sport=22, dport=8805)/PFCP(Sfield=0),iface="enp134s0f1")
    

    MAC_IPV6_PFCP_NODE:

    sendp(Ether(dst="00:11:22:33:44:55")/IPv6()/UDP(sport=22, dport=8805)/PFCP(Sfield=1, SEID=256),iface="enp134s0f1")
    
  • MAC_IPV4_L2TPv3

    matched packets:

    sendp(Ether(dst='00:11:22:33:44:55')/IP(src='192.168.0.3', proto=115)/L2TP('\\x00\\x00\\x00\\x11')/Raw('x'*480),iface="enp134s0f1")
    sendp(Ether(dst='00:11:22:33:44:55')/IP(src='192.168.1.3', proto=115)/L2TP('\\x00\\x00\\x00\\x11')/Raw('x'*480),iface="enp134s0f1")
    

    mismatched packets:

    sendp(Ether(dst='00:11:22:33:44:55')/IP(src='192.168.0.3', proto=115)/L2TP('\\x00\\x00\\x00\\x12')/Raw('x'*480),iface="enp134s0f1")
    
  • MAC_IPV6_L2TPv3

    matched packets:

    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src='1111:2222:3333:4444:5555:6666:7777:8888',nh=115)/L2TP('\\x00\\x00\\x00\\x11')/Raw('x'*480),iface="enp134s0f1")
    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src='1111:2222:3333:4444:5555:6666:7777:9999',nh=115)/L2TP('\\x00\\x00\\x00\\x11')/Raw('x'*480),iface="enp134s0f1")
    

    mismatched packets:

    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src='1111:2222:3333:4444:5555:6666:7777:8888',nh=115)/L2TP('\\x00\\x00\\x00\\x12')/Raw('x'*480),iface="enp134s0f1")
    
  • MAC_IPV4_ESP

    matched packets:

    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.20",dst="192.168.0.21",proto=50)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
    

    mismatched packets:

    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.22",dst="192.168.0.21",proto=50)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.20",dst="192.168.0.11",proto=50)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.20",dst="192.168.0.21",proto=50)/ESP(spi=17)/Raw('x'*480),iface="enp134s0f1")
    
  • MAC_IPV6_ESP

    matched packets:

    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src="2001::1",dst="2001::2",nh=50)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
    

    mismatched packets:

    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src="2001::8",dst="2001::2",nh=50)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src="2001::1",dst="2001::9",nh=50)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src="2001::1",dst="2001::2",nh=50)/ESP(spi=17)/Raw('x'*480),iface="enp134s0f1")
    
  • MAC_IPV4_AH

    matched packets:

    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.3",proto=51)/AH(spi=7)/Raw('x'*480),iface="enp134s0f1")
    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.1.3",proto=51)/AH(spi=7)/Raw('x'*480),iface="enp134s0f1")
    

    mismatched packets:

    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.3",proto=51)/AH(spi=17)/Raw('x'*480),iface="enp134s0f1")
    
  • MAC_IPV6_AH

    matched packets:

    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src="1111:2222:3333:4444:5555:6666:7777:8888",nh=51)/AH(spi=7)/Raw('x'*480),iface="enp134s0f1")
    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src="1111:2222:3333:4444:5555:6666:7777:9999",nh=51)/AH(spi=7)/Raw('x'*480),iface="enp134s0f1")
    

    mismatched packets:

    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src="1111:2222:3333:4444:5555:6666:7777:8888",nh=51)/AH(spi=17)/Raw('x'*480),iface="enp134s0f1")
    
  • MAC_IPV4_NAT-T-ESP

    matched packets:

    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.20",dst="192.168.0.21")/UDP(dport=4500)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
    

    mismatched packets:

    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.22",dst="192.168.0.21")/UDP(dport=4500)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.20",dst="192.168.0.11")/UDP(dport=4500)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.20",dst="192.168.0.21")/UDP(dport=4500)/ESP(spi=17)/Raw('x'*480),iface="enp134s0f1")
    
  • MAC_IPV6_NAT-T-ESP

    matched packets:

    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src="2001::1",dst="2001::2")/UDP(dport=4500)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
    

    mismatched packets:

    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src="2001::8",dst="2001::2")/UDP(dport=4500)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src="2001::1",dst="2001::9")/UDP(dport=4500)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src="2001::1",dst="2001::2")/UDP(dport=4500)/ESP(spi=17)/Raw('x'*480),iface="enp134s0f1")
    
  • MAC_IPV4_GTPU_IPV4

    matched packets:

    pkt1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src="192.168.0.20", dst="192.168.0.21")/Raw('x'*20)
    pkt2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src="192.168.0.20", dst="192.168.0.21", frag=1)/Raw('x'*20)
    pkt3 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src="192.168.0.20", dst="192.168.0.21")/UDP()/Raw('x'*20)
    pkt4 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src="192.168.0.20", dst="192.168.0.21")/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt5 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src="192.168.0.20", dst="192.168.0.21")/ICMP()/Raw('x'*20)
    

    mismatched packets:

    pkt11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src="192.168.0.22", dst="192.168.0.23")/Raw('x'*20)
    pkt12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src="192.168.0.20", dst="192.168.0.21")/SCTP()/Raw('x'*20)
    pkt13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/Raw('x'*20)
    pkt14 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6()/Raw('x'*20)
    
  • MAC_IPV4_GTPU_IPV4_TCP

    matched packets:

    pkt1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src="192.168.0.20", dst="192.168.0.21")/TCP(sport=22, dport=23)/Raw('x'*20)
    

    mismatched packets:

    pkt11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src="192.168.0.22", dst="192.168.0.23")/TCP(sport=24, dport=25)/Raw('x'*20)
    pkt12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(sport=22, dport=23)/Raw('x'*20)
    pkt13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/Raw('x'*20)
    pkt14 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6()/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt15 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IP()/Raw('x'*20)
    
  • MAC_IPV4_GTPU_IPV4_UDP

    matched packets:

    pkt1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(sport=22, dport=23)/Raw('x'*20)
    

    mismatched packets:

    pkt11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src="192.168.0.22", dst="192.168.0.23")/UDP(sport=24, dport=25)/Raw('x'*20)
    pkt12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src="192.168.0.20", dst="192.168.0.21")/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/Raw('x'*20)
    pkt14 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src="192.168.0.20", dst="192.168.0.21")/Raw('x'*20)
    pkt15 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6()/UDP(sport=22, dport=23)/Raw('x'*20)
    
  • MAC_IPV4_GTPU_EH_IPV4

    matched packets:

    pkt1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src="192.168.0.20", dst="192.168.0.21")/Raw('x'*20)
    pkt2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src="192.168.0.20", dst="192.168.0.21", frag=1)/Raw('x'*20)
    pkt3 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src="192.168.0.20", dst="192.168.0.21")/UDP()/Raw('x'*20)
    pkt4 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src="192.168.0.20", dst="192.168.0.21")/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt5 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src="192.168.0.20", dst="192.168.0.21")/ICMP()/Raw('x'*20)
    

    mismatched packets:

    pkt11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src="192.168.0.22", dst="192.168.0.23")/Raw('x'*20)
    pkt12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6()/Raw('x'*20)
    
  • MAC_IPV4_GTPU_EH_IPV4_TCP

    matched packets:

    pkt1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src="192.168.0.20", dst="192.168.0.21")/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src="192.168.0.20", dst="192.168.0.21")/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt3 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src="192.168.0.20", dst="192.168.0.21")/TCP(sport=22, dport=23)/Raw('x'*20)
    

    mismatched packets:

    pkt11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src="192.168.0.22", dst="192.168.0.23")/TCP(sport=25, dport=24)/Raw('x'*20)
    pkt12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(sport=22, dport=23)/Raw('x'*20)
    pkt13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6()/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt14 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP()/Raw('x'*20)
    
  • MAC_IPV4_GTPU_EH_IPV4_UDP

    matched packets:

    pkt1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(sport=22, dport=23)/Raw('x'*20)
    pkt2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(sport=22, dport=23)/Raw('x'*20)
    pkt3 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(sport=22, dport=23)/Raw('x'*20)
    

    mismatched packets:

    pkt11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src="192.168.0.22", dst="192.168.0.23")/UDP(sport=25, dport=24)/Raw('x'*20)
    pkt12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src="192.168.0.20", dst="192.168.0.21")/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src="192.168.0.20", dst="192.168.0.21")/Raw('x'*20)
    pkt14 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6()/UDP(sport=22, dport=23)/Raw('x'*20)
    
  • MAC_IPV4_GTPU_EH_DL_IPV4

    matched packets:

    pkt1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src="192.168.0.20", dst="192.168.0.21")/Raw('x'*20)
    pkt2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src="192.168.0.20", dst="192.168.0.21")/Raw('x'*20)
    pkt3 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src="192.168.0.20", dst="192.168.0.21", frag=1)/Raw('x'*20)
    pkt4 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src="192.168.0.20", dst="192.168.0.21")/UDP()/Raw('x'*20)
    pkt5 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src="192.168.0.20", dst="192.168.0.21")/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt6 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src="192.168.0.20", dst="192.168.0.21")/ICMP()/Raw('x'*20)
    

    mismatched packets:

    pkt11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src="192.168.0.20", dst="192.168.0.21")/Raw('x'*20)
    pkt12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src="192.168.0.22", dst="192.168.0.23")/Raw('x'*20)
    pkt13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6()/Raw('x'*20)
    
  • MAC_IPV4_GTPU_EH_DL_IPV4_TCP

    matched packets:

    pkt1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src="192.168.0.20", dst="192.168.0.21")/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src="192.168.0.20", dst="192.168.0.21")/TCP(sport=22, dport=23)/Raw('x'*20)
    

    mismatched packets:

    pkt11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src="192.168.0.20", dst="192.168.0.21")/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src="192.168.0.22", dst="192.168.0.23")/TCP(sport=25, dport=24)/Raw('x'*20)
    pkt13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(sport=22, dport=23)/Raw('x'*20)
    pkt14 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6()/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt15 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP()/Raw('x'*20)
    
  • MAC_IPV4_GTPU_EH_DL_IPV4_UDP

    matched packets:

    pkt1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(sport=22, dport=23)/Raw('x'*20)
    pkt2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(sport=22, dport=23)/Raw('x'*20)
    

    mismatched packets:

    pkt11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(sport=22, dport=23)/Raw('x'*20)
    pkt12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src="192.168.0.22", dst="192.168.0.23")/UDP(sport=25, dport=24)/Raw('x'*20)
    pkt13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src="192.168.0.20", dst="192.168.0.21")/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt14 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src="192.168.0.20", dst="192.168.0.21")/Raw('x'*20)
    pkt15 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6()/UDP(sport=22, dport=23)/Raw('x'*20)
    
  • MAC_IPV4_GTPU_EH_UL_IPV4

    matched packets:

    pkt1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src="192.168.0.20", dst="192.168.0.21")/Raw('x'*20)
    pkt2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src="192.168.0.20", dst="192.168.0.21", frag=1)/Raw('x'*20)
    pkt3 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src="192.168.0.20", dst="192.168.0.21")/UDP()/Raw('x'*20)
    pkt4 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src="192.168.0.20", dst="192.168.0.21")/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt5 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src="192.168.0.20", dst="192.168.0.21")/ICMP()/Raw('x'*20)
    

    mismatched packets:

    pkt11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src="192.168.0.20", dst="192.168.0.21")/Raw('x'*20)
    pkt12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src="192.168.0.20", dst="192.168.0.21")/Raw('x'*20)
    pkt14 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src="192.168.0.22", dst="192.168.0.23")/Raw('x'*20)
    pkt15 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src="192.168.0.20", dst="192.168.0.21")/SCTP()/Raw('x'*20)
    pkt16 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/Raw('x'*20)
    pkt17 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6()/Raw('x'*20)
    
  • MAC_IPV4_GTPU_EH_UL_IPV4_TCP

    matched packets:

    pkt1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src="192.168.0.20", dst="192.168.0.21")/TCP(sport=22, dport=23)/Raw('x'*20)
    

    mismatched packets:

    pkt11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src="192.168.0.20", dst="192.168.0.21")/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src="192.168.0.20", dst="192.168.0.21")/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src="192.168.0.22", dst="192.168.0.23")/TCP(sport=25, dport=24)/Raw('x'*20)
    pkt14 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(sport=22, dport=23)/Raw('x'*20)
    pkt15 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/Raw('x'*20)
    pkt16 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6()/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt17 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP()/Raw('x'*20)
    
  • MAC_IPV4_GTPU_EH_UL_IPV4_UDP

    matched packets:

    pkt1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(sport=22, dport=23)/Raw('x'*20)
    

    mismatched packets:

    pkt11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(sport=22, dport=23)/Raw('x'*20)
    pkt12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(sport=22, dport=23)/Raw('x'*20)
    pkt13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src="192.168.0.22", dst="192.168.0.23")/UDP(sport=25, dport=24)/Raw('x'*20)
    pkt14 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src="192.168.0.20", dst="192.168.0.21")/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt15 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/Raw('x'*20)
    pkt16 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src="192.168.0.20", dst="192.168.0.21")/Raw('x'*20)
    pkt17 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6()/UDP(sport=22, dport=23)/Raw('x'*20)
    
  • MAC_IPV4_GTPU_IPV6

    matched packets:

    pkt1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/Raw('x'*20)
    pkt2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP()/Raw('x'*20)
    pkt3 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt4 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/ICMP()/Raw('x'*20)
    

    mismatched packets:

    pkt11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6(src="2001::4", dst="CDCD:910A:2222:5498:8475:1111:3900:2024")/Raw('x'*20)
    pkt12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP()/Raw('x'*20)
    pkt13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/Raw('x'*20)
    pkt14 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IP()/Raw('x'*20)
    
  • MAC_IPV4_GTPU_IPV6_TCP

    matched packets:

    pkt1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22, dport=23)/Raw('x'*20)
    

    mismatched packets:

    pkt11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6(src="2001::4", dst="CDCD:910A:2222:5498:8475:1111:3900:2024")/TCP(sport=24, dport=25)/Raw('x'*20)
    pkt12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22, dport=23)/Raw('x'*20)
    pkt13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/Raw('x'*20)
    pkt14 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IP()/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt15 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IP()/Raw('x'*20)
    
  • MAC_IPV4_GTPU_IPV6_UDP

    matched packets:

    pkt1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22, dport=23)/Raw('x'*20)
    

    mismatched packets:

    pkt11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6(src="2001::4", dst="CDCD:910A:2222:5498:8475:1111:3900:2024")/UDP(sport=24, dport=25)/Raw('x'*20)
    pkt12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/Raw('x'*20)
    pkt14 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/Raw('x'*20)
    pkt15 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/IP()/UDP(sport=22, dport=23)/Raw('x'*20)
    
  • MAC_IPV4_GTPU_EH_IPV6

    matched packets:

    pkt1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/Raw('x'*20)
    pkt2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP()/Raw('x'*20)
    pkt3 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt4 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/ICMP()/Raw('x'*20)
    

    mismatched packets:

    pkt11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src="2001::4", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/Raw('x'*20)
    pkt12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2024")/Raw('x'*20)
    pkt13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP()/Raw('x'*20)
    pkt14 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/Raw('x'*20)
    pkt15 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP()/Raw('x'*20)
    
  • MAC_IPV4_GTPU_EH_IPV6_TCP

    matched packets:

    pkt1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt3 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22, dport=23)/Raw('x'*20)
    

    mismatched packets:

    pkt11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src="2001::4", dst="CDCD:910A:2222:5498:8475:1111:3900:2024")/TCP(sport=24, dport=25)/Raw('x'*20)
    pkt12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22, dport=23)/Raw('x'*20)
    pkt13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/Raw('x'*20)
    pkt14 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP()/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt15 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP()/Raw('x'*20)
    
  • MAC_IPV4_GTPU_EH_IPV6_UDP

    matched packets:

    pkt1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22, dport=23)/Raw('x'*20)
    pkt2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22, dport=23)/Raw('x'*20)
    pkt3 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22, dport=23)/Raw('x'*20)
    

    mismatched packets:

    pkt11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src="2001::4", dst="CDCD:910A:2222:5498:8475:1111:3900:2024")/UDP(sport=24, dport=25)/Raw('x'*20)
    pkt12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/Raw('x'*20)
    pkt14 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/Raw('x'*20)
    pkt15 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP()/UDP(sport=22, dport=23)/Raw('x'*20)
    
  • MAC_IPV4_GTPU_EH_DL_IPV6

    matched packets:

    pkt1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/Raw('x'*20)
    pkt2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP()/Raw('x'*20)
    pkt3 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt4 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/ICMP()/Raw('x'*20)
    pkt5 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/Raw('x'*20)
    

    mismatched packets:

    pkt11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/Raw('x'*20)
    pkt12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src="2001::4", dst="CDCD:910A:2222:5498:8475:1111:3900:2024")/Raw('x'*20)
    pkt13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP()/Raw('x'*20)
    
  • MAC_IPV4_GTPU_EH_DL_IPV6_TCP

    matched packets:

    pkt1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22, dport=23)/Raw('x'*20)
    

    mismatched packets:

    pkt11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src="2001::4", dst="CDCD:910A:2222:5498:8475:1111:3900:2024")/TCP(sport=24, dport=25)/Raw('x'*20)
    pkt13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22, dport=23)/Raw('x'*20)
    pkt14 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP()/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt15 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP()/Raw('x'*20)
    
  • MAC_IPV4_GTPU_EH_DL_IPV6_UDP

    matched packets:

    pkt1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22, dport=23)/Raw('x'*20)
    pkt2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22, dport=23)/Raw('x'*20)
    

    mismatched packets:

    pkt11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22, dport=23)/Raw('x'*20)
    pkt12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src="2001::4", dst="CDCD:910A:2222:5498:8475:1111:3900:2024")/UDP(sport=24, dport=25)/Raw('x'*20)
    pkt13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt14 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/Raw('x'*20)
    pkt15 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP()/UDP(sport=22, dport=23)/Raw('x'*20)
    
  • MAC_IPV4_GTPU_EH_UL_IPV6

    matched packets:

    pkt1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/Raw('x'*20)
    pkt2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP()/Raw('x'*20)
    pkt3 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt4 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/ICMP()/Raw('x'*20)
    

    mismatched packets:

    pkt11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/Raw('x'*20)
    pkt12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/Raw('x'*20)
    pkt13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src="2001::4", dst="CDCD:910A:2222:5498:8475:1111:3900:2024")/Raw('x'*20)
    pkt14 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP()/Raw('x'*20)
    pkt16 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP()/Raw('x'*20)
    
  • MAC_IPV4_GTPU_EH_UL_IPV6_TCP

    matched packets:

    pkt1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22, dport=23)/Raw('x'*20)
    

    mismatched packets:

    pkt11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src="2001::4", dst="CDCD:910A:2222:5498:8475:1111:3900:2024")/TCP(sport=24, dport=25)/Raw('x'*20)
    pkt14 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22, dport=23)/Raw('x'*20)
    pkt16 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP()/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt17 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP()/Raw('x'*20)
    
  • MAC_IPV4_GTPU_EH_UL_IPV6_UDP

    matched packets:

    pkt1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22, dport=23)/Raw('x'*20)
    

    mismatched packets:

    pkt11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22, dport=23)/Raw('x'*20)
    pkt12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22, dport=23)/Raw('x'*20)
    pkt13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src="2001::4", dst="CDCD:910A:2222:5498:8475:1111:3900:2024")/UDP(sport=24, dport=25)/Raw('x'*20)
    pkt14 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22, dport=23)/Raw('x'*20)
    pkt16 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/Raw('x'*20)
    pkt17 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP()/UDP(sport=22, dport=23)/Raw('x'*20)
    
  • MAC_IPV4_GRE_IPV4

    matched packets:

    sendp([Ether(dst="00:11:22:33:44:55")/IP()/GRE()/IP(src="192.168.0.20",dst="192.168.0.21", tos=4)/Raw('x' * 80)],iface="enp134s0f1")
    

    mismatched packets:

    sendp([Ether(dst="00:11:22:33:44:55")/IP()/GRE()/IP(src="192.168.0.22",dst="192.168.0.21", tos=4)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP()/GRE()/IP(src="192.168.0.20",dst="192.168.0.23", tos=4)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP()/GRE()/IP(src="192.168.0.20",dst="192.168.0.21", tos=8)/Raw('x' * 80)],iface="enp134s0f1")
    
  • MAC_IPV6_GRE_IPV4

    matched packets:

    sendp([Ether(dst="00:11:22:33:44:55")/IPv6()/GRE()/IP(src="192.168.0.20",dst="192.168.0.21", tos=4)/Raw('x' * 80)],iface="enp134s0f1")
    

    mismatched packets:

    sendp([Ether(dst="00:11:22:33:44:55")/IPv6()/GRE()/IP(src="192.168.0.22",dst="192.168.0.21", tos=4)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IPv6()/GRE()/IP(src="192.168.0.20",dst="192.168.0.23", tos=4)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IPv6()/GRE()/IP(src="192.168.0.20",dst="192.168.0.21", tos=8)/Raw('x' * 80)],iface="enp134s0f1")
    
  • MAC_IPV4_GRE_IPV6

    matched packets:

    sendp([Ether(dst="00:11:22:33:44:55")/IP()/GRE()/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2", tc=1)/Raw('x' * 80)],iface="enp134s0f1")
    

    mismatched packets:

    sendp([Ether(dst="00:11:22:33:44:55")/IP()/GRE()/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2021", src="2001::2", tc=1)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP()/GRE()/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::3", tc=1)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP()/GRE()/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2", tc=2)/Raw('x' * 80)],iface="enp134s0f1")
    
  • MAC_IPV4_GRE_IPV4_TCP

    matched packets:

    sendp([Ether(dst="00:11:22:33:44:55")/IP()/GRE()/IP(src="192.168.0.20",dst="192.168.0.21", tos=4)/TCP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    

    mismatched packets:

    sendp([Ether(dst="00:11:22:33:44:55")/IP()/GRE()/IP(src="192.168.0.22",dst="192.168.0.21", tos=4)/TCP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP()/GRE()/IP(src="192.168.0.20",dst="192.168.0.23", tos=4)/TCP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP()/GRE()/IP(src="192.168.0.20",dst="192.168.0.21", tos=8)/TCP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP()/GRE()/IP(src="192.168.0.20",dst="192.168.0.21", tos=4)/TCP(sport=21,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP()/GRE()/IP(src="192.168.0.20",dst="192.168.0.21", tos=4)/TCP(sport=22,dport=24)/Raw('x' * 80)],iface="enp134s0f1")
    
  • MAC_IPV4_GRE_IPV6_TCP

    matched packets:

    sendp([Ether(dst="00:11:22:33:44:55")/IP()/GRE()/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2", tc=1)/TCP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    

    mismatched packets:

    sendp([Ether(dst="00:11:22:33:44:55")/IP()/GRE()/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2021", src="2001::2", tc=1)/TCP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP()/GRE()/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::3", tc=1)/TCP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP()/GRE()/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2", tc=2))/TCP(sport=22,dport=23)Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP()/GRE()/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2", tc=1)/TCP(sport=21,dport=23)/Raw('x' * 80)],iface="enp134s0f1")
    sendp([Ether(dst="00:11:22:33:44:55")/IP()/GRE()/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2", tc=1)/TCP(sport=22,dport=24)/Raw('x' * 80)],iface="enp134s0f1")
    

70.3. Test case: flow validation

  1. validate MAC_IPV4_PAY with queue index action:

    flow validate 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions queue index 1 / end
    

    get the message without any error message:

    Flow rule validated
    
  2. repeat step 1 with all patterns in pattern and input set table, get the same result.

  3. repeat step 1-2 with action rss queues/drop/passthru/mark/mark+rss, get the same result.

  4. repeate step 1-3 with combined use of actions:

    flow validate 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions queue index 1 / mark / end
    flow validate 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions rss queues 0 1 end / mark / end
    flow validate 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions passthru / mark / end
    flow validate 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions mark / rss / end
    

    get the message without any error message:

    Flow rule validated
    
  5. check the flow list:

    testpmd> flow list 0
    

    there is no rule listed.

70.4. Test case: negative validation

Note: some of the error messages may be differernt.

  1. only count action:

    flow validate 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions count / end
    

    get the error message:

    Invalid input action: Invalid argument
    
  2. void action:

    flow validate 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions end
    

    Failed to create flow, report message:

    Emtpy action: Invalid argument
    
  3. conflict action:

    flow validate 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions rss queues 2 3 end / rss / end
    

    get the message:

    Unsupported action combination: Invalid argument
    
  4. invalid mark id:

    flow validate 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions passthru / mark id 4294967296 / end
    

    get the message:

    Bad arguments
    
  5. invalid input set:

    flow validate 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tc is 4 / end actions queue index 1 / end
    

    get the message:

    Bad arguments
    
  6. invalid queue index:

    flow validate 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions queue index 16 / end
    

    get the message:

    Invalid input action: Invalid argument
    
  7. invalid rss queues parameter

    Invalid number of queues:

    flow validate 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions rss queues 1 2 3 end / end
    flow validate 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions rss queues 0 end / end
    flow validate 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions rss queues end / end
    

    get the message:

    Invalid input action: Invalid argument
    

    Discontinuous queues:

    flow validate 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions rss queues 1 2 3 5 end / end
    

    get the message:

    Discontinuous queue region: Invalid argument
    

    invalid rss queues index:

    flow validate 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions rss queues 15 16 end / end
    

    get the message:

    Invalid queue region indexes.: Invalid argument
    
  8. Invalid value of input set:

    flow validate 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x100000000 / gtp_psc qfi is 0x5 / end actions queue index 2 / end
    flow validate 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x100000000 / end actions queue index 1 / end
    

    get the message:

    Bad arguments
    
  9. unsupported pattern,validate GTPU rule with OS default package:

    flow validate 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions drop / end
    

    get the message:

    Add filter rule failed.: Operation not permitted
    
  10. invalid port:

    flow validate 1 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions queue index 1 / end
    

get the message:

No such device: No such device
  1. check the flow list:

    testpmd> flow list 0
    
there is no rule listed.

70.5. Test case: MAC_IPV4_PAY pattern

70.5.1. Subcase 1: MAC_IPV4_PAY queue index

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions queue index 1 / end
    
  2. send matched packets, check the packets are distributed to queue 1 without FDIR matched ID. send mismatched packets, check the packets are not distributed to queue 1 without FDIR matched ID.

  3. verify rules can be listed and destroyed:

    testpmd> flow list 0
    

    check the rule listed. destroy the rule:

    testpmd> flow destroy 0 rule 0
    
  4. verify matched packets are not distributed to queue 1 without FDIR matched ID. check there is no rule listed.

70.5.2. Subcase 2: MAC_IPV4_PAY rss queues

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions rss queues 2 3 end / end
    
  2. send matched packets, check the packets are distributed to queue 2 or 3 without without FDIR matched ID. send mismatched packets, check the packets are not distributed to queue 2 or 3 without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are not distributed to queue 2 or 3 without FDIR matched ID. check there is no rule listed.

70.5.3. Subcase 3: MAC_IPV4_PAY passthru

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions passthru / end
    
  2. send matched packets, check the packets are distributed by RSS without FDIR matched ID. send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed to the same queue without FDIR matched ID=0x0. check there is no rule listed.

70.5.4. Subcase 4: MAC_IPV4_PAY drop

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions drop / end
    
  2. send matched packets, check the packets are dropped send mismatched packets, check the packets are not dropped.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are not dropped. check there is no rule listed.

70.5.5. Subcase 5: MAC_IPV4_PAY mark+rss

Note: This combined action is mark with RSS which is without queues specified.

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions mark / rss / end
    
  2. send matched packets, check the packets are distributed by RSS with FDIR matched ID=0x0 send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed to the same queue without FDIR matched ID. check there is no rule listed.

70.5.6. Subcase 6: MAC_IPV4_PAY mark

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions mark / end
    
  2. send matched packets, check the packets are distributed by RSS with FDIR matched ID=0x0. send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed to the same queue without FDIR matched ID. check there is no rule listed.

70.5.7. Subcase 7: MAC_IPV4_PAY protocal

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 proto is 1 / end actions queue index 1 / mark id 1 / end
    flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 proto is 17 / end actions passthru / mark id 3 / end
    
  2. send matched packets:

    pkt1 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", proto=1)/Raw('x' * 80)
    pkt2 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.19",dst="192.168.0.21", proto=1)/Raw('x' * 80)
    pkt3 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", ttl=2, tos=4)/UDP(sport=22,dport=23)/Raw('x' * 80)
    pkt4 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", proto=17)/TCP(sport=22,dport=23)/Raw('x' * 80)
    pkt5 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", proto=17, ttl=2, tos=4)/Raw('x' * 80)
    pkt6 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", proto=17)/Raw('x' * 80)
    

    check the pkt1 and pkt2 are redirected to queue 1 with FDIR matched ID=0x1. check the pkt3-pkt6 are distributed by RSS with FDIR matched ID=0x3. send mismatched packets:

    pkt7 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.22", proto=1)/Raw('x' * 80)
    pkt8 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", proto=6)/UDP(sport=22,dport=23)/Raw('x' * 80)
    pkt9 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21")/TCP(sport=22,dport=23)/Raw('x' * 80)
    pkt10 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", ttl=2, tos=4)/SCTP()/Raw('x' * 80)
    

    check the packets received have not FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets have not FDIR matched ID. check there is no rule listed.

70.6. Test case: MAC_IPV4_UDP pattern

70.6.1. Subcase 1: MAC_IPV4_UDP queue index

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / udp src is 22 dst is 23 / end actions queue index 1 / mark id 0 / end
    
  2. send matched packets, check the packets is distributed to queue 1 with FDIR matched ID=0x0. send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. verify rules can be listed and destroyed:

    testpmd> flow list 0
    

    check the rule listed. destroy the rule:

    testpmd> flow destroy 0 rule 0
    
  4. verify matched packet is distributed by RSS without FDIR matched ID. check there is no rule listed.

70.6.2. Subcase 2: MAC_IPV4_UDP rss queues

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / udp src is 22 dst is 23 / end actions rss queues 0 1 2 3 end / mark id 4294967294 / end
    
  2. send matched packets, check the packets is distributed to queue 0-3 with FDIR matched ID=0xfffffffe. send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packet is distributed by RSS without FDIR matched ID. check there is no rule listed.

70.6.3. Subcase 3: MAC_IPV4_UDP passthru

  1. create filter rule with mark:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / udp src is 22 dst is 23 / end actions passthru / mark id 1 / end
    
  2. send matched packets, check the packets are distributed by RSS with FDIR matched ID=0x1. send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed to the same queue without FDIR matched ID. check there is no rule listed.

70.6.4. Subcase 4: MAC_IPV4_UDP drop

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / udp src is 22 dst is 23 / end actions drop / end
    
  2. send matched packet, check the packet is dropped. send mismatched packets, check the packets are not dropped.

  3. repeat step 3 of subcase 1.

  4. verify matched packet is dropped. check there is no rule listed.

70.6.5. Subcase 5: MAC_IPV4_UDP mark+rss

Note: This combined action is mark with RSS which is without queues specified.

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / udp src is 22 dst is 23 / end actions mark id 2 / rss / end
    
  2. send matched packets, check the packets are distributed by RSS with FDIR matched ID=0x2 send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed to the same queue without FDIR matched ID. check there is no rule listed.

70.6.6. Subcase 6: MAC_IPV4_UDP mark

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / udp src is 22 dst is 23 / end actions mark id 1 / end
    
  2. repeat the step 2-3 of in subcase 3, get the same result.

70.7. Test case: MAC_IPV4_TCP pattern

  1. replace “udp” with “tcp” in all the subcases of MAC_IPV4_UDP pattern.
  2. Then repeat all the steps in all the subcases of MAC_IPV4_UDP pattern.
  3. get the same result.

70.8. Test case: MAC_IPV4_SCTP pattern

  1. replace “udp” with “sctp” in all the subcases of MAC_IPV4_UDP pattern.
  2. Then repeat all the steps in all the subcases of MAC_IPV4_UDP pattern.
  3. get the same result.

70.9. Test case: MAC_IPV6_PAY pattern

70.9.1. Subcase 1: MAC_IPV6_PAY queue index

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 proto is 0 hop is 2 tc is 1 / end actions queue index 15 / mark / end
    
  2. send matched packets, check the packets is distributed to queue 15 with FDIR matched ID=0x0. send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. verify rules can be listed and destroyed:

    testpmd> flow list 0
    

    check the rule listed. destroy the rule:

    testpmd> flow destroy 0 rule 0
    
  4. verify matched packet is distributed by RSS without FDIR matched ID. check there is no rule listed.

70.9.2. Subcase 2: MAC_IPV6_PAY rss queues

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 proto is 0 hop is 2 tc is 1 / end actions rss queues 8 9 10 11 12 13 14 15 end / mark / end
    
  2. send matched packets, check the packets is distributed to queue 8-15 with FDIR matched ID=0x0. send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packet is distributed by RSS without FDIR matched ID. check there is no rule listed.

70.9.3. Subcase 3: MAC_IPV6_PAY passthru

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 proto is 0 hop is 2 tc is 1 / end actions passthru / mark / end
    
  2. send matched packets, check the packets are distributed by RSS with FDIR matched ID=0x0. send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are destributed to the same queue without FDIR matched ID . check there is no rule listed.

70.9.4. Subcase 4: MAC_IPV6_PAY drop

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 proto is 0 hop is 2 tc is 1 / end actions drop / end
    
  2. send matched packets, check the packets are dropped. send mismatched packets, check the packets are not dropped.

  3. repeat step 3 of subcase 1.

  4. verify matched packet is dropped. check there is no rule listed.

70.9.5. Subcase 5: MAC_IPV6_PAY mark+rss

Note: This combined action is mark with RSS which is without queues specified.

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 proto is 0 hop is 2 tc is 1 / end actions mark / rss / end
    
  2. send matched packets, check the packets are distributed by RSS with FDIR matched ID=0x0 send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed to the same queue without FDIR matched ID. check there is no rule listed.

70.9.6. Subcase 6: MAC_IPV6_PAY mark

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 proto is 0 hop is 2 tc is 1 / end actions mark / end
    
  2. repeat the steps of passthru with mark part in subcase 3, get the same result.

70.9.7. Subcase 7: MAC_IPV6_PAY protocal

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 proto is 17 / end actions rss queues 5 6 end / mark id 0 / end
    flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 proto is 6 / end actions mark id 2 / rss / end
    
  2. send matched packets:

    pkt1 = Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2", nh=17, tc=1, hlim=2)/("X"*480)
    pkt2 = Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)
    pkt3 = Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", nh=17)/TCP(sport=22,dport=23)/("X"*480)
    pkt4 = Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/TCP(sport=22,dport=23)/("X"*480)
    pkt5 = Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", nh=6)/("X"*480)
    pkt6 = Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=23)/("X"*480)
    

    check pkt1-pkt4 are redirected to queue 5 or queue 6 with FDIR matched ID=0x0. check pkt5 and pkt6 are distributed by RSS with FDIR matched ID=0x2. send mismatched packets:

    pkt7 = Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2021", nh=1)/("X"*480)
    pkt8 = Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP()/("X"*480)
    pkt9 = Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", nh=1)/TCP(sport=22,dport=23)/("X"*480)
    

    check the packets are received without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are received without FDIR matched ID. check there is no rule listed.

70.10. Test case: MAC_IPV6_UDP pattern

70.10.1. Subcase 1: MAC_IPV6_UDP queue index

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / udp src is 22 dst is 23 / end actions queue index 1 / mark / end
    
  2. send matched packets, check the packets is distributed to queue 1 with FDIR matched ID=0x0. send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. verify rules can be listed and destroyed:

    testpmd> flow list 0
    

    check the rule listed. destroy the rule:

    testpmd> flow destroy 0 rule 0
    
  4. verify matched packet is distributed by RSS without FDIR matched ID. check there is no rule listed.

70.10.2. Subcase 2: MAC_IPV6_UDP rss queues

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / udp src is 22 dst is 23 / end actions rss queues 2 3 end / mark / end
    
  2. send matched packets, check the packets is distributed to queue 2 or queue 3 with FDIR matched ID=0x0. send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packet is distributed by RSS without FDIR matched ID. check there is no rule listed.

70.10.3. Subcase 3: MAC_IPV6_UDP passthru

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / udp src is 22 dst is 23 / end actions passthru / mark / end
    
  2. send matched packets, check the packets are distributed by RSS with FDIR matched ID=0x0. send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are destributed to the same queue without FDIR matched ID . check there is no rule listed.

70.10.4. Subcase 4: MAC_IPV6_UDP drop

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / udp src is 22 dst is 23 / end actions drop / end
    
  2. send matched packets, check the packets are dropped. send mismatched packets, check the packets are not dropped.

  3. repeat step 3 of subcase 1.

  4. verify matched packet is dropped. check there is no rule listed.

70.10.5. Subcase 5: MAC_IPV6_UDP mark+rss

Note: This combined action is mark with RSS which is without queues specified.

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / udp src is 22 dst is 23 / end actions mark / rss / end
    
  2. send matched packets, check the packets are distributed by RSS with FDIR matched ID=0x0 send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed to the same queue without FDIR matched ID. check there is no rule listed.

70.10.6. Subcase 6: MAC_IPV6_UDP mark

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / udp src is 22 dst is 23 / end actions mark id 0 / end
    
  2. repeat the steps of passthru with mark part in subcase 3, get the same result.

70.11. Test case: MAC_IPV6_TCP pattern

  1. replace “udp” with “tcp” in all the subcases of MAC_IPV6_UDP pattern.
  2. Then repeat all the steps in all the subcases of MAC_IPV6_UDP pattern.
  3. get the same result.

70.12. Test case: MAC_IPV6_SCTP pattern

  1. replace “udp” with “sctp” in all the subcases of MAC_IPV6_UDP pattern.
  2. Then repeat all the steps in all the subcases of MAC_IPV6_UDP pattern.
  3. get the same result.

70.13. Test case: MAC_IPV4_GTPU_EH pattern

IAVF doesn’t support RSS for GTPU by default, so we need to set RSS rule for GTPU with extention header:

flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / end actions rss types l3-src-only end key_len 0 queues end / end

Now, IAVF doesn’t support RSS for GTPU without extention header

70.13.1. Subcase 1: MAC_IPV4_GTPU_EH queue index

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions queue index 1 / mark id 1 / end
    
  2. send matched packets, check the packets are distributed to queue 1 with FDIR matched ID=0x1. send mismatched packets, check the packets are not distributed to queue 1 without FDIR matched ID.

  3. verify rules can be listed and destroyed:

    testpmd> flow list 0
    

    check the rule listed. destroy the rule:

    testpmd> flow destroy 0 rule 0
    
  4. verify matched packets are received without FDIR matched ID. Then check there is no rule listed.

70.13.2. Subcase 2: MAC_IPV4_GTPU_EH rss queues

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions rss queues 2 3 end / mark id 1 / end
    
  2. send matched packets, check the packets are distributed to queue 2 or queue 3 with FDIR matched ID=0x1. send mismatched packets, check the packets are received without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are received without FDIR matched ID. Then check there is no rule listed.

70.13.3. Subcase 3: MAC_IPV4_GTPU_EH passthru

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions passthru / mark id 1 / end
    
  2. send matched packets, check the packets are distributed by RSS with FDIR matched ID=0x1. send mismatched packets, check the packets are received without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are received without FDIR matched ID. Then check there is no rule listed.

70.13.4. Subcase 4: MAC_IPV4_GTPU_EH drop

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions drop / end
    
  2. send matched packets, check the packets are dropped. send mismatched packets, check the packets are not dropped.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are not dropped. Then check there is no rule listed.

70.13.5. Subcase 5: MAC_IPV4_GTPU_EH mark+rss

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions rss / mark / end
    
  2. send matched packets, check the packets are distributed by RSS with FDIR matched ID=0x0. send mismatched packets, check the packets are received without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are received without FDIR matched ID. Then check there is no rule listed.

70.13.6. Subcase 6: MAC_IPV4_GTPU_EH mark

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions mark id 1 / end
    
  2. repeat the steps of passthru with mark part in subcase 3, get the same result.

70.13.7. Subcase 7: MAC_IPV4_GTPU_EH QFI queue index / mark

  1. create filter rules on port 0:

    flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc qfi is 0x34 / end actions queue index 1 / mark id 3 / end
    
  2. send matched packets, check the packet is redirected to queue 1 with FDIR matched ID=0x3:

    p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/IP()/TCP()/Raw('x'*20)
    

    send mismatched packets, check the packet received has not FDIR:

    p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x35)/IP()/Raw('x'*20)
    
  3. repeat step 3 of subcase 1.

  4. verify matched packet received has not FDIR. Then check there is no rule listed.

70.13.8. Subcase 8: MAC_IPV4_GTPU_EH without QFI rss queues / mark

  1. create filter rules on port 0:

    flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc / end actions rss queues 2 3 end / mark id 1 / end
    
  2. send matched packets, check the packet is distributed to queue 2 or queue 3 with FDIR matched ID=0x3:

    p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=1)/IP()/TCP()/Raw('x'*20)
    

    send mismatched packets, check the packet received has no FDIR:

    p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x1234567)/GTP_PDUSession_ExtensionHeader(pdu_type=1)/IP()/TCP()/Raw('x'*20)
    
  3. repeat step 3 of subcase 1.

  4. verify matched packet are received without FDIR. Then check there is no rule listed.

70.13.9. Subcase 9: MAC_IPV4_GTPU_EH 4 tuple queue index

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions queue index 10 / mark id 1 / end
    
  2. send matched packets, check the packets are distributed to queue 10 with FDIR matched ID=0x1.

    send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. verify rules can be listed and destroyed:

    testpmd> flow list 0
    

    check the existing rule. destroy the rule:

    testpmd> flow destroy 0 rule 0
    
  4. verify matched packets are distributed by RSS without FDIR matched ID. Then check there is no rule listed.

70.13.10. Subcase 10: MAC_IPV4_GTPU_EH 4 tuple queue group

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions rss queues 0 1 2 3 end / mark id 1 / end
    
  2. send matched packets, check the packets are distributed to queue group with FDIR matched ID=0x1. send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR matched ID. Then check there is no rule listed.

70.13.11. Subcase 11: MAC_IPV4_GTPU_EH 4 tuple passthru

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions passthru / mark id 1 / end
    
  2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x1. send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR ID. check there is no rule listed.

70.13.12. Subcase 12: MAC_IPV4_GTPU_EH 4 tuple drop

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions drop / end
    
  2. send matched packets, check the packets are dropped. send mismatched packets, check the packets are not dropped without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are not dropped without FDIR matched ID. Then check there is no rule listed.

70.13.13. Subcase 13: MAC_IPV4_GTPU_EH 4 tuple mark/rss

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions mark id 1 / rss / end
    
  2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x1. send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR matched ID. check there is no rule listed.

70.13.14. Subcase 14: MAC_IPV4_GTPU_EH outer dst ip queue index

  1. create filter rules on port 0:

    flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / udp / gtpu / gtp_psc  / end actions queue index 10 / mark id 1 / end
    
  2. send matched packets, check the packet is redirected to queue 1 with FDIR matched ID=0x3:

    p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.21", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/TCP()/Raw('x'*20)
    

    send mismatched packets, check the packet is distributed by RSS without FDIR matched ID:

    p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.21", dst="192.168.0.22")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/UDP()/Raw('x'*20)
    
  3. repeat step 3 of subcase 1.

  4. verify matched packet is distributed by RSS without FDIR matched ID. Then check there is no rule listed.

70.13.15. Subcase 15: MAC_IPV4_GTPU_EH outer dst ip queue group

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / udp / gtpu / gtp_psc / end actions rss queues 0 1 2 3 end / mark id 1 / end
    
  2. send matched packets, check the packets are distributed to queue group with FDIR matched ID=0x1. send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR matched ID. Then check there is no rule listed.

70.13.16. Subcase 16: MAC_IPV4_GTPU_EH outer dst ip passthru

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / udp / gtpu  / gtp_psc  / end actions passthru / mark id 1 / end
    
  2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x1. send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR ID. check there is no rule listed.

70.13.17. Subcase 17: MAC_IPV4_GTPU_EH outer dst ip drop

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / udp / gtpu / gtp_psc / end actions drop / end
    
  2. send matched packets, check the packets are dropped. send mismatched packets, check the packets are not dropped without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are not dropped without FDIR matched ID. Then check there is no rule listed.

70.13.18. Subcase 18: MAC_IPV4_GTPU_EH outer dst ip mark/rss

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / udp / gtpu / gtp_psc  / end actions mark id 1 / rss / end
    
  2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x1. send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR matched ID. check there is no rule listed.

70.13.19. Subcase 19: MAC_IPV4_GTPU_EH outer src ip queue index

  1. create filter rules on port 0:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 / udp / gtpu / gtp_psc  / end actions queue index 1 / mark id 3 / end
    
  2. send matched packets, check the packet is redirected to queue 1 with FDIR matched ID=0x3:

    p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.22")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/TCP()/Raw('x'*20)
    

    send mismatched packets, check the packet is distributed by RSS without FDIR matched ID:

    p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.21", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/UDP()/Raw('x'*20)
    
  3. repeat step 3 of subcase 1.

  4. verify matched packet is distributed by RSS without FDIR matched ID. Then check there is no rule listed.

70.13.20. Subcase 20: MAC_IPV4_GTPU_EH outer src ip queue group

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 / udp / gtpu / gtp_psc / end actions rss queues 0 1 2 3 end / mark id 1 / end
    
  2. send matched packets, check the packets are distributed to queue group with FDIR matched ID=0x1. send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR matched ID. Then check there is no rule listed.

70.13.21. Subcase 21: MAC_IPV4_GTPU_EH outer src ip passthru

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 / udp / gtpu  / gtp_psc  / end actions passthru / mark id 1 / end
    
  2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x1. send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR ID. check there is no rule listed.

70.13.22. Subcase 22: MAC_IPV4_GTPU_EH outer src ip drop

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 / udp / gtpu / gtp_psc / end actions drop / end
    
  2. send matched packets, check the packets are dropped. send mismatched packets, check the packets are not dropped without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are not dropped without FDIR matched ID. Then check there is no rule listed.

70.13.23. Subcase 23: MAC_IPV4_GTPU_EH outer src ip mark/rss

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 / udp / gtpu / gtp_psc  / end actions mark id 1 / rss / end
    
  2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x1. send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR matched ID. check there is no rule listed.

70.14. Test case: MAC_IPV4_GTPU pattern

70.14.1. Subcase 1: MAC_IPV4_GTPU queue index

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / end actions queue index 1 / mark / end
    
  2. send matched packets, check the packets are distributed to queue 1 with FDIR matched ID=0x0. send mismatched packets, check the packets are not distributed to queue 1 without FDIR matched ID.

  3. verify rules can be listed and destroyed:

    testpmd> flow list 0
    

    check the existing rule. destroy the rule:

    testpmd> flow destroy 0 rule 0
    
  4. verify matched packets are not distributed to queue 1 without FDIR matched ID. Then check there is no rule listed.

70.14.2. Subcase 2: MAC_IPV4_GTPU rss queues

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / end actions rss queues 2 3 end / mark / end
    
  2. send matched packets, check the packets are received with FDIR matched ID=0x0. send mismatched packets, check the packets are received without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are received without FDIR matched ID. Then check there is no rule listed.

70.14.3. Subcase 3: MAC_IPV4_GTPU passthru

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / end actions passthru / mark / end
    
  2. send matched packets, check the packets are received with FDIR matched ID=0x0. send mismatched packets, check the packets are received without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are received without FDIR matched ID. Then check there is no rule listed.

70.14.4. Subcase 4: MAC_IPV4_GTPU drop

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / end actions drop / end
    
  2. send matched packets, check the packets are dropped. send mismatched packets, check the packets are not dropped.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are not dropped. Then check there is no rule listed.

70.14.5. Subcase 5: MAC_IPV4_GTPU mark+rss

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / end actions mark id 1 / rss / end
    
  2. send matched packets, check the packets are received with FDIR matched ID=0x1. send mismatched packets, check the packets are received without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are received without FDIR matched ID. Then check there is no rule listed.

70.14.6. Subcase 6: MAC_IPV4_GTPU mark

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / end actions mark / end
    
  2. repeat the steps of passthru with mark part in subcase 3, get the same result.

70.14.7. Subcase 7: MAC_IPV4_GTPU 3 tuple queue index

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / gtpu teid is 0x12345678  / end actions queue index 10 / mark id 1 / end
    
  2. send matched packets, check the packets are distributed to queue 10 with FDIR matched ID=0x1. send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. verify rules can be listed and destroyed:

    testpmd> flow list 0
    

    check the existing rule. destroy the rule:

    testpmd> flow destroy 0 rule 0
    
  4. verify matched packets are distributed by RSS without FDIR matched ID. Then check there is no rule listed.

70.14.8. Subcase 8: MAC_IPV4_GTPU 3 tuple queue group

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / gtpu teid is 0x12345678 / end actions rss queues 0 1 2 3 end / mark id 1 / end
    
  2. send matched packets, check the packets are distributed to queue group with FDIR matched ID=0x1. send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR matched ID. Then check there is no rule listed.

70.14.9. Subcase 9: MAC_IPV4_GTPU 3 tuple passthru

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / gtpu teid is 0x12345678  / end actions passthru / mark id 1 / end
    
  2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x1. send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR ID. check there is no rule listed.

70.14.10. Subcase 10: MAC_IPV4_GTPU 3 tuple drop

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / gtpu teid is 0x12345678  / end actions drop / end
    
  2. send matched packets, check the packets are dropped. send mismatched packets, check the packets are not dropped without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are not dropped without FDIR matched ID. Then check there is no rule listed.

70.14.11. Subcase 11: MAC_IPV4_GTPU 3 tuple mark/rss

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / gtpu teid is 0x12345678  / end actions mark id 1 / rss / end
    
  2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x1. send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR matched ID. check there is no rule listed.

70.14.12. Subcase 12: MAC_IPV4_GTPU outer dst ip queue index

  1. create filter rules on port 0:

    flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / udp / gtpu  / end actions queue index 1 / mark id 3 / end
    
  2. send matched packets, check the packet is redirected to queue 1 with FDIR matched ID=0x3. send mismatched packets, check the packet is distributed by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packet is distributed by RSS without FDIR matched ID. Then check there is no rule listed.

70.14.13. Subcase 13: MAC_IPV4_GTPU outer dst ip queue group

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / udp / gtpu  / end actions rss queues 0 1 2 3 end / mark id 1 / end
    
  2. send matched packets, check the packets are distributed to queue group with FDIR matched ID=0x1. send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR matched ID. Then check there is no rule listed.

70.14.14. Subcase 14: MAC_IPV4_GTPU outer dst ip passthru

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / udp / gtpu  / end actions passthru / mark id 1 / end
    
  2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x1. send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR ID. check there is no rule listed.

70.14.15. Subcase 15: MAC_IPV4_GTPU outer dst ip drop

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / udp / gtpu / end actions drop / end
    
  2. send matched packets, check the packets are dropped. send mismatched packets, check the packets are not dropped without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are not dropped without FDIR matched ID. Then check there is no rule listed.

70.14.16. Subcase 16: MAC_IPV4_GTPU outer dst ip mark/rss

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / udp / gtpu / end actions mark id 1 / rss / end
    
  2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x1. send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR matched ID. check there is no rule listed.

70.14.17. Subcase 17: MAC_IPV4_GTPU outer src ip queue index

  1. create filter rules on port 0:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 / udp / gtpu / end actions queue index 1 / mark id 3 / end
    
  2. send matched packets, check the packet is redirected to queue 1 with FDIR matched ID=0x3:

    p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.22")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/TCP()/Raw('x'*20)
    

    send mismatched packets, check the packet is distributed by RSS without FDIR matched ID:

    p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.21", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/UDP()/Raw('x'*20)
    
  3. repeat step 3 of subcase 1.

  4. verify matched packet is distributed by RSS without FDIR matched ID. Then check there is no rule listed.

70.14.18. Subcase 18: MAC_IPV4_GTPU outer src ip queue group

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 / udp / gtpu / end actions rss queues 0 1 2 3 end / mark id 1 / end
    
  2. send matched packets, check the packets are distributed to queue group with FDIR matched ID=0x1. send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR matched ID. Then check there is no rule listed.

70.14.19. Subcase 19: MAC_IPV4_GTPU outer src ip passthru

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 / udp / gtpu   / end actions passthru / mark id 1 / end
    
  2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x1. send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR ID. check there is no rule listed.

70.14.20. Subcase 20: MAC_IPV4_GTPU outer src ip drop

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 / udp / gtpu  / end actions drop / end
    
  2. send matched packets, check the packets are dropped. send mismatched packets, check the packets are not dropped without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are not dropped without FDIR matched ID. Then check there is no rule listed.

70.14.21. Subcase 21: MAC_IPV4_GTPU outer src ip mark/rss

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 / udp / gtpu  / end actions mark id 1 / rss / end
    
  2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x1. send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR matched ID. check there is no rule listed.

70.15. Test case: MAC_IPV6_GTPU_EH pattern

70.15.1. Subcase 1: MAC_IPV6_GTPU_EH 4 tuple queue index

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions queue index 10 / mark id 1 / end
    
  2. send matched packets, check the packets are distributed to queue 10 with FDIR matched ID=0x1.

    send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. verify rules can be listed and destroyed:

    testpmd> flow list 0
    

    check the existing rule. destroy the rule:

    testpmd> flow destroy 0 rule 0
    
  4. verify matched packets are distributed by RSS without FDIR matched ID. Then check there is no rule listed.

70.15.2. Subcase 2: MAC_IPV6_GTPU_EH 4 tuple queue group

  1. create filter rules:

    flow create 0 ingress pattern eth /  ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions rss queues 0 1 2 3 end / mark id 1 / end
    
  2. send matched packets, check the packets are distributed to queue group with FDIR matched ID=0x1. send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR matched ID. Then check there is no rule listed.

70.15.3. Subcase 3: MAC_IPV6_GTPU_EH 4 tuple passthru

  1. create filter rules:

    flow create 0 ingress pattern eth /  ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions passthru / mark id 1 / end
    
  2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x1. send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR ID. check there is no rule listed.

70.15.4. Subcase 4: MAC_IPV6_GTPU_EH 4 tuple drop

  1. create filter rules:

    flow create 0 ingress pattern eth /  ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions drop / end
    
  2. send matched packets, check the packets are dropped. send mismatched packets, check the packets are not dropped without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are not dropped without FDIR matched ID. Then check there is no rule listed.

70.15.5. Subcase 5: MAC_IPV6_GTPU_EH 4 tuple mark/rss

  1. create filter rules:

    flow create 0 ingress pattern eth /  ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions mark id 1 / rss / end
    
  2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x1. send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR matched ID. check there is no rule listed.

70.15.6. Subcase 6: MAC_IPV6_GTPU_EH outer dst ipv6 queue index

  1. create filter rules on port 0:

    flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / gtpu / gtp_psc  / end actions queue index 1 / mark id 3 / end
    
  2. send matched packets, check the packet is redirected to queue 1 with FDIR matched ID=0x3:

    p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/TCP()/Raw('x'*20)
    

    send mismatched packets, check the packet is distributed by RSS without FDIR matched ID:

    p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/UDP()/Raw('x'*20)
    
  3. repeat step 3 of subcase 1.

  4. verify matched packet is distributed by RSS without FDIR matched ID. Then check there is no rule listed.

70.15.7. Subcase 7: MAC_IPV6_GTPU_EH outer dst ipv6 queue group

  1. create filter rules:

    flow create 0 ingress pattern eth /  ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / gtpu / gtp_psc / end actions rss queues 0 1 2 3 end / mark id 1 / end
    
  2. send matched packets, check the packets are distributed to queue group with FDIR matched ID=0x1. send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR matched ID. Then check there is no rule listed.

70.15.8. Subcase 8: MAC_IPV6_GTPU_EH outer dst ipv6 passthru

  1. create filter rules:

    flow create 0 ingress pattern eth /  ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / gtpu  / gtp_psc  / end actions passthru / mark id 1 / end
    
  2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x1. send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR ID. check there is no rule listed.

70.15.9. Subcase 9: MAC_IPV6_GTPU_EH outer dst ipv6 drop

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / gtpu / gtp_psc / end actions drop / end
    
  2. send matched packets, check the packets are dropped. send mismatched packets, check the packets are not dropped without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are not dropped without FDIR matched ID. Then check there is no rule listed.

70.15.10. Subcase 10: MAC_IPV6_GTPU_EH outer dst ipv6 mark/rss

  1. create filter rules:

    flow create 0 ingress pattern eth /  ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / gtpu / gtp_psc  / end actions mark id 1 / rss / end
    
  2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x1. send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR matched ID. check there is no rule listed.

70.15.11. Subcase 11: MAC_IPV6_GTPU_EH outer src ipv6 queue index

  1. create filter rules on port 0:

    flow create 0 ingress pattern eth / ipv6 src is 2001::2 / udp / gtpu / gtp_psc  / end actions queue index 1 / mark id 3 / end
    
  2. send matched packets, check the packet is redirected to queue 1 with FDIR matched ID=0x3:

    p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/TCP()/Raw('x'*20)
    

    send mismatched packets, check the packet is distributed by RSS without FDIR matched ID:

    p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::3", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/UDP()/Raw('x'*20)
    
  3. repeat step 3 of subcase 1.

  4. verify matched packet is distributed by RSS without FDIR matched ID. Then check there is no rule listed.

70.15.12. Subcase 12: MAC_IPV6_GTPU_EH outer src ipv6 queue group

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv6 src is 2001::2 / udp / gtpu / gtp_psc / end actions rss queues 0 1 2 3 end / mark id 1 / end
    
  2. send matched packets, check the packets are distributed to queue group with FDIR matched ID=0x1. send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR matched ID. Then check there is no rule listed.

70.15.13. Subcase 13: MAC_IPV6_GTPU_EH outer src ipv6 passthru

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv6 src is 2001::2 / udp / gtpu  / gtp_psc  / end actions passthru / mark id 1 / end
    
  2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x1. send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR ID. check there is no rule listed.

70.15.14. Subcase 14: MAC_IPV6_GTPU_EH outer src ipv6 drop

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv6 src is 2001::2 / udp / gtpu / gtp_psc / end actions drop / end
    
  2. send matched packets, check the packets are dropped. send mismatched packets, check the packets are not dropped without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are not dropped without FDIR matched ID. Then check there is no rule listed.

70.15.15. Subcase 15: MAC_IPV6_GTPU_EH outer src ipv6 mark/rss

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv6 src is 2001::2 / udp / gtpu / gtp_psc  / end actions mark id 1 / rss / end
    
  2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x1. send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR matched ID. check there is no rule listed.

70.16. Test case: MAC_IPV6_GTPU pattern

70.16.1. Subcase 1: MAC_IPV6_GTPU 4 tuple queue index

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / gtpu teid is 0x12345678 / end actions queue index 10 / mark id 1 / end
    
  2. send matched packets, check the packets are distributed to queue 10 with FDIR matched ID=0x1.

    send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. verify rules can be listed and destroyed:

    testpmd> flow list 0
    

    check the existing rule. destroy the rule:

    testpmd> flow destroy 0 rule 0
    
  4. verify matched packets are distributed by RSS without FDIR matched ID. Then check there is no rule listed.

70.16.2. Subcase 2: MAC_IPV6_GTPU 4 tuple queue group

  1. create filter rules:

    flow create 0 ingress pattern eth /  ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / gtpu teid is 0x12345678 / end actions rss queues 0 1 2 3 end / mark id 1 / end
    
  2. send matched packets, check the packets are distributed to queue group with FDIR matched ID=0x1. send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR matched ID. Then check there is no rule listed.

70.16.3. Subcase 3: MAC_IPV6_GTPU 4 tuple passthru

  1. create filter rules:

    flow create 0 ingress pattern eth /  ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / gtpu teid is 0x12345678 / end actions passthru / mark id 1 / end
    
  2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x1. send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR ID. check there is no rule listed.

70.16.4. Subcase 4: MAC_IPV6_GTPU 4 tuple drop

  1. create filter rules:

    flow create 0 ingress pattern eth /  ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / gtpu teid is 0x12345678 / end actions drop / end
    
  2. send matched packets, check the packets are dropped. send mismatched packets, check the packets are not dropped without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are not dropped without FDIR matched ID. Then check there is no rule listed.

70.16.5. Subcase 5: MAC_IPV6_GTPU 4 tuple mark/rss

  1. create filter rules:

    flow create 0 ingress pattern eth /  ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / gtpu teid is 0x12345678 / end actions mark id 1 / rss / end
    
  2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x1. send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR matched ID. check there is no rule listed.

70.16.6. Subcase 6: MAC_IPV6_GTPU outer dst ipv6 queue index

  1. create filter rules on port 0:

    flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / gtpu / end actions queue index 1 / mark id 3 / end
    
  2. send matched packets, check the packet is redirected to queue 1 with FDIR matched ID=0x3:

    p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/TCP()/Raw('x'*20)
    

    send mismatched packets, check the packet is distributed by RSS without FDIR matched ID:

    p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/UDP()/Raw('x'*20)
    
  3. repeat step 3 of subcase 1.

  4. verify matched packet is distributed by RSS without FDIR matched ID. Then check there is no rule listed.

70.16.7. Subcase 7: MAC_IPV6_GTPU outer dst ipv6 queue group

  1. create filter rules:

    flow create 0 ingress pattern eth /  ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / gtpu / end actions rss queues 0 1 2 3 end / mark id 1 / end
    
  2. send matched packets, check the packets are distributed to queue group with FDIR matched ID=0x1. send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR matched ID. Then check there is no rule listed.

70.16.8. Subcase 8: MAC_IPV6_GTPU outer dst ipv6 passthru

  1. create filter rules:

    flow create 0 ingress pattern eth /  ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / gtpu  / end actions passthru / mark id 1 / end
    
  2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x1. send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR ID. check there is no rule listed.

70.16.9. Subcase 9: MAC_IPV6_GTPU outer dst ipv6 drop

  1. create filter rules:

    flow create 0 ingress pattern eth /  ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / gtpu / end actions drop / end
    
  2. send matched packets, check the packets are dropped. send mismatched packets, check the packets are not dropped without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are not dropped without FDIR matched ID. Then check there is no rule listed.

70.16.10. Subcase 10: MAC_IPV6_GTPU outer dst ipv6 mark/rss

  1. create filter rules:

    flow create 0 ingress pattern eth /  ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / gtpu / end actions mark id 1 / rss / end
    
  2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x1. send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR matched ID. check there is no rule listed.

70.16.11. Subcase 11: MAC_IPV6_GTPU outer src ipv6 queue index

  1. create filter rules on port 0:

    flow create 0 ingress pattern eth / ipv6 src is 2001::2 / udp / gtpu / end actions queue index 1 / mark id 3 / end
    
  2. send matched packets, check the packet is redirected to queue 1 with FDIR matched ID=0x3:

    p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/TCP()/Raw('x'*20)
    

    send mismatched packets, check the packet is distributed by RSS without FDIR matched ID:

    p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::3", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/UDP()/Raw('x'*20)
    
  3. repeat step 3 of subcase 1.

  4. verify matched packet is distributed by RSS without FDIR matched ID. Then check there is no rule listed.

70.16.12. Subcase 12: MAC_IPV6_GTPU outer src ipv6 queue group

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv6 src is 2001::2 / udp / gtpu / end actions rss queues 0 1 2 3 end / mark id 1 / end
    
  2. send matched packets, check the packets are distributed to queue group with FDIR matched ID=0x1. send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR matched ID. Then check there is no rule listed.

70.16.13. Subcase 13: MAC_IPV6_GTPU outer src ipv6 passthru

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv6 src is 2001::2 / udp / gtpu / end actions passthru / mark id 1 / end
    
  2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x1. send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR ID. check there is no rule listed.

70.16.14. Subcase 14: MAC_IPV6_GTPU outer src ipv6 drop

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv6 src is 2001::2 / udp / gtpu / end actions drop / end
    
  2. send matched packets, check the packets are dropped. send mismatched packets, check the packets are not dropped without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are not dropped without FDIR matched ID. Then check there is no rule listed.

70.16.15. Subcase 15: MAC_IPV6_GTPU outer src ipv6 mark/rss

  1. create filter rules:

    flow create 0 ingress pattern eth / ipv6 src is 2001::2 / udp / gtpu / end actions mark id 1 / rss / end
    
  2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x1. send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.

  3. repeat step 3 of subcase 1.

  4. verify matched packets are distributed by RSS without FDIR matched ID. check there is no rule listed.

70.17. Test case: Layer3 co-exist GTPU

70.17.1. Subcase 1: Layer3 co-exist GTP EH fdir + dst

Rules:

#1  flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.31 / udp / gtpu / gtp_psc / end actions rss queues 1 2 end / mark id 1 / end
#2  flow create 0 ingress pattern eth / ipv6 dst is ::32 / udp / gtpu / gtp_psc / end actions rss queues 3 4 5 6 end / mark id 2 / end
#3  flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.33 / udp / gtpu / gtp_psc / end actions queue index 7 / mark id 3 / end
#4  flow create 0 ingress pattern eth / ipv6 dst is ::14 / udp / gtpu / gtp_psc / end actions queue index 8 / mark id 4 / end
#5  flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.35 / udp / gtpu / gtp_psc / end actions passthru / mark id 5 / end
#6  flow create 0 ingress pattern eth / ipv6 dst is ::36 / udp / gtpu / gtp_psc / end actions passthru / mark id 6 / end
#7  flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.37 / udp / gtpu / gtp_psc / end actions drop / end
#8  flow create 0 ingress pattern eth / ipv6 dst is ::38 / udp / gtpu / gtp_psc / end actions drop / end

Matched packets:

p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.21", dst="192.168.0.31")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IPv6()/UDP()/Raw('x'*20)
p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="::12", dst="::32")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IPv6()/TCP()/Raw('x'*20)
p_gtpu3 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.23", dst="192.168.0.33")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IPv6()/Raw('x'*20)
p_gtpu4 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::4", dst="::14")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IP()/TCP()/Raw('x'*20)
p_gtpu5 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.25", dst="192.168.0.35")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IPv6()/Raw('x'*20)
p_gtpu6 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="::16", dst="::36")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IP()/ICMP()/Raw('x'*20)
p_gtpu7 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.27", dst="192.168.0.37")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)
p_gtpu8 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::8", dst="::38")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)

Mismatched packets:

p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.21", dst="192.168.0.32")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IPv6()/UDP()/Raw('x'*20)
p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="::12", dst="::33")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IPv6()/TCP()/Raw('x'*20)
p_gtpu3 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.23", dst="192.168.0.34")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IPv6()/Raw('x'*20)
p_gtpu4 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::4", dst="::15")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IP()/TCP()/Raw('x'*20)
p_gtpu5 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.25", dst="192.168.0.36")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IPv6()/Raw('x'*20)
p_gtpu6 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="::16", dst="::37")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IP()/ICMP()/Raw('x'*20)
p_gtpu7 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.27", dst="192.168.0.38")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)
p_gtpu8 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::8", dst="::39")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)
  1. Create above filter rules.

  2. Send matched packets.

  3. Check result:

    Check p_gtpu1 is distributed to queue 1 or 2 with FDIR matched ID=0x1.
    Check p_gtpu2 is distributed to queue 3 or 4 or 5 or 6 with FDIR matched ID=0x2.
    Check p_gtpu3 is distributed to queue 7 with FDIR matched ID=0x3.
    Check p_gtpu4 is distributed to queue 8 with FDIR matched ID=0x4.
    Check p_gtpu5 is distributed by RSS with FDIR matched ID=0x5.
    Check p_gtpu6 is distributed by RSS with FDIR matched ID=0x6.
    Check p_gtpu7 is dropped.
    Check p_gtpu8 is dropped.
    
  4. Send mismatched packets.

  5. Check result:

    Check p_gtpu1 is distributed by RSS without FDIR matched ID=0x1.
    Check p_gtpu2 is distributed by RSS without FDIR matched ID=0x2.
    Check p_gtpu3 is distributed by RSS without FDIR matched ID=0x3.
    Check p_gtpu4 is distributed by RSS without FDIR matched ID=0x4.
    Check p_gtpu5 is distributed by RSS without FDIR matched ID=0x5.
    Check p_gtpu6 is distributed by RSS without FDIR matched ID=0x6.
    Check p_gtpu7 is not dropped, distributed by RSS.
    Check p_gtpu8 is not dropped, distributed by RSS.
    
  6. Verify rules can be listed and destroyed:

    testpmd> flow list 0
    
  7. Flush the rule, check there is no rule listed:

    testpmd> flow flush 0
    
  8. Send matched packets.

  9. Verify matched packets are distributed by RSS without FDIR matched ID.

  10. Repeate above steps.

70.17.2. Subcase 2: Layer3 co-exist GTP fdir + dst

Rules:

#1  flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.31 / udp / gtpu / end actions rss queues 1 2 end / mark id 1 / end
#2  flow create 0 ingress pattern eth / ipv6 dst is ::32 / udp / gtpu / end actions rss queues 3 4 5 6 end / mark id 2 / end
#3  flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.33 / udp / gtpu / end actions queue index 7 / mark id 3 / end
#4  flow create 0 ingress pattern eth / ipv6 dst is ::14 / udp / gtpu / end actions queue index 8 / mark id 4 / end
#5  flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.35 / udp / gtpu / end actions passthru / mark id 5 / end
#6  flow create 0 ingress pattern eth / ipv6 dst is ::36 / udp / gtpu / end actions passthru / mark id 6 / end
#7  flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.37 / udp / gtpu / end actions drop / end
#8  flow create 0 ingress pattern eth / ipv6 dst is ::38 / udp / gtpu / end actions drop / end

Matched packets:

p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.21", dst="192.168.0.31")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/UDP()/Raw('x'*20)
p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="::12", dst="::32")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/TCP()/Raw('x'*20)
p_gtpu3 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.23", dst="192.168.0.33")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/Raw('x'*20)
p_gtpu4 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::4", dst="::14")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IP()/TCP()/Raw('x'*20)
p_gtpu5 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.25", dst="192.168.0.35")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/Raw('x'*20)
p_gtpu6 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="::16", dst="::36")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IP()/ICMP()/Raw('x'*20)
p_gtpu7 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.27", dst="192.168.0.37")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)
p_gtpu8 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::8", dst="::38")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)

Mismatched packets:

p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.21", dst="192.168.0.32")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/UDP()/Raw('x'*20)
p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="::12", dst="::33")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/TCP()/Raw('x'*20)
p_gtpu3 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.23", dst="192.168.0.34")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/Raw('x'*20)
p_gtpu4 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::4", dst="::15")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IP()/TCP()/Raw('x'*20)
p_gtpu5 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.25", dst="192.168.0.36")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/Raw('x'*20)
p_gtpu6 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="::16", dst="::37")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IP()/ICMP()/Raw('x'*20)
p_gtpu7 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.27", dst="192.168.0.38")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)
p_gtpu8 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::8", dst="::39")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)

Test steps as subcase 1.

70.17.3. Subcase 3: Layer3 co-exist GTP EH fdir + src

Rules:

#1  flow create 0 ingress pattern eth / ipv4 src is 192.168.0.21 / udp / gtpu / gtp_psc / end actions rss queues 1 2 end / mark id 1 / end
#2  flow create 0 ingress pattern eth / ipv6 src is ::12 / udp / gtpu / gtp_psc / end actions rss queues 3 4 5 6 end / mark id 2 / end
#3  flow create 0 ingress pattern eth / ipv4 src is 192.168.0.23 / udp / gtpu / gtp_psc / end actions queue index 7 / mark id 3 / end
#4  flow create 0 ingress pattern eth / ipv6 src is 2001::4 / udp / gtpu / gtp_psc / end actions queue index 8 / mark id 4 / end
#5  flow create 0 ingress pattern eth / ipv4 src is 192.168.0.25 / udp / gtpu / gtp_psc / end actions passthru / mark id 5 / end
#6  flow create 0 ingress pattern eth / ipv6 src is ::16 / udp / gtpu / gtp_psc / end actions passthru / mark id 6 / end
#7  flow create 0 ingress pattern eth / ipv4 src is 192.168.0.27 / udp / gtpu / gtp_psc / end actions drop / end
#8  flow create 0 ingress pattern eth / ipv6 src is 2001::8 / udp / gtpu / gtp_psc / end actions drop / end

Matched packets:

p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.21", dst="192.168.0.31")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IPv6()/UDP()/Raw('x'*20)
p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="::12", dst="::32")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IPv6()/TCP()/Raw('x'*20)
p_gtpu3 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.23", dst="192.168.0.33")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IPv6()/Raw('x'*20)
p_gtpu4 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::4", dst="::14")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IP()/TCP()/Raw('x'*20)
p_gtpu5 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.25", dst="192.168.0.35")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IPv6()/Raw('x'*20)
p_gtpu6 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="::16", dst="::36")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IP()/ICMP()/Raw('x'*20)
p_gtpu7 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.27", dst="192.168.0.37")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)
p_gtpu8 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::8", dst="::38")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)

Mismatched packets:

p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.22", dst="192.168.0.31")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IPv6()/UDP()/Raw('x'*20)
p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="::13", dst="::32")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IPv6()/TCP()/Raw('x'*20)
p_gtpu3 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.24"