Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
vmxnet3: custom dump and debug cli fix
[vpp.git]
/
test
/
test_ip_mcast.py
diff --git
a/test/test_ip_mcast.py
b/test/test_ip_mcast.py
index
9c216d5
..
b753f9a
100644
(file)
--- a/
test/test_ip_mcast.py
+++ b/
test/test_ip_mcast.py
@@
-3,8
+3,9
@@
import unittest
from framework import VppTestCase, VppTestRunner
import unittest
from framework import VppTestCase, VppTestRunner
+from vpp_ip import DpoProto
from vpp_ip_route import VppIpMRoute, VppMRoutePath, VppMFibSignal, \
from vpp_ip_route import VppIpMRoute, VppMRoutePath, VppMFibSignal, \
- MRouteItfFlags, MRouteEntryFlags, VppIpTable,
Dpo
Proto
+ MRouteItfFlags, MRouteEntryFlags, VppIpTable,
FibPath
Proto
from scapy.packet import Raw
from scapy.layers.l2 import Ether
from scapy.packet import Raw
from scapy.layers.l2 import Ether
@@
-24,6
+25,14
@@
N_PKTS_IN_STREAM = 91
class TestMFIB(VppTestCase):
""" MFIB Test Case """
class TestMFIB(VppTestCase):
""" MFIB Test Case """
+ @classmethod
+ def setUpClass(cls):
+ super(TestMFIB, cls).setUpClass()
+
+ @classmethod
+ def tearDownClass(cls):
+ super(TestMFIB, cls).tearDownClass()
+
def setUp(self):
super(TestMFIB, self).setUp()
def setUp(self):
super(TestMFIB, self).setUp()
@@
-33,12
+42,20
@@
class TestMFIB(VppTestCase):
if error:
self.logger.critical(error)
if error:
self.logger.critical(error)
- self.assert
Equal(error.find("Failed"), -1
)
+ self.assert
NotIn("Failed", error
)
class TestIPMcast(VppTestCase):
""" IP Multicast Test Case """
class TestIPMcast(VppTestCase):
""" IP Multicast Test Case """
+ @classmethod
+ def setUpClass(cls):
+ super(TestIPMcast, cls).setUpClass()
+
+ @classmethod
+ def tearDownClass(cls):
+ super(TestIPMcast, cls).tearDownClass()
+
def setUp(self):
super(TestIPMcast, self).setUp()
def setUp(self):
super(TestIPMcast, self).setUp()
@@
-103,7
+120,7
@@
class TestIPMcast(VppTestCase):
def verify_filter(self, capture, sent):
if not len(capture) == len(sent):
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 captur
e
for p in capture:
if (p.haslayer(IPv6)):
capture.remove(p)
for p in capture:
if (p.haslayer(IPv6)):
capture.remove(p)
@@
-183,7
+200,7
@@
class TestIPMcast(VppTestCase):
#
# A (*,G).
# one accepting interface, pg0, 7 forwarding interfaces
#
# A (*,G).
# one accepting interface, pg0, 7 forwarding interfaces
- # many forwarding interfaces test the case where the replica
r
e DPO
+ # many forwarding interfaces test the case where the replica
t
e DPO
# needs to use extra cache lines for the buckets.
#
route_232_1_1_1 = VppIpMRoute(
# needs to use extra cache lines for the buckets.
#
route_232_1_1_1 = VppIpMRoute(
@@
-216,7
+233,7
@@
class TestIPMcast(VppTestCase):
route_1_1_1_1_232_1_1_1 = VppIpMRoute(
self,
"1.1.1.1",
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),
MRouteEntryFlags.MFIB_ENTRY_FLAG_NONE,
[VppMRoutePath(self.pg0.sw_if_index,
MRouteItfFlags.MFIB_ITF_FLAG_ACCEPT),
@@
-272,6
+289,9
@@
class TestIPMcast(VppTestCase):
self.pg_enable_capture(self.pg_interfaces)
self.pg_start()
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)
# We expect replications on Pg1->7
self.verify_capture_ip4(self.pg1, tx)
self.verify_capture_ip4(self.pg2, tx)
@@
-298,6
+318,9
@@
class TestIPMcast(VppTestCase):
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")
# no replications on Pg0
self.pg0.assert_nothing_captured(
remark="IP multicast packets forwarded on PG0")
@@
-338,6
+361,7
@@
class TestIPMcast(VppTestCase):
# We expect replications on Pg1 only
self.verify_capture_ip4(self.pg1, tx)
# 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(
# no replications on Pg0, Pg2 not Pg3
self.pg0.assert_nothing_captured(
@@
-397,17
+421,16
@@
class TestIPMcast(VppTestCase):
MRouteEntryFlags.MFIB_ENTRY_FLAG_NONE,
[VppMRoutePath(self.pg0.sw_if_index,
MRouteItfFlags.MFIB_ITF_FLAG_ACCEPT,
MRouteEntryFlags.MFIB_ENTRY_FLAG_NONE,
[VppMRoutePath(self.pg0.sw_if_index,
MRouteItfFlags.MFIB_ITF_FLAG_ACCEPT,
- proto=
DpoProto.DPO
_PROTO_IP6),
+ proto=
FibPathProto.FIB_PATH_NH
_PROTO_IP6),
VppMRoutePath(self.pg1.sw_if_index,
MRouteItfFlags.MFIB_ITF_FLAG_FORWARD,
VppMRoutePath(self.pg1.sw_if_index,
MRouteItfFlags.MFIB_ITF_FLAG_FORWARD,
- proto=
DpoProto.DPO
_PROTO_IP6),
+ proto=
FibPathProto.FIB_PATH_NH
_PROTO_IP6),
VppMRoutePath(self.pg2.sw_if_index,
MRouteItfFlags.MFIB_ITF_FLAG_FORWARD,
VppMRoutePath(self.pg2.sw_if_index,
MRouteItfFlags.MFIB_ITF_FLAG_FORWARD,
- proto=
DpoProto.DPO
_PROTO_IP6),
+ proto=
FibPathProto.FIB_PATH_NH
_PROTO_IP6),
VppMRoutePath(self.pg3.sw_if_index,
MRouteItfFlags.MFIB_ITF_FLAG_FORWARD,
VppMRoutePath(self.pg3.sw_if_index,
MRouteItfFlags.MFIB_ITF_FLAG_FORWARD,
- proto=DpoProto.DPO_PROTO_IP6)],
- is_ip6=1)
+ proto=FibPathProto.FIB_PATH_NH_PROTO_IP6)])
route_ff01_1.add_vpp_config()
#
route_ff01_1.add_vpp_config()
#
@@
-417,18
+440,17
@@
class TestIPMcast(VppTestCase):
route_2001_ff01_1 = VppIpMRoute(
self,
"2001::1",
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,
MRouteEntryFlags.MFIB_ENTRY_FLAG_NONE,
[VppMRoutePath(self.pg0.sw_if_index,
MRouteItfFlags.MFIB_ITF_FLAG_ACCEPT,
- proto=
DpoProto.DPO
_PROTO_IP6),
+ proto=
FibPathProto.FIB_PATH_NH
_PROTO_IP6),
VppMRoutePath(self.pg1.sw_if_index,
MRouteItfFlags.MFIB_ITF_FLAG_FORWARD,
VppMRoutePath(self.pg1.sw_if_index,
MRouteItfFlags.MFIB_ITF_FLAG_FORWARD,
- proto=
DpoProto.DPO
_PROTO_IP6),
+ proto=
FibPathProto.FIB_PATH_NH
_PROTO_IP6),
VppMRoutePath(self.pg2.sw_if_index,
MRouteItfFlags.MFIB_ITF_FLAG_FORWARD,
VppMRoutePath(self.pg2.sw_if_index,
MRouteItfFlags.MFIB_ITF_FLAG_FORWARD,
- proto=DpoProto.DPO_PROTO_IP6)],
- is_ip6=1)
+ proto=FibPathProto.FIB_PATH_NH_PROTO_IP6)])
route_2001_ff01_1.add_vpp_config()
#
route_2001_ff01_1.add_vpp_config()
#
@@
-442,11
+464,10
@@
class TestIPMcast(VppTestCase):
MRouteEntryFlags.MFIB_ENTRY_FLAG_NONE,
[VppMRoutePath(self.pg0.sw_if_index,
MRouteItfFlags.MFIB_ITF_FLAG_ACCEPT,
MRouteEntryFlags.MFIB_ENTRY_FLAG_NONE,
[VppMRoutePath(self.pg0.sw_if_index,
MRouteItfFlags.MFIB_ITF_FLAG_ACCEPT,
- proto=
DpoProto.DPO
_PROTO_IP6),
+ proto=
FibPathProto.FIB_PATH_NH
_PROTO_IP6),
VppMRoutePath(self.pg1.sw_if_index,
MRouteItfFlags.MFIB_ITF_FLAG_FORWARD,
VppMRoutePath(self.pg1.sw_if_index,
MRouteItfFlags.MFIB_ITF_FLAG_FORWARD,
- proto=DpoProto.DPO_PROTO_IP6)],
- is_ip6=1)
+ proto=FibPathProto.FIB_PATH_NH_PROTO_IP6)])
route_ff01.add_vpp_config()
#
route_ff01.add_vpp_config()
#
@@
-663,6
+684,7
@@
class TestIPMcast(VppTestCase):
MRouteItfFlags.MFIB_ITF_FLAG_FORWARD)])
route_232_1_1_1.add_vpp_config()
MRouteItfFlags.MFIB_ITF_FLAG_FORWARD)])
route_232_1_1_1.add_vpp_config()
+
route_232_1_1_1.update_entry_flags(
MRouteEntryFlags.MFIB_ENTRY_FLAG_SIGNAL)
route_232_1_1_1.update_entry_flags(
MRouteEntryFlags.MFIB_ENTRY_FLAG_SIGNAL)
@@
-787,15
+809,14
@@
class TestIPMcast(VppTestCase):
MRouteEntryFlags.MFIB_ENTRY_FLAG_NONE,
[VppMRoutePath(self.pg8.sw_if_index,
MRouteItfFlags.MFIB_ITF_FLAG_ACCEPT,
MRouteEntryFlags.MFIB_ENTRY_FLAG_NONE,
[VppMRoutePath(self.pg8.sw_if_index,
MRouteItfFlags.MFIB_ITF_FLAG_ACCEPT,
- proto=
DpoProto.DPO
_PROTO_IP6),
+ proto=
FibPathProto.FIB_PATH_NH
_PROTO_IP6),
VppMRoutePath(self.pg1.sw_if_index,
MRouteItfFlags.MFIB_ITF_FLAG_FORWARD,
VppMRoutePath(self.pg1.sw_if_index,
MRouteItfFlags.MFIB_ITF_FLAG_FORWARD,
- proto=
DpoProto.DPO
_PROTO_IP6),
+ proto=
FibPathProto.FIB_PATH_NH
_PROTO_IP6),
VppMRoutePath(self.pg2.sw_if_index,
MRouteItfFlags.MFIB_ITF_FLAG_FORWARD,
VppMRoutePath(self.pg2.sw_if_index,
MRouteItfFlags.MFIB_ITF_FLAG_FORWARD,
- proto=DpoProto.DPO_PROTO_IP6)],
- table_id=10,
- is_ip6=1)
+ proto=FibPathProto.FIB_PATH_NH_PROTO_IP6)],
+ table_id=10)
route_2001_ff01_1.add_vpp_config()
#
route_2001_ff01_1.add_vpp_config()
#