diff options
Diffstat (limited to 'resources/libraries/python/QemuUtils.py')
-rw-r--r-- | resources/libraries/python/QemuUtils.py | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/resources/libraries/python/QemuUtils.py b/resources/libraries/python/QemuUtils.py index 7491c71021..c215dfd96f 100644 --- a/resources/libraries/python/QemuUtils.py +++ b/resources/libraries/python/QemuUtils.py @@ -27,6 +27,8 @@ from resources.libraries.python.DUTSetup import DUTSetup from resources.libraries.python.OptionString import OptionString from resources.libraries.python.ssh import exec_cmd, exec_cmd_no_error from resources.libraries.python.topology import NodeType, Topology +from resources.libraries.python.VhostUser import VirtioFeaturesFlags +from resources.libraries.python.VhostUser import VirtioFeatureMask from resources.libraries.python.VppConfigGenerator import VppConfigGenerator __all__ = [u"QemuUtils"] @@ -219,7 +221,7 @@ class QemuUtils: def add_vhost_user_if( self, socket, server=True, jumbo_frames=False, queue_size=None, - queues=1, csum=False, gso=False): + queues=1, virtio_feature_mask=None): """Add Vhost-user interface. :param socket: Path of the unix socket. @@ -227,15 +229,13 @@ class QemuUtils: :param jumbo_frames: Set True if jumbo frames are used in the test. :param queue_size: Vring queue size. :param queues: Number of queues. - :param csum: Checksum offloading. - :param gso: Generic segmentation offloading. + :param virtio_feature_mask: Mask of virtio features to be enabled. :type socket: str :type server: bool :type jumbo_frames: bool :type queue_size: int :type queues: int - :type csum: bool - :type gso: bool + :type virtio_feature_mask: int """ self._nic_id += 1 self._params.add_with_value( @@ -250,6 +250,14 @@ class QemuUtils: f"{self._nic_id:02x}" queue_size = f"rx_queue_size={queue_size},tx_queue_size={queue_size}" \ if queue_size else u"" + if virtio_feature_mask is None: + gso = False + csum = False + else: + gso = VirtioFeatureMask.is_feature_enabled( + virtio_feature_mask, VirtioFeaturesFlags.VIRTIO_NET_F_API_GSO) + csum = VirtioFeatureMask.is_feature_enabled( + virtio_feature_mask, VirtioFeaturesFlags.VIRTIO_NET_F_API_CSUM) self._params.add_with_value( u"device", f"virtio-net-pci,netdev=vhost{self._nic_id},mac={mac}," f"addr={self._nic_id+5}.0,mq=on,vectors={2 * queues + 2}," |