Bug 1645689

Summary: [RFE] NetworkManager implementation for os-net-config
Product: Red Hat OpenStack Reporter: Dan Sneddon <dsneddon>
Component: os-net-configAssignee: Dan Sneddon <dsneddon>
Status: CLOSED MIGRATED QA Contact: Eran Kuris <ekuris>
Severity: urgent Docs Contact:
Priority: urgent    
Version: 17.0 (Wallaby)CC: bfournie, bgalvani, cfontain, dsneddon, ekuris, eshulman, fge, gurpsing, hakhande, hbrock, hewang, hjensas, jkreger, jslagle, ksundara, lrintel, mburns, pweeks, sfaye, spower, sukulkar, thaller, till, vcandapp
Target Milestone: AlphaKeywords: FutureFeature, Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-12-06 20:15:31 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Dan Sneddon 2018-11-02 21:07:04 UTC
Description of problem:
The network init-scripts (including ifcfg files in /etc/sysconfig/network-scripts) are deprecated in favor of NetworkManager. In order to migrate away from init-scripts in os-net-config, we need to support a NetworkManager implementation in addition to the ifcfg implementation.

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

Actual results:
Currently all interface configuration is done in ifcfg files, and additionally there is a script to configure SR-IOV virtual functions at boot time. os-net-config also has support for ethtool commands and ovs-vsctl commands for OVS. 

Expected results:
In order to switch to a NetworkManager implementation, we will use an interface to NetworkManager such as nmcli, nmstate, or Ansible Networking. Additionally, NetworkManager will have to have feature parity for interface types supported by os-net-config.

Additional info:
Most of the interface types are supported in NetworkManager, but we should confirm support in NetworkManager for the following device types:

OVS bonds
OVS patches (internal patches between bridges)
OVS tunnel ports
OVS User bridge (DPDK bridge)
OVS DPDK ports
OVS DPDK bonds
Infiniband network interfaces
VPP interfaces
VPP bonds
Contrail vRouter
Contrail vRouter DPDK
Big Switch IVS bridges
Big Switch NFVSwitch bridges (DPDK)
Big Switch NFVSwitch ports (DPDK)
Big Switch NFVSwitch internal patches (DPDK)

In addition, SR-IOV VF virtual functions are recently supported in NetworkManager, but we should confirm wheter the os-net-config SR-IOV configuration script that gets run by systemd is required when using NetworkManager to manage SR-IOV VFs.

Comment 1 Dan Sneddon 2018-11-02 21:23:56 UTC
It appears that OVS bond support was added at the same time OVS bridge support was added: https://bugzilla.redhat.com/show_bug.cgi?id=1555015

Support for ethtool options is being added:
https://bugzilla.redhat.com/show_bug.cgi?id=1335409
https://bugzilla.redhat.com/show_bug.cgi?id=1614700

Support for OVS DPDK ports in progress:
https://bugzilla.redhat.com/show_bug.cgi?id=1612503

Infiniband interfaces and bonds are currently supported:
https://bugzilla.redhat.com/show_bug.cgi?id=1339008

Comment 2 Dan Sneddon 2018-11-02 21:43:28 UTC
Created RFE for OVS patch ports and OVS tunnels:
https://bugzilla.redhat.com/show_bug.cgi?id=1645703

Comment 3 Dan Sneddon 2018-11-02 23:20:13 UTC
Created RFE for supporting VPP interfaces and bonds in NetworkManager:
https://bugzilla.redhat.com/show_bug.cgi?id=1645717

Note that VPP config doesn't use ifcfg files, but instead uses /var/lib/os-net-config/dpdk_mapping.yaml and /etc/vpp/vpp-exec files to configure VPP interfaces. Because of that, it isn't clear if NetworkManager needs to support VPP directly, or if os-net-config can continue to write DPDK/VPP configuration to these files when we implement NetworkManager support.

Comment 4 Dan Sneddon 2019-01-08 21:36:41 UTC
(In reply to Dan Sneddon from comment #3)
> Created RFE for supporting VPP interfaces and bonds in NetworkManager:
> https://bugzilla.redhat.com/show_bug.cgi?id=1645717

While VPP is supported in os-net-config, we have never supported VPP in OpenStack Platform. For that reason, I think VPP support in NetworkManager is not a priority for OpenStack at this time.

Comment 5 Bob Fournier 2019-01-23 15:07:35 UTC
network-scripts has been included for os-net-config here - https://review.rdoproject.org/r/#/c/17626/.

Comment 6 Dan Sneddon 2020-03-20 17:21:36 UTC
Additional ethtool options are required for NetworkManager support for OpenStack Platform. Specifically -C and -G are required to set coalesce and ring settings.

Comment 7 pweeks 2021-06-17 11:31:29 UTC
*** Bug 1972756 has been marked as a duplicate of this bug. ***

Comment 11 spower 2022-10-28 10:23:22 UTC
This will need to go through the exception TRAC process to be be included in 17.1

Comment 25 Gris Ge 2023-07-12 14:42:13 UTC
Hi Karthik,

I have created these bugs to track the dedicate features:
 * Bug 2222284 - [RFE] Support third party interface
 * Bug 2222289 - [RFE] Support OVS SR-IOV TC Hardware Offload

We will provide demo for both feature for you to try out.