vhost: Add event index for interrupt notification to driver

VPP only supports a poor man's approach for interrupt notification to the
driver. It uses a simple binary flag for "interrupt needed" or "interrupt
not needed". Most drivers support more sophisticated event index already.
This feature is to add the long due missing feature and make it configurable,
off by default.

Type: feature

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: I68dab7dd07045cafb49af97b7f70db9b8131ae03
This commit is contained in:
Steven Luong
2020-11-17 13:30:44 -08:00
committed by Beno�t Ganne
parent ed4b38e868
commit 27ba5008a1
12 changed files with 795 additions and 213 deletions

View File

@ -5,8 +5,9 @@ class VppVhostInterface(VppInterface):
"""VPP vhost interface."""
def __init__(self, test, sock_filename, is_server=0, renumber=0,
disable_mrg_rxbuf=0, disable_indirect_desc=0, gso=0,
packed_ring=0, custom_dev_instance=0, use_custom_mac=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 """
@ -16,25 +17,27 @@ class VppVhostInterface(VppInterface):
self.renumber = renumber
self.disable_mrg_rxbuf = disable_mrg_rxbuf
self.disable_indirect_desc = disable_indirect_desc
self.gso = gso
self.packed_ring = packed_ring
self.enable_gso = enable_gso
self.enable_packed_ring = enable_packed_ring
self.enable_event_idx = enable_event_idx
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):
r = self.test.vapi.create_vhost_user_if(self.is_server,
self.sock_filename,
self.renumber,
self.disable_mrg_rxbuf,
self.disable_indirect_desc,
self.gso,
self.packed_ring,
self.custom_dev_instance,
self.use_custom_mac,
self.mac_address,
self.tag)
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)
self.set_sw_if_index(r.sw_if_index)
def remove_vpp_config(self):