docs: Use newer Ubuntu LTS in tutorial
[vpp.git] / test / vpp_gre_interface.py
1 from vpp_interface import VppInterface
2 from vpp_papi import VppEnum
3
4
5 class VppGreInterface(VppInterface):
6     """
7     VPP GRE interface
8     """
9
10     def __init__(
11         self,
12         test,
13         src_ip,
14         dst_ip,
15         outer_table_id=0,
16         type=None,
17         mode=None,
18         flags=0,
19         session=0,
20     ):
21         """Create VPP GRE interface"""
22         super(VppGreInterface, self).__init__(test)
23         self.t_src = src_ip
24         self.t_dst = dst_ip
25         self.t_outer_table = outer_table_id
26         self.t_session = session
27         self.t_flags = flags
28         self.t_type = type
29         if not self.t_type:
30             self.t_type = VppEnum.vl_api_gre_tunnel_type_t.GRE_API_TUNNEL_TYPE_L3
31         self.t_mode = mode
32         if not self.t_mode:
33             self.t_mode = VppEnum.vl_api_tunnel_mode_t.TUNNEL_API_MODE_P2P
34
35     def add_vpp_config(self):
36         r = self.test.vapi.gre_tunnel_add_del(
37             is_add=1,
38             tunnel={
39                 "src": self.t_src,
40                 "dst": self.t_dst,
41                 "outer_table_id": self.t_outer_table,
42                 "instance": 0xFFFFFFFF,
43                 "type": self.t_type,
44                 "mode": self.t_mode,
45                 "flags": self.t_flags,
46                 "session_id": self.t_session,
47             },
48         )
49         self.set_sw_if_index(r.sw_if_index)
50         self.generate_remote_hosts()
51         self.test.registry.register(self, self.test.logger)
52         return self
53
54     def remove_vpp_config(self):
55         self.unconfig()
56         self.test.vapi.gre_tunnel_add_del(
57             is_add=0,
58             tunnel={
59                 "src": self.t_src,
60                 "dst": self.t_dst,
61                 "outer_table_id": self.t_outer_table,
62                 "instance": 0xFFFFFFFF,
63                 "type": self.t_type,
64                 "mode": self.t_mode,
65                 "flags": self.t_flags,
66                 "session_id": self.t_session,
67             },
68         )
69
70     def object_id(self):
71         return "gre-%d" % self.sw_if_index
72
73     def query_vpp_config(self):
74         return self.test.vapi.gre_tunnel_dump(sw_if_index=self._sw_if_index)
75
76     @property
77     def remote_ip(self):
78         return self.t_dst
79
80     @property
81     def local_ip(self):
82         return self.t_src