Bug 2214529

Summary: Shouldn't verify unmanaged port in vrf
Product: Red Hat Enterprise Linux 9 Reporter: Mingyu Shi <mshi>
Component: nmstateAssignee: Gris Ge <fge>
Status: CLOSED MIGRATED QA Contact: Mingyu Shi <mshi>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 9.3CC: ferferna, jiji, jishi, network-qe, sfaye, till
Target Milestone: rcKeywords: MigratedToJIRA, 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-08-17 09:56:14 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 2023-06-13 09:10:14 UTC
Description of problem:
This is an extended test of https://bugzilla.redhat.com/show_bug.cgi?id=1932247
Nmstate should not touch or verify unmanaged(including externally manageble) interface except it is explictly listed under "interfaces" key.
This rule works well when testing with linux bridge, bond etc, but failed if using vrf.

Version-Release number of selected component (if applicable):
nmstate-2.2.12-2.el9.x86_64
nispor-1.2.10-1.el9.x86_64
NetworkManager-1.43.9-1.el9.x86_64
DISTRO=RHEL-9.3.0-updates-20230611.28

How reproducible:
100%

Steps to Reproduce:
echo "
interfaces:
- name: vrf0
  type: vrf
  state: up
  vrf:
    route-table-id: 100
" | nmstatectl apply

ip link add veth0 type veth peer veth0_p
ip link set veth0 master vrf0
ip link set veth0 up
ip link set veth0_p up

echo "
interfaces:
- name: vrf0
  type: vrf
  state: up
  vrf:
    port:
    - veth0
" | nmstatectl apply

nmcli dev 

echo "
interfaces:
- name: vrf0
  type: vrf
  state: up
  vrf:
    port: []
" | nmstatectl apply

Actual results:
NmstateError: VerificationError: Verification failure: vrf0.interface.vrf.port desire '[]', current '["veth0"]'

Expected results:
Report applying successfully while veth0 is still attaching to vrf0, and veth0 stays unmanaged in `nmcli dev`

Additional info: