1 from vpp_interface import VppInterface
2 from vpp_papi import VppEnum
5 INDEX_INVALID = 0xFFFFFFFF
8 def find_vxlan_gbp_tunnel(test, src, dst, vni):
9 ts = test.vapi.vxlan_gbp_tunnel_dump(INDEX_INVALID)
12 src == str(t.tunnel.src)
13 and dst == str(t.tunnel.dst)
14 and t.tunnel.vni == vni
16 return t.tunnel.sw_if_index
20 class VppVxlanGbpTunnel(VppInterface):
22 VPP VXLAN GBP interface
37 """Create VXLAN-GBP Tunnel interface"""
38 super(VppVxlanGbpTunnel, self).__init__(test)
42 self.mcast_itf = mcast_itf
44 self.encap_table_id = encap_table_id
45 self.instance = instance
48 VppEnum.vl_api_vxlan_gbp_api_tunnel_mode_t.VXLAN_GBP_API_TUNNEL_MODE_L2
59 "mcast_sw_if_index": self.mcast_itf.sw_if_index
62 "encap_table_id": self.encap_table_id,
63 "instance": self.instance,
66 def add_vpp_config(self):
67 reply = self.test.vapi.vxlan_gbp_tunnel_add_del(
71 self.set_sw_if_index(reply.sw_if_index)
72 self._test.registry.register(self, self._test.logger)
74 def remove_vpp_config(self):
75 self.test.vapi.vxlan_gbp_tunnel_add_del(
80 def query_vpp_config(self):
81 return INDEX_INVALID != find_vxlan_gbp_tunnel(
82 self._test, self.src, self.dst, self.vni
86 return "vxlan-gbp-%d-%d-%s-%s" % (