Bug 1236146 - [RFE] Ability to define min bandwidth to neutron SRIOV ports
Summary: [RFE] Ability to define min bandwidth to neutron SRIOV ports
Keywords:
Status: CLOSED EOL
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-neutron
Version: 8.0 (Liberty)
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: ga
: 13.0 (Queens)
Assignee: OSP Team
QA Contact: Yariv
URL:
Whiteboard:
: 1396832 (view as bug list)
Depends On:
Blocks: 1235009 1281573 1396265 1416067 1419948 1624465 1798351
TreeView+ depends on / blocked
 
Reported: 2015-06-26 16:51 UTC by Karim Boumedhel
Modified: 2023-07-10 17:19 UTC (History)
18 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
: 1798351 (view as bug list)
Environment:
Last Closed: 2023-07-10 17:19:22 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Launchpad 1560963 0 None None None 2017-08-11 19:45:50 UTC
Red Hat Issue Tracker NFV-896 0 None None None 2022-02-22 05:56:43 UTC
Red Hat Issue Tracker OSP-4248 0 None None None 2022-02-22 05:56:26 UTC

Description Karim Boumedhel 2015-06-26 16:51:35 UTC
Description of problem:
allow users of Neutron network service the ability to request a particular maximum and minimum
transmit bandwidth on neutron port used as pass-through vNICs

Version-Release number of selected component (if applicable):


How reproducible:
Currently, when SR-IOV adapters are used for virtual networking, all Virtual
Functions provide the same level of traffic service.
It can be important for NFV use cases to provide certain level of service to
specific VM network interface

Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:
this feature would also allow to assign all bandwitdh to a given VF, thus emulating pcipassthrough while unificating on SRIOV
https://blueprints.launchpad.net/neutron/+spec/ml2-sriov-rate-limit-extension

Comment 5 Marcos Garcia 2015-07-08 18:31:59 UTC
I think more information about the QoS features found in SRIOV cards can be found in this document 
http://www.intel.com/content/www/us/en/network-adapters/10-gigabit-network-adapters/config-qos-with-flexible-port-partitioning.html

Comment 10 JP Jung 2016-04-26 19:07:45 UTC
Max bandwidth:
Work covered by:
https://blueprints.launchpad.net/neutron/+spec/ml2-sriov-qos-with-bwlimiting
Implemented in Liberty (OSP8)
Also check: 
http://specs.openstack.org/openstack/neutron-specs/specs/liberty/qos-api-extension.html

Min. bandwidth:
This requires neutron & nova changes. Both teams at Red Hat looking into a solution.
The nova scheduler is undergoing a big change that we plan to leverage for this for providing bandwidth guarantees. But we need all those pieces being coded, plus, the integration from the neutron side.

In [1] you can see a proposal for it.
But we depend on [2] to make the strict min bandwidth guarantees.

References:
[1] https://bugs.launchpad.net/neutron/+bug/1560963 
[2] http://lists.openstack.org/pipermail/openstack-dev/2016-February/086371.html

Comment 12 Assaf Muller 2016-06-04 20:35:07 UTC
Maximum bandwidth is covered by https://bugzilla.redhat.com/show_bug.cgi?id=1093829, hijacking this bug for minimum bandwidth.

Comment 14 Assaf Muller 2017-04-20 20:17:30 UTC
This RFE has not been prioritized for OSP 12.

Comment 20 Anita Tragler 2019-07-12 13:14:55 UTC
*** Bug 1396832 has been marked as a duplicate of this bug. ***

Comment 29 Franck Baudin 2019-07-18 07:26:25 UTC
The Intel Niantic and Fortville drivers do not implement min BW, here is a screenshot for a Fortville:

# ethtool -i enp24s0f1
driver: i40e
version: 2.3.2-k
firmware-version: 6.01 0x80003483 1.1747.0
expansion-rom-version: 
bus-info: 0000:18:00.1
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes

# ip link set enp24s0f1 vf 0 min_tx_rate 1
RTNETLINK answers: Invalid argument

