Skip to content

Commit 3b1bb52

Browse files
committed
SRV6: Fix invalid tests
As of sonic-net/sonic-buildimage#21467 some tests are failing due to a validation that `block-len+node-len = locator-len`. However in some of the test cases this wasn't actually true, meaning the tests were invalid as designed. Update the test cases to be valid. Signed-off-by: Brad House (@bradh352)
1 parent ae5a50b commit 3b1bb52

1 file changed

Lines changed: 28 additions & 18 deletions

File tree

tests/test_srv6.py

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -812,6 +812,7 @@ def teardown_srv6(self, dvs):
812812
self.remove_l3_intf("Ethernet104")
813813
self.adb.wait_for_n_keys("ASIC_STATE:SAI_OBJECT_TYPE_ROUTER_INTERFACE", len(initial_interface_entries) - 1)
814814

815+
815816
def test_AddRemoveSrv6MySidEnd(self, dvs, testlog):
816817

817818
_, output = dvs.runcmd(f"vtysh -c 'show zebra dplane providers'")
@@ -821,15 +822,15 @@ def test_AddRemoveSrv6MySidEnd(self, dvs, testlog):
821822
self.setup_srv6(dvs)
822823

823824
# configure srv6 locator
824-
dvs.runcmd("vtysh -c \"configure terminal\" -c \"segment-routing\" -c \"srv6\" -c \"locators\" -c \"locator loc1\" -c \"prefix fc00:0:1::/64 block-len 32 node-len 16 func-bits 16\"")
825+
dvs.runcmd("vtysh -c \"configure terminal\" -c \"segment-routing\" -c \"srv6\" -c \"locators\" -c \"locator loc1\" -c \"prefix fc00:0:1::/64 block-len 32 node-len 32 func-bits 16\"")
825826

826827
# create srv6 mysid end behavior
827828
dvs.runcmd("ip -6 route add fc00:0:1:64::/128 encap seg6local action End dev sr0")
828829

829830
# check application database
830-
self.pdb.wait_for_entry("SRV6_MY_SID_TABLE", "32:16:16:0:fc00:0:1:64::")
831+
self.pdb.wait_for_entry("SRV6_MY_SID_TABLE", "32:32:16:0:fc00:0:1:64::")
831832
expected_fields = {"action": "end"}
832-
self.pdb.wait_for_field_match("SRV6_MY_SID_TABLE", "32:16:16:0:fc00:0:1:64::", expected_fields)
833+
self.pdb.wait_for_field_match("SRV6_MY_SID_TABLE", "32:32:16:0:fc00:0:1:64::", expected_fields)
833834

834835
# verify that the mysid has been programmed into the ASIC
835836
self.adb.wait_for_n_keys("ASIC_STATE:SAI_OBJECT_TYPE_MY_SID_ENTRY", len(self.initial_my_sid_entries) + 1)
@@ -847,7 +848,7 @@ def test_AddRemoveSrv6MySidEnd(self, dvs, testlog):
847848
dvs.runcmd("ip -6 route del fc00:0:1:64::/128 encap seg6local action End dev sr0")
848849

849850
# check application database
850-
self.pdb.wait_for_deleted_entry("SRV6_MY_SID_TABLE", "32:16:16:0:fc00:0:1:64::")
851+
self.pdb.wait_for_deleted_entry("SRV6_MY_SID_TABLE", "32:32:16:0:fc00:0:1:64::")
851852

852853
# verify that the mysid has been removed from the ASIC
853854
self.adb.wait_for_n_keys("ASIC_STATE:SAI_OBJECT_TYPE_MY_SID_ENTRY", len(self.initial_my_sid_entries))
@@ -857,6 +858,7 @@ def test_AddRemoveSrv6MySidEnd(self, dvs, testlog):
857858

858859
self.teardown_srv6(dvs)
859860

861+
860862
def test_AddRemoveSrv6MySidEndX(self, dvs, testlog):
861863

862864
_, output = dvs.runcmd(f"vtysh -c 'show zebra dplane providers'")
@@ -866,15 +868,15 @@ def test_AddRemoveSrv6MySidEndX(self, dvs, testlog):
866868
self.setup_srv6(dvs)
867869

868870
# configure srv6 locator
869-
dvs.runcmd("vtysh -c \"configure terminal\" -c \"segment-routing\" -c \"srv6\" -c \"locators\" -c \"locator loc1\" -c \"prefix fc00:0:1::/64 block-len 32 node-len 16 func-bits 16\"")
871+
dvs.runcmd("vtysh -c \"configure terminal\" -c \"segment-routing\" -c \"srv6\" -c \"locators\" -c \"locator loc1\" -c \"prefix fc00:0:1::/64 block-len 32 node-len 32 func-bits 16\"")
870872

