Bug 2005323

Summary: Support copy-mac-from for OVS interface
Product: Red Hat Enterprise Linux 8 Reporter: Gris Ge <fge>
Component: nmstateAssignee: Gris Ge <fge>
Status: CLOSED ERRATA QA Contact: Mingyu Shi <mshi>
Severity: high Docs Contact:
Priority: high    
Version: 8.6CC: ferferna, jiji, jishi, network-qe, phoracek, till
Target Milestone: rcKeywords: Triaged
Target Release: 8.6Flags: pm-rhel: mirror+
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: nmstate-1.2.0-0.1.alpha1.el8 Doc Type: Enhancement
Doc Text:
Feature: Support copy-mac-from in OVS interfaces Reason: The feature copy-mac-from allow the user to reference the interface from which the new interface will copy the mac address. This is currently supported in Bond and Linux Brdge. It is also required in OVS interfaces. Result: The `copy-mac-from` property could be used in OVS interface which instruct nmstate to use MAC address of specific interface for this OVS interface. The target interface should be port of OVS bridge this OVS interface belong to.
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-05-10 13:34:48 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 Gris Ge 2021-09-17 12:45:48 UTC
Description of problem:

Allowing user to use `copy-mac-from` for OVS interface.

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


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 2 Mingyu Shi 2021-11-25 10:28:10 UTC
Tested with versions:
nmstate-2.0.0-0.20211118134932004351.pr1724.129.g0f9be8c.el8.x86_64 (not the target PR but it includes the fix)
nispor-1.1.1-1.el8.x86_64
NetworkManager-1.34.0-0.3.el8.x86_64
openvswitch2.13-2.13.0-124.el8fdp.x86_64

Copied mac from a system interface(veth2) to the internal interface successfully:
[17:04:22@mshi860 ~]0# nmstatectl show ovs-br2
---
dns-resolver:
  config: {}
  running:
    search:
    - nay.redhat.com
    - redhat.com
    server:
    - 192.168.122.1
    - 10.72.17.5
    - 10.68.5.26
route-rules:
  config: []
routes:
  config: []
  running: []
interfaces:
- name: ovs-br2
  type: ovs-bridge
  state: up
  bridge:
    options:
      fail-mode: ''
      mcast-snooping-enable: false
      rstp: false
      stp: true
    port:
    - name: ovs2
    - name: patch2-0
    - name: patch2-1
    - name: veth2
  lldp:
    enabled: false
  ovs-db:
    external_ids: {}
ovs-db:
  external_ids:
    hostname: mshi-rhel-860-202110163
    rundir: /var/run/openvswitch
    system-id: 32e8951d-5f9b-42f8-8d61-70d106538df6
  other_config: {}
[17:06:10@mshi860 ~]0# ip link show veth2
9: veth2@veth2_ep: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master ovs-system state UP mode DEFAULT group default qlen 1000
    link/ether 12:18:85:fa:13:13 brd ff:ff:ff:ff:ff:ff
[17:06:30@mshi860 ~]0# nmstatectl show ovs2 > ovs2.yaml
[17:06:51@mshi860 ~]0# code ovs2.yaml
[17:06:52@mshi860 ~]0# cnms set ovs2.yaml 
/tmp/nmstatelog/2021-11-25-17:07:19-537408675.log
Desired state applied: 
---
interfaces:
- name: ovs2
  type: ovs-interface
  state: up
  copy-mac-from: veth2
/tmp/nmstatelog/2021-11-25-17:07:19-537408675.0.log nmstatectl set ovs2.yaml return 0
    metric: 801                                               |     metric: 803
    metric: 801                                               |     metric: 803
    metric: 801                                               |     metric: 803
--
- name: ovs2                                                  (
    - ip: fe80::a030:72ff:fe0b:a400                           |     - ip: fe80::1018:85ff:fefa:1313
  mac-address: A2:30:72:0B:A4:00                              |   mac-address: 12:18:85:FA:13:13
[17:07:20@mshi860 ~]0# nmstatectl show ovs2 | grep mac-address
  accept-all-mac-addresses: false
  mac-address: 12:18:85:FA:13:13
[17:07:38@mshi860 ~]0# ip link show ovs2
14: ovs2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether 12:18:85:fa:13:13 brd ff:ff:ff:ff:ff:ff
[17:08:46@mshi860 ~]0# ip -d link show ovs2
14: ovs2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether 12:18:85:fa:13:13 brd ff:ff:ff:ff:ff:ff promiscuity 1 minmtu 68 maxmtu 65535 
    openvswitch addrgenmode none numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 
[18:24:22@mshi860 ~]0# ip link show veth2
9: veth2@veth2_ep: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master ovs-system state UP mode DEFAULT group default qlen 1000
    link/ether 12:18:85:fa:13:13 brd ff:ff:ff:ff:ff:ff

Comment 5 Mingyu Shi 2021-12-28 05:08:36 UTC
Verified with versions:
nmstate-1.2.0-1.el8.x86_64
nispor-1.2.2-1.el8.x86_64
NetworkManager-1.36.0-0.3.el8.x86_64
openvswitch2.13-2.13.0-142.el8fdp.x86_64

Comment 7 errata-xmlrpc 2022-05-10 13:34:48 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (nmstate bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2022:1772