X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Ftest_ipip.py;h=1887417a5e0d093624266bccd8d61bb2b7c7724f;hb=097fa66b9;hp=16f83694b20c5a79db990c5e3ddb06fff30af058;hpb=7f9b7f9f492d1748d8ba025b3a713058fdb1943d;p=vpp.git diff --git a/test/test_ipip.py b/test/test_ipip.py index 16f83694b20..1887417a5e0 100644 --- 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 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 @@ -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 """ @@ -71,10 +84,10 @@ class TestIPIP(VppTestCase): 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 @@ -88,14 +101,14 @@ class TestIPIP(VppTestCase): 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, - 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 @@ -135,7 +148,7 @@ class TestIPIP(VppTestCase): 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) @@ -149,7 +162,7 @@ class TestIPIP(VppTestCase): 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) @@ -160,6 +173,11 @@ class TestIPIP(VppTestCase): 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 = [] @@ -173,7 +191,7 @@ class TestIPIP(VppTestCase): 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) @@ -221,9 +239,7 @@ class TestIPIP(VppTestCase): 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) @@ -232,10 +248,7 @@ class TestIPIP(VppTestCase): 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) @@ -278,9 +291,10 @@ class TestIPIP6(VppTestCase): 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 @@ -294,14 +308,14 @@ class TestIPIP6(VppTestCase): 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, - 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 @@ -415,8 +429,13 @@ class TestIPIP6(VppTestCase): 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 - 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 = [] @@ -430,7 +449,7 @@ class TestIPIP6(VppTestCase): 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) @@ -492,9 +511,7 @@ class TestIPIP6(VppTestCase): 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) @@ -503,10 +520,7 @@ class TestIPIP6(VppTestCase): 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)