871873
# create srv6 mysid end.x behavior
872874
dvs.runcmd("ip -6 route add fc00:0:1:65::/128 encap seg6local action End.X nh6 2001::1 dev sr0")
873875

874876
# check application database
875-
self.pdb.wait_for_entry("SRV6_MY_SID_TABLE", "32:16:16:0:fc00:0:1:65::")
877+
self.pdb.wait_for_entry("SRV6_MY_SID_TABLE", "32:32:16:0:fc00:0:1:65::")
876878
expected_fields = {"action": "end.x", "adj": "2001::1"}
877-
self.pdb.wait_for_field_match("SRV6_MY_SID_TABLE", "32:16:16:0:fc00:0:1:65::", expected_fields)
879+
self.pdb.wait_for_field_match("SRV6_MY_SID_TABLE", "32:32:16:0:fc00:0:1:65::", expected_fields)
878880

879881
# verify that the mysid has been programmed into the ASIC
880882
self.adb.wait_for_n_keys("ASIC_STATE:SAI_OBJECT_TYPE_MY_SID_ENTRY", len(self.initial_my_sid_entries) + 1)
@@ -896,7 +898,7 @@ def test_AddRemoveSrv6MySidEndX(self, dvs, testlog):
896898
dvs.runcmd("ip -6 route del fc00:0:1:65::/128 encap seg6local action End.X nh6 2001::1 dev sr0")
897899

898900
# check application database
899-
self.pdb.wait_for_deleted_entry("SRV6_MY_SID_TABLE", "32:16:16:0:fc00:0:1:65::")
901+
self.pdb.wait_for_deleted_entry("SRV6_MY_SID_TABLE", "32:32:16:0:fc00:0:1:65::")
900902

901903
# verify that the mysid has been removed from the ASIC
902904
self.adb.wait_for_n_keys("ASIC_STATE:SAI_OBJECT_TYPE_MY_SID_ENTRY", len(self.initial_my_sid_entries))
@@ -906,6 +908,7 @@ def test_AddRemoveSrv6MySidEndX(self, dvs, testlog):
906908

907909
self.teardown_srv6(dvs)
908910

911+
909912
@pytest.mark.skipif(LooseVersion(platform.release()) < LooseVersion('5.11'),
910913
reason="This test requires Linux kernel 5.11 or higher")
911914
def test_AddRemoveSrv6MySidEndDT4(self, dvs, testlog):
@@ -920,13 +923,13 @@ def test_AddRemoveSrv6MySidEndDT4(self, dvs, testlog):
920923
dvs.runcmd("sysctl -w net.vrf.strict_mode=1")
921924

922925
# configure srv6 locator
923-
dvs.runcmd("vtysh -c \"configure terminal\" -c \"segment-routing\" -c \"srv6\" -c \"locators\" -c \"locator loc1\" -c \"prefix fc00:0:1::/64 block-len 32 node-len 16 func-bits 16\"")
926+
dvs.runcmd("vtysh -c \"configure terminal\" -c \"segment-routing\" -c \"srv6\" -c \"locators\" -c \"locator loc1\" -c \"prefix fc00:0:1::/64 block-len 32 node-len 32 func-bits 16\"")
924927

925928
# create srv6 mysid end.dt4 behavior
926929
dvs.runcmd("ip -6 route add fc00:0:1:6b::/128 encap seg6local action End.DT4 vrftable {} dev sr0".format(self.vrf_table_id))
927930

928931
# check application database
929-
self.pdb.wait_for_entry("SRV6_MY_SID_TABLE", "32:16:16:0:fc00:0:1:6b::")
932+
self.pdb.wait_for_entry("SRV6_MY_SID_TABLE", "32:32:16:0:fc00:0:1:6b::")
930933

931934
# verify that the mysid has been programmed into the ASIC
932935
self.adb.wait_for_n_keys("ASIC_STATE:SAI_OBJECT_TYPE_MY_SID_ENTRY", len(self.initial_my_sid_entries) + 1)
@@ -946,7 +949,7 @@ def test_AddRemoveSrv6MySidEndDT4(self, dvs, testlog):
946949
dvs.runcmd("ip -6 route del fc00:0:1:6b::/128 encap seg6local action End.DT4 vrftable {} dev sr0".format(self.vrf_table_id))
947950

