summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEyal Bari <ebari@cisco.com>2017-03-23 09:53:51 +0200
committerJohn Lo <loj@cisco.com>2017-03-29 16:59:03 +0000
commit6ae5ee7addcbb85e614a49fe7903df5bbb4ded22 (patch)
treef387f61094cf7a36b841b83e37f22c9f95899ef7
parent9705c3833a7b18609df8ae315a0aa062e1d2e180 (diff)
VXLAN:validate mcast encapsulation ip/mac
Change-Id: I399257e372f83f4d12dc7873617980af6e46a9bc Signed-off-by: Eyal Bari <ebari@cisco.com>
-rw-r--r--test/template_bd.py3
-rw-r--r--test/test_vxlan.py12
2 files changed, 11 insertions, 4 deletions
diff --git a/test/template_bd.py b/test/template_bd.py
index ae171351984..080b2e6bcc5 100644
--- a/test/template_bd.py
+++ b/test/template_bd.py
@@ -132,7 +132,8 @@ class BridgeDomain(object):
# Pick first received frame and check if it's corectly encapsulated.
out = self.pg0.get_capture(1)
pkt = out[0]
- self.check_encapsulation(pkt, self.mcast_flood_bd, True)
+ self.check_encapsulation(pkt, self.mcast_flood_bd,
+ local_only=False, mcast_pkt=True)
payload = self.decapsulate(pkt)
self.assert_eq_pkts(payload, self.frame_reply)
diff --git a/test/test_vxlan.py b/test/test_vxlan.py
index 35a0aa08211..ee829a31a28 100644
--- a/test/test_vxlan.py
+++ b/test/test_vxlan.py
@@ -51,17 +51,23 @@ class TestVxlan(BridgeDomain, VppTestCase):
# Method for checking VXLAN encapsulation.
#
- def check_encapsulation(self, pkt, vni, local_only=False):
+ def check_encapsulation(self, pkt, vni, local_only=False, mcast_pkt=False):
# TODO: add error messages
# Verify source MAC is VPP_MAC and destination MAC is MY_MAC resolved
# by VPP using ARP.
self.assertEqual(pkt[Ether].src, self.pg0.local_mac)
if not local_only:
- self.assertEqual(pkt[Ether].dst, self.pg0.remote_mac)
+ if not mcast_pkt:
+ self.assertEqual(pkt[Ether].dst, self.pg0.remote_mac)
+ else:
+ self.assertEqual(pkt[Ether].dst, type(self).mcast_mac)
# Verify VXLAN tunnel source IP is VPP_IP and destination IP is MY_IP.
self.assertEqual(pkt[IP].src, self.pg0.local_ip4)
if not local_only:
- self.assertEqual(pkt[IP].dst, self.pg0.remote_ip4)
+ if not mcast_pkt:
+ self.assertEqual(pkt[IP].dst, self.pg0.remote_ip4)
+ else:
+ self.assertEqual(pkt[IP].dst, type(self).mcast_ip4)
# Verify UDP destination port is VXLAN 4789, source UDP port could be
# arbitrary.
self.assertEqual(pkt[UDP].dport, type(self).dport)