2 from vpp_interface import VppInterface
3 from vpp_papi import VppEnum
6 INDEX_INVALID = 0xffffffff
9 def find_vxlan_gbp_tunnel(test, src, dst, vni):
10 ts = test.vapi.vxlan_gbp_tunnel_dump(INDEX_INVALID)
12 if src == str(t.tunnel.src) and \
13 dst == str(t.tunnel.dst) and \
15 return t.tunnel.sw_if_index
19 class VppVxlanGbpTunnel(VppInterface):
21 VPP VXLAN GBP interface
24 def __init__(self, test, src, dst, vni, mcast_itf=None, mode=None,
25 is_ipv6=None, encap_table_id=None, instance=0xffffffff):
26 """ Create VXLAN-GBP Tunnel interface """
27 super(VppVxlanGbpTunnel, self).__init__(test)
31 self.mcast_itf = mcast_itf
33 self.encap_table_id = encap_table_id
34 self.instance = instance
36 self.mode = (VppEnum.vl_api_vxlan_gbp_api_tunnel_mode_t.
37 VXLAN_GBP_API_TUNNEL_MODE_L2)
41 def add_vpp_config(self):
42 mcast_sw_if_index = INDEX_INVALID
44 mcast_sw_if_index = self.mcast_itf.sw_if_index
45 reply = self.test.vapi.vxlan_gbp_tunnel_add_del(
52 'mcast_sw_if_index': mcast_sw_if_index,
53 'encap_table_id': self.encap_table_id,
54 'instance': self.instance
56 self.set_sw_if_index(reply.sw_if_index)
57 self._test.registry.register(self, self._test.logger)
59 def remove_vpp_config(self):
60 mcast_sw_if_index = INDEX_INVALID
62 mcast_sw_if_index = self.mcast_itf.sw_if_index
63 self.test.vapi.vxlan_gbp_tunnel_add_del(
70 'mcast_sw_if_index': mcast_sw_if_index,
71 'encap_table_id': self.encap_table_id,
72 'instance': self.instance,
75 def query_vpp_config(self):
76 return (INDEX_INVALID != find_vxlan_gbp_tunnel(self._test,
82 return "vxlan-gbp-%d-%d-%s-%s" % (self.sw_if_index, self.vni,