test_pim6_basic.py::PIM6Basic
- ::startup
- ::prepare:#81:r1/zebra/vtysh[show ipv6 route]
- ::prepare:#81:r2/zebra/vtysh[show ipv6 route]
- ::prepare:#85:r1/pim6d/vtysh[show ipv6 pim rp-info]
- ::prepare:#86:r2/pim6d/vtysh[show ipv6 pim rp-info]
- ::test_ssm:#98:h2/h2-r2/multicast-join[fdbc:1::fc03:ff:febc:100,ff05::2345]
- ::test_ssm:#100:r2/pim6d/log
- ::test_ssm:#102:r1/pim6d/log
- ::test_ssm:#106:h1/scapy[h1-lan/IPv6/UDP]
- ::test_ssm:#111:h1/scapy[h1-lan/IPv6/UDP]
- ::test_ssm:#116:h1/scapy[h1-lan/IPv6/UDP]
- ::test_ssm:#126:r2_h2/packet
- ::shutdown
::startup
passed after 1.38s
('test_pim6_basic.py', -inf, 'startup')
::prepare
::prepare:#81:r1/zebra/vtysh[show ipv6 route]
passed after 0.00s, CLI command: show ipv6 route
('test_pim6_basic.py', 81, '#81:r1/zebra/vtysh[show ipv6 route]')
::prepare:#81:r2/zebra/vtysh[show ipv6 route]
passed after 0.00s, CLI command: show ipv6 route
('test_pim6_basic.py', 81, '#81:r2/zebra/vtysh[show ipv6 route]')
::prepare:#85:r1/pim6d/vtysh[show ipv6 pim rp-info]
passed after 0.00s, CLI command: show ipv6 pim rp-info
('test_pim6_basic.py', 85, '#85:r1/pim6d/vtysh[show ipv6 pim rp-info]')
::prepare:#86:r2/pim6d/vtysh[show ipv6 pim rp-info]
failed after 4.99s, CLI command: show ipv6 pim rp-info
Expected output:
RP address group/prefix-list OIF I am RP Source Group-Type fd00::3 ff00::/8 r2-r1 no Static ASM('test_pim6_basic.py', 86, '#86:r2/pim6d/vtysh[show ipv6 pim rp-info]')
self = <test_pim6_basic.PIM6Basic object at 0x7f7765a20b90>, topo = <topotato.toponom.Network object at 0x7f776592dd90>, h1 = <Router 3 "h1">, h2 = <Router 4 "h2">, r1 = <Router 1 "r1"> r2 = <Router 2 "r2"> @topotatofunc def prepare(self, topo, h1, h2, r1, r2): self.receiver = MulticastReceiver(h2, h2.iface_to('r2')) for rt in [r1, r2]: yield from AssertVtysh.make(rt, "zebra", "show ipv6 route") self.receiver = MulticastReceiver(h2, h2.iface_to('r2')) yield from AssertVtysh.make(r1, "pim6d", "show ipv6 pim rp-info") > yield from AssertVtysh.make(r2, "pim6d", "show ipv6 pim rp-info", """ RP address group/prefix-list OIF I am RP Source Group-Type fd00::3 ff00::/8 r2-r1 no Static ASM """, maxwait=5.0) E topotato.exceptions.TopotatoCLICompareFail: E --- output from show ipv6 pim rp-info E +++ expected E @@ -1,3 +1,3 @@ E RP address group/prefix-list OIF I am RP Source Group-Type E -fd00::1 ff00::/8 r2-r1 no Static ASM E +fd00::3 ff00::/8 r2-r1 no Static ASM /home/equinox/python/topotato/test_pim6_basic.py:86: TopotatoCLICompareFail
::test_ssm
Join a (S,G) on MLD and try forwarding a packet on it.
::test_ssm:#98:h2/h2-r2/multicast-join[fdbc:1::fc03:ff:febc:100,ff05::2345]
passed after 0.00s
('test_pim6_basic.py', 98, '#98:h2/h2-r2/multicast-join[fdbc:1::fc03:ff:febc:100,ff05::2345]')
::test_ssm:#100:r2/pim6d/log
passed after 0.01s
('test_pim6_basic.py', 100, '#100:r2/pim6d/log')
::test_ssm:#102:r1/pim6d/log
failed after 2.99s
('test_pim6_basic.py', 102, '#102:r1/pim6d/log')
self = <test_pim6_basic.PIM6Basic object at 0x7f7765a20b90>, topo = <topotato.toponom.Network object at 0x7f776592dd90>, h1 = <Router 3 "h1">, h2 = <Router 4 "h2">, r1 = <Router 1 "r1"> r2 = <Router 2 "r2"> @topotatofunc def test_ssm(self, topo, h1, h2, r1, r2): """ Join a (S,G) on MLD and try forwarding a packet on it. """ srcaddr = h1.iface_to('lan').ip6[0].ip yield from self.receiver.join('ff05::2345', srcaddr) yield from AssertLog.make(r2, 'pim6d', '[MLD default:r2-h2 (%s,ff05::2345)] NOINFO => JOIN' % srcaddr, maxwait=3.0) > yield from AssertLog.make(r1, 'pim6d', 'pim_forward_start: (S,G)=(%s,ff05::2345) oif=r1-r2' % srcaddr, maxwait=3.0) E topotato.exceptions.TopotatoLogFail: pim_forward_start: (S,G)=(fdbc:1::fc03:ff:febc:100,ff05::2345) oif=r1-r2 /home/equinox/python/topotato/test_pim6_basic.py:102: TopotatoLogFail
::test_ssm:#106:h1/scapy[h1-lan/IPv6/UDP]
passed after 0.06s, packet: Ether / IPv6 / UDP IPv6Address('fdbc:1::fc03:ff:febc:100'):9999 > ff05::2345:9999
###[ Ethernet ]### dst = 33:33:00:00:23:45 src = None type = IPv6 ###[ IPv6 ]### version = 6 tc = 0 fl = 0 plen = None nh = UDP hlim = 255 src = IPv6Address('fdbc:1::fc03:ff:febc:100') dst = ff05::2345 ###[ UDP ]### sport = 9999 dport = 9999 len = None chksum = None
::test_ssm:#111:h1/scapy[h1-lan/IPv6/UDP]
passed after 0.05s, packet: Ether / IPv6 / UDP IPv6Address('fdbc:1::fc03:ff:febc:100'):9999 > ff05::2345:9999
###[ Ethernet ]### dst = 33:33:00:00:23:45 src = None type = IPv6 ###[ IPv6 ]### version = 6 tc = 0 fl = 0 plen = None nh = UDP hlim = 255 src = IPv6Address('fdbc:1::fc03:ff:febc:100') dst = ff05::2345 ###[ UDP ]### sport = 9999 dport = 9999 len = None chksum = None
::test_ssm:#116:h1/scapy[h1-lan/IPv6/UDP]
passed after 0.04s, packet: Ether / IPv6 / UDP IPv6Address('fdbc:1::fc03:ff:febc:100'):9999 > ff05::2345:9999
###[ Ethernet ]### dst = 33:33:00:00:23:45 src = None type = IPv6 ###[ IPv6 ]### version = 6 tc = 0 fl = 0 plen = None nh = UDP hlim = 255 src = IPv6Address('fdbc:1::fc03:ff:febc:100') dst = ff05::2345 ###[ UDP ]### sport = 9999 dport = 9999 len = None chksum = None
::test_ssm:#126:r2_h2/packet
passed after 0.00s
('test_pim6_basic.py', 126, '#126:r2_h2/packet')
::shutdown
passed after 1.18s
('test_pim6_basic.py', inf, 'shutdown')