X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Ftest_bfd.py;h=f66f75a3408ce31c3784ba271ad28a42627d5e75;hb=refs%2Fchanges%2F31%2F28731%2F1;hp=6dc58b933db8dd8e9626cda2e7f943c3372478d7;hpb=7ade2f51ada560c37d8ac4760f232379deb0afc5;p=vpp.git diff --git a/test/test_bfd.py b/test/test_bfd.py index 6dc58b933db..f66f75a3408 100644 --- a/test/test_bfd.py +++ b/test/test_bfd.py @@ -5,6 +5,7 @@ from __future__ import division import binascii import hashlib +import ipaddress import time import unittest from random import randint, shuffle, getrandbits @@ -283,8 +284,8 @@ class BFDAPITestCase(VppTestCase): self.assertFalse(echo_source.have_usable_ip6) self.loopback0.config_ip4() - unpacked = unpack("!L", self.loopback0.local_ip4n) - echo_ip4 = pack("!L", unpacked[0] ^ 1) + echo_ip4 = ipaddress.IPv4Address(int(ipaddress.IPv4Address( + self.loopback0.local_ip4)) ^ 1).packed echo_source = self.vapi.bfd_udp_get_echo_source() self.assertTrue(echo_source.is_set) self.assertEqual(echo_source.sw_if_index, self.loopback0.sw_if_index) @@ -293,9 +294,9 @@ class BFDAPITestCase(VppTestCase): self.assertFalse(echo_source.have_usable_ip6) self.loopback0.config_ip6() - unpacked = unpack("!LLLL", self.loopback0.local_ip6n) - echo_ip6 = pack("!LLLL", unpacked[0], unpacked[1], unpacked[2], - unpacked[3] ^ 1) + echo_ip6 = ipaddress.IPv6Address(int(ipaddress.IPv6Address( + self.loopback0.local_ip6)) ^ 1).packed + echo_source = self.vapi.bfd_udp_get_echo_source() self.assertTrue(echo_source.is_set) self.assertEqual(echo_source.sw_if_index, self.loopback0.sw_if_index) @@ -684,6 +685,10 @@ class BFD4TestCase(VppTestCase): vpp_session = None test_session = None + @classmethod + def force_solo(cls): + return True + @classmethod def setUpClass(cls): super(BFD4TestCase, cls).setUpClass() @@ -819,6 +824,16 @@ class BFD4TestCase(VppTestCase): e = self.vapi.wait_for_event(1, "bfd_udp_session_details") verify_event(self, e, expected_state=BFDState.down) + def test_peer_discr_reset_sess_down(self): + """ peer discriminator reset after session goes down """ + bfd_session_up(self) + detection_time = self.test_session.detect_mult *\ + self.vpp_session.required_min_rx / USEC_IN_SEC + self.sleep(detection_time, "waiting for BFD session time-out") + self.test_session.my_discriminator = 0 + wait_for_bfd_packet(self, + pcap_time_min=time.time() - self.vpp_clock_offset) + def test_large_required_min_rx(self): """ large remote required min rx interval """ bfd_session_up(self) @@ -1482,6 +1497,10 @@ class BFD6TestCase(VppTestCase): vpp_session = None test_session = None + @classmethod + def force_solo(cls): + return True + @classmethod def setUpClass(cls): super(BFD6TestCase, cls).setUpClass() @@ -1693,6 +1712,10 @@ class BFDFIBTestCase(VppTestCase): vpp_session = None test_session = None + @classmethod + def force_solo(cls): + return True + @classmethod def setUpClass(cls): super(BFDFIBTestCase, cls).setUpClass() @@ -1881,6 +1904,10 @@ class BFDSHA1TestCase(VppTestCase): vpp_session = None test_session = None + @classmethod + def force_solo(cls): + return True + @classmethod def setUpClass(cls): super(BFDSHA1TestCase, cls).setUpClass() @@ -2100,6 +2127,7 @@ class BFDSHA1TestCase(VppTestCase): self.test_session.vpp_seq_number = None # now throw away any pending packets self.pg0.enable_capture() + self.test_session.my_discriminator = 0 bfd_session_up(self) @@ -2110,6 +2138,10 @@ class BFDAuthOnOffTestCase(VppTestCase): vpp_session = None test_session = None + @classmethod + def force_solo(cls): + return True + @classmethod def setUpClass(cls): super(BFDAuthOnOffTestCase, cls).setUpClass() @@ -2319,6 +2351,10 @@ class BFDCLITestCase(VppTestCase): """Bidirectional Forwarding Detection (BFD) (CLI) """ pg0 = None + @classmethod + def force_solo(cls): + return True + @classmethod def setUpClass(cls): super(BFDCLITestCase, cls).setUpClass() @@ -2717,16 +2753,15 @@ class BFDCLITestCase(VppTestCase): "IPv6 address usable as echo source: none" % self.loopback0.name) self.loopback0.config_ip4() - unpacked = unpack("!L", self.loopback0.local_ip4n) - echo_ip4 = inet_ntop(AF_INET, pack("!L", unpacked[0] ^ 1)) + echo_ip4 = str(ipaddress.IPv4Address(int(ipaddress.IPv4Address( + self.loopback0.local_ip4)) ^ 1)) self.cli_verify_response("show bfd echo-source", "UDP echo source is: %s\n" "IPv4 address usable as echo source: %s\n" "IPv6 address usable as echo source: none" % (self.loopback0.name, echo_ip4)) - unpacked = unpack("!LLLL", self.loopback0.local_ip6n) - echo_ip6 = inet_ntop(AF_INET6, pack("!LLLL", unpacked[0], unpacked[1], - unpacked[2], unpacked[3] ^ 1)) + echo_ip6 = str(ipaddress.IPv6Address(int(ipaddress.IPv6Address( + self.loopback0.local_ip6)) ^ 1)) self.loopback0.config_ip6() self.cli_verify_response("show bfd echo-source", "UDP echo source is: %s\n"