diff options
Diffstat (limited to 'resources/libraries')
-rw-r--r-- | resources/libraries/python/InterfaceUtil.py | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/resources/libraries/python/InterfaceUtil.py b/resources/libraries/python/InterfaceUtil.py index 2921f7d10d..552d0004ee 100644 --- a/resources/libraries/python/InterfaceUtil.py +++ b/resources/libraries/python/InterfaceUtil.py @@ -1,4 +1,4 @@ -# Copyright (c) 2019 Cisco and/or its affiliates. +# Copyright (c) 2020 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -103,6 +103,13 @@ class LinkBondMode(IntEnum): BOND_API_MODE_LACP = 5 +class RdmaMode(IntEnum): + """RDMA interface mode.""" + RDMA_API_MODE_AUTO = 0 + RDMA_API_MODE_IBV = 1 + RDMA_API_MODE_DV = 2 + + class InterfaceUtil: """General utilities for managing interfaces""" @@ -1214,16 +1221,19 @@ class InterfaceUtil: return if_key @staticmethod - def vpp_create_rdma_interface(node, if_key, num_rx_queues=None): + def vpp_create_rdma_interface( + node, if_key, num_rx_queues=None, mode=u"auto"): """Create RDMA interface on VPP node. :param node: DUT node from topology. :param if_key: Physical interface key from topology file of interface to be bound to rdma-core driver. :param num_rx_queues: Number of RX queues. + :param mode: RDMA interface mode - auto/ibv/dv. :type node: dict :type if_key: str :type num_rx_queues: int + :type mode: str :returns: Interface key (name) in topology file. :rtype: str :raises RuntimeError: If it is not possible to create RDMA interface on @@ -1235,8 +1245,9 @@ class InterfaceUtil: name=InterfaceUtil.pci_to_eth(node, pci_addr), host_if=InterfaceUtil.pci_to_eth(node, pci_addr), rxq_num=int(num_rx_queues) if num_rx_queues else 0, - rxq_size=0, - txq_size=0 + rxq_size=1024, + txq_size=1024, + mode=getattr(RdmaMode,f"RDMA_API_MODE_{mode.upper()}").value, ) err_msg = f"Failed to create RDMA interface on host {node[u'host']}" with PapiSocketExecutor(node) as papi_exec: |