Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
l2: coverity woe in l2_api.c
[vpp.git]
/
test
/
test_vxlan_gpe.py
diff --git
a/test/test_vxlan_gpe.py
b/test/test_vxlan_gpe.py
index
7ee1225
..
c5d6bf0
100644
(file)
--- a/
test/test_vxlan_gpe.py
+++ b/
test/test_vxlan_gpe.py
@@
-1,15
+1,20
@@
-#!/usr/bin/env python
+#!/usr/bin/env python
3
import socket
import socket
-from util import ip4
n_range, ip4
_range
+from util import ip4_range
import unittest
from framework import VppTestCase, VppTestRunner, running_extended_tests
from template_bd import BridgeDomain
import unittest
from framework import VppTestCase, VppTestRunner, running_extended_tests
from template_bd import BridgeDomain
-from scapy.layers.l2 import Ether, Raw
+from scapy.layers.l2 import Ether
+from scapy.packet import Raw
from scapy.layers.inet import IP, UDP
from scapy.layers.vxlan import VXLAN
from scapy.layers.inet import IP, UDP
from scapy.layers.vxlan import VXLAN
-from scapy.utils import atol
+
+import util
+from vpp_ip_route import VppIpRoute, VppRoutePath
+
+from vpp_ip import INVALID_INDEX
@unittest.skipUnless(running_extended_tests, "part of extended tests")
@unittest.skipUnless(running_extended_tests, "part of extended tests")
@@
-75,24
+80,29
@@
class TestVxlanGpe(BridgeDomain, VppTestCase):
# Verify UDP destination port is VXLAN-GPE 4790, source UDP port
# could be arbitrary.
self.assertEqual(pkt[UDP].dport, type(self).dport)
# Verify UDP destination port is VXLAN-GPE 4790, source UDP port
# could be arbitrary.
self.assertEqual(pkt[UDP].dport, type(self).dport)
+ # Verify UDP checksum
+ self.assert_udp_checksum_valid(pkt)
# Verify VNI
self.assertEqual(pkt[VXLAN].vni, vni)
@classmethod
def create_vxlan_gpe_flood_test_bd(cls, vni, n_ucast_tunnels):
# Verify VNI
self.assertEqual(pkt[VXLAN].vni, vni)
@classmethod
def create_vxlan_gpe_flood_test_bd(cls, vni, n_ucast_tunnels):
- # Create 10 ucast vxlan
_gpe
tunnels under bd
+ # Create 10 ucast vxlan tunnels under bd
ip_range_start = 10
ip_range_end = ip_range_start + n_ucast_tunnels
ip_range_start = 10
ip_range_end = ip_range_start + n_ucast_tunnels
- next_hop_address = cls.pg0.remote_ip4
n
- for dest_ip4
n in ip4n
_range(next_hop_address, ip_range_start,
-
ip_range_end):
+ next_hop_address = cls.pg0.remote_ip4
+ for dest_ip4
in ip4
_range(next_hop_address, ip_range_start,
+ ip_range_end):
# add host route so dest_ip4n will not be resolved
# add host route so dest_ip4n will not be resolved
- cls.vapi.ip_add_del_route(dst_address=dest_ip4n,
- dst_address_length=32,
- next_hop_address=next_hop_address)
+ rip = VppIpRoute(cls, dest_ip4, 32,
+ [VppRoutePath(next_hop_address,
+ INVALID_INDEX)],
+ register=False)
+ rip.add_vpp_config()
+
r = cls.vapi.vxlan_gpe_add_del_tunnel(
r = cls.vapi.vxlan_gpe_add_del_tunnel(
- src_addr=cls.pg0.local_ip4
n
,
- dst_addr=dest_ip4
n
,
+ src_addr=cls.pg0.local_ip4,
+ dst_addr=dest_ip4,
vni=vni)
cls.vapi.sw_interface_set_l2_bridge(rx_sw_if_index=r.sw_if_index,
bd_id=vni)
vni=vni)
cls.vapi.sw_interface_set_l2_bridge(rx_sw_if_index=r.sw_if_index,
bd_id=vni)
@@
-108,8
+118,8
@@
class TestVxlanGpe(BridgeDomain, VppTestCase):
vni_end = vni_start + n_shared_dst_tunnels
for vni in range(vni_start, vni_end):
r = cls.vapi.vxlan_gpe_add_del_tunnel(
vni_end = vni_start + n_shared_dst_tunnels
for vni in range(vni_start, vni_end):
r = cls.vapi.vxlan_gpe_add_del_tunnel(
-
src_addr=cls.pg0.local_ip4n
,
-
dst_addr=cls.mcast_ip4n
,
+
local=cls.pg0.local_ip4
,
+
remote=cls.mcast_ip4
,
mcast_sw_if_index=1,
vni=vni,
is_add=is_add)
mcast_sw_if_index=1,
vni=vni,
is_add=is_add)
@@
-132,12
+142,12
@@
class TestVxlanGpe(BridgeDomain, VppTestCase):
n_distinct_dst_tunnels = 20
ip_range_start = 10
ip_range_end = ip_range_start + n_distinct_dst_tunnels
n_distinct_dst_tunnels = 20
ip_range_start = 10
ip_range_end = ip_range_start + n_distinct_dst_tunnels
- for dest_ip4
n in ip4n_range(cls.mcast_ip4n
, ip_range_start,
-
ip_range_end):
- vni =
bytearray(dest_ip4n)[3]
+ for dest_ip4
in ip4_range(cls.mcast_ip4
, ip_range_start,
+ ip_range_end):
+ vni =
int(dest_ip4.split(".")[3])
cls.vapi.vxlan_gpe_add_del_tunnel(
cls.vapi.vxlan_gpe_add_del_tunnel(
- src_addr=cls.pg0.local_ip4
n
,
- dst_addr=dest_ip4
n
,
+ src_addr=cls.pg0.local_ip4,
+ dst_addr=dest_ip4,
mcast_sw_if_index=1,
vni=vni,
is_add=is_add)
mcast_sw_if_index=1,
vni=vni,
is_add=is_add)
@@
-176,18
+186,16
@@
class TestVxlanGpe(BridgeDomain, VppTestCase):
# Our Multicast address
cls.mcast_ip4 = '239.1.1.1'
# Our Multicast address
cls.mcast_ip4 = '239.1.1.1'
- cls.mcast_ip4n = socket.inet_pton(socket.AF_INET, cls.mcast_ip4)
- iplong = atol(cls.mcast_ip4)
- cls.mcast_mac = "01:00:5e:%02x:%02x:%02x" % (
- (iplong >> 16) & 0x7F, (iplong >> 8) & 0xFF, iplong & 0xFF)
+ cls.mcast_mac = util.mcast_ip_to_mac(cls.mcast_ip4)
# Create VXLAN-GPE VTEP on VPP pg0, and put vxlan_gpe_tunnel0
# and pg1 into BD.
# Create VXLAN-GPE VTEP on VPP pg0, and put vxlan_gpe_tunnel0
# and pg1 into BD.
+ cls.single_tunnel_vni = 0xabcde
cls.single_tunnel_bd = 11
r = cls.vapi.vxlan_gpe_add_del_tunnel(
cls.single_tunnel_bd = 11
r = cls.vapi.vxlan_gpe_add_del_tunnel(
- src_addr=cls.pg0.local_ip4
n
,
- dst_addr=cls.pg0.remote_ip4
n
,
- vni=cls.single_tunnel_
bd
)
+ src_addr=cls.pg0.local_ip4,
+ dst_addr=cls.pg0.remote_ip4,
+ vni=cls.single_tunnel_
vni
)
cls.vapi.sw_interface_set_l2_bridge(rx_sw_if_index=r.sw_if_index,
bd_id=cls.single_tunnel_bd)
cls.vapi.sw_interface_set_l2_bridge(
cls.vapi.sw_interface_set_l2_bridge(rx_sw_if_index=r.sw_if_index,
bd_id=cls.single_tunnel_bd)
cls.vapi.sw_interface_set_l2_bridge(
@@
-199,8
+207,8
@@
class TestVxlanGpe(BridgeDomain, VppTestCase):
cls.create_vxlan_gpe_flood_test_bd(cls.mcast_flood_bd,
cls.n_ucast_tunnels)
r = cls.vapi.vxlan_gpe_add_del_tunnel(
cls.create_vxlan_gpe_flood_test_bd(cls.mcast_flood_bd,
cls.n_ucast_tunnels)
r = cls.vapi.vxlan_gpe_add_del_tunnel(
- src_addr=cls.pg0.local_ip4
n
,
- dst_addr=cls.mcast_ip4
n
,
+ src_addr=cls.pg0.local_ip4,
+ dst_addr=cls.mcast_ip4,
mcast_sw_if_index=1,
vni=cls.mcast_flood_bd)
cls.vapi.sw_interface_set_l2_bridge(rx_sw_if_index=r.sw_if_index,
mcast_sw_if_index=1,
vni=cls.mcast_flood_bd)
cls.vapi.sw_interface_set_l2_bridge(rx_sw_if_index=r.sw_if_index,