STATS: Dynamically mapped shared memory segment
[vpp.git] / test / test_ipip.py
index 8d99f83..efaaf52 100644 (file)
@@ -5,7 +5,8 @@ import unittest
 from scapy.layers.inet6 import IPv6, Ether, IP, UDP
 from scapy.all import fragment, RandShort
 from framework import VppTestCase, VppTestRunner
-from vpp_ip_route import VppIpRoute, VppRoutePath, DpoProto
+from vpp_ip import DpoProto
+from vpp_ip_route import VppIpRoute, VppRoutePath, VppIpTable
 from socket import AF_INET, AF_INET6, inet_pton
 import StringIO
 
@@ -144,6 +145,10 @@ class TestIPIP(VppTestCase):
         for p in rx:
             self.validate(p[1], p4_reply)
 
+        err = self.statistics.get_counter(
+            '/err/ipip4-input/packets decapsulated')
+        self.assertEqual(err, 10)
+
         # IPv4 tunnel to IPv6
         p_ip6 = IPv6(src="1:2:3::4", dst=self.pg0.remote_ip6)
         p6 = (p_ether / IP(src=self.pg1.remote_ip4,
@@ -154,6 +159,10 @@ class TestIPIP(VppTestCase):
         for p in rx:
             self.validate(p[1], p6_reply)
 
+        err = self.statistics.get_counter(
+            '/err/ipip4-input/packets decapsulated')
+        self.assertEqual(err, 20)
+
         #
         # Fragmentation / Reassembly and Re-fragmentation
         #
@@ -174,6 +183,10 @@ class TestIPIP(VppTestCase):
         for p in rx:
             self.validate(p[1], p4_reply)
 
+        err = self.statistics.get_counter(
+            '/err/ipip4-input/packets decapsulated')
+        self.assertEqual(err, 1020)
+
         f = []
         r = []
         for i in range(1, 90):
@@ -303,6 +316,18 @@ class TestIPIP(VppTestCase):
         sw_if_index = rv.sw_if_index
         self.vapi.ipip_del_tunnel(sw_if_index)
 
+    def test_ipip_vrf_create(self):
+        """ ipip create / delete interface VRF test """
+
+        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)
+        sw_if_index = rv.sw_if_index
+        self.vapi.ipip_del_tunnel(sw_if_index)
+
     def payload(self, len):
         return 'x' * len