summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorsongyanchao <[email protected]>2024-01-12 09:18:53 +0000
committersongyanchao <[email protected]>2024-01-12 09:18:53 +0000
commitdaaf9316fb1acd9620ff7a7c592d5567130a873a (patch)
tree7876ec6e5aa7f1ceb2f77511ad0658456ba03707 /test
parentd61f6b7b9c1fd4955074c9a49ecb07a5adb6803f (diff)
✨ feat(DPISDN-33): Support non-contiguous configuration for Ef adapter id.
Support non-contiguous configuration for Ef adapter id.
Diffstat (limited to 'test')
-rw-r--r--test/CMakeLists.txt2
-rw-r--r--test/bfd_test.py6
-rw-r--r--test/bridge_test.py6
-rw-r--r--test/classifier_test.py18
-rw-r--r--test/endpoint_dev_test.py6
-rw-r--r--test/etherfabric_test.py234
-rw-r--r--test/health_check_test.py6
-rw-r--r--test/load_balance_test.py6
-rw-r--r--test/msgpack_test.py18
-rw-r--r--test/tera_test.py36
-rw-r--r--test/vwire_test.py12
11 files changed, 349 insertions, 1 deletions
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index fa518bb..d2dacd6 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -75,7 +75,7 @@ add_test(
NAME etherfabric_test
COMMAND /usr/local/bin/ptf --test-dir ${CMAKE_SOURCE_DIR}/test
--interface 0@veth0-ptf0
- virtual_wire_mode tap_mode ef_route_ctx_test --test-params "source_dir='${CMAKE_SOURCE_DIR}'"
+ virtual_wire_mode tap_mode ef_route_ctx_test ef_adapter_id_non_contiguous_test --test-params "source_dir='${CMAKE_SOURCE_DIR}'"
)
# Add health_check test
diff --git a/test/bfd_test.py b/test/bfd_test.py
index 049a7f9..06ec56f 100644
--- a/test/bfd_test.py
+++ b/test/bfd_test.py
@@ -26,6 +26,12 @@ iocore = 1
distmode = 2
hashmode = 0
+[limits]
+nr_max_ef_adapters=32
+nr_max_vwires=32
+nr_max_tera_adapters=32
+nr_max_link_dbs=32
+
[eal]
virtaddr = 0x600000000000
loglevel = 7
diff --git a/test/bridge_test.py b/test/bridge_test.py
index fca9d42..bf1dfff 100644
--- a/test/bridge_test.py
+++ b/test/bridge_test.py
@@ -45,6 +45,12 @@ iocore=1
distmode=2
hashmode=0
+[limits]
+nr_max_ef_adapters=32
+nr_max_vwires=32
+nr_max_tera_adapters=32
+nr_max_link_dbs=32
+
[eal]
virtaddr=0x600000000000
loglevel=7
diff --git a/test/classifier_test.py b/test/classifier_test.py
index 686a2a7..8d9a4ac 100644
--- a/test/classifier_test.py
+++ b/test/classifier_test.py
@@ -52,6 +52,12 @@ iocore=1
distmode=2
hashmode=0
+[limits]
+nr_max_ef_adapters=32
+nr_max_vwires=32
+nr_max_tera_adapters=32
+nr_max_link_dbs=32
+
[eal]
virtaddr=0x600000000000
loglevel=7
@@ -504,6 +510,12 @@ iocore=1
distmode=2
hashmode=0
+[limits]
+nr_max_ef_adapters=32
+nr_max_vwires=32
+nr_max_tera_adapters=32
+nr_max_link_dbs=32
+
[eal]
virtaddr=0x600000000000
loglevel=7
@@ -770,6 +782,12 @@ iocore=1
distmode=2
hashmode=0
+[limits]
+nr_max_ef_adapters=32
+nr_max_vwires=32
+nr_max_tera_adapters=32
+nr_max_link_dbs=32
+
[eal]
virtaddr=0x600000000000
loglevel=7
diff --git a/test/endpoint_dev_test.py b/test/endpoint_dev_test.py
index e9fcce5..fa46b44 100644
--- a/test/endpoint_dev_test.py
+++ b/test/endpoint_dev_test.py
@@ -25,6 +25,12 @@ iocore=1
distmode=2
hashmode=0
+[limits]
+nr_max_ef_adapters=32
+nr_max_vwires=32
+nr_max_tera_adapters=32
+nr_max_link_dbs=32
+
[eal]
virtaddr=0x600000000000
loglevel=7
diff --git a/test/etherfabric_test.py b/test/etherfabric_test.py
index a974426..2cbfc89 100644
--- a/test/etherfabric_test.py
+++ b/test/etherfabric_test.py
@@ -25,6 +25,12 @@ iocore=1
distmode=2
hashmode=0
+[limits]
+nr_max_ef_adapters=32
+nr_max_vwires=32
+nr_max_tera_adapters=32
+nr_max_link_dbs=32
+
[eal]
virtaddr=0x600000000000
loglevel=7
@@ -74,6 +80,7 @@ sid_end=200
max_rules=256
[ef_adapter:0]
+ef_adapter_id=0
mode=virtual-wire
listen_device=veth0
"""
@@ -123,6 +130,12 @@ iocore=1
distmode=2
hashmode=0
+[limits]
+nr_max_ef_adapters=32
+nr_max_vwires=32
+nr_max_tera_adapters=32
+nr_max_link_dbs=32
+
[eal]
virtaddr=0x600000000000
loglevel=7
@@ -172,6 +185,7 @@ sid_end=200
max_rules=256
[ef_adapter:0]
+ef_adapter_id=0
mode=tap
listen_device=veth0
"""
@@ -242,6 +256,12 @@ iocore=1
distmode=2
hashmode=0
+[limits]
+nr_max_ef_adapters=32
+nr_max_vwires=32
+nr_max_tera_adapters=32
+nr_max_link_dbs=32
+
[eal]
virtaddr=0x600000000000
loglevel=7
@@ -291,6 +311,7 @@ sid_start=1000
sid_end=2000
[ef_adapter:0]
+ef_adapter_id=0
mode=virtual-wire
listen_device=veth0
@@ -342,3 +363,216 @@ class IPv4TestForRouteCtx(BaseTest):
verify_packets(self, verify_pkt, [0])
finally:
mrzcpd.stop()
+
+start_conf_with_non_contiguous_test = """
+[device]
+device = veth0,veth1,veth2,veth3,veth4,veth5
+sz_tunnel = 8192
+sz_buffer = 0
+
+[device:veth0]
+in_addr=10.254.60.100
+in_mask=255.255.255.0
+promisc = 1
+mtu = 1500
+driver = 2
+role = 3
+
+[device:veth1]
+promisc = 1
+mtu = 1500
+driver=2
+role=4
+
+[device:veth2]
+in_addr=10.254.60.101
+in_mask=255.255.255.0
+promisc = 1
+mtu = 1500
+driver = 2
+role = 3
+
+[device:veth3]
+promisc = 1
+mtu = 1500
+driver=2
+role=4
+
+[device:veth4]
+in_addr=10.254.60.102
+in_mask=255.255.255.0
+promisc = 1
+mtu = 1500
+driver = 2
+role = 3
+
+[device:veth5]
+promisc = 1
+mtu = 1500
+driver=2
+role=4
+
+[service]
+iocore = 1
+distmode = 2
+hashmode = 0
+
+[limits]
+nr_max_ef_adapters=32
+nr_max_vwires=32
+nr_max_tera_adapters=32
+nr_max_link_dbs=32
+
+[eal]
+virtaddr = 0x600000000000
+loglevel = 7
+nohuge = 1
+mem = 65535
+
+[keepalive]
+check_spinlock = 1
+
+[ctrlzone]
+ctrlzone0 = tunnat, 64
+ctrlzone1 = vsys, 64
+
+[pool]
+create_mode = 3
+sz_direct_pktmbuf = 4096
+sz_indirect_pktmbuf = 4096
+sz_cache = 256
+sz_data = 3000
+
+[ctrlmsg]
+listen_addr = 0.0.0.0
+listen_port = 46789
+
+[rpc]
+addr = 127.0.0.1
+port = 56789
+
+# sid
+[ef_adapters]
+sid_start=100
+sid_end=200
+max_rules=256
+
+[vwires]
+sid_start=300
+sid_end=400
+max_rules=256
+
+[service_lb]
+sid_start=1000
+sid_end=2000
+
+# load balance
+[load_balance:0]
+mode=balance
+devices=veth1,normal
+
+[load_balance:1]
+mode=balance
+devices=veth3,normal
+
+[load_balance:2]
+mode=balance
+devices=veth5,normal
+
+# adapter
+[ef_adapter:0]
+ef_adapter_id=0
+mode=virtual-wire
+listen_device=veth0
+
+[ef_adapter:1]
+ef_adapter_id=2
+mode=virtual-wire
+listen_device=veth2
+
+[ef_adapter:2]
+ef_adapter_id=4
+mode=virtual-wire
+listen_device=veth4
+"""
+
+dynamic_conf_with_non_contiguous_test = """
+[classifier_rule:0]
+rule_id=1
+ruleset_type=classifier
+action=nf_steering
+priority=1
+category=0
+sid=1000
+ef_adapter_id=0
+
+[classifier_rule:1]
+rule_id=2
+ruleset_type=classifier
+action=nf_steering
+priority=1
+category=0
+sid=1001
+ef_adapter_id=2
+
+[classifier_rule:2]
+rule_id=2
+ruleset_type=classifier
+action=nf_steering
+priority=1
+category=0
+sid=1002
+ef_adapter_id=4
+"""
+
+"""
+ +--------------+ +----------++-----------+----------+
+ | PTF | | Mrzcpd |
+ +--------------+ +----------++-----------+----------+ +------------+
+ | veth0-ptf0 | ---> | veth0 | | veth1 | ---> | veth1-ptf1 |
+ +--------------+ +----------+ +----------+ +------------+
+ | veth2-ptf2 | <-\- | veth2 | | veth3 | ---> | veth3-ptf3 |
+ +--------------+ +----------+ +----------+ +------------+
+ | veth4-ptf4 | ---> | veth4 | | veth5 | ---> | veth5-ptf5 |
+ +--------------+ +----------+ +----------+ +------------+
+"""
+@group("ef_adapter_id_non_contiguous_test")
+class EfAdapterIdNonContiguousTest(BaseTest):
+ # Base test init
+ def __init__(self):
+ BaseTest.__init__(self)
+
+ # Dataplane set up
+ def setUp(self):
+ self.dataplane = ptf.dataplane_instance
+
+ # Run test
+ def runTest(self):
+ try:
+ # Init & Start mrzcpd
+ mrzcpd = Mrzcpd(start_conf_with_non_contiguous_test,dynamic_conf_with_non_contiguous_test)
+ mrzcpd.start()
+
+ send_pkts = []
+ verify_pkts = []
+
+ # Create packets
+ for i in range(0,3):
+ tcp_pkt = simple_tcp_packet()
+ verify_pkts.append(tcp_pkt)
+
+ send_pkts.append(simple_vxlan_packet(eth_src='0a:0a:0a:0a:01:28',
+ eth_dst='10:70:fd:03:c0:bd',
+ ip_src='10.254.50.' + str(100 + i), ip_dst='10.254.60.' + str(100 + i),
+ vxlan_vni=32,inner_frame=tcp_pkt))
+
+
+ # Traverse all ports
+ for i in range(0, 3):
+ # Send pkt for the port
+ send_packet(self, i * 2 , send_pkts[i])
+ # Verify pkt for specified port
+ verify_packets(self, verify_pkts[i], [1 + i*2])
+
+ finally:
+ mrzcpd.stop()
diff --git a/test/health_check_test.py b/test/health_check_test.py
index c32f83a..71a48d9 100644
--- a/test/health_check_test.py
+++ b/test/health_check_test.py
@@ -23,6 +23,12 @@ iocore=1
distmode=2
hashmode=0
+[limits]
+nr_max_ef_adapters=32
+nr_max_vwires=32
+nr_max_tera_adapters=32
+nr_max_link_dbs=32
+
[eal]
virtaddr=0x600000000000
loglevel=7
diff --git a/test/load_balance_test.py b/test/load_balance_test.py
index 78aa758..f762214 100644
--- a/test/load_balance_test.py
+++ b/test/load_balance_test.py
@@ -47,6 +47,12 @@ iocore=1
distmode=2
hashmode=0
+[limits]
+nr_max_ef_adapters=32
+nr_max_vwires=32
+nr_max_tera_adapters=32
+nr_max_link_dbs=32
+
[eal]
virtaddr=0x600000000000
loglevel=7
diff --git a/test/msgpack_test.py b/test/msgpack_test.py
index f5e1c9e..d46955f 100644
--- a/test/msgpack_test.py
+++ b/test/msgpack_test.py
@@ -41,6 +41,12 @@ iocore=1
distmode=2
hashmode=0
+[limits]
+nr_max_ef_adapters=32
+nr_max_vwires=32
+nr_max_tera_adapters=32
+nr_max_link_dbs=32
+
[eal]
virtaddr=0x600000000000
loglevel=7
@@ -181,6 +187,12 @@ iocore=1
distmode=2
hashmode=0
+[limits]
+nr_max_ef_adapters=32
+nr_max_vwires=32
+nr_max_tera_adapters=32
+nr_max_link_dbs=32
+
[eal]
virtaddr=0x600000000000
loglevel=7
@@ -329,6 +341,12 @@ iocore=1
distmode=2
hashmode=0
+[limits]
+nr_max_ef_adapters=32
+nr_max_vwires=32
+nr_max_tera_adapters=32
+nr_max_link_dbs=32
+
[eal]
virtaddr=0x600000000000
loglevel=7
diff --git a/test/tera_test.py b/test/tera_test.py
index bb11883..2a596f3 100644
--- a/test/tera_test.py
+++ b/test/tera_test.py
@@ -26,6 +26,12 @@ iocore=1
distmode=2
hashmode=0
+[limits]
+nr_max_ef_adapters=32
+nr_max_vwires=32
+nr_max_tera_adapters=32
+nr_max_link_dbs=32
+
[eal]
virtaddr=0x600000000000
loglevel=7
@@ -131,6 +137,12 @@ iocore=1
distmode=2
hashmode=0
+[limits]
+nr_max_ef_adapters=32
+nr_max_vwires=32
+nr_max_tera_adapters=32
+nr_max_link_dbs=32
+
[eal]
virtaddr=0x600000000000
loglevel=7
@@ -241,6 +253,12 @@ iocore=1
distmode=2
hashmode=0
+[limits]
+nr_max_ef_adapters=32
+nr_max_vwires=32
+nr_max_tera_adapters=32
+nr_max_link_dbs=32
+
[eal]
virtaddr=0x600000000000
loglevel=7
@@ -564,6 +582,12 @@ iocore=1
distmode=2
hashmode=0
+[limits]
+nr_max_ef_adapters=32
+nr_max_vwires=32
+nr_max_tera_adapters=32
+nr_max_link_dbs=32
+
[eal]
virtaddr=0x600000000000
loglevel=7
@@ -994,6 +1018,12 @@ iocore=1
distmode=2
hashmode=0
+[limits]
+nr_max_ef_adapters=32
+nr_max_vwires=32
+nr_max_tera_adapters=32
+nr_max_link_dbs=32
+
[eal]
virtaddr=0x600000000000
loglevel=7
@@ -1317,6 +1347,12 @@ iocore=1
distmode=2
hashmode=0
+[limits]
+nr_max_ef_adapters=32
+nr_max_vwires=32
+nr_max_tera_adapters=32
+nr_max_link_dbs=32
+
[eal]
virtaddr=0x600000000000
loglevel=7
diff --git a/test/vwire_test.py b/test/vwire_test.py
index fa9141d..3d8e7b8 100644
--- a/test/vwire_test.py
+++ b/test/vwire_test.py
@@ -160,6 +160,12 @@ iocore = 1
distmode = 2
hashmode = 0
+[limits]
+nr_max_ef_adapters=32
+nr_max_vwires=32
+nr_max_tera_adapters=32
+nr_max_link_dbs=32
+
[eal]
virtaddr = 0x600000000000
loglevel = 7
@@ -386,6 +392,12 @@ iocore = 1
distmode = 2
hashmode = 0
+[limits]
+nr_max_ef_adapters=32
+nr_max_vwires=32
+nr_max_tera_adapters=32
+nr_max_link_dbs=32
+
[eal]
virtaddr = 0x600000000000
loglevel = 7