948951
# check application database
949-
self.pdb.wait_for_deleted_entry("SRV6_MY_SID_TABLE", "32:16:16:0:fc00:0:1:6b::")
952+
self.pdb.wait_for_deleted_entry("SRV6_MY_SID_TABLE", "32:32:16:0:fc00:0:1:6b::")
950953

951954
# verify that the mysid has been removed from the ASIC
952955
self.adb.wait_for_n_keys("ASIC_STATE:SAI_OBJECT_TYPE_MY_SID_ENTRY", len(self.initial_my_sid_entries))
@@ -956,6 +959,7 @@ def test_AddRemoveSrv6MySidEndDT4(self, dvs, testlog):
956959

957960
self.teardown_srv6(dvs)
958961

962+
959963
def test_AddRemoveSrv6MySidEndDT6(self, dvs, testlog):
960964

961965
_, output = dvs.runcmd(f"vtysh -c 'show zebra dplane providers'")
@@ -965,15 +969,15 @@ def test_AddRemoveSrv6MySidEndDT6(self, dvs, testlog):
965969
self.setup_srv6(dvs)
966970

967971
# configure srv6 locator
968-
dvs.runcmd("vtysh -c \"configure terminal\" -c \"segment-routing\" -c \"srv6\" -c \"locators\" -c \"locator loc1\" -c \"prefix fc00:0:1::/64 block-len 32 node-len 16 func-bits 16\"")
972+
dvs.runcmd("vtysh -c \"configure terminal\" -c \"segment-routing\" -c \"srv6\" -c \"locators\" -c \"locator loc1\" -c \"prefix fc00:0:1::/64 block-len 32 node-len 32 func-bits 16\"")
969973

970974
# create srv6 mysid end.dt6 behavior
971975
dvs.runcmd("ip -6 route add fc00:0:1:6b::/128 encap seg6local action End.DT6 vrftable {} dev sr0".format(self.vrf_table_id))
972976

973977
# check application database
974-
self.pdb.wait_for_entry("SRV6_MY_SID_TABLE", "32:16:16:0:fc00:0:1:6b::")
978+
self.pdb.wait_for_entry("SRV6_MY_SID_TABLE", "32:32:16:0:fc00:0:1:6b::")
975979
expected_fields = {"action": "end.dt6", "vrf": "Vrf10"}
976-
self.pdb.wait_for_field_match("SRV6_MY_SID_TABLE", "32:16:16:0:fc00:0:1:6b::", expected_fields)
980+
self.pdb.wait_for_field_match("SRV6_MY_SID_TABLE", "32:32:16:0:fc00:0:1:6b::", expected_fields)
977981

978982
# verify that the mysid has been programmed into the ASIC
979983
self.adb.wait_for_n_keys("ASIC_STATE:SAI_OBJECT_TYPE_MY_SID_ENTRY", len(self.initial_my_sid_entries) + 1)
@@ -993,7 +997,7 @@ def test_AddRemoveSrv6MySidEndDT6(self, dvs, testlog):
993997
dvs.runcmd("ip -6 route del fc00:0:1:6b::/128 encap seg6local action End.DT6 vrftable {} dev sr0".format(self.vrf_table_id))
994998

995999
# check application database
996-
self.pdb.wait_for_deleted_entry("SRV6_MY_SID_TABLE", "32:16:16:0:fc00:0:1:6b::")
1000+
self.pdb.wait_for_deleted_entry("SRV6_MY_SID_TABLE", "32:32:16:0:fc00:0:1:6b::")
9971001

9981002
# verify that the mysid has been removed from the ASIC
9991003
self.adb.wait_for_n_keys("ASIC_STATE:SAI_OBJECT_TYPE_MY_SID_ENTRY", len(self.initial_my_sid_entries))
@@ -1003,6 +1007,7 @@ def test_AddRemoveSrv6MySidEndDT6(self, dvs, testlog):
10031007

10041008
self.teardown_srv6(dvs)
10051009

1010+
10061011
@pytest.mark.skipif(LooseVersion(platform.release()) < LooseVersion('5.14'),
10071012
reason="This test requires Linux kernel 5.14 or higher")
10081013
def test_AddRemoveSrv6MySidEndDT46(self, dvs, testlog):
@@ -1017,13 +1022,13 @@ def test_AddRemoveSrv6MySidEndDT46(self, dvs, testlog):
10171022
dvs.runcmd("sysctl -w net.vrf.strict_mode=1")
10181023

