16. ICE IAVF: Advanced RSS For PPPoL2TPv2oUDP

16.1. Description

Support IAVF PPPoL2TPv2oUDP RSS Hash. Required to distribute packets based on inner IP src+dest address and TCP/UDP src+dest port

16.2. Prerequisites

  1. Hardware:
  • Intel® Ethernet 800 Series: E810-XXVDA4/E810-CQ
  1. Software:

Note

This rss feature designed for Intel® Ethernet 800 Series NIC 25G and 100G, so below cases only support Intel® Ethernet 800 Series NIC.

  1. load PPPoL2TPv2oUDP package

  2. create a VF from a PF in DUT, set mac address for thi VF:

    echo 1 > /sys/bus/pci/devices/0000\:3b\:00.0/sriov_numvfs
    ip link set enp59s0f0 vf 0 mac 00:11:22:33:44:55
    
  3. bind VF to vfio-pci:

    modprobe vfio-pci
    ./usertools/dpdk-devbind.py --force --bind=vfio-pci 0000:3b:01.0
    

Note

The kernel must be >= 3.6+ and VT-d must be enabled in bios.

  1. Launch the testpmd to configuration queue of rx and tx number 16 in DUT:

    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd  -c 0xff -n 4 -a 0000:3b:01.0 -- -i --disable-rss --rxq=16 --txq=16 --rxd=384 --txd=384
    testpmd>set fwd rxonly
    testpmd>set verbose 1
    

