diff options
author | 2017-03-23 09:53:51 +0200 | |
---|---|---|
committer | 2017-03-29 16:59:03 +0000 | |
commit | 6ae5ee7addcbb85e614a49fe7903df5bbb4ded22 (patch) | |
tree | f387f61094cf7a36b841b83e37f22c9f95899ef7 | |
parent | 9705c3833a7b18609df8ae315a0aa062e1d2e180 (diff) |
VXLAN:validate mcast encapsulation ip/mac
Change-Id: I399257e372f83f4d12dc7873617980af6e46a9bc
Signed-off-by: Eyal Bari <ebari@cisco.com>
-rw-r--r-- | test/template_bd.py | 3 | ||||
-rw-r--r-- | test/test_vxlan.py | 12 |
2 files changed, 11 insertions, 4 deletions
diff --git a/test/template_bd.py b/test/template_bd.py index ae171351..080b2e6b 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 35a0aa08..ee829a31 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) |