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)
self.assertNotIn("P", p.sprintf("%BFD.flags%"),
"Poll bit set in BFD packet")
+ # returning inconsistent results requiring retries in per-patch tests
+ @unittest.skipUnless(running_extended_tests, "part of extended tests")
def test_poll_response(self):
""" test correct response to control frame with poll bit set """
bfd_session_up(self)
self.assert_equal(udp_sport_tx, udp_sport_rx, "UDP source port (== "
"ECHO packet identifier for test purposes)")
+ @unittest.skip("Test fails sporadically, BFD rework required to fix it")
def test_echo(self):
""" echo function """
bfd_session_up(self)
self.test_session.send_packet()
self.assertTrue(echo_seen, "No echo packets received")
+ @unittest.skip("Test fails sporadically, BFD rework required to fix it")
def test_echo_fail(self):
""" session goes down if echo function fails """
bfd_session_up(self)
packet[IPv6].dst)
+@unittest.skipUnless(running_extended_tests, "part of extended tests")
class BFDTunTestCase(VppTestCase):
""" BFD over GRE tunnel """
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)