From: Zhimin Huang <zhiminx.huang@intel.com>
To: dts@dpdk.org
Cc: Zhimin Huang <zhiminx.huang@intel.com>
Subject: [dts] [PATCH V1 5/8] tests/cvl_switch_filter:support nic and pkg check
Date: Thu, 18 Mar 2021 13:27:28 +0800 [thread overview]
Message-ID: <1616045251-65532-6-git-send-email-zhiminx.huang@intel.com> (raw)
In-Reply-To: <1616045251-65532-1-git-send-email-zhiminx.huang@intel.com>
*.split pppoe into new suite and add pkg check
Signed-off-by: Zhimin Huang <zhiminx.huang@intel.com>
---
tests/TestSuite_cvl_switch_filter.py | 2761 ++--------------------------------
1 file changed, 134 insertions(+), 2627 deletions(-)
diff --git a/tests/TestSuite_cvl_switch_filter.py b/tests/TestSuite_cvl_switch_filter.py
index cc0283b..dcf9a57 100644
--- a/tests/TestSuite_cvl_switch_filter.py
+++ b/tests/TestSuite_cvl_switch_filter.py
@@ -37,7 +37,7 @@ import copy
import random
from itertools import groupby
-from test_case import TestCase
+from test_case import TestCase, skip_unsupported_pkg
from pmd_output import PmdOutput
from packet import Packet
from utils import BLUE, RED, GREEN
@@ -1618,69 +1618,6 @@ tvs_ethertype_filter_pppoed = [
tv_ethertype_filter_pppoed_drop_02
]
-#test vector ethertype_filter_pppoes
-ethertype_filter_pppoes_scapy_str = {
- "matched": [
- 'Ether(dst="00:11:22:33:44:55", type=0x8864)/PPPoE(sessionid=3)/Raw("x" *80)'],
- "mismatched": [
- 'Ether(dst="00:11:22:33:44:55", type=0x8863)/PPPoED()/Raw("x" *80)'
- ]
-}
-
-tv_ethertype_filter_pppoes_in_queue_01 = {
- "name":"tv_ethertype_filter_pppoes_in_queue_01",
- "rte_flow_pattern":"flow create 0 ingress pattern eth type is 0x8864 / end actions queue index 2 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":True},
- "matched":{"scapy_str":ethertype_filter_pppoes_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":2}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":ethertype_filter_pppoes_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":2}},
- "expect_results":{"expect_pkts":1}}
-}
-
-tv_ethertype_filter_pppoes_queue_region_02 = {
- "name":"tv_ethertype_filter_pppoes_queue_region_02",
- "rte_flow_pattern":"flow create 0 ingress pattern eth type is 0x8864 / end actions rss queues 4 5 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":True},
- "matched":{"scapy_str":ethertype_filter_pppoes_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[4, 5]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":ethertype_filter_pppoes_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[4, 5]}},
- "expect_results":{"expect_pkts":1}}
-}
-
-tv_ethertype_filter_pppoes_drop_03 = {
- "name":"tv_ethertype_filter_pppoes_drop_03",
- "rte_flow_pattern":"flow create 0 ingress pattern eth type is 0x8864 / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":True},
- "matched":{"scapy_str":ethertype_filter_pppoes_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":ethertype_filter_pppoes_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}}
-}
-
-tvs_ethertype_filter_pppoes = [
- tv_ethertype_filter_pppoes_in_queue_01,
- tv_ethertype_filter_pppoes_queue_region_02,
- tv_ethertype_filter_pppoes_drop_03
- ]
-
#non-tunnel pipeline mode
#test vector mac_ipv4_frag_pipeline_mode
mac_ipv4_frag_pipeline_mode_scapy_str = {
@@ -2583,2056 +2520,146 @@ tvs_mac_ipv6_tcp_non_pipeline_mode = [
tv_mac_ipv6_tcp_drop_queue_02
]
-#20.08
-mac_vlan_pppoe_ipv4_pay_session_id_proto_id_scapy_str = {
- "matched": [
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP()/Raw("x"*80)'],
- "mismatched": [
- 'Ether(dst="00:11:22:33:44:54",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP()/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=2,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP()/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=4)/PPP(b\'\\x00\\x21\')/IP()/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6()/Raw("x" * 80)'
- ]
-}
-
-tv_mac_vlan_pppoe_ipv4_pay_session_id_proto_id_in_queue_01 = {
- "name":"mac_vlan_pppoe_ipv4_pay_session_id_proto_id_in_queue_01",
- "rte_flow_pattern":"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions queue index 2 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv4_pay_session_id_proto_id_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":2}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv4_pay_session_id_proto_id_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":2}},
- "expect_results":{"expect_pkts":4}}
-}
+test_results = OrderedDict()
-tv_mac_vlan_pppoe_ipv4_pay_session_id_proto_id_queue_region_02 = {
- "name":"mac_vlan_pppoe_ipv4_pay_session_id_proto_id_queue_region_02",
- "rte_flow_pattern":"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions rss queues 4 5 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv4_pay_session_id_proto_id_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[4, 5]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv4_pay_session_id_proto_id_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[4, 5]}},
- "expect_results":{"expect_pkts":4}}
-}
+class CVLSwitchFilterTest(TestCase):
-tv_mac_vlan_pppoe_ipv4_pay_session_id_proto_id_drop_03 = {
- "name":"tv_mac_vlan_pppoe_ipv4_pay_session_id_proto_id_drop_03",
- "rte_flow_pattern":"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv4_pay_session_id_proto_id_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv4_pay_session_id_proto_id_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":4}}
-}
+ def bind_nics_driver(self, ports, driver=""):
+ # modprobe vfio driver
+ if driver == "vfio-pci":
+ for port in ports:
+ netdev = self.dut.ports_info[port]['port']
+ driver = netdev.get_nic_driver()
+ if driver != 'vfio-pci':
+ netdev.bind_driver(driver='vfio-pci')
-tvs_mac_vlan_pppoe_ipv4_pay_session_id_proto_id = [
- tv_mac_vlan_pppoe_ipv4_pay_session_id_proto_id_in_queue_01,
- tv_mac_vlan_pppoe_ipv4_pay_session_id_proto_id_queue_region_02,
- tv_mac_vlan_pppoe_ipv4_pay_session_id_proto_id_drop_03
- ]
+ elif driver == "igb_uio":
+ # igb_uio should insmod as default, no need to check
+ for port in ports:
+ netdev = self.dut.ports_info[port]['port']
+ driver = netdev.get_nic_driver()
+ if driver != 'igb_uio':
+ netdev.bind_driver(driver='igb_uio')
+ else:
+ for port in ports:
+ netdev = self.dut.ports_info[port]['port']
+ driver_now = netdev.get_nic_driver()
+ if driver == "":
+ driver = netdev.default_driver
+ if driver != driver_now:
+ netdev.bind_driver(driver=driver)
+ def set_up_all(self):
+ """
+ Run at the start of each test suite.
+ """
+ self.verify(self.nic in ["columbiaville_25g","columbiaville_100g"], "%s nic not support CVL switch filter" % self.nic)
+ self.dut_ports = self.dut.get_ports(self.nic)
+ # Verify that enough ports are available
+ self.verify(len(self.dut_ports) >= 1, "Insufficient ports")
+ localPort = self.tester.get_local_port(self.dut_ports[0])
+ self.__tx_iface = self.tester.get_interface(localPort)
+ self.dut.send_expect("ifconfig %s up" % self.__tx_iface, "# ")
+ self.pkt = Packet()
+ self.pmd = PmdOutput(self.dut)
-mac_vlan_pppoe_ipv6_pay_session_id_proto_id_scapy_str = {
- "matched": [
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6()/Raw("x" * 80)'],
- "mismatched": [
- 'Ether(dst="00:11:22:33:44:54",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6()/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=2,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6()/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=4)/PPP(b\'\\x00\\x57\')/IPv6()/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP()/Raw("x" * 80)'
- ]
-}
+ self.generate_file_with_fdir_rules()
+ self.path = self.dut.apps_name['test-pmd']
-tv_mac_vlan_pppoe_ipv6_pay_session_id_proto_id_in_queue_01 = {
- "name":"mac_vlan_pppoe_ipv6_pay_session_id_proto_id_in_queue_01",
- "rte_flow_pattern":"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x0057 / end actions queue index 2 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv6_pay_session_id_proto_id_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":2}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv6_pay_session_id_proto_id_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":2}},
- "expect_results":{"expect_pkts":4}}
-}
+ def set_up(self):
+ """
+ Run before each test case.
+ """
-tv_mac_vlan_pppoe_ipv6_pay_session_id_proto_id_queue_region_02 = {
- "name":"mac_vlan_pppoe_ipv6_pay_session_id_proto_id_queue_region_02",
- "validate_pattern":"flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x0057 / end actions rss queues 4 5 end / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x0057 / end actions rss queues 4 5 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv6_pay_session_id_proto_id_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[4, 5]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv6_pay_session_id_proto_id_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[4, 5]}},
- "expect_results":{"expect_pkts":4}}
-}
+ def generate_file_with_fdir_rules(self):
+ """
+ generate file with fdir rules to make fdir table full, then test switch filter
+ """
+ pf_pci = self.dut.ports_info[0]['pci']
+ out = self.pmd.start_testpmd('default', eal_param='-a %s --log-level=ice,7'%pf_pci)
+ self.dut.send_expect("quit", "# ")
+ self.fdir_rule_number = self.pmd.get_max_rule_number(self,out)
+ src_file = 'dep/testpmd_cmds_rte_flow_fdir_rules'
+ flows = open(src_file, mode='w')
+ rule_count = 1
+ for i in range(0,255):
+ for j in range(0,255):
+ if not rule_count > self.fdir_rule_number:
+ flows.write('flow create 0 ingress pattern eth / ipv4 src is 192.168.%d.%d dst is 192.1.0.0 tos is 4 / tcp src is 25 dst is 23 / end actions queue index 5 / end \n' % (i, j))
+ rule_count += 1
+ else:
+ break
+ if rule_count > self.fdir_rule_number:
+ break
+ flows.close()
+ self.dut_file_dir = '/tmp'
+ self.dut.session.copy_file_to(src_file, self.dut_file_dir)
+ self.fdir_file = "/tmp/testpmd_cmds_rte_flow_fdir_rules"
-tv_mac_vlan_pppoe_ipv6_pay_session_id_proto_id_drop_03 = {
- "name":"mac_vlan_pppoe_ipv6_pay_session_id_proto_id_drop_03",
- "validate_pattern":"flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x0057 / end actions drop / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x0057 / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv6_pay_session_id_proto_id_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv6_pay_session_id_proto_id_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":4}}
-}
+ def create_testpmd_command(self):
+ """
+ Create testpmd command for non-pipeline mode
+ """
+ #Prepare testpmd EAL and parameters
+ all_eal_param = self.dut.create_eal_parameters(cores='1S/4C/1T', ports=[0])
+ command = self.path + all_eal_param + " --log-level=\"ice,8\" -- -i --rxq=16 --txq=16 --cmdline-file=%s" % self.fdir_file
+ # command = "./%s/app/testpmd %s --log-level=\"ice,8\" -- -i %s" % (self.dut.target, all_eal_param, "--rxq=16 --txq=16")
+ return command
-tvs_mac_vlan_pppoe_ipv6_pay_session_id_proto_id = [
- tv_mac_vlan_pppoe_ipv6_pay_session_id_proto_id_in_queue_01,
- tv_mac_vlan_pppoe_ipv6_pay_session_id_proto_id_queue_region_02,
- tv_mac_vlan_pppoe_ipv6_pay_session_id_proto_id_drop_03
- ]
+ def create_testpmd_command_pipeline_mode(self):
+ """
+ Create testpmd command for pipeline mode
+ """
+ #Prepare testpmd EAL and parameters
+ all_eal_param = self.dut.create_eal_parameters(cores='1S/4C/1T', ports=[0], port_options={0:"pipeline-mode-support=1"})
+ command = self.path + all_eal_param + " --log-level=\"ice,8\" -- -i --rxq=16 --txq=16"
+ return command
-mac_pppoe_ipv4_pay_session_id_proto_id_scapy_str = {
- "matched": [
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP()/Raw("x" * 80)'],
- "mismatched": [
- 'Ether(dst="00:11:22:33:44:54",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP()/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=4)/PPP(b\'\\x00\\x21\')/IP()/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6()/Raw("x" * 80)'
- ]
-}
+ def launch_testpmd(self, is_non_pipeline):
+ """
+ launch testpmd with the command
+ """
+ if is_non_pipeline:
+ command = self.create_testpmd_command()
+ else:
+ command = self.create_testpmd_command_pipeline_mode()
+ out = self.dut.send_expect(command, "testpmd> ", 300)
+ self.dut.send_expect("port config all rss all", "testpmd> ", 15)
+ self.dut.send_expect("port config 0 rss-hash-key ipv4 1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd", "testpmd> ", 15)
+ self.dut.send_expect("rx_vxlan_port add 4789 0", "testpmd> ", 15)
+ self.dut.send_expect("set fwd rxonly", "testpmd> ", 15)
+ self.dut.send_expect("set verbose 1", "testpmd> ", 15)
-tv_mac_pppoe_ipv4_pay_session_id_proto_id_in_queue_01 = {
- "name":"mac_pppoe_ipv4_pay_session_id_proto_id_in_queue_01",
- "validate_pattern":"flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions queue index 2 / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions queue index 2 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv4_pay_session_id_proto_id_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":2}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv4_pay_session_id_proto_id_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":2}},
- "expect_results":{"expect_pkts":3}}
-}
+ def send_and_check_packets(self, dic, port):
+ """
+ general packets processing workflow.
+ """
+ #Specify the port to use
+ dic["check_func"]["param"]["expect_port"] = port
+ self.dut.send_expect("start", "testpmd> ", 15)
+ time.sleep(2)
+ #send packets
+ self.pkt.update_pkt(dic["scapy_str"])
+ self.pkt.send_pkt(self.tester, tx_port=self.__tx_iface, count=1, timeout=370)
+ time.sleep(3)
+ out = self.dut.send_expect("stop", "testpmd> ", 15)
+ result_flag, log_msg = dic["check_func"]["func"](out, dic["check_func"]["param"], dic["expect_results"])
+ return result_flag, log_msg
-tv_mac_pppoe_ipv4_pay_session_id_proto_id_queue_region_02 = {
- "name":"mac_pppoe_ipv4_pay_session_id_proto_id_queue_region_02",
- "validate_pattern":"flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions rss queues 4 5 end / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions rss queues 4 5 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv4_pay_session_id_proto_id_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[4, 5]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv4_pay_session_id_proto_id_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[4, 5]}},
- "expect_results":{"expect_pkts":3}}
-}
-
-tv_mac_pppoe_ipv4_pay_session_id_proto_id_drop_03 = {
- "name":"mac_pppoe_ipv4_pay_session_id_proto_id_drop_03",
- "validate_pattern":"flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions drop / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv4_pay_session_id_proto_id_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv4_pay_session_id_proto_id_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":3}}
-}
-
-tvs_mac_pppoe_ipv4_pay_session_id_proto_id = [
- tv_mac_pppoe_ipv4_pay_session_id_proto_id_in_queue_01,
- tv_mac_pppoe_ipv4_pay_session_id_proto_id_queue_region_02,
- tv_mac_pppoe_ipv4_pay_session_id_proto_id_drop_03
- ]
-
-mac_pppoe_ipv6_pay_session_id_proto_id_scapy_str = {
- "matched": [
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6()/Raw("x" * 80)'],
- "mismatched": [
- 'Ether(dst="00:11:22:33:44:54",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6()/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=4)/PPP(b\'\\x00\\x57\')/IPv6()/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP()/Raw("x" * 80)'
- ]
-}
-
-tv_mac_pppoe_ipv6_pay_session_id_proto_id_in_queue_01 = {
- "name":"mac_pppoe_ipv6_pay_session_id_proto_id_in_queue_01",
- "validate_pattern":"flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0057 / end actions queue index 2 / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0057 / end actions queue index 2 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv6_pay_session_id_proto_id_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":2}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv6_pay_session_id_proto_id_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":2}},
- "expect_results":{"expect_pkts":3}}
-}
-
-tv_mac_pppoe_ipv6_pay_session_id_proto_id_queue_region_02 = {
- "name":"mac_pppoe_ipv6_pay_session_id_proto_id_queue_region_02",
- "validate_pattern":"flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0057 / end actions rss queues 4 5 end / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0057 / end actions rss queues 4 5 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv6_pay_session_id_proto_id_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[4, 5]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv6_pay_session_id_proto_id_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[4, 5]}},
- "expect_results":{"expect_pkts":3}}
-}
-
-tv_mac_pppoe_ipv6_pay_session_id_proto_id_drop_03 = {
- "name":"mac_pppoe_ipv6_pay_session_id_proto_id_drop_03",
- "validate_pattern":"flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0057 / end actions drop / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0057 / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv6_pay_session_id_proto_id_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv6_pay_session_id_proto_id_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":3}}
-}
-
-tvs_mac_pppoe_ipv6_pay_session_id_proto_id = [
- tv_mac_pppoe_ipv6_pay_session_id_proto_id_in_queue_01,
- tv_mac_pppoe_ipv6_pay_session_id_proto_id_queue_region_02,
- tv_mac_pppoe_ipv6_pay_session_id_proto_id_drop_03
- ]
-
-mac_pppoe_ipv4_pay_ip_address_scapy_str = {
- "matched": [
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/Raw("x"*80)'],
- "mismatched": [
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.3", dst="192.168.1.2")/Raw("x"*80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.4")/Raw("x"*80)'
- ]
-}
-
-tv_mac_pppoe_ipv4_pay_ip_address_in_queue_01 = {
- "name":"mac_pppoe_ipv4_pay_ip_address_in_queue_01",
- "validate_pattern":"flow validate 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / end actions queue index 2 / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / end actions queue index 2 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv4_pay_ip_address_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":2}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv4_pay_ip_address_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":2}},
- "expect_results":{"expect_pkts":2}}
-}
-
-tv_mac_pppoe_ipv4_pay_ip_address_queue_region_02 = {
- "name":"mac_pppoe_ipv4_pay_ip_address_queue_region_02",
- "validate_pattern":"flow validate 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / end actions rss queues 2 3 end / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / end actions rss queues 2 3 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv4_pay_ip_address_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[2, 3]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv4_pay_ip_address_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[2, 3]}},
- "expect_results":{"expect_pkts":2}}
-}
-
-tv_mac_pppoe_ipv4_pay_ip_address_drop_03 = {
- "name":"mac_pppoe_ipv4_pay_ip_address_drop_03",
- "validate_pattern":"flow validate 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / end actions drop / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv4_pay_ip_address_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv4_pay_ip_address_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":2}}
-}
-
-tvs_mac_pppoe_ipv4_pay_ip_address = [
- tv_mac_pppoe_ipv4_pay_ip_address_in_queue_01,
- tv_mac_pppoe_ipv4_pay_ip_address_queue_region_02,
- tv_mac_pppoe_ipv4_pay_ip_address_drop_03
- ]
-
-mac_pppoe_ipv4_udp_pay_scapy_str = {
- "matched": [
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/UDP(sport=25,dport=23)/Raw("x" * 80)'],
- "mismatched": [
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.3", dst="192.168.1.2")/UDP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.4")/UDP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/UDP(sport=27,dport=23)/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/UDP(sport=25,dport=19)/Raw("x" * 80)'
- ]
-}
-
-tv_mac_pppoe_ipv4_udp_pay_in_queue_01 = {
- "name":"mac_pppoe_ipv4_udp_pay_in_queue_01",
- "validate_pattern":"flow validate 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp src is 25 dst is 23 / end actions queue index 1 / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp src is 25 dst is 23 / end actions queue index 1 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv4_udp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv4_udp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tv_mac_pppoe_ipv4_udp_pay_queue_region_02 = {
- "name":"mac_pppoe_ipv4_udp_pay_queue_region_02",
- "validate_pattern":"flow validate 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp src is 25 dst is 23 / end actions rss queues 7 8 end / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp src is 25 dst is 23 / end actions rss queues 7 8 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv4_udp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[7, 8]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv4_udp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[7, 8]}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tv_mac_pppoe_ipv4_udp_pay_drop_03 = {
- "name":"mac_pppoe_ipv4_udp_pay_drop_03",
- "validate_pattern":"flow validate 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp src is 25 dst is 23 / end actions drop / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp src is 25 dst is 23 / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv4_udp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv4_udp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tvs_mac_pppoe_ipv4_udp_pay = [
- tv_mac_pppoe_ipv4_udp_pay_in_queue_01,
- tv_mac_pppoe_ipv4_udp_pay_queue_region_02,
- tv_mac_pppoe_ipv4_udp_pay_drop_03
- ]
-
-mac_pppoe_ipv4_udp_pay_non_src_dst_port_scapy_str = {
- "matched": [
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/UDP(sport=25,dport=23)/Raw("x" * 80)'],
- "mismatched": [
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.3", dst="192.168.1.2")/UDP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.4")/UDP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/TCP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/Raw("x" * 80)'
- ]
-}
-
-tv_mac_pppoe_ipv4_udp_pay_non_src_dst_port_in_queue_01 = {
- "name":"mac_pppoe_ipv4_udp_pay_non_src_dst_port_in_queue_01",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp / end actions queue index 2 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv4_udp_pay_non_src_dst_port_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":2}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv4_udp_pay_non_src_dst_port_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":2}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tv_mac_pppoe_ipv4_udp_pay_non_src_dst_port_queue_region_02 = {
- "name":"mac_pppoe_ipv4_udp_pay_non_src_dst_port_queue_region_02",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp / end actions rss queues 2 3 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv4_udp_pay_non_src_dst_port_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[2, 3]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv4_udp_pay_non_src_dst_port_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[2, 3]}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tv_mac_pppoe_ipv4_udp_pay_non_src_dst_port_drop_03 = {
- "name":"mac_pppoe_ipv4_udp_pay_non_src_dst_port_drop_03",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv4_udp_pay_non_src_dst_port_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv4_udp_pay_non_src_dst_port_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tvs_mac_pppoe_ipv4_udp_pay_non_src_dst_port = [
- tv_mac_pppoe_ipv4_udp_pay_non_src_dst_port_in_queue_01,
- tv_mac_pppoe_ipv4_udp_pay_non_src_dst_port_queue_region_02,
- tv_mac_pppoe_ipv4_udp_pay_non_src_dst_port_drop_03
- ]
-
-mac_pppoe_ipv4_tcp_pay_scapy_str = {
- "matched": [
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/TCP(sport=25,dport=23)/Raw("x" * 80)'],
- "mismatched": [
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.3", dst="192.168.1.2")/TCP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.4")/TCP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/TCP(sport=27,dport=23)/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/TCP(sport=25,dport=19)/Raw("x" * 80)'
- ]
-}
-
-tv_mac_pppoe_ipv4_tcp_pay_in_queue_01 = {
- "name":"mac_pppoe_ipv4_tcp_pay_in_queue_01",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp src is 25 dst is 23 / end actions queue index 1 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv4_tcp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv4_tcp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tv_mac_pppoe_ipv4_tcp_pay_queue_region_02 = {
- "name":"mac_pppoe_ipv4_tcp_pay_queue_region_02",
- "validate_pattern":"flow validate 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp src is 25 dst is 23 / end actions rss queues 7 8 end / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp src is 25 dst is 23 / end actions rss queues 7 8 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv4_tcp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[7, 8]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv4_tcp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[7, 8]}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tv_mac_pppoe_ipv4_tcp_pay_drop_03 = {
- "name":"mac_pppoe_ipv4_tcp_pay_drop_03",
- "validate_pattern":"flow validate 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp src is 25 dst is 23 / end actions drop / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp src is 25 dst is 23 / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv4_tcp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv4_tcp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tvs_mac_pppoe_ipv4_tcp_pay = [
- tv_mac_pppoe_ipv4_tcp_pay_in_queue_01,
- tv_mac_pppoe_ipv4_tcp_pay_queue_region_02,
- tv_mac_pppoe_ipv4_tcp_pay_drop_03
- ]
-
-mac_pppoe_ipv4_tcp_pay_non_src_dst_port_scapy_str = {
- "matched": [
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/TCP(sport=25,dport=23)/Raw("x" * 80)'],
- "mismatched": [
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.3", dst="192.168.1.2")/TCP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.4")/TCP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/UDP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/Raw("x" * 80)'
- ]
-}
-
-tv_mac_pppoe_ipv4_tcp_pay_non_src_dst_port_in_queue_01 = {
- "name":"mac_pppoe_ipv4_tcp_pay_non_src_dst_port_in_queue_01",
- "validate_pattern":"flow validate 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp / end actions queue index 2 / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp / end actions queue index 2 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv4_tcp_pay_non_src_dst_port_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":2}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv4_tcp_pay_non_src_dst_port_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":2}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tv_mac_pppoe_ipv4_tcp_pay_non_src_dst_port_queue_region_02 = {
- "name":"mac_pppoe_ipv4_tcp_pay_non_src_dst_port_queue_region_02",
- "validate_pattern":"flow validate 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp / end actions rss queues 7 8 end / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp / end actions rss queues 7 8 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv4_tcp_pay_non_src_dst_port_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[7, 8]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv4_tcp_pay_non_src_dst_port_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[7, 8]}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tv_mac_pppoe_ipv4_tcp_pay_non_src_dst_port_drop_03 = {
- "name":"mac_pppoe_ipv4_tcp_pay_non_src_dst_port_drop_03",
- "validate_pattern":"flow validate 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp / end actions drop / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv4_tcp_pay_non_src_dst_port_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv4_tcp_pay_non_src_dst_port_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tvs_mac_pppoe_ipv4_tcp_pay_non_src_dst_port = [
- tv_mac_pppoe_ipv4_tcp_pay_non_src_dst_port_in_queue_01,
- tv_mac_pppoe_ipv4_tcp_pay_non_src_dst_port_queue_region_02,
- tv_mac_pppoe_ipv4_tcp_pay_non_src_dst_port_drop_03
- ]
-
-mac_pppoe_ipv6_pay_ip_address_scapy_str = {
- "matched": [
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)'],
- "mismatched": [
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1537", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2023")/Raw("x"*80)'
- ]
-}
-
-tv_mac_pppoe_ipv6_pay_ip_address_in_queue_01 = {
- "name":"mac_pppoe_ipv6_pay_ip_address_in_queue_01",
- "validate_pattern":"flow validate 0 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / end actions queue index 1 / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / end actions queue index 1 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv6_pay_ip_address_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv6_pay_ip_address_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":2}}
-}
-
-tv_mac_pppoe_ipv6_pay_ip_address_queue_region_02 = {
- "name":"mac_pppoe_ipv6_pay_ip_address_queue_region_02",
- "validate_pattern":"flow validate 0 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / end actions rss queues 2 3 end / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / end actions rss queues 2 3 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv6_pay_ip_address_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[2, 3]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv6_pay_ip_address_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[2, 3]}},
- "expect_results":{"expect_pkts":2}}
-}
-
-tv_mac_pppoe_ipv6_pay_ip_address_drop_03 = {
- "name":"mac_pppoe_ipv6_pay_ip_address_drop_03",
- "validate_pattern":"flow validate 0 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / end actions drop / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv6_pay_ip_address_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv6_pay_ip_address_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":2}}
-}
-
-tvs_mac_pppoe_ipv6_pay_ip_address = [
- tv_mac_pppoe_ipv6_pay_ip_address_in_queue_01,
- tv_mac_pppoe_ipv6_pay_ip_address_queue_region_02,
- tv_mac_pppoe_ipv6_pay_ip_address_drop_03
- ]
-
-mac_pppoe_ipv6_udp_pay_scapy_str = {
- "matched": [
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=25,dport=23)/Raw("x" * 80)'],
- "mismatched": [
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=27,dport=23)/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=25,dport=19)/Raw("x" * 80)'
- ]
-}
-
-tv_mac_pppoe_ipv6_udp_pay_in_queue_01 = {
- "name":"mac_pppoe_ipv6_udp_pay_in_queue_01",
- "validate_pattern":"flow validate 0 ingress pattern eth / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp src is 25 dst is 23 / end actions queue index 1 / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp src is 25 dst is 23 / end actions queue index 1 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv6_udp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv6_udp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":3}}
-}
-
-tv_mac_pppoe_ipv6_udp_pay_queue_region_02 = {
- "name":"mac_pppoe_ipv6_udp_pay_queue_region_02",
- "validate_pattern":"flow validate 0 ingress pattern eth / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp src is 25 dst is 23 / end actions rss queues 4 5 end / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp src is 25 dst is 23 / end actions rss queues 4 5 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv6_udp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[4, 5]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv6_udp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[4, 5]}},
- "expect_results":{"expect_pkts":3}}
-}
-
-tv_mac_pppoe_ipv6_udp_pay_drop_03 = {
- "name":"mac_pppoe_ipv6_udp_pay_drop_03",
- "validate_pattern":"flow validate 0 ingress pattern eth / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp src is 25 dst is 23 / end actions drop / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp src is 25 dst is 23 / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv6_udp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv6_udp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":3}}
-}
-
-tvs_mac_pppoe_ipv6_udp_pay = [
- tv_mac_pppoe_ipv6_udp_pay_in_queue_01,
- tv_mac_pppoe_ipv6_udp_pay_queue_region_02,
- tv_mac_pppoe_ipv6_udp_pay_drop_03
- ]
-
-mac_pppoe_ipv6_udp_pay_non_src_dst_port_scapy_str = {
- "matched": [
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=25,dport=23)/Raw("x" * 80)'],
- "mismatched": [
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1537", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x" * 80)'
- ]
-}
-
-tv_mac_pppoe_ipv6_udp_pay_non_src_dst_port_in_queue_01 = {
- "name":"mac_pppoe_ipv6_udp_pay_non_src_dst_port_in_queue_01",
- "validate_pattern":"flow validate 0 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp / end actions queue index 1 / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp / end actions queue index 1 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv6_udp_pay_non_src_dst_port_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv6_udp_pay_non_src_dst_port_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tv_mac_pppoe_ipv6_udp_pay_non_src_dst_port_queue_region_02 = {
- "name":"mac_pppoe_ipv6_udp_pay_non_src_dst_port_queue_region_02",
- "validate_pattern":"flow validate 0 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp / end actions rss queues 2 3 end / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp / end actions rss queues 2 3 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv6_udp_pay_non_src_dst_port_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[2, 3]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv6_udp_pay_non_src_dst_port_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[2, 3]}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tv_mac_pppoe_ipv6_udp_pay_non_src_dst_port_drop_03 = {
- "name":"mac_pppoe_ipv6_udp_pay_non_src_dst_port_drop_03",
- "validate_pattern":"flow validate 0 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp / end actions drop / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv6_udp_pay_non_src_dst_port_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv6_udp_pay_non_src_dst_port_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tvs_mac_pppoe_ipv6_udp_pay_non_src_dst_port = [
- tv_mac_pppoe_ipv6_udp_pay_non_src_dst_port_in_queue_01,
- tv_mac_pppoe_ipv6_udp_pay_non_src_dst_port_queue_region_02,
- tv_mac_pppoe_ipv6_udp_pay_non_src_dst_port_drop_03
- ]
-
-mac_pppoe_ipv6_tcp_pay_scapy_str = {
- "matched": [
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=25,dport=23)/Raw("x" * 80)'],
- "mismatched": [
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=27,dport=23)/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=25,dport=19)/Raw("x" * 80)'
- ]
-}
-
-tv_mac_pppoe_ipv6_tcp_pay_in_queue_01 = {
- "name":"mac_pppoe_ipv6_tcp_pay_in_queue_01",
- "validate_pattern":"flow validate 0 ingress pattern eth / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp src is 25 dst is 23 / end actions queue index 1 / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp src is 25 dst is 23 / end actions queue index 1 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv6_tcp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv6_tcp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":3}}
-}
-
-tv_mac_pppoe_ipv6_tcp_pay_queue_region_02 = {
- "name":"mac_pppoe_ipv6_tcp_pay_queue_region_02",
- "validate_pattern":"flow validate 0 ingress pattern eth / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp src is 25 dst is 23 / end actions rss queues 4 5 end / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp src is 25 dst is 23 / end actions rss queues 4 5 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv6_tcp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[4, 5]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv6_tcp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[4, 5]}},
- "expect_results":{"expect_pkts":3}}
-}
-
-tv_mac_pppoe_ipv6_tcp_pay_drop_03 = {
- "name":"mac_pppoe_ipv6_tcp_pay_drop_03",
- "validate_pattern":"flow validate 0 ingress pattern eth / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp src is 25 dst is 23 / end actions drop / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp src is 25 dst is 23 / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv6_tcp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv6_tcp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":3}}
-}
-
-tvs_mac_pppoe_ipv6_tcp_pay = [
- tv_mac_pppoe_ipv6_tcp_pay_in_queue_01,
- tv_mac_pppoe_ipv6_tcp_pay_queue_region_02,
- tv_mac_pppoe_ipv6_tcp_pay_drop_03
- ]
-
-mac_pppoe_ipv6_tcp_pay_non_src_dst_port_scapy_str = {
- "matched": [
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=25,dport=23)/Raw("x" * 80)'],
- "mismatched": [
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1537", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x" * 80)'
- ]
-}
-
-tv_mac_pppoe_ipv6_tcp_pay_non_src_dst_port_in_queue_01 = {
- "name":"mac_pppoe_ipv6_tcp_pay_non_src_dst_port_in_queue_01",
- "validate_pattern":"flow validate 0 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp / end actions queue index 1 / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp / end actions queue index 1 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv6_tcp_pay_non_src_dst_port_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv6_tcp_pay_non_src_dst_port_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tv_mac_pppoe_ipv6_tcp_pay_non_src_dst_port_queue_region_02 = {
- "name":"mac_pppoe_ipv6_tcp_pay_non_src_dst_port_queue_region_02",
- "validate_pattern":"flow validate 0 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp / end actions rss queues 2 3 end / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp / end actions rss queues 2 3 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv6_tcp_pay_non_src_dst_port_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[2, 3]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv6_tcp_pay_non_src_dst_port_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[2, 3]}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tv_mac_pppoe_ipv6_tcp_pay_non_src_dst_port_drop_03 = {
- "name":"mac_pppoe_ipv6_tcp_pay_non_src_dst_port_drop_03",
- "validate_pattern":"flow validate 0 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp / end actions drop / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_pppoe_ipv6_tcp_pay_non_src_dst_port_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipv6_tcp_pay_non_src_dst_port_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tvs_mac_pppoe_ipv6_tcp_pay_non_src_dst_port = [
- tv_mac_pppoe_ipv6_tcp_pay_non_src_dst_port_in_queue_01,
- tv_mac_pppoe_ipv6_tcp_pay_non_src_dst_port_queue_region_02,
- tv_mac_pppoe_ipv6_tcp_pay_non_src_dst_port_drop_03
- ]
-
-mac_vlan_pppoe_ipv4_pay_ip_address_scapy_str = {
- "matched": [
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/Raw("x"*80)'],
- "mismatched": [
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=2,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/Raw("x"*80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.3", dst="192.168.1.2")/Raw("x"*80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.4")/Raw("x"*80)'
- ]
-}
-
-tv_mac_vlan_pppoe_ipv4_pay_ip_address_in_queue_01 = {
- "name":"mac_vlan_pppoe_ipv4_pay_ip_address_in_queue_01",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / end actions queue index 2 / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / end actions queue index 2 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv4_pay_ip_address_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":2}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv4_pay_ip_address_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":2}},
- "expect_results":{"expect_pkts":3}}
-}
-
-tv_mac_vlan_pppoe_ipv4_pay_ip_address_queue_region_02 = {
- "name":"mac_vlan_pppoe_ipv4_pay_ip_address_queue_region_02",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / end actions rss queues 2 3 end / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / end actions rss queues 2 3 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv4_pay_ip_address_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[2, 3]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv4_pay_ip_address_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[2, 3]}},
- "expect_results":{"expect_pkts":3}}
-}
-
-tv_mac_vlan_pppoe_ipv4_pay_ip_address_drop_03 = {
- "name":"mac_vlan_pppoe_ipv4_pay_ip_address_drop_03",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / end actions drop / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv4_pay_ip_address_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv4_pay_ip_address_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":3}}
-}
-
-tvs_mac_vlan_pppoe_ipv4_pay_ip_address = [
- tv_mac_vlan_pppoe_ipv4_pay_ip_address_in_queue_01,
- tv_mac_vlan_pppoe_ipv4_pay_ip_address_queue_region_02,
- tv_mac_vlan_pppoe_ipv4_pay_ip_address_drop_03
- ]
-
-mac_vlan_pppoe_ipv4_udp_pay_scapy_str = {
- "matched": [
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/UDP(sport=25,dport=23)/Raw("x" * 80)'],
- "mismatched": [
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=2,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/UDP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.3", dst="192.168.1.2")/UDP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.4")/UDP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/UDP(sport=27,dport=23)/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/UDP(sport=25,dport=19)/Raw("x" * 80)'
- ]
-}
-
-tv_mac_vlan_pppoe_ipv4_udp_pay_in_queue_01 = {
- "name":"mac_vlan_pppoe_ipv4_udp_pay",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp src is 25 dst is 23 / end actions queue index 1 / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp src is 25 dst is 23 / end actions queue index 1 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv4_udp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv4_udp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":5}}
-}
-
-tv_mac_vlan_pppoe_ipv4_udp_pay_queue_region_02 = {
- "name":"mac_vlan_pppoe_ipv4_udp_pay_queue_region_02",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp src is 25 dst is 23 / end actions rss queues 7 8 end / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp src is 25 dst is 23 / end actions rss queues 7 8 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv4_udp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[7, 8]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv4_udp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[7, 8]}},
- "expect_results":{"expect_pkts":5}}
-}
-
-tv_mac_vlan_pppoe_ipv4_udp_pay_drop_03 = {
- "name":"mac_vlan_pppoe_ipv4_udp_pay_drop_03",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp src is 25 dst is 23 / end actions drop / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp src is 25 dst is 23 / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv4_udp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv4_udp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":5}}
-}
-
-tvs_mac_vlan_pppoe_ipv4_udp_pay = [
- tv_mac_vlan_pppoe_ipv4_udp_pay_in_queue_01,
- tv_mac_vlan_pppoe_ipv4_udp_pay_queue_region_02,
- tv_mac_vlan_pppoe_ipv4_udp_pay_drop_03
- ]
-
-mac_vlan_pppoe_ipv4_udp_pay_non_src_dst_port_scapy_str = {
- "matched": [
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/UDP(sport=25,dport=23)/Raw("x" * 80)'],
- "mismatched": [
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=2,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/UDP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.3", dst="192.168.1.2")/UDP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.4")/UDP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/TCP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/Raw("x" * 80)'
- ]
-}
-
-tv_mac_vlan_pppoe_ipv4_udp_pay_non_src_dst_port_in_queue_01 = {
- "name":"mac_vlan_pppoe_ipv4_udp_pay_non_src_dst_port_in_queue_01",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp / end actions queue index 2 / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp / end actions queue index 2 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv4_udp_pay_non_src_dst_port_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":2}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv4_udp_pay_non_src_dst_port_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":2}},
- "expect_results":{"expect_pkts":5}}
-}
-
-tv_mac_vlan_pppoe_ipv4_udp_pay_non_src_dst_port_queue_region_02 = {
- "name":"mac_vlan_pppoe_ipv4_udp_pay_non_src_dst_port_queue_region_02",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp / end actions rss queues 7 8 end / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp / end actions rss queues 7 8 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv4_udp_pay_non_src_dst_port_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[7, 8]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv4_udp_pay_non_src_dst_port_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[7, 8]}},
- "expect_results":{"expect_pkts":5}}
-}
-
-tv_mac_vlan_pppoe_ipv4_udp_pay_non_src_dst_port_drop_03 = {
- "name":"mac_vlan_pppoe_ipv4_udp_pay_non_src_dst_port_drop_03",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp / end actions drop / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv4_udp_pay_non_src_dst_port_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv4_udp_pay_non_src_dst_port_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":5}}
-}
-
-tvs_mac_vlan_pppoe_ipv4_udp_pay_non_src_dst_port = [
- tv_mac_vlan_pppoe_ipv4_udp_pay_non_src_dst_port_in_queue_01,
- tv_mac_vlan_pppoe_ipv4_udp_pay_non_src_dst_port_queue_region_02,
- tv_mac_vlan_pppoe_ipv4_udp_pay_non_src_dst_port_drop_03
- ]
-
-mac_vlan_pppoe_ipv4_tcp_pay_scapy_str = {
- "matched": [
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/TCP(sport=25,dport=23)/Raw("x" * 80)'],
- "mismatched": [
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=2,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/TCP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.3", dst="192.168.1.2")/TCP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.4")/TCP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/TCP(sport=27,dport=23)/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/TCP(sport=25,dport=19)/Raw("x" * 80)'
- ]
-}
-
-tv_mac_vlan_pppoe_ipv4_tcp_pay_in_queue_01 = {
- "name":"mac_vlan_pppoe_ipv4_tcp_pay_in_queue_01",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp src is 25 dst is 23 / end actions queue index 1 / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp src is 25 dst is 23 / end actions queue index 1 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv4_tcp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv4_tcp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":5}}
-}
-
-tv_mac_vlan_pppoe_ipv4_tcp_pay_queue_region_02 = {
- "name":"mac_vlan_pppoe_ipv4_tcp_pay_queue_region_02",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp src is 25 dst is 23 / end actions rss queues 7 8 end / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp src is 25 dst is 23 / end actions rss queues 7 8 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv4_tcp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[7, 8]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv4_tcp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[7, 8]}},
- "expect_results":{"expect_pkts":5}}
-}
-
-tv_mac_vlan_pppoe_ipv4_tcp_pay_drop_03 = {
- "name":"mac_vlan_pppoe_ipv4_tcp_pay_drop_03",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp src is 25 dst is 23 / end actions drop / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp src is 25 dst is 23 / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv4_tcp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv4_tcp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":5}}
-}
-
-tvs_mac_vlan_pppoe_ipv4_tcp_pay = [
- tv_mac_vlan_pppoe_ipv4_tcp_pay_in_queue_01,
- tv_mac_vlan_pppoe_ipv4_tcp_pay_queue_region_02,
- tv_mac_vlan_pppoe_ipv4_tcp_pay_drop_03
- ]
-
-mac_vlan_pppoe_ipv4_tcp_pay_non_src_dst_port_scapy_str = {
- "matched": [
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/TCP(sport=25,dport=23)/Raw("x" * 80)'],
- "mismatched": [
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=2,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/TCP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.3", dst="192.168.1.2")/TCP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.4")/TCP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/UDP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP(src="192.168.1.1", dst="192.168.1.2")/Raw("x" * 80)'
- ]
-}
-
-tv_mac_vlan_pppoe_ipv4_tcp_pay_non_src_dst_port_in_queue_01 = {
- "name":"mac_vlan_pppoe_ipv4_tcp_pay_non_src_dst_port_in_queue_01",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp / end actions queue index 2 / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp / end actions queue index 2 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv4_tcp_pay_non_src_dst_port_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":2}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv4_tcp_pay_non_src_dst_port_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":2}},
- "expect_results":{"expect_pkts":5}}
-}
-
-tv_mac_vlan_pppoe_ipv4_tcp_pay_non_src_dst_port_queue_region_02 = {
- "name":"mac_vlan_pppoe_ipv4_tcp_pay_non_src_dst_port_queue_region_02",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp / end actions rss queues 7 8 end / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp / end actions rss queues 7 8 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv4_tcp_pay_non_src_dst_port_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[7, 8]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv4_tcp_pay_non_src_dst_port_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[7, 8]}},
- "expect_results":{"expect_pkts":5}}
-}
-
-tv_mac_vlan_pppoe_ipv4_tcp_pay_non_src_dst_port_drop_03 = {
- "name":"mac_vlan_pppoe_ipv4_tcp_pay_non_src_dst_port_drop_03",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp / end actions drop / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv4_tcp_pay_non_src_dst_port_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv4_tcp_pay_non_src_dst_port_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":5}}
-}
-
-tvs_mac_vlan_pppoe_ipv4_tcp_pay_non_src_dst_port = [
- tv_mac_vlan_pppoe_ipv4_tcp_pay_non_src_dst_port_in_queue_01,
- tv_mac_vlan_pppoe_ipv4_tcp_pay_non_src_dst_port_queue_region_02,
- tv_mac_vlan_pppoe_ipv4_tcp_pay_non_src_dst_port_drop_03
- ]
-
-mac_vlan_pppoe_ipv6_pay_ip_address_scapy_str = {
- "matched": [
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)'],
- "mismatched": [
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=2,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1537", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)'
- ]
-}
-
-tv_mac_vlan_pppoe_ipv6_pay_ip_address_in_queue_01 = {
- "name":"mac_vlan_pppoe_ipv6_pay_ip_address_in_queue_01",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / end actions queue index 1 / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / end actions queue index 1 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv6_pay_ip_address_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv6_pay_ip_address_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":2}}
-}
-
-tv_mac_vlan_pppoe_ipv6_pay_ip_address_queue_region_02 = {
- "name":"mac_vlan_pppoe_ipv6_pay_ip_address_queue_region_02",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / end actions rss queues 2 3 end / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / end actions rss queues 2 3 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv6_pay_ip_address_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[2, 3]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv6_pay_ip_address_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[2, 3]}},
- "expect_results":{"expect_pkts":2}}
-}
-
-tv_mac_vlan_pppoe_ipv6_pay_ip_address_drop_03 = {
- "name":"mac_vlan_pppoe_ipv6_pay_ip_address_drop_03",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / end actions drop / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv6_pay_ip_address_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv6_pay_ip_address_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":2}}
-}
-
-tvs_mac_vlan_pppoe_ipv6_pay_ip_address = [
- tv_mac_vlan_pppoe_ipv6_pay_ip_address_in_queue_01,
- tv_mac_vlan_pppoe_ipv6_pay_ip_address_queue_region_02,
- tv_mac_vlan_pppoe_ipv6_pay_ip_address_drop_03
- ]
-
-mac_vlan_pppoe_ipv6_udp_pay_scapy_str = {
- "matched": [
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=25,dport=23)/Raw("x" * 80)'],
- "mismatched": [
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=2,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=27,dport=23)/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=25,dport=19)/Raw("x" * 80)'
- ]
-}
-
-tv_mac_vlan_pppoe_ipv6_udp_pay_in_queue_01 = {
- "name":"mac_vlan_pppoe_ipv6_udp_pay_in_queue_01",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp src is 25 dst is 23 / end actions queue index 1 / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp src is 25 dst is 23 / end actions queue index 1 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv6_udp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv6_udp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tv_mac_vlan_pppoe_ipv6_udp_pay_queue_region_02 = {
- "name":"mac_vlan_pppoe_ipv6_udp_pay_queue_region_02",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp src is 25 dst is 23 / end actions rss queues 4 5 end / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp src is 25 dst is 23 / end actions rss queues 4 5 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv6_udp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[4, 5]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv6_udp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[4, 5]}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tv_mac_vlan_pppoe_ipv6_udp_pay_drop_03 = {
- "name":"mac_vlan_pppoe_ipv6_udp_pay_drop_03",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp src is 25 dst is 23 / end actions drop / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp src is 25 dst is 23 / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv6_udp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv6_udp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tvs_mac_vlan_pppoe_ipv6_udp_pay = [
- tv_mac_vlan_pppoe_ipv6_udp_pay_in_queue_01,
- tv_mac_vlan_pppoe_ipv6_udp_pay_queue_region_02,
- tv_mac_vlan_pppoe_ipv6_udp_pay_drop_03
- ]
-
-mac_vlan_pppoe_ipv6_udp_pay_non_src_dst_port_scapy_str = {
- "matched": [
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=25,dport=23)/Raw("x" * 80)'],
- "mismatched": [
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=2,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1537", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x" * 80)'
- ]
-}
-
-tv_mac_vlan_pppoe_ipv6_udp_pay_non_src_dst_port_in_queue_01 = {
- "name":"mac_vlan_pppoe_ipv6_udp_pay_non_src_dst_port_in_queue_01",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / udp / end actions queue index 1 / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / udp / end actions queue index 1 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv6_udp_pay_non_src_dst_port_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv6_udp_pay_non_src_dst_port_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tv_mac_vlan_pppoe_ipv6_udp_pay_non_src_dst_port_queue_region_02 = {
- "name":"mac_vlan_pppoe_ipv6_udp_pay_non_src_dst_port_queue_region_02",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / udp / end actions rss queues 2 3 end / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / udp / end actions rss queues 2 3 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv6_udp_pay_non_src_dst_port_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[2, 3]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv6_udp_pay_non_src_dst_port_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[2, 3]}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tv_mac_vlan_pppoe_ipv6_udp_pay_non_src_dst_port_drop_03 = {
- "name":"mac_vlan_pppoe_ipv6_udp_pay_non_src_dst_port_drop_03",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / udp / end actions drop / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / udp / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv6_udp_pay_non_src_dst_port_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv6_udp_pay_non_src_dst_port_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tvs_mac_vlan_pppoe_ipv6_udp_pay_non_src_dst_port = [
- tv_mac_vlan_pppoe_ipv6_udp_pay_non_src_dst_port_in_queue_01,
- tv_mac_vlan_pppoe_ipv6_udp_pay_non_src_dst_port_queue_region_02,
- tv_mac_vlan_pppoe_ipv6_udp_pay_non_src_dst_port_drop_03
- ]
-
-mac_vlan_pppoe_ipv6_tcp_pay_scapy_str = {
- "matched": [
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=25,dport=23)/Raw("x" * 80)'],
- "mismatched": [
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=2,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=27,dport=23)/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=25,dport=19)/Raw("x" * 80)'
- ]
-}
-
-tv_mac_vlan_pppoe_ipv6_tcp_pay_in_queue_01 = {
- "name":"mac_vlan_pppoe_ipv6_tcp_pay_in_queue_01",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp src is 25 dst is 23 / end actions queue index 1 / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp src is 25 dst is 23 / end actions queue index 1 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv6_tcp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv6_tcp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tv_mac_vlan_pppoe_ipv6_tcp_pay_queue_region_02 = {
- "name":"mac_vlan_pppoe_ipv6_tcp_pay_queue_region_02",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp src is 25 dst is 23 / end actions rss queues 4 5 end / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp src is 25 dst is 23 / end actions rss queues 4 5 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv6_tcp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[4, 5]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv6_tcp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[4, 5]}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tv_mac_vlan_pppoe_ipv6_tcp_pay_drop_03 = {
- "name":"mac_vlan_pppoe_ipv6_tcp_pay_drop_03",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp src is 25 dst is 23 / end actions drop / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp src is 25 dst is 23 / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv6_tcp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv6_tcp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tvs_mac_vlan_pppoe_ipv6_tcp_pay = [
- tv_mac_vlan_pppoe_ipv6_tcp_pay_in_queue_01,
- tv_mac_vlan_pppoe_ipv6_tcp_pay_queue_region_02,
- tv_mac_vlan_pppoe_ipv6_tcp_pay_drop_03
- ]
-
-mac_vlan_pppoe_ipv6_tcp_pay_non_src_dst_port_scapy_str = {
- "matched": [
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=25,dport=23)/Raw("x" * 80)'],
- "mismatched": [
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=2,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1537", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=25,dport=23)/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x57\')/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x" * 80)'
- ]
-}
-
-tv_mac_vlan_pppoe_ipv6_tcp_pay_non_src_dst_port_in_queue_01 = {
- "name":"mac_vlan_pppoe_ipv6_tcp_pay_non_src_dst_port_in_queue_01",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / tcp / end actions queue index 1 / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / tcp / end actions queue index 1 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv6_tcp_pay_non_src_dst_port_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv6_tcp_pay_non_src_dst_port_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tv_mac_vlan_pppoe_ipv6_tcp_pay_non_src_dst_port_queue_region_02 = {
- "name":"mac_vlan_pppoe_ipv6_tcp_pay_non_src_dst_port_queue_region_02",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / tcp / end actions rss queues 2 3 end / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / tcp / end actions rss queues 2 3 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv6_tcp_pay_non_src_dst_port_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[2, 3]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv6_tcp_pay_non_src_dst_port_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[2, 3]}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tv_mac_vlan_pppoe_ipv6_tcp_pay_non_src_dst_port_drop_03 = {
- "name":"mac_vlan_pppoe_ipv6_tcp_pay_non_src_dst_port_drop_03",
- "validate_pattern":"flow validate 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / tcp / end actions drop / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / tcp / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":False},
- "matched":{"scapy_str":mac_vlan_pppoe_ipv6_tcp_pay_non_src_dst_port_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipv6_tcp_pay_non_src_dst_port_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tvs_mac_vlan_pppoe_ipv6_tcp_pay_non_src_dst_port = [
- tv_mac_vlan_pppoe_ipv6_tcp_pay_non_src_dst_port_in_queue_01,
- tv_mac_vlan_pppoe_ipv6_tcp_pay_non_src_dst_port_queue_region_02,
- tv_mac_vlan_pppoe_ipv6_tcp_pay_non_src_dst_port_drop_03
- ]
-
-mac_pppoe_lcp_pay_scapy_str = {
- "matched": [
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\xc0\\x21\')/PPP_LCP()/Raw("x" * 80)'],
- "mismatched": [
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:53",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\xc0\\x21\')/PPP_LCP()/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=4)/PPP(b\'\\xc0\\x21\')/PPP_LCP()/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP()/Raw("x" * 80)'
- ]
-}
-
-tv_mac_pppoe_lcp_pay_in_queue_01 = {
- "name":"mac_pppoe_lcp_pay_in_queue_01",
- "validate_pattern":"flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0xc021 / end actions queue index 1 / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0xc021 / end actions queue index 1 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":True},
- "matched":{"scapy_str":mac_pppoe_lcp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_lcp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":3}}
-}
-
-tv_mac_pppoe_lcp_pay_queue_region_02 = {
- "name":"mac_pppoe_lcp_pay_queue_region_02",
- "validate_pattern":"flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0xc021 / end actions rss queues 2 3 end / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0xc021 / end actions rss queues 2 3 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":True},
- "matched":{"scapy_str":mac_pppoe_lcp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[2, 3]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_lcp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[2, 3]}},
- "expect_results":{"expect_pkts":3}}
-}
-
-tv_mac_pppoe_lcp_pay_drop_03 = {
- "name":"mac_pppoe_lcp_pay_drop_03",
- "validate_pattern":"flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0xc021 / end actions drop / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0xc021 / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":True},
- "matched":{"scapy_str":mac_pppoe_lcp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_lcp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":3}}
-}
-
-tvs_mac_pppoe_lcp_pay = [
- tv_mac_pppoe_lcp_pay_in_queue_01,
- tv_mac_pppoe_lcp_pay_queue_region_02,
- tv_mac_pppoe_lcp_pay_drop_03
- ]
-
-mac_pppoe_ipcp_pay_scapy_str = {
- "matched": [
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x80\\x21\')/PPP_IPCP()/Raw("x" * 80)'],
- "mismatched": [
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:53",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x80\\x21\')/PPP_IPCP()/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=4)/PPP(b\'\\x80\\x21\')/PPP_IPCP()/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP()/Raw("x" * 80)'
- ]
-}
-
-tv_mac_pppoe_ipcp_pay_in_queue_01 = {
- "name":"mac_pppoe_ipcp_pay_in_queue_01",
- "validate_pattern":"flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x8021 / end actions queue index 1 / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x8021 / end actions queue index 1 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":True},
- "matched":{"scapy_str":mac_pppoe_ipcp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipcp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":3}}
-}
-
-tv_mac_pppoe_ipcp_pay_queue_region_02 = {
- "name":"mac_pppoe_ipcp_pay_queue_region_02",
- "validate_pattern":"flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x8021 / end actions rss queues 2 3 end / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x8021 / end actions rss queues 2 3 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":True},
- "matched":{"scapy_str":mac_pppoe_ipcp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[2, 3]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipcp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[2, 3]}},
- "expect_results":{"expect_pkts":3}}
-}
-
-tv_mac_pppoe_ipcp_pay_drop_03 = {
- "name":"mac_pppoe_ipcp_pay_drop_03",
- "validate_pattern":"flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x8021 / end actions drop / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x8021 / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":True},
- "matched":{"scapy_str":mac_pppoe_ipcp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_pppoe_ipcp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":3}}
-}
-
-tvs_mac_pppoe_ipcp_pay = [
- tv_mac_pppoe_ipcp_pay_in_queue_01,
- tv_mac_pppoe_ipcp_pay_queue_region_02,
- tv_mac_pppoe_ipcp_pay_drop_03
- ]
-
-mac_vlan_pppoe_lcp_pay_scapy_str = {
- "matched": [
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\xc0\\x21\')/PPP_LCP()/Raw("x" * 80)'],
- "mismatched": [
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:53",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\xc0\\x21\')/PPP_LCP()/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=2,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\xc0\\x21\')/PPP_LCP()/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=4)/PPP(b\'\\xc0\\x21\')/PPP_LCP()/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP()/Raw("x" * 80)'
- ]
-}
-
-tv_mac_vlan_pppoe_lcp_pay_in_queue_01 = {
- "name":"mac_vlan_pppoe_lcp_pay_in_queue_01",
- "validate_pattern":"flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0xc021 / end actions queue index 1 / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0xc021 / end actions queue index 1 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":True},
- "matched":{"scapy_str":mac_vlan_pppoe_lcp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_lcp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tv_mac_vlan_pppoe_lcp_pay_queue_region_02 = {
- "name":"mac_vlan_pppoe_lcp_pay_queue_region_02",
- "validate_pattern":"flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0xc021 / end actions rss queues 2 3 end / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0xc021 / end actions rss queues 2 3 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":True},
- "matched":{"scapy_str":mac_vlan_pppoe_lcp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[2, 3]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_lcp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[2, 3]}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tv_mac_vlan_pppoe_lcp_pay_drop_03 = {
- "name":"mac_vlan_pppoe_lcp_pay_drop_03",
- "validate_pattern":"flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0xc021 / end actions drop / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0xc021 / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":True},
- "matched":{"scapy_str":mac_vlan_pppoe_lcp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_lcp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tvs_mac_vlan_pppoe_lcp_pay = [
- tv_mac_vlan_pppoe_lcp_pay_in_queue_01,
- tv_mac_vlan_pppoe_lcp_pay_queue_region_02,
- tv_mac_vlan_pppoe_lcp_pay_drop_03
- ]
-
-mac_vlan_pppoe_ipcp_pay_scapy_str = {
- "matched": [
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x80\\x21\')/PPP_IPCP()/Raw("x" * 80)'],
- "mismatched": [
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:53",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x80\\x21\')/PPP_IPCP()/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=2,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x80\\x21\')/PPP_IPCP()/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=4)/PPP(b\'\\x80\\x21\')/PPP_IPCP()/Raw("x" * 80)',
- 'Ether(src="11:22:33:44:55:99",dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\'\\x00\\x21\')/IP()/Raw("x" * 80)'
- ]
-}
-
-tv_mac_vlan_pppoe_ipcp_pay_in_queue_01 = {
- "name":"mac_vlan_pppoe_ipcp_pay_in_queue_01",
- "validate_pattern":"flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x8021 / end actions queue index 1 / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x8021 / end actions queue index 1 / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":True},
- "matched":{"scapy_str":mac_vlan_pppoe_ipcp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_in_queue,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipcp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_in_queue_mismatched,
- "param":{"expect_port":0, "expect_queues":1}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tv_mac_vlan_pppoe_ipcp_pay_queue_region_02 = {
- "name":"mac_vlan_pppoe_ipcp_pay_queue_region_02",
- "validate_pattern":"flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x8021 / end actions rss queues 2 3 end / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x8021 / end actions rss queues 2 3 end / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":True},
- "matched":{"scapy_str":mac_vlan_pppoe_ipcp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_queue_region,
- "param":{"expect_port":0, "expect_queues":[2, 3]}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipcp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_queue_region_mismatched,
- "param":{"expect_port":0, "expect_queues":[2, 3]}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tv_mac_vlan_pppoe_ipcp_pay_drop_03 = {
- "name":"mac_vlan_pppoe_ipcp_pay_drop_03",
- "validate_pattern":"flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x8021 / end actions drop / end",
- "rte_flow_pattern":"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x8021 / end actions drop / end",
- "configuration":{
- "is_non_pipeline":True,
- "is_need_rss_rule":True},
- "matched":{"scapy_str":mac_vlan_pppoe_ipcp_pay_scapy_str["matched"],
- "check_func":{"func":rfc.check_output_log_drop,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":1}},
- "mismatched":{"scapy_str":mac_vlan_pppoe_ipcp_pay_scapy_str["mismatched"],
- "check_func":{"func":rfc.check_output_log_drop_mismatched,
- "param":{"expect_port":0, "expect_queues":"null"}},
- "expect_results":{"expect_pkts":4}}
-}
-
-tvs_mac_vlan_pppoe_ipcp_pay = [
- tv_mac_vlan_pppoe_ipcp_pay_in_queue_01,
- tv_mac_vlan_pppoe_ipcp_pay_queue_region_02,
- tv_mac_vlan_pppoe_ipcp_pay_drop_03
- ]
-
-test_results = OrderedDict()
-
-class CVLSwitchFilterTest(TestCase):
-
- def bind_nics_driver(self, ports, driver=""):
- # modprobe vfio driver
- if driver == "vfio-pci":
- for port in ports:
- netdev = self.dut.ports_info[port]['port']
- driver = netdev.get_nic_driver()
- if driver != 'vfio-pci':
- netdev.bind_driver(driver='vfio-pci')
-
- elif driver == "igb_uio":
- # igb_uio should insmod as default, no need to check
- for port in ports:
- netdev = self.dut.ports_info[port]['port']
- driver = netdev.get_nic_driver()
- if driver != 'igb_uio':
- netdev.bind_driver(driver='igb_uio')
- else:
- for port in ports:
- netdev = self.dut.ports_info[port]['port']
- driver_now = netdev.get_nic_driver()
- if driver == "":
- driver = netdev.default_driver
- if driver != driver_now:
- netdev.bind_driver(driver=driver)
-
- def set_up_all(self):
- """
- Run at the start of each test suite.
- """
- self.verify(self.nic in ["columbiaville_25g","columbiaville_100g"], "%s nic not support CVL switch filter" % self.nic)
- self.dut_ports = self.dut.get_ports(self.nic)
- # Verify that enough ports are available
- self.verify(len(self.dut_ports) >= 1, "Insufficient ports")
- localPort = self.tester.get_local_port(self.dut_ports[0])
- self.__tx_iface = self.tester.get_interface(localPort)
- self.dut.send_expect("ifconfig %s up" % self.__tx_iface, "# ")
- self.pkt = Packet()
- #bind pf to kernel
- self.bind_nics_driver(self.dut_ports, driver="ice")
- #move comms package to package folder
- self.suite_config = rfc.get_suite_config(self)
- self.os_package_location = self.suite_config["os_default_package_file_location"]
- self.comms_package_location = self.suite_config["comms_package_file_location"]
- self.package_location = self.suite_config["package_file_location"]
- self.dut.send_expect("cp %s %s" % (self.comms_package_location, self.package_location), "# ")
- self.re_load_ice_driver()
- #bind pf to vfio-pci
- self.dut.send_expect('modprobe vfio-pci', '#')
- self.bind_nics_driver(self.dut_ports, driver="vfio-pci")
- self.pmd = PmdOutput(self.dut)
-
- self.generate_file_with_fdir_rules()
- self.path = self.dut.apps_name['test-pmd']
-
- def set_up(self):
- """
- Run before each test case.
- """
-
- def re_load_ice_driver(self):
- """
- remove and reload the driver
- """
- ice_driver_file_location = self.suite_config["ice_driver_file_location"]
- self.dut.send_expect("rmmod ice", "# ", 15)
- self.dut.send_expect("insmod %s" % ice_driver_file_location, "# ", 60)
- time.sleep(5)
-
- def generate_file_with_fdir_rules(self):
- """
- generate file with fdir rules to make fdir table full, then test switch filter
- """
- pf_pci = [self.dut.ports_info[0]['pci']]
- out = self.pmd.start_testpmd('default', ports=pf_pci, eal_param='--log-level=ice,7')
- self.dut.send_expect("quit", "# ")
- self.fdir_rule_number = self.pmd.get_max_rule_number(self,out)
- src_file = 'dep/testpmd_cmds_rte_flow_fdir_rules'
- flows = open(src_file, mode='w')
- rule_count = 1
- for i in range(0,255):
- for j in range(0,255):
- if not rule_count > self.fdir_rule_number:
- flows.write('flow create 0 ingress pattern eth / ipv4 src is 192.168.%d.%d dst is 192.1.0.0 tos is 4 / tcp src is 25 dst is 23 / end actions queue index 5 / end \n' % (i, j))
- rule_count += 1
- else:
- break
- if rule_count > self.fdir_rule_number:
- break
- flows.close()
- self.dut_file_dir = '/tmp'
- self.dut.session.copy_file_to(src_file, self.dut_file_dir)
- self.fdir_file = "/tmp/testpmd_cmds_rte_flow_fdir_rules"
-
- def create_testpmd_command(self):
- """
- Create testpmd command for non-pipeline mode
- """
- #Prepare testpmd EAL and parameters
- all_eal_param = self.dut.create_eal_parameters(cores='1S/4C/1T', ports=[0])
- command = self.path + all_eal_param + " --log-level=\"ice,8\" -- -i --rxq=16 --txq=16 --cmdline-file=%s" % self.fdir_file
- # command = "./%s/app/testpmd %s --log-level=\"ice,8\" -- -i %s" % (self.dut.target, all_eal_param, "--rxq=16 --txq=16")
- return command
-
- def create_testpmd_command_pipeline_mode(self):
- """
- Create testpmd command for pipeline mode
- """
- #Prepare testpmd EAL and parameters
- all_eal_param = self.dut.create_eal_parameters(cores='1S/4C/1T', ports=[0], port_options={0:"pipeline-mode-support=1"})
- command = self.path + all_eal_param + " --log-level=\"ice,8\" -- -i --rxq=16 --txq=16"
- return command
-
- def launch_testpmd(self, is_non_pipeline):
- """
- launch testpmd with the command
- """
- if is_non_pipeline:
- command = self.create_testpmd_command()
- else:
- command = self.create_testpmd_command_pipeline_mode()
- out = self.dut.send_expect(command, "testpmd> ", 300)
- self.dut.send_expect("port config all rss all", "testpmd> ", 15)
- self.dut.send_expect("port config 0 rss-hash-key ipv4 1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd", "testpmd> ", 15)
- self.dut.send_expect("rx_vxlan_port add 4789 0", "testpmd> ", 15)
- self.dut.send_expect("set fwd rxonly", "testpmd> ", 15)
- self.dut.send_expect("set verbose 1", "testpmd> ", 15)
-
- def send_and_check_packets(self, dic, port):
- """
- general packets processing workflow.
- """
- #Specify the port to use
- dic["check_func"]["param"]["expect_port"] = port
- self.dut.send_expect("start", "testpmd> ", 15)
- time.sleep(2)
- #send packets
- self.pkt.update_pkt(dic["scapy_str"])
- self.pkt.send_pkt(self.tester, tx_port=self.__tx_iface, count=1, timeout=370)
- time.sleep(3)
- out = self.dut.send_expect("stop", "testpmd> ", 15)
- result_flag, log_msg = dic["check_func"]["func"](out, dic["check_func"]["param"], dic["expect_results"])
- return result_flag, log_msg
-
- def send_packet_get_queue(self, packets_list):
- """
- general packets processing workflow.
- """
- self.dut.send_expect("start", "testpmd> ")
- # send packets
- self.pkt.update_pkt(packets_list)
- self.pkt.send_pkt(self.tester, tx_port=self.__tx_iface, count=1, timeout=370)
- time.sleep(3)
- out = self.dut.send_expect("stop", "testpmd> ", 15)
- p = re.compile(r"Forward Stats for RX Port= \d+/Queue=(\s?\d+)")
- res = p.findall(out)
- default_queue = [int(i) for i in res]
- return default_queue
+ def send_packet_get_queue(self, packets_list):
+ """
+ general packets processing workflow.
+ """
+ self.dut.send_expect("start", "testpmd> ")
+ # send packets
+ self.pkt.update_pkt(packets_list)
+ self.pkt.send_pkt(self.tester, tx_port=self.__tx_iface, count=1, timeout=370)
+ time.sleep(3)
+ out = self.dut.send_expect("stop", "testpmd> ", 15)
+ p = re.compile(r"Forward Stats for RX Port= \d+/Queue=(\s?\d+)")
+ res = p.findall(out)
+ default_queue = [int(i) for i in res]
+ return default_queue
def get_available_queue_num(self, default_queue, expect_queue, pmd_queue=8):
"""
@@ -5007,13 +3034,6 @@ class CVLSwitchFilterTest(TestCase):
def test_ethertype_filter_pppoed(self):
self._rte_flow_validate_pattern(tvs_ethertype_filter_pppoed)
- def test_ethertype_filter_pppoes(self):
- #launch testpmd
- self.launch_testpmd(True)
- #create a pppoe rss rule to make the pppoe packets have hash value, and queue group action work
- self.dut.send_expect("flow create 0 ingress pattern eth / pppoes / end actions rss types pppoe end key_len 0 queues end / end", "testpmd> ", 15)
- self._rte_flow_validate_pattern(tvs_ethertype_filter_pppoes, False)
-
#ether filter pipeline mode
def test_ethertype_filter_pppoed_pipeline_mode(self):
tvs_ethertype_filter_pppoed_pipeline_mode = copy.deepcopy(tvs_ethertype_filter_pppoed)
@@ -5023,18 +3043,6 @@ class CVLSwitchFilterTest(TestCase):
tv["configuration"]["is_non_pipeline"] = False
self._rte_flow_validate_pattern(tvs_ethertype_filter_pppoed_pipeline_mode)
- def test_ethertype_filter_pppoes_pipeline_mode(self):
- tvs_ethertype_filter_pppoes_pipeline_mode = copy.deepcopy(tvs_ethertype_filter_pppoes)
- for tv in tvs_ethertype_filter_pppoes_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- #launch testpmd
- self.launch_testpmd(False)
- #create a pppoe rss rule to make the pppoe packets have hash value, and queue group action work
- self.dut.send_expect("flow create 0 ingress pattern eth / pppoes / end actions rss types pppoe end key_len 0 queues end / end", "testpmd> ", 15)
- self._rte_flow_validate_pattern(tvs_ethertype_filter_pppoes_pipeline_mode, False)
-
#non-tunnel pipeline mode
def test_mac_ipv4_frag_pipeline_mode(self):
self._rte_flow_validate_pattern(tvs_mac_ipv4_frag_pipeline_mode)
@@ -5082,499 +3090,7 @@ class CVLSwitchFilterTest(TestCase):
def test_mac_ipv6_tcp_non_pipeline_mode(self):
self._rte_flow_validate_pattern(tvs_mac_ipv6_tcp_non_pipeline_mode)
- # 20.08
- def test_mac_vlan_pppoe_ipv4_pay_non_pipeline_mode(self):
- self._rte_flow_validate_pattern(tvs_mac_vlan_pppoe_ipv4_pay_session_id_proto_id)
-
- def test_mac_vlan_pppoe_ipv6_pay_non_pipeline_mode(self):
- self._rte_flow_validate_pattern(tvs_mac_vlan_pppoe_ipv6_pay_session_id_proto_id)
-
- def test_mac_pppoe_ipv4_pay_session_id_proto_id_non_pipeline_mode(self):
- self._rte_flow_validate_pattern(tvs_mac_pppoe_ipv4_pay_session_id_proto_id)
-
- def test_mac_pppoe_ipv6_pay_session_id_proto_id_non_pipeline_mode(self):
- self._rte_flow_validate_pattern(tvs_mac_pppoe_ipv6_pay_session_id_proto_id)
-
- def test_mac_pppoe_ipv4_pay_ip_address_non_pipeline_mode(self):
- self._rte_flow_validate_pattern(tvs_mac_pppoe_ipv4_pay_ip_address)
-
- def test_mac_pppoe_ipv4_udp_pay_non_pipeline_mode(self):
- self._rte_flow_validate_pattern(tvs_mac_pppoe_ipv4_udp_pay)
-
- def test_mac_pppoe_ipv4_udp_pay_non_src_dst_port_non_pipeline_mode(self):
- self._rte_flow_validate_pattern(tvs_mac_pppoe_ipv4_udp_pay_non_src_dst_port)
-
- def test_mac_pppoe_ipv4_tcp_pay_non_pipeline_mode(self):
- self._rte_flow_validate_pattern(tvs_mac_pppoe_ipv4_tcp_pay)
-
- def test_mac_pppoe_ipv4_tcp_pay_non_src_dst_port_non_pipeline_mode(self):
- self._rte_flow_validate_pattern(tvs_mac_pppoe_ipv4_tcp_pay_non_src_dst_port)
-
- def test_mac_pppoe_ipv6_pay_ip_address_non_pipeline_mode(self):
- self._rte_flow_validate_pattern(tvs_mac_pppoe_ipv6_pay_ip_address)
-
- def test_mac_pppoe_ipv6_udp_pay_non_pipeline_mode(self):
- self._rte_flow_validate_pattern(tvs_mac_pppoe_ipv6_udp_pay)
-
- def test_mac_pppoe_ipv6_udp_pay_non_src_dst_port_non_pipeline_mode(self):
- self._rte_flow_validate_pattern(tvs_mac_pppoe_ipv6_udp_pay_non_src_dst_port)
-
- def test_mac_pppoe_ipv6_tcp_pay_non_pipeline_mode(self):
- self._rte_flow_validate_pattern(tvs_mac_pppoe_ipv6_tcp_pay)
-
- def test_mac_pppoe_ipv6_tcp_pay_non_src_dst_port_non_pipeline_mode(self):
- self._rte_flow_validate_pattern(tvs_mac_pppoe_ipv6_tcp_pay_non_src_dst_port)
-
- def test_mac_vlan_pppoe_ipv4_pay_ip_address_non_pipeline_mode(self):
- self._rte_flow_validate_pattern(tvs_mac_vlan_pppoe_ipv4_pay_ip_address)
-
- def test_mac_vlan_pppoe_ipv4_udp_pay_non_pipeline_mode(self):
- self._rte_flow_validate_pattern(tvs_mac_vlan_pppoe_ipv4_udp_pay)
-
- def test_mac_vlan_pppoe_ipv4_udp_pay_non_src_dst_port_non_pipeline_mode(self):
- self._rte_flow_validate_pattern(tvs_mac_vlan_pppoe_ipv4_udp_pay_non_src_dst_port)
-
- def test_mac_vlan_pppoe_ipv4_tcp_pay_non_pipeline_mode(self):
- self._rte_flow_validate_pattern(tvs_mac_vlan_pppoe_ipv4_tcp_pay)
-
- def test_mac_vlan_pppoe_ipv4_tcp_pay_non_src_dst_port_non_pipeline_mode(self):
- self._rte_flow_validate_pattern(tvs_mac_vlan_pppoe_ipv4_tcp_pay_non_src_dst_port)
-
- def test_mac_vlan_pppoe_ipv6_pay_ip_address_non_pipeline_mode(self):
- self._rte_flow_validate_pattern(tvs_mac_vlan_pppoe_ipv6_pay_ip_address)
-
- def test_mac_vlan_pppoe_ipv6_udp_pay_non_pipeline_mode(self):
- self._rte_flow_validate_pattern(tvs_mac_vlan_pppoe_ipv6_udp_pay)
-
- def test_mac_vlan_pppoe_ipv6_udp_pay_non_src_dst_port_non_pipeline_mode(self):
- self._rte_flow_validate_pattern(tvs_mac_vlan_pppoe_ipv6_udp_pay_non_src_dst_port)
-
- def test_mac_vlan_pppoe_ipv6_tcp_pay_non_pipeline_mode(self):
- self._rte_flow_validate_pattern(tvs_mac_vlan_pppoe_ipv6_tcp_pay)
-
- def test_mac_vlan_pppoe_ipv6_tcp_pay_non_src_dst_port_non_pipeline_mode(self):
- self._rte_flow_validate_pattern(tvs_mac_vlan_pppoe_ipv6_tcp_pay_non_src_dst_port)
-
- # pppoe control
- def test_mac_pppoe_lcp_pay_non_pipeline_mode(self):
- #launch testpmd
- self.launch_testpmd(True)
- #create a pppoe rss rule to make the pppoe control have hash value, and queue group action work
- self.dut.send_expect("flow create 0 ingress pattern eth / pppoes / end actions rss types pppoe end key_len 0 queues end / end", "testpmd> ", 15)
- self._rte_flow_validate_pattern(tvs_mac_pppoe_lcp_pay, False)
-
- def test_mac_pppoe_ipcp_pay_non_pipeline_mode(self):
- #launch testpmd
- self.launch_testpmd(True)
- #create a pppoe rss rule to make the pppoe control have hash value, and queue group action work
- self.dut.send_expect("flow create 0 ingress pattern eth / pppoes / end actions rss types pppoe end key_len 0 queues end / end", "testpmd> ", 15)
- self._rte_flow_validate_pattern(tvs_mac_pppoe_ipcp_pay, False)
-
- def test_mac_vlan_pppoe_lcp_pay_non_pipeline_mode(self):
- #launch testpmd
- self.launch_testpmd(True)
- #create a pppoe rss rule to make the pppoe control have hash value, and queue group action work
- self.dut.send_expect("flow create 0 ingress pattern eth / pppoes / end actions rss types pppoe end key_len 0 queues end / end", "testpmd> ", 15)
- self._rte_flow_validate_pattern(tvs_mac_vlan_pppoe_lcp_pay, False)
-
- def test_mac_vlan_pppoe_ipcp_pay_non_pipeline_mode(self):
- #launch testpmd
- self.launch_testpmd(True)
- #create a pppoe rss rule to make the pppoe control have hash value, and queue group action work
- self.dut.send_expect("flow create 0 ingress pattern eth / pppoes / end actions rss types pppoe end key_len 0 queues end / end", "testpmd> ", 15)
- self._rte_flow_validate_pattern(tvs_mac_vlan_pppoe_ipcp_pay, False)
-
- # 20.08 pipeline mode
- def test_mac_vlan_pppoe_ipv4_pay_pipeline_mode(self):
- tvs_mac_vlan_pppoe_ipv4_pay_session_id_proto_id_pipeline_mode = copy.deepcopy(tvs_mac_vlan_pppoe_ipv4_pay_session_id_proto_id)
- for tv in tvs_mac_vlan_pppoe_ipv4_pay_session_id_proto_id_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- self._rte_flow_validate_pattern(tvs_mac_vlan_pppoe_ipv4_pay_session_id_proto_id_pipeline_mode)
-
- def test_mac_vlan_pppoe_ipv6_pay_pipeline_mode(self):
- tvs_mac_vlan_pppoe_ipv6_pay_session_id_proto_id_pipeline_mode = copy.deepcopy(tvs_mac_vlan_pppoe_ipv6_pay_session_id_proto_id)
- for tv in tvs_mac_vlan_pppoe_ipv6_pay_session_id_proto_id_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- self._rte_flow_validate_pattern(tvs_mac_vlan_pppoe_ipv6_pay_session_id_proto_id_pipeline_mode)
-
- def test_mac_pppoe_ipv4_pay_session_id_proto_id_pipeline_mode(self):
- tvs_mac_pppoe_ipv4_pay_session_id_proto_id_pipeline_mode = copy.deepcopy(tvs_mac_pppoe_ipv4_pay_session_id_proto_id)
- for tv in tvs_mac_pppoe_ipv4_pay_session_id_proto_id_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- self._rte_flow_validate_pattern(tvs_mac_pppoe_ipv4_pay_session_id_proto_id_pipeline_mode)
-
- def test_mac_pppoe_ipv6_pay_session_id_proto_id_pipeline_mode(self):
- tvs_mac_pppoe_ipv6_pay_session_id_proto_id_pipeline_mode = copy.deepcopy(tvs_mac_pppoe_ipv6_pay_session_id_proto_id)
- for tv in tvs_mac_pppoe_ipv6_pay_session_id_proto_id_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- self._rte_flow_validate_pattern(tvs_mac_pppoe_ipv6_pay_session_id_proto_id_pipeline_mode)
-
- def test_mac_pppoe_ipv4_pay_ip_address_pipeline_mode(self):
- tvs_mac_pppoe_ipv4_pay_ip_address_pipeline_mode = copy.deepcopy(tvs_mac_pppoe_ipv4_pay_ip_address)
- for tv in tvs_mac_pppoe_ipv4_pay_ip_address_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- self._rte_flow_validate_pattern(tvs_mac_pppoe_ipv4_pay_ip_address_pipeline_mode)
-
- def test_mac_pppoe_ipv4_udp_pay_pipeline_mode(self):
- tvs_mac_pppoe_ipv4_udp_pay_pipeline_mode = copy.deepcopy(tvs_mac_pppoe_ipv4_udp_pay)
- for tv in tvs_mac_pppoe_ipv4_udp_pay_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- self._rte_flow_validate_pattern(tvs_mac_pppoe_ipv4_udp_pay_pipeline_mode)
-
- def test_mac_pppoe_ipv4_udp_pay_non_src_dst_port_pipeline_mode(self):
- tvs_mac_pppoe_ipv4_udp_pay_non_src_dst_port_pipeline_mode = copy.deepcopy(tvs_mac_pppoe_ipv4_udp_pay_non_src_dst_port)
- for tv in tvs_mac_pppoe_ipv4_udp_pay_non_src_dst_port_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- self._rte_flow_validate_pattern(tvs_mac_pppoe_ipv4_udp_pay_non_src_dst_port_pipeline_mode)
-
- def test_mac_pppoe_ipv4_tcp_pay_pipeline_mode(self):
- tvs_mac_pppoe_ipv4_tcp_pay_pipeline_mode = copy.deepcopy(tvs_mac_pppoe_ipv4_tcp_pay)
- for tv in tvs_mac_pppoe_ipv4_tcp_pay_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- self._rte_flow_validate_pattern(tvs_mac_pppoe_ipv4_tcp_pay_pipeline_mode)
-
- def test_mac_pppoe_ipv4_tcp_pay_non_src_dst_port_pipeline_mode(self):
- tvs_mac_pppoe_ipv4_tcp_pay_non_src_dst_port_pipeline_mode = copy.deepcopy(tvs_mac_pppoe_ipv4_tcp_pay_non_src_dst_port)
- for tv in tvs_mac_pppoe_ipv4_tcp_pay_non_src_dst_port_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- self._rte_flow_validate_pattern(tvs_mac_pppoe_ipv4_tcp_pay_non_src_dst_port_pipeline_mode)
-
- def test_mac_pppoe_ipv6_pay_ip_address_pipeline_mode(self):
- tvs_mac_pppoe_ipv6_pay_ip_address_pipeline_mode = copy.deepcopy(tvs_mac_pppoe_ipv6_pay_ip_address)
- for tv in tvs_mac_pppoe_ipv6_pay_ip_address_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- self._rte_flow_validate_pattern(tvs_mac_pppoe_ipv6_pay_ip_address_pipeline_mode)
-
- def test_mac_pppoe_ipv6_udp_pay_pipeline_mode(self):
- tvs_mac_pppoe_ipv6_udp_pay_pipeline_mode = copy.deepcopy(tvs_mac_pppoe_ipv6_udp_pay)
- for tv in tvs_mac_pppoe_ipv6_udp_pay_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- self._rte_flow_validate_pattern(tvs_mac_pppoe_ipv6_udp_pay_pipeline_mode)
-
- def test_mac_pppoe_ipv6_udp_pay_non_src_dst_port_pipeline_mode(self):
- tvs_mac_pppoe_ipv6_udp_pay_non_src_dst_port_pipeline_mode = copy.deepcopy(tvs_mac_pppoe_ipv6_udp_pay_non_src_dst_port)
- for tv in tvs_mac_pppoe_ipv6_udp_pay_non_src_dst_port_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- self._rte_flow_validate_pattern(tvs_mac_pppoe_ipv6_udp_pay_non_src_dst_port_pipeline_mode)
-
- def test_mac_pppoe_ipv6_tcp_pay_pipeline_mode(self):
- tvs_mac_pppoe_ipv6_tcp_pay_pipeline_mode = copy.deepcopy(tvs_mac_pppoe_ipv6_tcp_pay)
- for tv in tvs_mac_pppoe_ipv6_tcp_pay_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- self._rte_flow_validate_pattern(tvs_mac_pppoe_ipv6_tcp_pay_pipeline_mode)
-
- def test_mac_pppoe_ipv6_tcp_pay_non_src_dst_port_pipeline_mode(self):
- tvs_mac_pppoe_ipv6_tcp_pay_non_src_dst_port_pipeline_mode = copy.deepcopy(tvs_mac_pppoe_ipv6_tcp_pay_non_src_dst_port)
- for tv in tvs_mac_pppoe_ipv6_tcp_pay_non_src_dst_port_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- self._rte_flow_validate_pattern(tvs_mac_pppoe_ipv6_tcp_pay_non_src_dst_port_pipeline_mode)
-
- def test_mac_vlan_pppoe_ipv4_pay_ip_address_pipeline_mode(self):
- tvs_mac_vlan_pppoe_ipv4_pay_ip_address_pipeline_mode = copy.deepcopy(tvs_mac_vlan_pppoe_ipv4_pay_ip_address)
- for tv in tvs_mac_vlan_pppoe_ipv4_pay_ip_address_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- self._rte_flow_validate_pattern(tvs_mac_vlan_pppoe_ipv4_pay_ip_address_pipeline_mode)
-
- def test_mac_vlan_pppoe_ipv4_udp_pay_pipeline_mode(self):
- tvs_mac_vlan_pppoe_ipv4_udp_pay_pipeline_mode = copy.deepcopy(tvs_mac_vlan_pppoe_ipv4_udp_pay)
- for tv in tvs_mac_vlan_pppoe_ipv4_udp_pay_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- self._rte_flow_validate_pattern(tvs_mac_vlan_pppoe_ipv4_udp_pay_pipeline_mode)
-
- def test_mac_vlan_pppoe_ipv4_udp_pay_non_src_dst_port_pipeline_mode(self):
- tvs_mac_vlan_pppoe_ipv4_udp_pay_non_src_dst_port_pipeline_mode = copy.deepcopy(tvs_mac_vlan_pppoe_ipv4_udp_pay_non_src_dst_port)
- for tv in tvs_mac_vlan_pppoe_ipv4_udp_pay_non_src_dst_port_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- self._rte_flow_validate_pattern(tvs_mac_vlan_pppoe_ipv4_udp_pay_non_src_dst_port_pipeline_mode)
-
- def test_mac_vlan_pppoe_ipv4_tcp_pay_pipeline_mode(self):
- tvs_mac_vlan_pppoe_ipv4_tcp_pay_pipeline_mode = copy.deepcopy(tvs_mac_vlan_pppoe_ipv4_tcp_pay)
- for tv in tvs_mac_vlan_pppoe_ipv4_tcp_pay_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- self._rte_flow_validate_pattern(tvs_mac_vlan_pppoe_ipv4_tcp_pay_pipeline_mode)
-
- def test_mac_vlan_pppoe_ipv4_tcp_pay_non_src_dst_port_pipeline_mode(self):
- tvs_mac_vlan_pppoe_ipv4_tcp_pay_non_src_dst_port_pipeline_mode = copy.deepcopy(tvs_mac_vlan_pppoe_ipv4_tcp_pay_non_src_dst_port)
- for tv in tvs_mac_vlan_pppoe_ipv4_tcp_pay_non_src_dst_port_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- self._rte_flow_validate_pattern(tvs_mac_vlan_pppoe_ipv4_tcp_pay_non_src_dst_port_pipeline_mode)
-
- def test_mac_vlan_pppoe_ipv6_pay_ip_address_pipeline_mode(self):
- tvs_mac_vlan_pppoe_ipv6_pay_ip_address_pipeline_mode = copy.deepcopy(tvs_mac_vlan_pppoe_ipv6_pay_ip_address)
- for tv in tvs_mac_vlan_pppoe_ipv6_pay_ip_address_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- self._rte_flow_validate_pattern(tvs_mac_vlan_pppoe_ipv6_pay_ip_address_pipeline_mode)
-
- def test_mac_vlan_pppoe_ipv6_udp_pay_pipeline_mode(self):
- tvs_mac_vlan_pppoe_ipv6_udp_pay_pipeline_mode = copy.deepcopy(tvs_mac_vlan_pppoe_ipv6_udp_pay)
- for tv in tvs_mac_vlan_pppoe_ipv6_udp_pay_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- self._rte_flow_validate_pattern(tvs_mac_vlan_pppoe_ipv6_udp_pay_pipeline_mode)
-
- def test_mac_vlan_pppoe_ipv6_udp_pay_non_src_dst_port_pipeline_mode(self):
- tvs_mac_vlan_pppoe_ipv6_udp_pay_non_src_dst_port_pipeline_mode = copy.deepcopy(tvs_mac_vlan_pppoe_ipv6_udp_pay_non_src_dst_port)
- for tv in tvs_mac_vlan_pppoe_ipv6_udp_pay_non_src_dst_port_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- self._rte_flow_validate_pattern(tvs_mac_vlan_pppoe_ipv6_udp_pay_non_src_dst_port_pipeline_mode)
-
- def test_mac_vlan_pppoe_ipv6_tcp_pay_pipeline_mode(self):
- tvs_mac_vlan_pppoe_ipv6_tcp_pay_pipeline_mode = copy.deepcopy(tvs_mac_vlan_pppoe_ipv6_tcp_pay)
- for tv in tvs_mac_vlan_pppoe_ipv6_tcp_pay_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- self._rte_flow_validate_pattern(tvs_mac_vlan_pppoe_ipv6_tcp_pay_pipeline_mode)
-
- def test_mac_vlan_pppoe_ipv6_tcp_pay_non_src_dst_port_pipeline_mode(self):
- tvs_mac_vlan_pppoe_ipv6_tcp_pay_non_src_dst_port_pipeline_mode = copy.deepcopy(tvs_mac_vlan_pppoe_ipv6_tcp_pay_non_src_dst_port)
- for tv in tvs_mac_vlan_pppoe_ipv6_tcp_pay_non_src_dst_port_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- self._rte_flow_validate_pattern(tvs_mac_vlan_pppoe_ipv6_tcp_pay_non_src_dst_port_pipeline_mode)
-
- # 20.08 pppoe control
- def test_mac_pppoe_lcp_pay_pipeline_mode(self):
- tvs_mac_pppoe_lcp_pay_pipeline_mode = copy.deepcopy(tvs_mac_pppoe_lcp_pay)
- for tv in tvs_mac_pppoe_lcp_pay_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- #launch testpmd
- self.launch_testpmd(False)
- #create a pppoe rss rule to make the pppoe control have hash value, and queue group action work
- self.dut.send_expect("flow create 0 ingress pattern eth / pppoes / end actions rss types pppoe end key_len 0 queues end / end", "testpmd> ", 15)
- self._rte_flow_validate_pattern(tvs_mac_pppoe_lcp_pay_pipeline_mode, False)
-
- def test_mac_pppoe_ipcp_pay_pipeline_mode(self):
- tvs_mac_pppoe_ipcp_pay_pipeline_mode = copy.deepcopy(tvs_mac_pppoe_ipcp_pay)
- for tv in tvs_mac_pppoe_ipcp_pay_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- #launch testpmd
- self.launch_testpmd(False)
- #create a pppoe rss rule to make the pppoe control have hash value, and queue group action work
- self.dut.send_expect("flow create 0 ingress pattern eth / pppoes / end actions rss types pppoe end key_len 0 queues end / end", "testpmd> ", 15)
- self._rte_flow_validate_pattern(tvs_mac_pppoe_ipcp_pay_pipeline_mode, False)
-
- def test_mac_vlan_pppoe_lcp_pay_pipeline_mode(self):
- tvs_mac_vlan_pppoe_lcp_pay_pipeline_mode = copy.deepcopy(tvs_mac_vlan_pppoe_lcp_pay)
- for tv in tvs_mac_vlan_pppoe_lcp_pay_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- #launch testpmd
- self.launch_testpmd(False)
- #create a pppoe rss rule to make the pppoe control have hash value, and queue group action work
- self.dut.send_expect("flow create 0 ingress pattern eth / pppoes / end actions rss types pppoe end key_len 0 queues end / end", "testpmd> ", 15)
- self._rte_flow_validate_pattern(tvs_mac_vlan_pppoe_lcp_pay_pipeline_mode, False)
-
- def test_mac_vlan_pppoe_ipcp_pay_pipeline_mode(self):
- tvs_mac_vlan_pppoe_ipcp_pay_pipeline_mode = copy.deepcopy(tvs_mac_vlan_pppoe_ipcp_pay)
- for tv in tvs_mac_vlan_pppoe_ipcp_pay_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- #launch testpmd
- self.launch_testpmd(False)
- #create a pppoe rss rule to make the pppoe control have hash value, and queue group action work
- self.dut.send_expect("flow create 0 ingress pattern eth / pppoes / end actions rss types pppoe end key_len 0 queues end / end", "testpmd> ", 15)
- self._rte_flow_validate_pattern(tvs_mac_vlan_pppoe_ipcp_pay_pipeline_mode, False)
-
- def test_negative_case(self):
- """
- negative cases
- """
- self.launch_testpmd(False)
- rules = {
- "invalid parameters of queue index" : "flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions queue index 16 / end",
- "invalid parameters of rss queues" : [
- "flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions rss queues 1 2 3 end / end",
- "flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions rss queues 0 end / end",
- "flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions rss queues end / end",
- "flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions rss queues 1 2 3 5 end / end",
- "flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions rss queues 15 16 end / end",
- "flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions rss queues 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 end / end"],
- "unsupported input set" : "flow create 0 priority 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 tos is 4 / end actions queue index 1 / end",
- "multiple actions" : "flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions queue index 1 / rss queues 2 3 end / end",
- "void action" : "flow create 0 priority 0 ingress pattern eth / ipv4 / udp src is 25 dst is 23 / end actions end",
- "unsupported action": "flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions mark id 1 / end",
- "void input set value" : "flow create 0 priority 0 ingress pattern eth / ipv4 / end actions queue index 1 / end",
- "invalid port" : "flow create 1 priority 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions queue index 1 / end"
- }
- # all the rules failed to validate and create
-
- # invalid parameters of queue index
- rule_list = self.validate_switch_filter_rule(rules["invalid parameters of queue index"], check_stats=False)
- self.verify(not any(rule_list), "all rules should validate failed, result %s" % rule_list)
- result = self.check_switch_filter_rule_list(self.dut_ports[0], is_non_pipeline=False, is_need_rss_rule=False, check_stats=False)
- self.verify(result == [], "the rule list is not the same. expect %s, result %s" % ([], result))
- rule_list = self.create_switch_filter_rule(rules["invalid parameters of queue index"], check_stats=False)
- self.verify(not any(rule_list), "all rules should create failed, result %s" % rule_list)
- result = self.check_switch_filter_rule_list(self.dut_ports[0], is_non_pipeline=False, is_need_rss_rule=False, check_stats=False)
- self.verify(result == [], "the rule list is not the same. expect %s, result %s" % ([], result))
-
- # invalid parameters of rss queues
- rule_list = self.validate_switch_filter_rule(rules["invalid parameters of rss queues"], check_stats=False)
- self.verify(not any(rule_list), "all rules should validate failed, result %s" % rule_list)
- result = self.check_switch_filter_rule_list(self.dut_ports[0], is_non_pipeline=False, is_need_rss_rule=False, check_stats=False)
- self.verify(result == [], "the rule list is not the same. expect %s, result %s" % ([], result))
- rule_list = self.create_switch_filter_rule(rules["invalid parameters of rss queues"], check_stats=False)
- self.verify(not any(rule_list), "all rules should create failed, result %s" % rule_list)
- result = self.check_switch_filter_rule_list(self.dut_ports[0], is_non_pipeline=False, is_need_rss_rule=False, check_stats=False)
- self.verify(result == [], "the rule list is not the same. expect %s, result %s" % ([], result))
-
- # unsupported input set
- rule_list = self.validate_switch_filter_rule(rules["unsupported input set"], check_stats=False)
- self.verify(not any(rule_list), "all rules should validate failed, result %s" % rule_list)
- result = self.check_switch_filter_rule_list(self.dut_ports[0], is_non_pipeline=False, is_need_rss_rule=False, check_stats=False)
- self.verify(result == [], "the rule list is not the same. expect %s, result %s" % ([], result))
- rule_list = self.create_switch_filter_rule(rules["unsupported input set"], check_stats=False)
- self.verify(not any(rule_list), "all rules should create failed, result %s" % rule_list)
- result = self.check_switch_filter_rule_list(self.dut_ports[0], is_non_pipeline=False, is_need_rss_rule=False, check_stats=False)
- self.verify(result == [], "the rule list is not the same. expect %s, result %s" % ([], result))
-
- # duplicated rules
- rule = "flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions queue index 1 / end"
- rule_list = self.create_switch_filter_rule(rule, check_stats=False)
- self.verify(all(rule_list), "some rules create failed, result %s" % rule_list)
- result = self.check_switch_filter_rule_list(self.dut_ports[0], is_non_pipeline=False, is_need_rss_rule=False, check_stats=False)
- self.verify(result == rule_list, "the rule list is not the same. expect %s, result %s" % (rule_list, result))
- rule_list_dupli = self.create_switch_filter_rule(rule, check_stats=False)
- self.verify(not any(rule_list_dupli), "all rules should create failed, result %s" % rule_list_dupli)
- result_dupli = self.check_switch_filter_rule_list(self.dut_ports[0], is_non_pipeline=False, is_need_rss_rule=False, check_stats=False)
- self.verify(result_dupli == rule_list, "the rule list is not the same. expect %s, result %s" % (rule_list, result_dupli))
- self.dut.send_expect("flow destroy 0 rule %s" % rule_list[0], "testpmd> ", 15)
-
- # conflicted rules
- rule = "flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions queue index 1 / end"
- rule_list = self.create_switch_filter_rule(rule, check_stats=False)
- self.verify(all(rule_list), "some rules create failed, result %s, rule %s" % (rule_list, rule))
- result = self.check_switch_filter_rule_list(self.dut_ports[0], is_non_pipeline=False, is_need_rss_rule=False, check_stats=False)
- self.verify(result == rule_list, "the rule list is not the same. expect %s, result %s" % (rule_list, result))
- rule1 = "flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions queue index 2 / end"
- rule_list1 = self.create_switch_filter_rule(rule1, check_stats=False)
- self.verify(not any(rule_list1), "all rules should create failed, result %s" % rule_list1)
- rule2 = "flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions drop / end"
- rule_list2 = self.create_switch_filter_rule(rule2, check_stats=False)
- self.verify(not any(rule_list2), "all rules should create failed, result %s" % rule_list2)
- result1 = self.check_switch_filter_rule_list(self.dut_ports[0], is_non_pipeline=False, is_need_rss_rule=False, check_stats=False)
- self.verify(result1 == rule_list, "the rule list is not the same. expect %s, result %s" % (rule_list, result1))
- self.dut.send_expect("flow destroy 0 rule %s" % rule_list[0], "testpmd> ", 15)
-
- # multiple actions
- rule_list = self.validate_switch_filter_rule(rules["multiple actions"], check_stats=False)
- self.verify(not any(rule_list), "all rules should validate failed, result %s" % rule_list)
- result = self.check_switch_filter_rule_list(self.dut_ports[0], is_non_pipeline=False, is_need_rss_rule=False, check_stats=False)
- self.verify(result == [], "the rule list is not the same. expect %s, result %s" % ([], result))
- rule_list = self.create_switch_filter_rule(rules["multiple actions"], check_stats=False)
- self.verify(not any(rule_list), "all rules should create failed, result %s" % rule_list)
- result = self.check_switch_filter_rule_list(self.dut_ports[0], is_non_pipeline=False, is_need_rss_rule=False, check_stats=False)
- self.verify(result == [], "the rule list is not the same. expect %s, result %s" % ([], result))
-
- # void action
- rule_list = self.validate_switch_filter_rule(rules["void action"], check_stats=False)
- self.verify(not any(rule_list), "all rules should validate failed, result %s" % rule_list)
- result = self.check_switch_filter_rule_list(self.dut_ports[0], is_non_pipeline=False, is_need_rss_rule=False, check_stats=False)
- self.verify(result == [], "the rule list is not the same. expect %s, result %s" % ([], result))
- rule_list = self.create_switch_filter_rule(rules["void action"], check_stats=False)
- self.verify(not any(rule_list), "all rules should create failed, result %s" % rule_list)
- result = self.check_switch_filter_rule_list(self.dut_ports[0], is_non_pipeline=False, is_need_rss_rule=False, check_stats=False)
- self.verify(result == [], "the rule list is not the same. expect %s, result %s" % ([], result))
-
- # delete a non-existing rule
- result = self.check_switch_filter_rule_list(self.dut_ports[0], is_non_pipeline=False, is_need_rss_rule=False, check_stats=False)
- self.verify(result == [], "the rule list is not the same. expect %s, result %s" % ([], result))
- out = self.dut.send_expect("flow destroy 0 rule 0", "testpmd> ", 15)
- self.verify("error" not in out, "It should be no error message.")
-
- # add long switch rule
- rule = "flow create 0 priority 0 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp src is 25 dst is 23 / end actions queue index 1 / end"
- rule_list = self.validate_switch_filter_rule(rule, check_stats=False)
- self.verify(not any(rule_list), "all rules should validate failed, result %s" % rule_list)
- result = self.check_switch_filter_rule_list(self.dut_ports[0], is_non_pipeline=False, is_need_rss_rule=False, check_stats=False)
- self.verify(result == [], "the rule list is not the same. expect %s, result %s" % ([], result))
- rule_list = self.create_switch_filter_rule(rule, check_stats=False)
- self.verify(not any(rule_list), "all rules should create failed, result %s" % rule_list)
- result = self.check_switch_filter_rule_list(self.dut_ports[0], is_non_pipeline=False, is_need_rss_rule=False, check_stats=False)
- self.verify(result == [], "the rule list is not the same. expect %s, result %s" % ([], result))
- tvs_mac_pppoe_ipv6_udp_pay_pipeline_mode = copy.deepcopy(tvs_mac_pppoe_ipv6_udp_pay)
- for tv in tvs_mac_pppoe_ipv6_udp_pay_pipeline_mode:
- create_rule = tv["rte_flow_pattern"].replace("flow create 0", "flow create 0 priority 0")
- tv["rte_flow_pattern"] = create_rule
- tv["configuration"]["is_non_pipeline"] = False
- self._rte_flow_validate_pattern(tvs_mac_pppoe_ipv6_udp_pay_pipeline_mode, False)
-
- # void input set value
- rule_list = self.validate_switch_filter_rule(rules["void input set value"], check_stats=False)
- self.verify(not any(rule_list), "all rules should validate failed, result %s" % rule_list)
- result = self.check_switch_filter_rule_list(self.dut_ports[0], is_non_pipeline=False, is_need_rss_rule=False, check_stats=False)
- self.verify(result == [], "the rule list is not the same. expect %s, result %s" % ([], result))
- rule_list = self.create_switch_filter_rule(rules["void input set value"], check_stats=False)
- self.verify(not any(rule_list), "all rules should create failed, result %s" % rule_list)
- result = self.check_switch_filter_rule_list(self.dut_ports[0], is_non_pipeline=False, is_need_rss_rule=False, check_stats=False)
- self.verify(result == [], "the rule list is not the same. expect %s, result %s" % ([], result))
-
- # invalid port
- rule_list = self.validate_switch_filter_rule(rules["invalid port"], check_stats=False)
- self.verify(not any(rule_list), "all rules should validate failed, result %s" % rule_list)
- result = self.check_switch_filter_rule_list(self.dut_ports[0], is_non_pipeline=False, is_need_rss_rule=False, check_stats=False)
- self.verify(result == [], "the rule list is not the same. expect %s, result %s" % ([], result))
- result = self.check_switch_filter_rule_list(self.dut_ports[1], is_non_pipeline=False, is_need_rss_rule=False, check_stats=False)
- self.verify(result == [], "the rule list is not the same. expect %s, result %s" % (rule_list, result))
- rule_list = self.create_switch_filter_rule(rules["invalid port"], check_stats=False)
- self.verify(not any(rule_list), "all rules should create failed, result %s" % rule_list)
- # check there is no rule listed
- result = self.check_switch_filter_rule_list(self.dut_ports[0], is_non_pipeline=False, is_need_rss_rule=False, check_stats=False)
- self.verify(result == [], "the rule list is not the same. expect %s, result %s" % (rule_list, result))
- result = self.check_switch_filter_rule_list(self.dut_ports[1], is_non_pipeline=False, is_need_rss_rule=False, check_stats=False)
- self.verify(result == [], "the rule list is not the same. expect %s, result %s" % (rule_list, result))
-
+ @skip_unsupported_pkg(['comms', 'wireless'])
def test_unsupported_pattern_in_OS_default_package(self):
"""
Validate and create PPPOE rule, GTPU rule, PFCP rule, l2tpv3 rule, esp rule and ah rule with OS default package
@@ -5585,12 +3101,6 @@ class CVLSwitchFilterTest(TestCase):
"flow create 0 priority 0 ingress pattern eth / ipv4 / l2tpv3oip session_id is 17 / end actions rss queues 2 3 end / end",
"flow create 0 priority 0 ingress pattern eth / ipv6 / udp / esp spi is 8 / end actions rss queues 2 3 end / end",
"flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / ah spi is 1 / end actions queue index 1 / end"]
- #bind pf to kernel
- self.bind_nics_driver(self.dut_ports, driver="ice")
- self.dut.send_expect("cp %s %s" % (self.os_package_location, self.package_location), "# ")
- self.re_load_ice_driver()
- #bind pf to vfio-pci
- self.bind_nics_driver(self.dut_ports, driver="vfio-pci")
self.launch_testpmd(False)
rule_list = self.validate_switch_filter_rule(rule, check_stats=False)
@@ -5607,14 +3117,11 @@ class CVLSwitchFilterTest(TestCase):
Run after each test case.
"""
# destroy all the rules on port 0
- self.dut.send_expect("flow flush %d" % self.dut_ports[0], "testpmd> ", 300)
+ if self.running_case == "test_unsupported_pattern_in_OS_default_package":
+ pass
+ else:
+ self.dut.send_expect("flow flush %d" % self.dut_ports[0], "testpmd> ", 15)
self.dut.send_expect("quit", "#")
- if self.running_case == "test_unsupported_pattern_in_OS_default_package":
- self.bind_nics_driver(self.dut_ports, driver="ice")
- self.dut.send_expect("cp %s %s" % (self.comms_package_location, self.package_location), "# ")
- self.re_load_ice_driver()
- #bind pf to vfio-pci
- self.bind_nics_driver(self.dut_ports, driver="vfio-pci")
def tear_down_all(self):
"""
--
1.8.3.1
next prev parent reply other threads:[~2021-03-18 5:40 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-18 5:27 [dts] [PATCH V1 0/8] modified suite to support " Zhimin Huang
2021-03-18 5:27 ` [dts] [PATCH V1 1/8] tests/cvl_advanced_rss_pppoe:rename pppoe suite Zhimin Huang
2021-03-18 5:27 ` [dts] [PATCH V1 2/8] add decorator to support nic and pkg check Zhimin Huang
2021-03-18 5:27 ` [dts] [PATCH V1 3/8] tests/cvl_advanced_rss_pppoe:support " Zhimin Huang
2021-03-18 5:27 ` [dts] [PATCH V1 4/8] tests/cvl_dcf_switch_filter:support " Zhimin Huang
2021-03-18 5:27 ` Zhimin Huang [this message]
2021-03-18 5:27 ` [dts] [PATCH V1 6/8] tests/cvl_advanced_rss_vlan_esp_ah_l2tp_pfcp:split pppoe into new suite Zhimin Huang
2021-03-18 5:27 ` [dts] [PATCH V1 7/8] tests/cvl_dcf_switch_filter_pppoe:split " Zhimin Huang
2021-03-18 5:27 ` [dts] [PATCH V1 8/8] tests/cvl_switch_filter_pppoe:split " Zhimin Huang
2021-03-19 8:54 ` [dts] [PATCH V1 0/8] modified suite to support pkg check Tu, Lijuan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1616045251-65532-6-git-send-email-zhiminx.huang@intel.com \
--to=zhiminx.huang@intel.com \
--cc=dts@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).