So this Neutron feature will be supported only by NICs that implements it in their driver. Mellanox ConnectX-5 for instance is implementing this functionality.

Comment 31 Pragyan Pathi 2019-07-24 22:14:00 UTC
Per Pavan C's request follow up from our Networking Team - 

Both ixgbe (for Niantic) and i40e (for Fortville) drivers implemented the set_vf_bw function, but the min_tx_rate can only be the value of 0 for both drivers. 

The example in the original message used min_tx_rate 1, that is why it errored out. So if support means the value 1 and above for min_tx_rate needs to be allowed, then we don’t support it; but we did implement the setting of vf bw in general. See the below functions from i40e and ixgbe:
 
int i40e_ndo_set_vf_bw(struct net_device *netdev, int vf_id, int min_tx_rate,
                     int max_tx_rate)
 
int ixgbe_ndo_set_vf_bw(struct net_device *netdev, int vf, int min_tx_rate,
                     int max_tx_rate)

Comment 32 Pavan Chavva 2019-07-25 20:19:23 UTC
(In reply to Pragyan Pathi from comment #31)
> Per Pavan C's request follow up from our Networking Team - 
> 
> Both ixgbe (for Niantic) and i40e (for Fortville) drivers implemented the
> set_vf_bw function, but the min_tx_rate can only be the value of 0 for both
> drivers. 
> 
> The example in the original message used min_tx_rate 1, that is why it
> errored out. So if support means the value 1 and above for min_tx_rate needs
> to be allowed, then we don’t support it; but we did implement the setting of
> vf bw in general. See the below functions from i40e and ixgbe:
>  
> int i40e_ndo_set_vf_bw(struct net_device *netdev, int vf_id, int min_tx_rate,
>                      int max_tx_rate)
>  
> int ixgbe_ndo_set_vf_bw(struct net_device *netdev, int vf, int min_tx_rate,
>                      int max_tx_rate)
 For above Comment.

Comment 34 Franck Baudin 2019-08-11 17:14:42 UTC
To re-phrase: min BW is not supported on intel Niantic and Fortville. But we are enabling it for the NICs that implements it.

Comment 35 Pragyan Pathi 2020-01-10 19:38:05 UTC
Intel ixgbe (for Niantic) and i40e (for Fortville) drivers implemented the set_vf_bw function, but the min_tx_rate can only be the value of 0 for both drivers. The example in the original message used min_tx_rate 1, that is why it errored out. So if support means the value 1 and above for min_tx_rate needs to be allowed, then we don’t support it; but we did implement the setting of vf bw in general. See the below functions from i40e and ixgbe:

int i40e_ndo_set_vf_bw(struct net_device *netdev, int vf_id, int min_tx_rate,
                     int max_tx_rate)
 
int ixgbe_ndo_set_vf_bw(struct net_device *netdev, int vf, int min_tx_rate,
                     int max_tx_rate)


Franck - Is this targeted for OSP16.0.1? Which z-stream?

Comment 36 Franck Baudin 2020-01-22 08:01:08 UTC
Tony, can you share the targeted RHOSP16.0.z version?

Pragyan, thanks for confirming that min_tx_rate is not supported for i40e and ixgbe: the only allowed value is zero, meaning this is not implemented.

Comment 37 Toni Freger 2020-02-04 11:38:24 UTC
Hi Frank 16.0.z2 we will be able to work on it.

Comment 40 Yariv 2020-04-23 08:00:33 UTC
Feature is VERIFIED on Mellanox ConnectX5,
automated test exist in https://github.com/redhat-openstack/nfv-tempest-plugin/blob/devel/nfv_tempest_plugin/tests/scenario/test_nfv_sriov_usecases.py#L264-L288

Verified with core_puddle_version 2020-04-01.3
openstack-neutron-sriov-nic-agent-12.1.1-6.el7ost.noarch

Comment 47 Lon Hohberger 2023-07-10 17:19:22 UTC
OSP13 support officially ended on 27 June 2023


Note You need to log in before you can comment on or make changes to this bug.