Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
vcl: refactor debugging
[vpp.git]
/
test
/
test_vxlan.py
diff --git
a/test/test_vxlan.py
b/test/test_vxlan.py
index
35a0aa0
..
1411dd6
100644
(file)
--- a/
test/test_vxlan.py
+++ b/
test/test_vxlan.py
@@
-1,7
+1,7
@@
#!/usr/bin/env python
import socket
#!/usr/bin/env python
import socket
-from util import ip4n_range
+from util import ip4n_range
, ip4_range
import unittest
from framework import VppTestCase, VppTestRunner
from template_bd import BridgeDomain
import unittest
from framework import VppTestCase, VppTestRunner
from template_bd import BridgeDomain
@@
-30,6
+30,10
@@
class TestVxlan(BridgeDomain, VppTestCase):
VXLAN(vni=vni, flags=self.flags) /
pkt)
VXLAN(vni=vni, flags=self.flags) /
pkt)
+ def ip_range(self, start, end):
+ """ range of remote ip's """
+ return ip4_range(self.pg0.remote_ip4, start, end)
+
def encap_mcast(self, pkt, src_ip, src_mac, vni):
"""
Encapsulate the original payload frame by adding VXLAN header with its
def encap_mcast(self, pkt, src_ip, src_mac, vni):
"""
Encapsulate the original payload frame by adding VXLAN header with its
@@
-51,17
+55,23
@@
class TestVxlan(BridgeDomain, VppTestCase):
# Method for checking VXLAN encapsulation.
#
# 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:
# 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:
# 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)
# Verify UDP destination port is VXLAN 4789, source UDP port could be
# arbitrary.
self.assertEqual(pkt[UDP].dport, type(self).dport)
@@
-91,16
+101,18
@@
class TestVxlan(BridgeDomain, VppTestCase):
add or del tunnels sharing the same mcast dst
to test vxlan ref_count mechanism
"""
add or del tunnels sharing the same mcast dst
to test vxlan ref_count mechanism
"""
- n_shared_dst_tunnels = 20
00
+ n_shared_dst_tunnels = 20
vni_start = 10000
vni_end = vni_start + n_shared_dst_tunnels
for vni in range(vni_start, vni_end):
vni_start = 10000
vni_end = vni_start + n_shared_dst_tunnels
for vni in range(vni_start, vni_end):
- cls.vapi.vxlan_add_del_tunnel(
+
r =
cls.vapi.vxlan_add_del_tunnel(
src_addr=cls.pg0.local_ip4n,
dst_addr=cls.mcast_ip4n,
mcast_sw_if_index=1,
vni=vni,
is_add=is_add)
src_addr=cls.pg0.local_ip4n,
dst_addr=cls.mcast_ip4n,
mcast_sw_if_index=1,
vni=vni,
is_add=is_add)
+ if r.sw_if_index == 0xffffffff:
+ raise "bad sw_if_index"
@classmethod
def add_shared_mcast_dst_load(cls):
@classmethod
def add_shared_mcast_dst_load(cls):