opensourcerouting / frr

Free Range Routing Protocol Suite
Other
37 stars 14 forks source link

Topotato: Assert Ping #133

Open eznix86 opened 1 year ago

eznix86 commented 1 year ago

Untested yet, but waiting for a review on implementation.

implementation:

~yield from AssertPing.make(r1, iface, r2)~

yield from AssertPing.make(r1, "r1-s1", "192.168.1.2") 
yield from AssertPing.make(r1, "r1-s1",  str(r2.iface_to("s1").ip4[0].ip)) 
eznix86 commented 12 months ago

Updated the code, it seems like I do not receive the expected packet with IP/ICMP (tried with ScapySend + AssertPacket Combination) and remained the same results:


E       topotato.exceptions.TopotatoPacketFail: did not receive a matching packet for:
E               def expect_pkt(ip: IP, icmp: ICMP):
E                   return True

/home/vagrant/dev/topotato/test_ping.py:47: TopotatoPacketFail
-------------------------------------------------------------- Captured log call --------------------------------------------------------------
DEBUG    root:assertions.py:381 element: {'match_for': [], '_pkt': <Ether  dst=33:33:00:00:00:16 src=fe:02:00:bc:01:00 type=IPv6 |<IPv6  version=6 tc=0 fl=0 plen=76 nh=Hop-by-Hop Option Header hlim=1 src=fe80::fc02:ff:febc:100 dst=ff02::16 |<IPv6ExtHdrHopByHop  nh=ICMPv6 len=0 autopad=On options=[<RouterAlert  otype=Router Alert [00: skip, 0: Don't change en-route] optlen=2 value=Datagram contains a MLD message |>, <PadN  otype=PadN [00: skip, 0: Don't change en-route] optlen=0 |>] |<ICMPv6MLReport2  type=MLD Report Version 2 res=0 cksum=0x6d5a reserved=0 records_number=3 records=[<ICMPv6MLDMultAddrRec  rtype=4 auxdata_len=0 sources_number=0 dst=ff02::1:ff00:0 auxdata='' |<ICMPv6MLDMultAddrRec  rtype=4 auxdata_len=0 sources_number=0 dst=ff02::1:ffbc:100 auxdata='' |<ICMPv6MLDMultAddrRec  rtype=4 auxdata_len=0 sources_number=0 dst=ff02::2 |>>>] |>>>>}
DEBUG    root:assertions.py:386 element: {'match_for': [], '_pkt': <Ether  dst=33:33:00:00:00:16 src=fe:02:00:bc:01:00 type=IPv6 |<IPv6  version=6 tc=0 fl=0 plen=76 nh=Hop-by-Hop Option Header hlim=1 src=fe80::fc02:ff:febc:100 dst=ff02::16 |<IPv6ExtHdrHopByHop  nh=ICMPv6 len=0 autopad=On options=[<RouterAlert  otype=Router Alert [00: skip, 0: Don't change en-route] optlen=2 value=Datagram contains a MLD message |>, <PadN  otype=PadN [00: skip, 0: Don't change en-route] optlen=0 |>] |<ICMPv6MLReport2  type=MLD Report Version 2 res=0 cksum=0x6d5a reserved=0 records_number=3 records=[<ICMPv6MLDMultAddrRec  rtype=4 auxdata_len=0 sources_number=0 dst=ff02::1:ff00:0 auxdata='' |<ICMPv6MLDMultAddrRec  rtype=4 auxdata_len=0 sources_number=0 dst=ff02::1:ffbc:100 auxdata='' |<ICMPv6MLDMultAddrRec  rtype=4 auxdata_len=0 sources_number=0 dst=ff02::2 |>>>] |>>>>}
DEBUG    root:assertions.py:381 element: {'match_for': [], '_pkt': <Ether  dst=33:33:00:00:00:16 src=fe:02:00:bc:01:00 type=IPv6 |<IPv6  version=6 tc=0 fl=0 plen=76 nh=Hop-by-Hop Option Header hlim=1 src=fe80::fc02:ff:febc:100 dst=ff02::16 |<IPv6ExtHdrHopByHop  nh=ICMPv6 len=0 autopad=On options=[<RouterAlert  otype=Router Alert [00: skip, 0: Don't change en-route] optlen=2 value=Datagram contains a MLD message |>, <PadN  otype=PadN [00: skip, 0: Don't change en-route] optlen=0 |>] |<ICMPv6MLReport2  type=MLD Report Version 2 res=0 cksum=0x6d5a reserved=0 records_number=3 records=[<ICMPv6MLDMultAddrRec  rtype=4 auxdata_len=0 sources_number=0 dst=ff02::1:ff00:0 auxdata='' |<ICMPv6MLDMultAddrRec  rtype=4 auxdata_len=0 sources_number=0 dst=ff02::1:ffbc:100 auxdata='' |<ICMPv6MLDMultAddrRec  rtype=4 auxdata_len=0 sources_number=0 dst=ff02::2 |>>>] |>>>>}
DEBUG    root:assertions.py:386 element: {'match_for': [], '_pkt': <Ether  dst=33:33:00:00:00:16 src=fe:02:00:bc:01:00 type=IPv6 |<IPv6  version=6 tc=0 fl=0 plen=76 nh=Hop-by-Hop Option Header hlim=1 src=fe80::fc02:ff:febc:100 dst=ff02::16 |<IPv6ExtHdrHopByHop  nh=ICMPv6 len=0 autopad=On options=[<RouterAlert  otype=Router Alert [00: skip, 0: Don't change en-route] optlen=2 value=Datagram contains a MLD message |>, <PadN  otype=PadN [00: skip, 0: Don't change en-route] optlen=0 |>] |<ICMPv6MLReport2  type=MLD Report Version 2 res=0 cksum=0x6d5a reserved=0 records_number=3 records=[<ICMPv6MLDMultAddrRec  rtype=4 auxdata_len=0 sources_number=0 dst=ff02::1:ff00:0 auxdata='' |<ICMPv6MLDMultAddrRec  rtype=4 auxdata_len=0 sources_number=0 dst=ff02::1:ffbc:100 auxdata='' |<ICMPv6MLDMultAddrRec  rtype=4 auxdata_len=0 sources_number=0 dst=ff02::2 |>>>] |>>>>}
DEBUG    root:assertions.py:381 element: {'match_for': [], '_pkt': <Ether  dst=33:33:00:00:00:16 src=fe:01:00:bc:01:00 type=IPv6 |<IPv6  version=6 tc=0 fl=0 plen=76 nh=Hop-by-Hop Option Header hlim=1 src=fe80::fc01:ff:febc:100 dst=ff02::16 |<IPv6ExtHdrHopByHop  nh=ICMPv6 len=0 autopad=On options=[<RouterAlert  otype=Router Alert [00: skip, 0: Don't change en-route] optlen=2 value=Datagram contains a MLD message |>, <PadN  otype=PadN [00: skip, 0: Don't change en-route] optlen=0 |>] |<ICMPv6MLReport2  type=MLD Report Version 2 res=0 cksum=0x6d5b reserved=0 records_number=3 records=[<ICMPv6MLDMultAddrRec  rtype=4 auxdata_len=0 sources_number=0 dst=ff02::1:ff00:0 auxdata='' |<ICMPv6MLDMultAddrRec  rtype=4 auxdata_len=0 sources_number=0 dst=ff02::1:ffbc:100 auxdata='' |<ICMPv6MLDMultAddrRec  rtype=4 auxdata_len=0 sources_number=0 dst=ff02::2 |>>>] |>>>>}
DEBUG    root:assertions.py:386 element: {'match_for': [], '_pkt': <Ether  dst=33:33:00:00:00:16 src=fe:01:00:bc:01:00 type=IPv6 |<IPv6  version=6 tc=0 fl=0 plen=76 nh=Hop-by-Hop Option Header hlim=1 src=fe80::fc01:ff:febc:100 dst=ff02::16 |<IPv6ExtHdrHopByHop  nh=ICMPv6 len=0 autopad=On options=[<RouterAlert  otype=Router Alert [00: skip, 0: Don't change en-route] optlen=2 value=Datagram contains a MLD message |>, <PadN  otype=PadN [00: skip, 0: Don't change en-route] optlen=0 |>] |<ICMPv6MLReport2  type=MLD Report Version 2 res=0 cksum=0x6d5b reserved=0 records_number=3 records=[<ICMPv6MLDMultAddrRec  rtype=4 auxdata_len=0 sources_number=0 dst=ff02::1:ff00:0 auxdata='' |<ICMPv6MLDMultAddrRec  rtype=4 auxdata_len=0 sources_number=0 dst=ff02::1:ffbc:100 auxdata='' |<ICMPv6MLDMultAddrRec  rtype=4 auxdata_len=0 sources_number=0 dst=ff02::2 |>>>] |>>>>}