Bug 2092634

Summary: When ipv4/ipv6.enabled is not mentioned, rust automatically configures it as "enabled: false"
Product: Red Hat Enterprise Linux 9 Reporter: Mingyu Shi <mshi>
Component: nmstateAssignee: Gris Ge <fge>
Status: CLOSED ERRATA QA Contact: Mingyu Shi <mshi>
Severity: medium Docs Contact:
Priority: medium    
Version: 9.1CC: ferferna, jiji, jishi, network-qe, sfaye, till
Target Milestone: rcKeywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-11-15 10:01:03 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 Mingyu Shi 2022-06-01 21:32:31 UTC
Description of problem:
When ipv4/ipv6.enabled is not mentioned, rust automatically configures it as "enabled: false".
Full editing is reasonable, but it breaks the old behavior on RHEL 8, need to evaluate it.

Version-Release number of selected component (if applicable):
nmstate-2.1.1-0.alpha.20220519.437e4a9.el9.x86_64
DISTRO=RHEL-9.1.0-20220531.0

How reproducible:
100%

Steps to Reproduce:
1. echo "
interfaces:
  - name: veth0
    type: veth
    state: up
    ipv4:
      enabled: true
      dhcp: true
    ipv6:
      enabled: true
      dhcp: true
      autoconf: true
    veth:
      peer: veth0_ep
" | nmstatectl apply

# for example if I want to disable autoconf
2. echo "
interfaces:
- name: veth0
  type: veth
  state: up
  ipv6:
    autoconf: false
" | nmstatectl apply


Actual results:
After applied, nmstate reported OK and returned this state:
---
dns-resolver: {}
route-rules: {}
routes: {}
interfaces:
  - name: veth0
    type: veth
    state: up
    ipv6:
      enabled: false  # this option was appended automatically
      autoconf: false
ovs-db: {}


Expected results:
Like on RHEL 8, only change the explicitly mentioned options 



Additional info:
Some other similar actions that differ with nmstate python:
interfaces:
- name: veth0
  ipv6:
    enabled: true
    autoconf: false
=> "dhcp" is not mentioned but set to false automatically


interfaces:
- name: veth0
  ipv4:
    enabled: true
    auto-dns: false
=> [2022-06-01T21:24:00Z WARN  nmstate::nm::checkpoint] Timeout on waiting rollback
NmstateError: VerificationError: Verification failure: veth0.interface.ipv4.enabled desire 'true', current 'false'


Assume successfully changed auto-dns to false, then try applying:
interfaces:
- name: veth0
  ipv4:
    enabled: true
    dhcp: true
=> "auto-dns" will be changed to true again.

Comment 1 Gris Ge 2022-07-05 14:11:47 UTC
Patch posted to upstream: https://github.com/nmstate/nmstate/pull/1959

Hi Mingyu,

Since we are changing the IP stack code with big impact of many tier 1 use case, could you run your tests against the copr build of that PR?

Thank you!

Comment 2 Mingyu Shi 2022-07-13 09:23:09 UTC
Hi Gris

It looks good in the direct related test, I've submitted a full test for the copr build, will update the result here when it finishes.

Comment 3 Mingyu Shi 2022-07-14 08:33:40 UTC
(In reply to Mingyu Shi from comment #2)
> Hi Gris
> 
> It looks good in the direct related test, I've submitted a full test for the
> copr build, will update the result here when it finishes.

No new issues found.

Comment 7 Mingyu Shi 2022-08-04 08:41:14 UTC
Verified with:
nmstate-2.1.3-1.el9.x86_64
NetworkManager-1.39.10-1.el9.x86_64

Comment 9 errata-xmlrpc 2022-11-15 10:01:03 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/RHBA-2022:7991