Bug 1723628

Summary: ipv6 is enabled automatically if added br0 with ipv6 disabled
Product: Red Hat Enterprise Linux 8 Reporter: Jianlin Shi <jishi>
Component: nmstateAssignee: Edward Haas <edwardh>
Status: CLOSED ERRATA QA Contact: Mingyu Shi <mshi>
Severity: medium Docs Contact:
Priority: medium    
Version: 8.1CC: edwardh, network-qe, rkhan, till
Target Milestone: rc   
Target Release: 8.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: nmstate-0.0.8-1.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-04-28 16:00:05 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 Jianlin Shi 2019-06-25 02:58:52 UTC
Description of problem:
ipv6 is enabled automatically if added br0 with ipv6 disabled

Version-Release number of selected component (if applicable):
nmstate-0.0.7-1.el8.noarch

How reproducible:
Always

Steps to Reproduce:
1. create veth as follows
#!/bin/bash

ip netns add client
ip netns add server
ip link add veth0_c type veth peer name veth0_c_p
ip link add veth0_s type veth peer name veth0_s_p

ip link set veth0_c_p netns client
ip link set veth0_s_p netns server

ip netns exec client ip link set lo up
ip netns exec client ip link set veth0_c_p up
ip netns exec client ip addr add 192.168.0.1/24 dev veth0_c_p
ip netns exec server ip  link set lo up
ip netns exec server ip  link set veth0_s_p up
ip netns exec server ip addr add 192.168.0.2/24 dev veth0_s_p

2. add br0 with following yaml (nmstatectl set br0.yaml)
interfaces:                         
- name: veth0_c
  type: ethernet
  state: up
  ipv4:
    enabled: false
  ipv6:
    enabled: false
  mtu: 1500
- name: veth0_s
  type: ethernet
  state: up
  ipv4:
    enabled: false
  ipv6:
    enabled: false
  mtu: 1500
- name: br0
  type: linux-bridge                                     
  state: up
  bridge:                                                                                             
    options:
      group-forward-mask: 0                           
      mac-ageing-time: 300
      multicast-snooping: true                        
      stp:
        enabled: false                                                                                
        forward-delay: 15                                                                             
        hello-time: 2                                                                                 
        max-age: 20                                                                                   
        priority: 32768                                                                               
    port: 
        - name: veth0_c
          stp-hairpin-mode: false
          stp-path-cost: 100
          stp-priority: 32
        - name: veth0_s
          stp-hairpin-mode: false
          stp-path-cost: 100
          stp-priority: 32
  ipv4:                                                                                               
    dhcp: false                                                                                       
    enabled: false
  ipv6:                                                                                               
    dhcp: false                                                                                       
    enabled: false
  mac-address: AA:CF:A8:2D:6A:48                                                                      
  mtu: 1500

Actual results:
ipv6 is enabled

Expected results:
ipv6 is disabled

Additional info:

[root@kvm-06-guest02 bridge]# nmstatectl show br0
......
interfaces:
- name: br0
  type: linux-bridge
  state: up
  bridge:
    options:
      group-forward-mask: 0
      mac-ageing-time: 300
      multicast-snooping: true
      stp:
        enabled: false
        forward-delay: 15
        hello-time: 2
        max-age: 20
        priority: 32768
    port:
    - name: veth0_c
      stp-hairpin-mode: false
      stp-path-cost: 100
      stp-priority: 32
    - name: veth0_s
      stp-hairpin-mode: false
      stp-path-cost: 100
      stp-priority: 32
  ipv4:
    dhcp: false
    enabled: false
  ipv6:
    address:
    - ip: fe80::a8cf:a8ff:fe2d:6a48
      prefix-length: 64
    autoconf: false
    dhcp: false
    enabled: true
  mac-address: AA:CF:A8:2D:6A:48
  mtu: 1500

Comment 1 Edward Haas 2019-09-20 07:52:51 UTC
This should have been resolved in 0.0.8.
Could you please re-check?

Comment 2 Edward Haas 2019-09-20 08:04:14 UTC
Please note that the existing solution comes with a limitation: it is not persisted over node boot.

The limitation is resolved in NM 1.19+ and adjusting nmstate is worked on upstream: https://github.com/nmstate/nmstate/pull/447
We plan to target the 2nd part to RHEL 8.1.1.
If you will like to keep track of this, I suggest a separate BZ is opened.