16.3. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv4_ipv4_MAC_IPV6_PPPoL2TPV2_IPV4_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.200')/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.201')/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.4. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv4_ipv4_MAC_IPV6_PPPoL2TPV2_IPV4_FRAG

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200', frag=6)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.200', frag=6)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.201', frag=6)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200', frag=6)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200', frag=6)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.5. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv4_ipv4_MAC_IPV6_PPPoL2TPV2_IPV4_UDP_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.201')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=25, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.6. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv4_ipv4_MAC_IPV6_PPPoL2TPV2_IPV4_TCP

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.201')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=25, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.7. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv4_ipv4_l3_src_only_MAC_IPV6_PPPoL2TPV2_IPV4_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv4 / end actions rss types ipv4 l3-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.200')/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.201')/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.8. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv4_ipv4_l3_dst_only_MAC_IPV6_PPPoL2TPV2_IPV4_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv4 / end actions rss types ipv4 l3-dst-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.201')/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.200')/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.9. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv4_udp_ipv4_MAC_IPV6_PPPoL2TPV2_IPV4_UDP_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv4 / udp / end actions rss types ipv4 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.201')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=25, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.10. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv4_udp_ipv4_udp_MAC_IPV6_PPPoL2TPV2_IPV4_UDP_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv4 / udp / end actions rss types ipv4-udp end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.201')/UDP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=25, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=99)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.11. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv4_udp_ipv4_udp_l3_src_only_MAC_IPV6_PPPoL2TPV2_IPV4_UDP_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv4 / udp / end actions rss types ipv4-udp l3-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.201')/UDP(sport=25, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.12. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv4_udp_ipv4_udp_l3_dst_only_MAC_IPV6_PPPoL2TPV2_IPV4_UDP_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.201')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.200')/UDP(sport=25, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.13. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv4_udp_ipv4_udp_l4_src_only_MAC_IPV6_PPPoL2TPV2_IPV4_UDP_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv4 / udp / end actions rss types ipv4-udp l4-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=25, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.201')/UDP(sport=23, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.14. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv4_udp_ipv4_udp_l4_dst_only_MAC_IPV6_PPPoL2TPV2_IPV4_UDP_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv4 / udp / end actions rss types ipv4-udp l4-dst-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=99)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.201')/UDP(sport=25, dport=24)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.15. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv4_udp_ipv4_udp_l3_src_only_l4_src_only_MAC_IPV6_PPPoL2TPV2_IPV4_UDP_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv4 / udp / end actions rss types ipv4-udp l3-src-only l4-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=25, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.201')/UDP(sport=23, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.16. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv4_udp_ipv4_udp_l3_src_only_l4_dst_only_MAC_IPV6_PPPoL2TPV2_IPV4_UDP_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv4 / udp / end actions rss types ipv4-udp l3-src-only l4-dst-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=99)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.201')/UDP(sport=25, dport=24)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.17. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv4_udp_ipv4_udp_l3_dst_only_l4_src_only_MAC_IPV6_PPPoL2TPV2_IPV4_UDP_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only l4-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.201')/UDP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=25, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.200')/UDP(sport=23, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.18. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv4_udp_ipv4_udp_l3_dst_only_l4_dst_only_MAC_IPV6_PPPoL2TPV2_IPV4_UDP_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only l4-dst-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.201')/UDP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=99)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.200')/UDP(sport=25, dport=24)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.19. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv4_tcp_ipv4_MAC_IPV6_PPPoL2TPV2_IPV4_TCP

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv4 / tcp / end actions rss types ipv4 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.201')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=25, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.20. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv4_tcp_ipv4_tcp_MAC_IPV6_PPPoL2TPV2_IPV4_TCP

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv4 / tcp / end actions rss types ipv4-tcp end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.201')/TCP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=25, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=99)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.21. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv4_tcp_ipv4_tcp_l3_src_only_MAC_IPV6_PPPoL2TPV2_IPV4_TCP

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv4 / tcp / end actions rss types ipv4-tcp l3-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.201')/TCP(sport=25, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.22. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv4_tcp_ipv4_tcp_l3_dst_only_MAC_IPV6_PPPoL2TPV2_IPV4_TCP

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv4 / tcp / end actions rss types ipv4-tcp l3-dst-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.201')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.200')/TCP(sport=25, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.23. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv4_tcp_ipv4_tcp_l4_src_only_MAC_IPV6_PPPoL2TPV2_IPV4_TCP

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv4 / tcp / end actions rss types ipv4-tcp l4-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=25, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.201')/TCP(sport=23, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.24. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv4_tcp_ipv4_tcp_l4_dst_only_MAC_IPV6_PPPoL2TPV2_IPV4_TCP

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv4 / tcp / end actions rss types ipv4-tcp l4-dst-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=99)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.201')/TCP(sport=25, dport=24)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.25. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv4_tcp_ipv4_tcp_l3_src_only_l4_src_only_MAC_IPV6_PPPoL2TPV2_IPV4_TCP

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv4 / tcp / end actions rss types ipv4-tcp l3-src-only l4-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=25, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.201')/TCP(sport=23, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.26. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv4_tcp_ipv4_tcp_l3_src_only_l4_dst_only_MAC_IPV6_PPPoL2TPV2_IPV4_TCP

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv4 / tcp / end actions rss types ipv4-tcp l3-src-only l4-dst-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=99)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.201')/TCP(sport=25, dport=24)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.27. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv4_tcp_ipv4_tcp_l3_dst_only_l4_src_only_MAC_IPV6_PPPoL2TPV2_IPV4_TCP

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv4 / tcp / end actions rss types ipv4-tcp l3-dst-only l4-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.201')/TCP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=25, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.200')/TCP(sport=23, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.28. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv4_tcp_ipv4_tcp_l3_dst_only_l4_dst_only_MAC_IPV6_PPPoL2TPV2_IPV4_TCP

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv4 / tcp / end actions rss types ipv4-tcp l3-dst-only l4-dst-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.201')/TCP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=99)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.200')/TCP(sport=25, dport=24)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.29. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv6_ipv6_MAC_IPV6_PPPoL2TPV2_IPV6_FRAG

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv6 / end actions rss types ipv6 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020', nh=44)/IPv6ExtHdrFragment()/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2923', dst='CDCD:910A:2222:5498:8475:1111:3900:2020', nh=44)/IPv6ExtHdrFragment()/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2025', nh=44)/IPv6ExtHdrFragment()/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020', nh=44)/IPv6ExtHdrFragment()/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020', nh=44)/IPv6ExtHdrFragment()/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.30. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv6_ipv6_MAC_IPV6_PPPoL2TPV2_IPV6_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv6 / end actions rss types ipv6 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2923', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2025')/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.31. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv6_ipv6_MAC_IPV6_PPPoL2TPV2_IPV6_UDP_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv6 / end actions rss types ipv6 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2923', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2025')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=25, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.32. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv6_ipv6_MAC_IPV6_PPPoL2TPV2_IPV6_TCP

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv6 / end actions rss types ipv6 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2923', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2025')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=25, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.33. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv6_ipv6_l3_src_only_MAC_IPV6_PPPoL2TPV2_IPV6_FRAG

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv6 / end actions rss types ipv6 l3-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020', nh=44)/IPv6ExtHdrFragment()/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2923', dst='CDCD:910A:2222:5498:8475:1111:3900:2020', nh=44)/IPv6ExtHdrFragment()/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2025', nh=44)/IPv6ExtHdrFragment()/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020', nh=44)/IPv6ExtHdrFragment()/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.34. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv6_ipv6_l3_dst_only_MAC_IPV6_PPPoL2TPV2_IPV6_FRAG

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv6 / end actions rss types ipv6 l3-dst-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020', nh=44)/IPv6ExtHdrFragment()/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2025', nh=44)/IPv6ExtHdrFragment()/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2923', dst='CDCD:910A:2222:5498:8475:1111:3900:2020', nh=44)/IPv6ExtHdrFragment()/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020', nh=44)/IPv6ExtHdrFragment()/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.35. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv6_udp_ipv6_MAC_IPV6_PPPoL2TPV2_IPV6_UDP_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv6 / udp / end actions rss types ipv6 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2923', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2025')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=25, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.36. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv6_udp_ipv6_udp_MAC_IPV6_PPPoL2TPV2_IPV6_UDP_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv6 / udp / end actions rss types ipv6-udp end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2923', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2025')/UDP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=25, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=99)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.37. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv6_udp_ipv6_udp_l3_src_only_MAC_IPV6_PPPoL2TPV2_IPV6_UDP_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv6 / udp / end actions rss types ipv6-udp l3-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2923', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2025')/UDP(sport=25, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.38. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv6_udp_ipv6_udp_l3_dst_only_MAC_IPV6_PPPoL2TPV2_IPV6_UDP_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv6 / udp / end actions rss types ipv6-udp l3-dst-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2025')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2925', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=25, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.39. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv6_udp_ipv6_udp_l4_src_only_MAC_IPV6_PPPoL2TPV2_IPV6_UDP_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv6 / udp / end actions rss types ipv6-udp l4-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=25, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2923', dst='CDCD:910A:2222:5498:8475:1111:3900:2025')/UDP(sport=23, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.40. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv6_udp_ipv6_udp_l4_dst_only_MAC_IPV6_PPPoL2TPV2_IPV6_UDP_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv6 / udp / end actions rss types ipv6-udp l4-dst-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=99)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2925', dst='CDCD:910A:2222:5498:8475:1111:3900:2025')/UDP(sport=25, dport=24)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.41. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv6_udp_ipv6_udp_l3_src_only_l4_src_only_MAC_IPV6_PPPoL2TPV2_IPV6_UDP_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv6 / udp / end actions rss types ipv6-udp l3-src-only l4-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2923', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=25, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2025')/UDP(sport=23, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.42. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv6_udp_ipv6_udp_l3_src_only_l4_dst_only_MAC_IPV6_PPPoL2TPV2_IPV6_UDP_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv6 / udp / end actions rss types ipv6-udp l3-src-only l4-dst-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2923', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=99)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2025')/UDP(sport=25, dport=24)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.43. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv6_udp_ipv6_udp_l3_dst_only_l4_src_only_MAC_IPV6_PPPoL2TPV2_IPV6_UDP_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv6 / udp / end actions rss types ipv6-udp l3-dst-only l4-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2025')/UDP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=25, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2923', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.44. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv6_udp_ipv6_udp_l3_dst_only_l4_dst_only_MAC_IPV6_PPPoL2TPV2_IPV6_UDP_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv6 / udp / end actions rss types ipv6-udp l3-dst-only l4-dst-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2025')/UDP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=99)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2925', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=25, dport=24)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.45. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv6_tcp_ipv6_MAC_IPV6_PPPoL2TPV2_IPV6_TCP

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv6 / tcp / end actions rss types ipv6 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2923', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2025')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=25, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.46. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv6_tcp_ipv6_tcp_MAC_IPV6_PPPoL2TPV2_IPV6_TCP

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv6 / tcp / end actions rss types ipv6-tcp end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2923', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2025')/TCP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=25, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=99)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.47. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv6_tcp_ipv6_tcp_l3_src_only_MAC_IPV6_PPPoL2TPV2_IPV6_TCP

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv6 / tcp / end actions rss types ipv6-tcp l3-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2923', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2025')/TCP(sport=25, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.48. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv6_tcp_ipv6_tcp_l3_dst_only_MAC_IPV6_PPPoL2TPV2_IPV6_TCP

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv6 / tcp / end actions rss types ipv6-tcp l3-dst-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2025')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2925', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=25, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.49. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv6_tcp_ipv6_tcp_l4_src_only_MAC_IPV6_PPPoL2TPV2_IPV6_TCP

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv6 / tcp / end actions rss types ipv6-tcp l4-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=25, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2923', dst='CDCD:910A:2222:5498:8475:1111:3900:2025')/TCP(sport=23, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.50. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv6_tcp_ipv6_tcp_l4_dst_only_MAC_IPV6_PPPoL2TPV2_IPV6_TCP

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv6 / tcp / end actions rss types ipv6-tcp l4-dst-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=99)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2925', dst='CDCD:910A:2222:5498:8475:1111:3900:2025')/TCP(sport=25, dport=24)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.51. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv6_tcp_ipv6_tcp_l3_src_only_l4_src_only_MAC_IPV6_PPPoL2TPV2_IPV6_TCP

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv6 / tcp / end actions rss types ipv6-tcp l3-src-only l4-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2923', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=25, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2025')/TCP(sport=23, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.52. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv6_tcp_ipv6_tcp_l3_src_only_l4_dst_only_MAC_IPV6_PPPoL2TPV2_IPV6_TCP

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv6 / tcp / end actions rss types ipv6-tcp l3-src-only l4-dst-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2923', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=99)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2025')/TCP(sport=25, dport=24)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.53. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv6_tcp_ipv6_tcp_l3_dst_only_l4_src_only_MAC_IPV6_PPPoL2TPV2_IPV6_TCP

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv6 / tcp / end actions rss types ipv6-tcp l3-dst-only l4-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2025')/TCP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=25, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2923', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.54. Test case: eth_ipv6_udp_l2tpv2_ppp_ipv6_tcp_ipv6_tcp_l3_dst_only_l4_dst_only_MAC_IPV6_PPPoL2TPV2_IPV6_TCP

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / ipv6 / tcp / end actions rss types ipv6-tcp l3-dst-only l4-dst-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2025')/TCP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=99)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IPv6(src='2001::3', dst='2001::4')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2925', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=25, dport=24)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.55. Test case: eth_ipv4_udp_l2tpv2_ppp_ipv4_ipv4_MAC_IPV4_PPPoL2TPV2_IPV4_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 / ppp / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.200')/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.201')/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IP(src='100.0.1.1', dst='100.0.1.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.56. Test case: eth_ipv4_udp_l2tpv2_ppp_ipv4_ipv4_MAC_IPV4_PPPoL2TPV2_IPV4_FRAG

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 / ppp / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200', frag=6)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.200', frag=6)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.201', frag=6)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IP(src='100.0.1.1', dst='100.0.1.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200', frag=6)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200', frag=6)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.57. Test case: eth_ipv4_udp_l2tpv2_ppp_ipv4_ipv4_MAC_IPV4_PPPoL2TPV2_IPV4_UDP_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 / ppp / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.201')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IP(src='100.0.1.1', dst='100.0.1.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=25, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.58. Test case: eth_ipv4_udp_l2tpv2_ppp_ipv4_ipv4_MAC_IPV4_PPPoL2TPV2_IPV4_TCP

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 / ppp / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.201')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IP(src='100.0.1.1', dst='100.0.1.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=25, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.59. Test case: eth_ipv4_udp_l2tpv2_ppp_ipv4_udp_ipv4_MAC_IPV4_PPPoL2TPV2_IPV4_UDP_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 / ppp / ipv4 / udp / end actions rss types ipv4 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.201')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IP(src='100.0.1.1', dst='100.0.1.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=25, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.60. Test case: eth_ipv4_udp_l2tpv2_ppp_ipv4_tcp_ipv4_MAC_IPV4_PPPoL2TPV2_IPV4_TCP

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 / ppp / ipv4 / tcp / end actions rss types ipv4 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.101', dst='192.168.1.200')/TCP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.201')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IP(src='100.0.1.1', dst='100.0.1.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/TCP(sport=25, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x21')/IP(src='192.168.1.100', dst='192.168.1.200')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.61. Test case: eth_ipv4_udp_l2tpv2_ppp_ipv6_ipv6_MAC_IPV4_PPPoL2TPV2_IPV6_FRAG

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 / ppp / ipv6 / end actions rss types ipv6 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020', nh=44)/IPv6ExtHdrFragment()/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2923', dst='CDCD:910A:2222:5498:8475:1111:3900:2020', nh=44)/IPv6ExtHdrFragment()/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2025', nh=44)/IPv6ExtHdrFragment()/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IP(src='100.0.1.1', dst='100.0.1.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020', nh=44)/IPv6ExtHdrFragment()/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020', nh=44)/IPv6ExtHdrFragment()/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.62. Test case: eth_ipv4_udp_l2tpv2_ppp_ipv6_ipv6_MAC_IPV4_PPPoL2TPV2_IPV6_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 / ppp / ipv6 / end actions rss types ipv6 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2923', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2025')/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IP(src='100.0.1.1', dst='100.0.1.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.63. Test case: eth_ipv4_udp_l2tpv2_ppp_ipv6_ipv6_MAC_IPV4_PPPoL2TPV2_IPV6_UDP_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 / ppp / ipv6 / end actions rss types ipv6 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2923', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2025')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IP(src='100.0.1.1', dst='100.0.1.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=25, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.64. Test case: eth_ipv4_udp_l2tpv2_ppp_ipv6_ipv6_MAC_IPV4_PPPoL2TPV2_IPV6_TCP

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 / ppp / ipv6 / end actions rss types ipv6 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2923', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2025')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IP(src='100.0.1.1', dst='100.0.1.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=25, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IPv6(src='2001::1', dst='2001::2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.65. Test case: eth_ipv4_udp_l2tpv2_ppp_ipv6_udp_ipv6_MAC_IPV4_PPPoL2TPV2_IPV6_UDP_PAY

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 / ppp / ipv6 / udp / end actions rss types ipv6 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2923', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2025')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IP(src='100.0.1.1', dst='100.0.1.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=25, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

16.66. Test case: eth_ipv4_udp_l2tpv2_ppp_ipv6_tcp_ipv6_MAC_IPV4_PPPoL2TPV2_IPV6_TCP

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 / ppp / ipv6 / tcp / end actions rss types ipv6 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2923', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=23, dport=24)/Raw('x' * 80)
    
    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2025')/TCP(sport=23, dport=24)/Raw('x' * 80)
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    Ether(src='00:11:22:33:44:66', dst='00:11:22:33:44:55')/IP(src='100.0.1.1', dst='100.0.1.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/TCP(sport=25, dport=99)/Raw('x' * 80)
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    Ether(src='00:11:22:33:44:77', dst='00:11:22:33:44:55')/IP(src='100.0.0.1', dst='100.0.0.2')/UDP(dport=1701, sport=1702)/L2TP(session_id=0x7)/HDLC(address=0xff, control=0x03)/Raw(b'\\x00\\x57')/IPv6(src='ABAB:910B:6666:3457:8295:3333:1800:2929', dst='CDCD:910A:2222:5498:8475:1111:3900:2020')/UDP(sport=23, dport=24)/Raw('x' * 80)
    

    check the packet rss hash value is 0.

  7. distroy the rule and and check there is no rule listed.

#l2tpv2 control + data Test case 1: l2tpv2_session_id_MAC_IPV4_L2TPV2_CONTROL ====================================================== 1. validate the rule, and check there is not rule listed.

  1. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type control / end actions rss types l2tpv2 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  2. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  3. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x2222)], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  4. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)],iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  5. send not hit pattern packet:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)],iface="ens260f0")
    

    check the packet rss hash value is 0.

  6. distroy the rule and check there is no rule listed.

