2017-12-20 12:43:01 -08:00
|
|
|
from vpp_interface import VppInterface
|
|
|
|
|
|
|
|
|
|
|
|
class VppBondInterface(VppInterface):
|
|
|
|
"""VPP bond interface."""
|
|
|
|
|
2022-04-26 19:02:15 +02:00
|
|
|
def __init__(
|
|
|
|
self,
|
|
|
|
test,
|
|
|
|
mode,
|
|
|
|
lb=0,
|
|
|
|
numa_only=0,
|
|
|
|
enable_gso=0,
|
|
|
|
use_custom_mac=0,
|
|
|
|
mac_address="",
|
|
|
|
id=0xFFFFFFFF,
|
|
|
|
):
|
|
|
|
"""Create VPP Bond interface"""
|
2018-06-24 22:49:33 +02:00
|
|
|
super(VppBondInterface, self).__init__(test)
|
2017-12-20 12:43:01 -08:00
|
|
|
self.mode = mode
|
|
|
|
self.lb = lb
|
2019-06-26 05:49:14 -04:00
|
|
|
self.numa_only = numa_only
|
2020-07-30 07:31:40 -07:00
|
|
|
self.enable_gso = enable_gso
|
2017-12-20 12:43:01 -08:00
|
|
|
self.use_custom_mac = use_custom_mac
|
|
|
|
self.mac_address = mac_address
|
2020-07-30 07:31:40 -07:00
|
|
|
self.id = id
|
2017-12-20 12:43:01 -08:00
|
|
|
|
|
|
|
def add_vpp_config(self):
|
2022-04-26 19:02:15 +02:00
|
|
|
r = self.test.vapi.bond_create2(
|
|
|
|
self.mode,
|
|
|
|
self.lb,
|
|
|
|
self.numa_only,
|
|
|
|
self.enable_gso,
|
|
|
|
self.use_custom_mac,
|
|
|
|
self.mac_address,
|
|
|
|
self.id,
|
|
|
|
)
|
2018-06-24 22:49:33 +02:00
|
|
|
self.set_sw_if_index(r.sw_if_index)
|
2017-12-20 12:43:01 -08:00
|
|
|
|
|
|
|
def remove_vpp_config(self):
|
|
|
|
self.test.vapi.bond_delete(self.sw_if_index)
|
|
|
|
|
2022-04-26 19:02:15 +02:00
|
|
|
def add_member_vpp_bond_interface(
|
|
|
|
self, sw_if_index, is_passive=0, is_long_timeout=0
|
|
|
|
):
|
|
|
|
self.test.vapi.bond_add_member(
|
|
|
|
sw_if_index, self.sw_if_index, is_passive, is_long_timeout
|
|
|
|
)
|
|
|
|
|
|
|
|
def detach_vpp_bond_interface(self, sw_if_index):
|
2020-07-15 08:44:54 -07:00
|
|
|
self.test.vapi.bond_detach_member(sw_if_index)
|
2017-12-20 12:43:01 -08:00
|
|
|
|
|
|
|
def is_interface_config_in_dump(self, dump):
|
|
|
|
for i in dump:
|
|
|
|
if i.sw_if_index == self.sw_if_index:
|
|
|
|
return True
|
|
|
|
else:
|
|
|
|
return False
|