X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Fvpp_ipip_tun_interface.py;h=50dcb29b7d570b411b4b9f3dcbf1e2b4bfd274b1;hb=853cc9f2ad3ee52cbdd891fb09d51c25678baed0;hp=6e5ade6eb3df3d311f1a783d8d2216bccaf237fb;hpb=c87b66c86201458c0475d50c6e93f1497f9eec2e;p=vpp.git diff --git a/test/vpp_ipip_tun_interface.py b/test/vpp_ipip_tun_interface.py index 6e5ade6eb3d..50dcb29b7d5 100644 --- a/test/vpp_ipip_tun_interface.py +++ b/test/vpp_ipip_tun_interface.py @@ -1,5 +1,5 @@ from vpp_tunnel_interface import VppTunnelInterface -from ipaddress import ip_address +from vpp_papi import VppEnum class VppIpIpTunInterface(VppTunnelInterface): @@ -7,27 +7,42 @@ class VppIpIpTunInterface(VppTunnelInterface): VPP IP-IP Tunnel interface """ - def __init__(self, test, parent_if, src, dst): + def __init__( + self, test, parent_if, src, dst, table_id=0, dscp=0x0, flags=0, mode=None + ): super(VppIpIpTunInterface, self).__init__(test, parent_if) self.src = src self.dst = dst + self.table_id = table_id + self.dscp = dscp + self.flags = flags + self.mode = mode + if not self.mode: + self.mode = VppEnum.vl_api_tunnel_mode_t.TUNNEL_API_MODE_P2P def add_vpp_config(self): r = self.test.vapi.ipip_add_tunnel( tunnel={ - 'src': self.src, - 'dst': self.dst, - 'table_id': 0, - 'instance': 0xffffffff, - }) + "src": self.src, + "dst": self.dst, + "table_id": self.table_id, + "flags": self.flags, + "dscp": self.dscp, + "instance": 0xFFFFFFFF, + "mode": self.mode, + } + ) self.set_sw_if_index(r.sw_if_index) + r = self.test.vapi.ipip_tunnel_dump(sw_if_index=self.sw_if_index) + self.instance = r[0].tunnel.instance self.test.registry.register(self, self.test.logger) + return self def remove_vpp_config(self): self.test.vapi.ipip_del_tunnel(sw_if_index=self._sw_if_index) def query_vpp_config(self): - ts = self.test.vapi.ipip_tunnel_dump(sw_if_index=0xffffffff) + ts = self.test.vapi.ipip_tunnel_dump(sw_if_index=0xFFFFFFFF) for t in ts: if t.tunnel.sw_if_index == self._sw_if_index: return True @@ -37,4 +52,12 @@ class VppIpIpTunInterface(VppTunnelInterface): return self.object_id() def object_id(self): - return "ipip-%d" % self._sw_if_index + return "ipip%d" % self.instance + + @property + def remote_ip(self): + return self.dst + + @property + def local_ip(self): + return self.src