echo function stops if peer sets required min echo rx zero
(self)
| 1779 | self.assertTrue(verified_diag, "Incorrect diagnostics code received") |
| 1780 | |
| 1781 | def test_echo_stop(self): |
| 1782 | """echo function stops if peer sets required min echo rx zero""" |
| 1783 | |
| 1784 | if self.multihop: |
| 1785 | self.skipTest( |
| 1786 | f"Skipping because echo functionality is not supported with multihop" |
| 1787 | ) |
| 1788 | |
| 1789 | bfd_session_up(self) |
| 1790 | self.test_session.update(required_min_echo_rx=150000) |
| 1791 | self.test_session.send_packet() |
| 1792 | self.vapi.bfd_udp_set_echo_source(sw_if_index=self.loopback0.sw_if_index) |
| 1793 | # wait for first echo packet |
| 1794 | while True: |
| 1795 | p = self.pg0.wait_for_packet(1) |
| 1796 | self.logger.debug(ppp("Got packet:", p)) |
| 1797 | if p[UDP].dport == BFD.udp_dport_echo: |
| 1798 | self.logger.debug(ppp("Looping back packet:", p)) |
| 1799 | p[Ether].dst = self.pg0.local_mac |
| 1800 | self.pg0.add_stream(p) |
| 1801 | self.pg_start() |
| 1802 | break |
| 1803 | elif p.haslayer(BFD): |
| 1804 | # ignore BFD |
| 1805 | pass |
| 1806 | else: |
| 1807 | raise Exception(ppp("Received unknown packet:", p)) |
| 1808 | self.test_session.update(required_min_echo_rx=0) |
| 1809 | self.test_session.send_packet() |
| 1810 | # echo packets shouldn't arrive anymore |
| 1811 | for dummy in range(5): |
| 1812 | wait_for_bfd_packet(self, pcap_time_min=time.time() - self.vpp_clock_offset) |
| 1813 | self.test_session.send_packet() |
| 1814 | events = self.vapi.collect_events() |
| 1815 | self.assert_equal(len(events), 0, "number of bfd events") |
| 1816 | |
| 1817 | def test_echo_source_removed(self): |
| 1818 | """echo function stops if echo source is removed""" |
nothing calls this directly
no test coverage detected