import unittest
from framework import VppTestCase, VppTestRunner
-from vpp_sub_interface import VppSubInterface, VppDot1QSubint, VppDot1ADSubint
+from vpp_ip import DpoProto
from vpp_ip_route import VppIpMRoute, VppMRoutePath, VppMFibSignal, \
- MRouteItfFlags, MRouteEntryFlags, VppIpTable, DpoProto
+ MRouteItfFlags, MRouteEntryFlags, VppIpTable
from scapy.packet import Raw
from scapy.layers.l2 import Ether
-from scapy.layers.inet import IP, UDP, getmacbyip, ICMP
+from scapy.layers.inet import IP, UDP, getmacbyip
from scapy.layers.inet6 import IPv6, getmacbyip6
-from util import ppp
#
# The number of packets sent is set to 91 so that when we replicate more than 3
if error:
self.logger.critical(error)
- self.assertEqual(error.find("Failed"), -1)
+ self.assertNotIn("Failed", error)
class TestIPMcast(VppTestCase):
def verify_filter(self, capture, sent):
if not len(capture) == len(sent):
- # filter out any IPv6 RAs from the captur
+ # filter out any IPv6 RAs from the capture
for p in capture:
if (p.haslayer(IPv6)):
capture.remove(p)
#
# A (*,G).
# one accepting interface, pg0, 7 forwarding interfaces
- # many forwarding interfaces test the case where the replicare DPO
+ # many forwarding interfaces test the case where the replicate DPO
# needs to use extra cache lines for the buckets.
#
route_232_1_1_1 = VppIpMRoute(
route_1_1_1_1_232_1_1_1 = VppIpMRoute(
self,
"1.1.1.1",
- "232.1.1.1", 64,
+ "232.1.1.1", 27, # any grp-len is ok when src is set
MRouteEntryFlags.MFIB_ENTRY_FLAG_NONE,
[VppMRoutePath(self.pg0.sw_if_index,
MRouteItfFlags.MFIB_ITF_FLAG_ACCEPT),
self.pg_enable_capture(self.pg_interfaces)
self.pg_start()
+ self.assertEqual(route_1_1_1_1_232_1_1_1.get_stats()['packets'],
+ len(tx))
+
# We expect replications on Pg1->7
self.verify_capture_ip4(self.pg1, tx)
self.verify_capture_ip4(self.pg2, tx)
self.verify_capture_ip4(self.pg1, tx)
self.verify_capture_ip4(self.pg2, tx)
+ self.assertEqual(route_1_1_1_1_232_1_1_1.get_stats()['packets'],
+ 2*len(tx))
+
# no replications on Pg0
self.pg0.assert_nothing_captured(
remark="IP multicast packets forwarded on PG0")
# We expect replications on Pg1 only
self.verify_capture_ip4(self.pg1, tx)
+ self.assertEqual(route_232.get_stats()['packets'], len(tx))
# no replications on Pg0, Pg2 not Pg3
self.pg0.assert_nothing_captured(
route_2001_ff01_1 = VppIpMRoute(
self,
"2001::1",
- "ff01::1", 256,
+ "ff01::1", 0, # any grp-len is ok when src is set
MRouteEntryFlags.MFIB_ENTRY_FLAG_NONE,
[VppMRoutePath(self.pg0.sw_if_index,
MRouteItfFlags.MFIB_ITF_FLAG_ACCEPT,