2 from vpp_interface import VppInterface
3 from vpp_ip import VppIpAddress
6 INDEX_INVALID = 0xffffffff
9 def find_vxlan_gbp_tunnel(test, src, dst, vni):
10 vsrc = VppIpAddress(src)
11 vdst = VppIpAddress(dst)
13 ts = test.vapi.vxlan_gbp_tunnel_dump(INDEX_INVALID)
15 if vsrc == t.tunnel.src and \
16 vdst == t.tunnel.dst and \
18 return t.tunnel.sw_if_index
22 class VppVxlanGbpTunnel(VppInterface):
24 VPP VXLAN GBP interface
27 def __init__(self, test, src, dst, vni, mcast_itf=None):
28 """ Create VXLAN-GBP Tunnel interface """
29 super(VppVxlanGbpTunnel, self).__init__(test)
30 self.src = VppIpAddress(src)
31 self.dst = VppIpAddress(dst)
33 self.mcast_itf = mcast_itf
35 def add_vpp_config(self):
36 mcast_sw_if_index = INDEX_INVALID
38 mcast_sw_if_index = self.mcast_itf.sw_if_index
39 reply = self.test.vapi.vxlan_gbp_tunnel_add_del(
43 mcast_sw_if_index=mcast_sw_if_index)
44 self.set_sw_if_index(reply.sw_if_index)
45 self._test.registry.register(self, self._test.logger)
47 def remove_vpp_config(self):
48 mcast_sw_if_index = INDEX_INVALID
50 mcast_sw_if_index = self.mcast_itf.sw_if_index
51 self.test.vapi.vxlan_gbp_tunnel_add_del(
56 mcast_sw_if_index=mcast_sw_if_index)
58 def query_vpp_config(self):
59 return (INDEX_INVALID != find_vxlan_gbp_tunnel(self._test,
65 return self.object_id()
68 return "vxlan-gbp-%d-%d-%s-%s" % (self.sw_if_index, self.vni,