10191024
# configure srv6 locator
1020-
dvs.runcmd("vtysh -c \"configure terminal\" -c \"segment-routing\" -c \"srv6\" -c \"locators\" -c \"locator loc1\" -c \"prefix fc00:0:1::/64 block-len 32 node-len 16 func-bits 16\"")
1025+
dvs.runcmd("vtysh -c \"configure terminal\" -c \"segment-routing\" -c \"srv6\" -c \"locators\" -c \"locator loc1\" -c \"prefix fc00:0:1::/64 block-len 32 node-len 32 func-bits 16\"")
10211026

10221027
# create srv6 mysid end.dt46 behavior
10231028
dvs.runcmd("ip -6 route add fc00:0:1:6b::/128 encap seg6local action End.DT46 vrftable {} dev sr0".format(self.vrf_table_id))
10241029

10251030
# check application database
1026-
self.pdb.wait_for_entry("SRV6_MY_SID_TABLE", "32:16:16:0:fc00:0:1:6b::")
1031+
self.pdb.wait_for_entry("SRV6_MY_SID_TABLE", "32:32:16:0:fc00:0:1:6b::")
10271032

10281033
# verify that the mysid has been programmed into the ASIC
10291034
self.adb.wait_for_n_keys("ASIC_STATE:SAI_OBJECT_TYPE_MY_SID_ENTRY", len(self.initial_my_sid_entries) + 1)
@@ -1043,7 +1048,7 @@ def test_AddRemoveSrv6MySidEndDT46(self, dvs, testlog):
10431048
dvs.runcmd("ip -6 route del fc00:0:1:6b::/128 encap seg6local action End.DT46 vrftable {} dev sr0".format(self.vrf_table_id))
10441049

10451050
# check application database
1046-
self.pdb.wait_for_deleted_entry("SRV6_MY_SID_TABLE", "32:16:16:0:fc00:0:1:6b::")
1051+
self.pdb.wait_for_deleted_entry("SRV6_MY_SID_TABLE", "32:32:16:0:fc00:0:1:6b::")
10471052

10481053
# verify that the mysid has been removed from the ASIC
10491054
self.adb.wait_for_n_keys("ASIC_STATE:SAI_OBJECT_TYPE_MY_SID_ENTRY", len(self.initial_my_sid_entries))
@@ -1053,6 +1058,7 @@ def test_AddRemoveSrv6MySidEndDT46(self, dvs, testlog):
10531058

10541059
self.teardown_srv6(dvs)
10551060

1061+
10561062
@pytest.mark.skipif(LooseVersion(platform.release()) < LooseVersion('6.1'),
10571063
reason="This test requires Linux kernel 6.1 or higher")
10581064
def test_AddRemoveSrv6MySidUN(self, dvs, testlog):
@@ -1100,6 +1106,7 @@ def test_AddRemoveSrv6MySidUN(self, dvs, testlog):
11001106

11011107
self.teardown_srv6(dvs)
11021108

1109+
11031110
@pytest.mark.skipif(LooseVersion(platform.release()) < LooseVersion('6.6'),
11041111
reason="This test requires Linux kernel 6.6 or higher")
11051112
def test_AddRemoveSrv6MySidUA(self, dvs, testlog):
@@ -1149,6 +1156,7 @@ def test_AddRemoveSrv6MySidUA(self, dvs, testlog):
11491156

11501157
self.teardown_srv6(dvs)
11511158

1159+
11521160
@pytest.mark.skipif(LooseVersion(platform.release()) < LooseVersion('5.11'),
11531161
reason="This test requires Linux kernel 5.11 or higher")
11541162
def test_AddRemoveSrv6MySidUDT4(self, dvs, testlog):
@@ -1199,6 +1207,7 @@ def test_AddRemoveSrv6MySidUDT4(self, dvs, testlog):
11991207

12001208
self.teardown_srv6(dvs)
12011209

1210+
12021211
def test_AddRemoveSrv6MySidUDT6(self, dvs, testlog):
12031212

12041213
_, output = dvs.runcmd(f"vtysh -c 'show zebra dplane providers'")
@@ -1246,6 +1255,7 @@ def test_AddRemoveSrv6MySidUDT6(self, dvs, testlog):
12461255

12471256
self.teardown_srv6(dvs)
12481257

1258+
12491259
@pytest.mark.skipif(LooseVersion(platform.release()) < LooseVersion('5.14'),
12501260
reason="This test requires Linux kernel 5.14 or higher")
12511261
def test_AddRemoveSrv6MySidUDT46(self, dvs, testlog):

0 commit comments

Comments
 (0)