Comment 3 Mingyu Shi 2019-09-20 08:27:30 UTC
Re-checked OK, on:
[root@kvm-08-guest13 ~]0# rpm -q nmstate
nmstate-0.0.8-15.el8.noarch
[root@kvm-08-guest13 ~]0# uname -a 
Linux kvm-08-guest13.hv2.lab.eng.bos.redhat.com 4.18.0-144.el8.x86_64 #1 SMP Thu Sep 12 14:30:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

[root@kvm-08-guest13 ~]0# cat br6.yaml 
interfaces:                         
- name: veth0_c
  type: ethernet
  state: up
  ipv4:
    enabled: false
  ipv6:
    enabled: false
  mtu: 1500
- name: veth0_s
  type: ethernet
  state: up
  ipv4:
    enabled: false
  ipv6:
    enabled: false
  mtu: 1500
- name: br6
  type: linux-bridge                                     
  state: up
  bridge:                                                                                             
    options:
      group-forward-mask: 0                           
      mac-ageing-time: 300
      multicast-snooping: true                        
      stp:
        enabled: false                                                                                
        forward-delay: 15                                                                             
        hello-time: 2                                                                                 
        max-age: 20                                                                                   
        priority: 32768                                                                               
    port: 
        - name: veth0_c
          stp-hairpin-mode: false
          stp-path-cost: 100
          stp-priority: 32
        - name: veth0_s
          stp-hairpin-mode: false
          stp-path-cost: 100
          stp-priority: 32
  ipv4:                                                                                               
    dhcp: false                                                                                       
    enabled: false
  ipv6:                                                                                               
    dhcp: false                                                                                       
    enabled: false
  mac-address: AA:CF:A8:2D:6A:48                                                                      
  mtu: 1500

run 'nmstatectl set br6.yaml' and check the state:
[root@kvm-08-guest13 ~]0# nmstatectl show veth0_c,veth0_s,br6
---
dns-resolver:
  config:
    search: []
    server: []
  running:
    search:
    - hv2.lab.eng.bos.redhat.com
    server:
    - 10.19.42.41
    - 10.11.5.19
    - 10.5.30.160
routes:
  config: []
  running:
  - destination: ff00::/8
    metric: 256
    next-hop-address: ''
    next-hop-interface: veth0_c
    table-id: 255
interfaces:
- name: br6
  type: linux-bridge
  state: up
  bridge:
    options:
      group-forward-mask: 0
      mac-ageing-time: 300
      multicast-snooping: true
      stp:
        enabled: false
        forward-delay: 15
        hello-time: 2
        max-age: 20
        priority: 32768
    port:
    - name: veth0_s
      stp-hairpin-mode: false
      stp-path-cost: 100
      stp-priority: 32
    - name: veth0_c
      stp-hairpin-mode: false
      stp-path-cost: 100
      stp-priority: 32
  ipv4:
    dhcp: false
    enabled: false
  ipv6:
    autoconf: false
    dhcp: false
    enabled: false
  mac-address: AA:CF:A8:2D:6A:48
  mtu: 1500
- name: veth0_c
  type: ethernet
  state: up
  ipv4:
    dhcp: false
    enabled: false
  ipv6:
    autoconf: false
    dhcp: false
    enabled: false
  mac-address: 96:19:F9:A0:42:E6
  mtu: 1500
- name: veth0_s
  type: ethernet
  state: up
  ipv4:
    dhcp: false
    enabled: false
  ipv6:
    autoconf: false
    dhcp: false
    enabled: false
  mac-address: 42:84:9D:71:6E:CC
  mtu: 1500
[root@kvm-08-guest13 ~]0# ip -6 addr
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 2620:52:0:1038:5054:ff:fe84:9bc6/64 scope global dynamic noprefixroute 
       valid_lft 2591993sec preferred_lft 604793sec
    inet6 fe80::5054:ff:fe84:9bc6/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
10: dummy1: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 state UNKNOWN qlen 1000
    inet6 fe80::bc4a:bbff:fe65:b48b/64 scope link 
       valid_lft forever preferred_lft forever

Comment 8 errata-xmlrpc 2020-04-28 16:00:05 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, 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/RHBA-2020:1696