16.67. Test case 2: eth_l2_src_only_MAC_IPV4_L2TPV2_CONTROL

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type control / end actions rss types eth l2-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77)/IP()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x2222)],iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)],iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.68. Test case 3: l2tpv2_session_id_MAC_IPV6_L2TPV2_CONTROL

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type control / end actions rss types l2tpv2 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x2222)], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)],iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)],iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.69. Test case 4: eth_l2_src_only_MAC_IPV6_L2TPV2_CONTROL

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type control / end actions rss types eth l2-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x2222)],iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)],iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.70. Test case 5: l2tpv2_session_id_MAC_IPV4_L2TPV2_DATA

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 / end actions rss types l2tpv2 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x2222)], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.71. Test case 6: eth_l2_src_only_MAC_IPV4_L2TPV2_DATA

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 / end actions rss types eth l2-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x2222)], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.72. Test case 7: l2tpv2_session_id_MAC_IPV4_L2TPV2_DATA_L

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type data_l / end actions rss types l2tpv2 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x2222)], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.73. Test case 8: eth_l2_src_only_MAC_IPV4_L2TPV2_DATA_L

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type data_l / end actions rss types eth l2-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.74. Test case 9: l2tpv2_session_id_MAC_IPV4_L2TPV2_DATA_S

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type data_s / end actions rss types l2tpv2 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x2222)], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.75. Test case 10: eth_l2_src_only_MAC_IPV4_L2TPV2_DATA_S

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type data_s / end actions rss types eth l2-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x2222)], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.76. Test case 11: l2tpv2_session_id_MAC_IPV4_L2TPV2_DATA_O

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type data_o / end actions rss types l2tpv2 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x2222,offset=6)], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.77. Test case 12: eth_l2_src_only_MAC_IPV4_L2TPV2_DATA_O

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type data_o / end actions rss types eth l2-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x2222,offset=6)], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.78. Test case 13: l2tpv2_session_id_MAC_IPV4_L2TPV2_DATA_L_S

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type data_l_s / end actions rss types l2tpv2 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x2222)], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.79. Test case 14: eth_l2_src_only_MAC_IPV4_L2TPV2_DATA_L_S

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type data_l_s / end actions rss types eth l2-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x2222)], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.80. Test case 15: l2tpv2_session_id_MAC_IPV6_L2TPV2_DATA

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / end actions rss types l2tpv2 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x2222)], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.81. Test case 16: eth_l2_src_only_MAC_IPV6_L2TPV2_DATA

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / end actions rss types eth l2-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x2222)], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.82. Test case 17: l2tpv2_session_id_MAC_IPV6_L2TPV2_DATA_L

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type data_l / end actions rss types l2tpv2 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x2222)], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.83. Test case 18: eth_l2_src_only_MAC_IPV6_L2TPV2_DATA_L

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type data_l / end actions rss types eth l2-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x2222)], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.84. Test case 19: l2tpv2_session_id_MAC_IPV6_L2TPV2_DATA_S

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type data_s / end actions rss types l2tpv2 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x2222)], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.85. Test case 20: eth_l2_src_only_MAC_IPV6_L2TPV2_DATA_S

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type data_s / end actions rss types eth l2-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x2222)], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.86. Test case 21: l2tpv2_session_id_MAC_IPV6_L2TPV2_DATA_O

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type data_o / end actions rss types l2tpv2 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x2222,offset=6)], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.87. Test case 22: eth_l2_src_only_MAC_IPV6_L2TPV2_DATA_O

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type data_o / end actions rss types eth l2-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x2222,offset=6)], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.88. Test case 23: l2tpv2_session_id_MAC_IPV6_L2TPV2_DATA_L_S

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type data_l_s / end actions rss types l2tpv2 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x2222)], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.89. Test case 24: eth_l2_src_only_MAC_IPV6_L2TPV2_DATA_L_S

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type data_l_s / end actions rss types eth l2-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x2222)], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.90. Test case 25: l2tpv2_session_id_MAC_IPV4_PPPoL2TPV2_DATA

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 / ppp / end actions rss types l2tpv2 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.91. Test case 26: eth_l2_src_only_MAC_IPV4_PPPoL2TPV2_DATA

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 / ppp / end actions rss types eth l2-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.92. Test case 27: l2tpv2_session_id_MAC_IPV4_PPPoL2TPV2_DATA_L

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type data_l / ppp / end actions rss types l2tpv2 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.93. Test case 28: eth_l2_src_only_MAC_IPV4_PPPoL2TPV2_DATA_L

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type data_l / ppp / end actions rss types eth l2-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.94. Test case 29: l2tpv2_session_id_MAC_IPV4_PPPoL2TPV2_DATA_S

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type data_s / ppp / end actions rss types l2tpv2 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.95. Test case 30: eth_l2_src_only_MAC_IPV4_PPPoL2TPV2_DATA_S

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type data_s / ppp / end actions rss types eth l2-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.96. Test case 31: l2tpv2_session_id_MAC_IPV4_PPPoL2TPV2_DATA_O

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type data_o / ppp / end actions rss types l2tpv2 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x2222,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.97. Test case 32: eth_l2_src_only_MAC_IPV4_PPPoL2TPV2_DATA_O

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type data_o / ppp / end actions rss types eth l2-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x2222,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.98. Test case 33: l2tpv2_session_id_MAC_IPV4_PPPoL2TPV2_DATA_L_S

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type data_l_s / ppp / end actions rss types l2tpv2 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.99. Test case 34: eth_l2_src_only_MAC_IPV4_PPPoL2TPV2_DATA_L_S

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type data_l_s / ppp / end actions rss types eth l2-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.100. Test case 35: l2tpv2_session_id_MAC_IPV6_PPPoL2TPV2_DATA

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / end actions rss types l2tpv2 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.101. Test case 36: eth_l2_src_only_MAC_IPV6_PPPoL2TPV2_DATA

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 / ppp / end actions rss types eth l2-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.102. Test case 37: l2tpv2_session_id_MAC_IPV6_PPPoL2TPV2_DATA_L

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type data_l / ppp / end actions rss types l2tpv2 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.103. Test case 38: eth_l2_src_only_MAC_IPV6_PPPoL2TPV2_DATA_L

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type data_l / ppp / end actions rss types eth l2-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.104. Test case 39: l2tpv2_session_id_MAC_IPV6_PPPoL2TPV2_DATA_S

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type data_s / ppp / end actions rss types l2tpv2 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.105. Test case 40: eth_l2_src_only_MAC_IPV6_PPPoL2TPV2_DATA_S

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type data_s / ppp / end actions rss types eth l2-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.106. Test case 41: l2tpv2_session_id_MAC_IPV6_PPPoL2TPV2_DATA_O

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type data_o / ppp / end actions rss types l2tpv2 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x2222,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.107. Test case 42: eth_l2_src_only_MAC_IPV6_PPPoL2TPV2_DATA_O

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type data_o / ppp / end actions rss types eth l2-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x2222,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.108. Test case 43: l2tpv2_session_id_MAC_IPV6_PPPoL2TPV2_DATA_L_S

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type data_l_s / ppp / end actions rss types l2tpv2 end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.

16.109. Test case 44: eth_l2_src_only_MAC_IPV6_PPPoL2TPV2_DATA_L_S

  1. validate the rule, and check there is not rule listed.

  2. create a rss rule:

    flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type data_l_s / ppp / end actions rss types eth l2-src-only end key_len 0 queues end / end
    

    check there is a rss rule listed successfully.

  3. send a basic hit pattern packet,record the hash value:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet distributed to queue by rss.

  4. send hit pattern packets with changed input set in the rule:

    sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packets have different hash value with basic packet. check all the packets are distributed to queues by rss.

  5. send hit pattern packets with changed input set not in the rule:

    sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the received packet have same hash value with the basic packet. check all the packets are distributed to queues by rss. note: if there is not this type packet in the case, omit this step.

  6. send not hit pattern packet:

    sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0")
    

    check the packet rss hash value is 0.

  7. distroy the rule and check there is no rule listed.