nat: nat44-ed add session timing out indicator in api
[vpp.git] / test / vpp_ipip_tun_interface.py
1 from vpp_tunnel_interface import VppTunnelInterface
2 from ipaddress import ip_address
3 from vpp_papi import VppEnum
4
5
6 class VppIpIpTunInterface(VppTunnelInterface):
7     """
8     VPP IP-IP Tunnel interface
9     """
10
11     def __init__(self, test, parent_if, src, dst,
12                  table_id=0, dscp=0x0,
13                  flags=0, mode=None):
14         super(VppIpIpTunInterface, self).__init__(test, parent_if)
15         self.src = src
16         self.dst = dst
17         self.table_id = table_id
18         self.dscp = dscp
19         self.flags = flags
20         self.mode = mode
21         if not self.mode:
22             self.mode = (VppEnum.vl_api_tunnel_mode_t.
23                          TUNNEL_API_MODE_P2P)
24
25     def add_vpp_config(self):
26         r = self.test.vapi.ipip_add_tunnel(
27             tunnel={
28                 'src': self.src,
29                 'dst': self.dst,
30                 'table_id': self.table_id,
31                 'flags': self.flags,
32                 'dscp': self.dscp,
33                 'instance': 0xffffffff,
34                 'mode': self.mode,
35             })
36         self.set_sw_if_index(r.sw_if_index)
37         r = self.test.vapi.ipip_tunnel_dump(
38             sw_if_index=self.sw_if_index)
39         self.instance = r[0].tunnel.instance
40         self.test.registry.register(self, self.test.logger)
41         return self
42
43     def remove_vpp_config(self):
44         self.test.vapi.ipip_del_tunnel(sw_if_index=self._sw_if_index)
45
46     def query_vpp_config(self):
47         ts = self.test.vapi.ipip_tunnel_dump(sw_if_index=0xffffffff)
48         for t in ts:
49             if t.tunnel.sw_if_index == self._sw_if_index:
50                 return True
51         return False
52
53     def __str__(self):
54         return self.object_id()
55
56     def object_id(self):
57         return "ipip%d" % self.instance
58
59     @property
60     def remote_ip(self):
61         return self.dst
62
63     @property
64     def local_ip(self):
65         return self.src