2017-08-30 14:36:45 -07:00
|
|
|
from vpp_interface import VppInterface
|
|
|
|
|
|
|
|
|
|
|
|
class VppVhostInterface(VppInterface):
|
|
|
|
"""VPP vhost interface."""
|
|
|
|
|
2022-04-26 19:02:15 +02:00
|
|
|
def __init__(
|
|
|
|
self,
|
|
|
|
test,
|
|
|
|
sock_filename,
|
|
|
|
is_server=0,
|
|
|
|
renumber=0,
|
|
|
|
disable_mrg_rxbuf=0,
|
|
|
|
disable_indirect_desc=0,
|
|
|
|
enable_gso=0,
|
|
|
|
enable_packed_ring=0,
|
|
|
|
enable_event_idx=0,
|
|
|
|
custom_dev_instance=0xFFFFFFFF,
|
|
|
|
use_custom_mac=0,
|
|
|
|
mac_address="",
|
|
|
|
tag="",
|
|
|
|
):
|
|
|
|
"""Create VPP Vhost interface"""
|
2018-06-24 22:49:33 +02:00
|
|
|
super(VppVhostInterface, self).__init__(test)
|
2017-08-30 14:36:45 -07:00
|
|
|
self.is_server = is_server
|
|
|
|
self.sock_filename = sock_filename
|
|
|
|
self.renumber = renumber
|
2018-08-21 16:07:03 +02:00
|
|
|
self.disable_mrg_rxbuf = disable_mrg_rxbuf
|
|
|
|
self.disable_indirect_desc = disable_indirect_desc
|
2020-11-17 13:30:44 -08:00
|
|
|
self.enable_gso = enable_gso
|
|
|
|
self.enable_packed_ring = enable_packed_ring
|
|
|
|
self.enable_event_idx = enable_event_idx
|
2017-08-30 14:36:45 -07:00
|
|
|
self.custom_dev_instance = custom_dev_instance
|
|
|
|
self.use_custom_mac = use_custom_mac
|
|
|
|
self.mac_address = mac_address
|
|
|
|
self.tag = tag
|
|
|
|
|
|
|
|
def add_vpp_config(self):
|
2022-04-26 19:02:15 +02:00
|
|
|
r = self.test.vapi.create_vhost_user_if_v2(
|
|
|
|
self.is_server,
|
|
|
|
self.sock_filename,
|
|
|
|
self.renumber,
|
|
|
|
self.disable_mrg_rxbuf,
|
|
|
|
self.disable_indirect_desc,
|
|
|
|
self.enable_gso,
|
|
|
|
self.enable_packed_ring,
|
|
|
|
self.enable_event_idx,
|
|
|
|
self.custom_dev_instance,
|
|
|
|
self.use_custom_mac,
|
|
|
|
self.mac_address,
|
|
|
|
self.tag,
|
|
|
|
)
|
2018-06-24 22:49:33 +02:00
|
|
|
self.set_sw_if_index(r.sw_if_index)
|
2017-08-30 14:36:45 -07:00
|
|
|
|
|
|
|
def remove_vpp_config(self):
|
|
|
|
self.test.vapi.delete_vhost_user_if(self.sw_if_index)
|
|
|
|
|
|
|
|
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
|