Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
fib: fib api updates
[vpp.git]
/
test
/
test_ipip.py
diff --git
a/test/test_ipip.py
b/test/test_ipip.py
index
0369cb7
..
1887417
100644
(file)
--- a/
test/test_ipip.py
+++ b/
test/test_ipip.py
@@
-6,7
+6,7
@@
from scapy.layers.inet6 import IPv6, Ether, IP, UDP, IPv6ExtHdrFragment
from scapy.all import fragment, fragment6, RandShort, defragment6
from framework import VppTestCase, VppTestRunner
from vpp_ip import DpoProto
from scapy.all import fragment, fragment6, RandShort, defragment6
from framework import VppTestCase, VppTestRunner
from vpp_ip import DpoProto
-from vpp_ip_route import VppIpRoute, VppRoutePath, VppIpTable
+from vpp_ip_route import VppIpRoute, VppRoutePath, VppIpTable
, FibPathProto
from socket import AF_INET, AF_INET6, inet_pton
from util import reassemble4
from socket import AF_INET, AF_INET6, inet_pton
from util import reassemble4
@@
-17,6
+17,19
@@
IPIP tests.
"""
"""
+def ipip_add_tunnel(test, src, dst, table_id=0, tc_tos=0xff):
+ """ Add a IPIP tunnel """
+ return test.vapi.ipip_add_tunnel(
+ tunnel={
+ 'src': src,
+ 'dst': dst,
+ 'table_id': table_id,
+ 'instance': 0xffffffff,
+ 'tc_tos': tc_tos
+ }
+ )
+
+
class TestIPIP(VppTestCase):
""" IPIP Test Case """
class TestIPIP(VppTestCase):
""" IPIP Test Case """
@@
-26,6
+39,10
@@
class TestIPIP(VppTestCase):
cls.create_pg_interfaces(range(2))
cls.interfaces = list(cls.pg_interfaces)
cls.create_pg_interfaces(range(2))
cls.interfaces = list(cls.pg_interfaces)
+ @classmethod
+ def tearDownClass(cls):
+ super(TestIPIP, cls).tearDownClass()
+
def setUp(self):
super(TestIPIP, self).setUp()
for i in self.interfaces:
def setUp(self):
super(TestIPIP, self).setUp()
for i in self.interfaces:
@@
-67,10
+84,10
@@
class TestIPIP(VppTestCase):
p_payload = UDP(sport=1234, dport=1234)
# IPv4 transport
p_payload = UDP(sport=1234, dport=1234)
# IPv4 transport
- rv =
self.vapi.ipip_add_tunnel(
-
src_address=self.pg0.local_ip4n
,
-
dst_address=self.pg1.remote_ip4n
,
-
is_ipv6=0,
tc_tos=0xFF)
+ rv =
ipip_add_tunnel(self,
+
self.pg0.local_ip4
,
+
self.pg1.remote_ip4
,
+
tc_tos=0xFF)
sw_if_index = rv.sw_if_index
# Set interface up and enable IP on it
sw_if_index = rv.sw_if_index
# Set interface up and enable IP on it
@@
-84,14
+101,14
@@
class TestIPIP(VppTestCase):
self, "130.67.0.0", 16,
[VppRoutePath("0.0.0.0",
sw_if_index,
self, "130.67.0.0", 16,
[VppRoutePath("0.0.0.0",
sw_if_index,
- proto=
DpoProto.DPO_PROTO_IP4)], is_ip6=0
)
+ proto=
FibPathProto.FIB_PATH_NH_PROTO_IP4)]
)
ip4_via_tunnel.add_vpp_config()
ip6_via_tunnel = VppIpRoute(
self, "dead::", 16,
[VppRoutePath("::",
sw_if_index,
ip4_via_tunnel.add_vpp_config()
ip6_via_tunnel = VppIpRoute(
self, "dead::", 16,
[VppRoutePath("::",
sw_if_index,
- proto=
DpoProto.DPO_PROTO_IP6)], is_ip6=1
)
+ proto=
FibPathProto.FIB_PATH_NH_PROTO_IP6)]
)
ip6_via_tunnel.add_vpp_config()
# IPv6 in to IPv4 tunnel
ip6_via_tunnel.add_vpp_config()
# IPv6 in to IPv4 tunnel
@@
-131,7
+148,7
@@
class TestIPIP(VppTestCase):
for p in rx:
self.validate(p[1], p4_reply)
for p in rx:
self.validate(p[1], p4_reply)
- err = self.statistics.get_counter(
+ err = self.statistics.get_
err_
counter(
'/err/ipip4-input/packets decapsulated')
self.assertEqual(err, 10)
'/err/ipip4-input/packets decapsulated')
self.assertEqual(err, 10)
@@
-145,7
+162,7
@@
class TestIPIP(VppTestCase):
for p in rx:
self.validate(p[1], p6_reply)
for p in rx:
self.validate(p[1], p6_reply)
- err = self.statistics.get_counter(
+ err = self.statistics.get_
err_
counter(
'/err/ipip4-input/packets decapsulated')
self.assertEqual(err, 20)
'/err/ipip4-input/packets decapsulated')
self.assertEqual(err, 20)
@@
-156,6
+173,11
@@
class TestIPIP(VppTestCase):
sw_if_index=self.pg1.sw_if_index,
enable_ip4=1)
sw_if_index=self.pg1.sw_if_index,
enable_ip4=1)
+ self.vapi.ip_reassembly_set(timeout_ms=1000, max_reassemblies=1000,
+ max_reassembly_length=1000,
+ expire_walk_interval_ms=10000,
+ is_ip6=0)
+
# Send lots of fragments, verify reassembled packet
frags, p4_reply = self.generate_ip4_frags(3131, 1400)
f = []
# Send lots of fragments, verify reassembled packet
frags, p4_reply = self.generate_ip4_frags(3131, 1400)
f = []
@@
-169,7
+191,7
@@
class TestIPIP(VppTestCase):
for p in rx:
self.validate(p[1], p4_reply)
for p in rx:
self.validate(p[1], p4_reply)
- err = self.statistics.get_counter(
+ err = self.statistics.get_
err_
counter(
'/err/ipip4-input/packets decapsulated')
self.assertEqual(err, 1020)
'/err/ipip4-input/packets decapsulated')
self.assertEqual(err, 1020)
@@
-217,9
+239,7
@@
class TestIPIP(VppTestCase):
def test_ipip_create(self):
""" ipip create / delete interface test """
def test_ipip_create(self):
""" ipip create / delete interface test """
- rv = self.vapi.ipip_add_tunnel(
- src_address=inet_pton(AF_INET, '1.2.3.4'),
- dst_address=inet_pton(AF_INET, '2.3.4.5'), is_ipv6=0)
+ rv = ipip_add_tunnel(self, '1.2.3.4', '2.3.4.5')
sw_if_index = rv.sw_if_index
self.vapi.ipip_del_tunnel(sw_if_index)
sw_if_index = rv.sw_if_index
self.vapi.ipip_del_tunnel(sw_if_index)
@@
-228,10
+248,7
@@
class TestIPIP(VppTestCase):
t = VppIpTable(self, 20)
t.add_vpp_config()
t = VppIpTable(self, 20)
t.add_vpp_config()
- rv = self.vapi.ipip_add_tunnel(
- src_address=inet_pton(AF_INET, '1.2.3.4'),
- dst_address=inet_pton(AF_INET, '2.3.4.5'), is_ipv6=0,
- table_id=20)
+ rv = ipip_add_tunnel(self, '1.2.3.4', '2.3.4.5', table_id=20)
sw_if_index = rv.sw_if_index
self.vapi.ipip_del_tunnel(sw_if_index)
sw_if_index = rv.sw_if_index
self.vapi.ipip_del_tunnel(sw_if_index)
@@
-248,6
+265,10
@@
class TestIPIP6(VppTestCase):
cls.create_pg_interfaces(range(2))
cls.interfaces = list(cls.pg_interfaces)
cls.create_pg_interfaces(range(2))
cls.interfaces = list(cls.pg_interfaces)
+ @classmethod
+ def tearDownClass(cls):
+ super(TestIPIP6, cls).tearDownClass()
+
def setUp(self):
super(TestIPIP6, self).setUp()
for i in self.interfaces:
def setUp(self):
super(TestIPIP6, self).setUp()
for i in self.interfaces:
@@
-270,9
+291,10
@@
class TestIPIP6(VppTestCase):
def setup_tunnel(self):
# IPv6 transport
def setup_tunnel(self):
# IPv6 transport
- rv = self.vapi.ipip_add_tunnel(
- src_address=self.pg0.local_ip6n,
- dst_address=self.pg1.remote_ip6n, tc_tos=255)
+ rv = ipip_add_tunnel(self,
+ self.pg0.local_ip6,
+ self.pg1.remote_ip6,
+ tc_tos=255)
sw_if_index = rv.sw_if_index
self.tunnel_if_index = sw_if_index
sw_if_index = rv.sw_if_index
self.tunnel_if_index = sw_if_index
@@
-286,14
+308,14
@@
class TestIPIP6(VppTestCase):
self, "130.67.0.0", 16,
[VppRoutePath("0.0.0.0",
sw_if_index,
self, "130.67.0.0", 16,
[VppRoutePath("0.0.0.0",
sw_if_index,
- proto=
DpoProto.DPO_PROTO_IP4)], is_ip6=0
)
+ proto=
FibPathProto.FIB_PATH_NH_PROTO_IP4)]
)
ip4_via_tunnel.add_vpp_config()
ip6_via_tunnel = VppIpRoute(
self, "dead::", 16,
[VppRoutePath("::",
sw_if_index,
ip4_via_tunnel.add_vpp_config()
ip6_via_tunnel = VppIpRoute(
self, "dead::", 16,
[VppRoutePath("::",
sw_if_index,
- proto=
DpoProto.DPO_PROTO_IP6)], is_ip6=1
)
+ proto=
FibPathProto.FIB_PATH_NH_PROTO_IP6)]
)
ip6_via_tunnel.add_vpp_config()
self.tunnel_ip6_via_tunnel = ip6_via_tunnel
ip6_via_tunnel.add_vpp_config()
self.tunnel_ip6_via_tunnel = ip6_via_tunnel
@@
-407,8
+429,13
@@
class TestIPIP6(VppTestCase):
sw_if_index=self.pg1.sw_if_index,
enable_ip6=1)
sw_if_index=self.pg1.sw_if_index,
enable_ip6=1)
+ self.vapi.ip_reassembly_set(timeout_ms=1000, max_reassemblies=1000,
+ max_reassembly_length=1000,
+ expire_walk_interval_ms=10000,
+ is_ip6=1)
+
# Send lots of fragments, verify reassembled packet
# Send lots of fragments, verify reassembled packet
- before_cnt = self.statistics.get_counter(
+ before_cnt = self.statistics.get_
err_
counter(
'/err/ipip6-input/packets decapsulated')
frags, p6_reply = self.generate_ip6_frags(3131, 1400)
f = []
'/err/ipip6-input/packets decapsulated')
frags, p6_reply = self.generate_ip6_frags(3131, 1400)
f = []
@@
-422,7
+449,7
@@
class TestIPIP6(VppTestCase):
for p in rx:
self.validate(p[1], p6_reply)
for p in rx:
self.validate(p[1], p6_reply)
- cnt = self.statistics.get_counter(
+ cnt = self.statistics.get_
err_
counter(
'/err/ipip6-input/packets decapsulated')
self.assertEqual(cnt, before_cnt + 1000)
'/err/ipip6-input/packets decapsulated')
self.assertEqual(cnt, before_cnt + 1000)
@@
-460,7
+487,7
@@
class TestIPIP6(VppTestCase):
rx = self.pg1.get_capture(2)
# Scapy defragment doesn't deal well with multiple layers
rx = self.pg1.get_capture(2)
# Scapy defragment doesn't deal well with multiple layers
- # of sam
y
type / Ethernet header first
+ # of sam
e
type / Ethernet header first
f = [p[1] for p in rx]
reass_pkt = defragment6(f)
self.validate(reass_pkt, p6_reply)
f = [p[1] for p in rx]
reass_pkt = defragment6(f)
self.validate(reass_pkt, p6_reply)
@@
-484,9
+511,7
@@
class TestIPIP6(VppTestCase):
def test_ipip_create(self):
""" ipip create / delete interface test """
def test_ipip_create(self):
""" ipip create / delete interface test """
- rv = self.vapi.ipip_add_tunnel(
- src_address=inet_pton(AF_INET, '1.2.3.4'),
- dst_address=inet_pton(AF_INET, '2.3.4.5'), is_ipv6=0)
+ rv = ipip_add_tunnel(self, '1.2.3.4', '2.3.4.5')
sw_if_index = rv.sw_if_index
self.vapi.ipip_del_tunnel(sw_if_index)
sw_if_index = rv.sw_if_index
self.vapi.ipip_del_tunnel(sw_if_index)
@@
-495,10
+520,7
@@
class TestIPIP6(VppTestCase):
t = VppIpTable(self, 20)
t.add_vpp_config()
t = VppIpTable(self, 20)
t.add_vpp_config()
- rv = self.vapi.ipip_add_tunnel(
- src_address=inet_pton(AF_INET, '1.2.3.4'),
- dst_address=inet_pton(AF_INET, '2.3.4.5'), is_ipv6=0,
- table_id=20)
+ rv = ipip_add_tunnel(self, '1.2.3.4', '2.3.4.5', table_id=20)
sw_if_index = rv.sw_if_index
self.vapi.ipip_del_tunnel(sw_if_index)
sw_if_index = rv.sw_if_index
self.vapi.ipip_del_tunnel(sw_if_index)