Bug 2178915

Summary: Apply route rules without priority twice, the rule prioity increased
Product: Red Hat Enterprise Linux 9 Reporter: Mingyu Shi <mshi>
Component: nmstateAssignee: Gris Ge <fge>
Status: CLOSED MIGRATED QA Contact: Mingyu Shi <mshi>
Severity: low Docs Contact:
Priority: low    
Version: 9.2CC: ferferna, jiji, jishi, network-qe, sfaye, till
Target Milestone: rcKeywords: MigratedToJIRA, Triaged
Target Release: ---Flags: pm-rhel: mirror+
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 12:32:30 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-03-16 06:42:43 UTC
Description of problem:
Currently, apply route rules without priority, nmstate/NM set it as prioity 30000. When apply the same state twice, the prioiry will change to 30001. Repeat and it will change to 30002,30003, etc.

Version-Release number of selected component (if applicable):
nmstate-2.2.7-1.el9.x86_64
nispor-1.2.10-1.el9.x86_64
NetworkManager-1.42.2-1.el9.x86_64
DISTRO=RHEL-9.2.0-20230314.47

How reproducible:
100%

Steps to Reproduce:
cat << EOF > rules.yaml
route-rules:
  config:
    - ip-from: 8.8.8.8/24
      ip-to: 200.1.1.1/24
      route-table: 100
routes:
  config:
    - destination: 0.0.0.0/0
      next-hop-interface: veth0
      next-hop-address: 100.1.1.254
      table-id: 100
interfaces:
  - name: veth0
    type: veth
    state: up
    ipv4:
      enabled: true
      address:
        - ip: 100.1.1.1
          prefix-length: 24
    veth:
      peer: veth0_p
EOF
nmstatectl apply rules.yaml
ip rule # 30000
nmstatectl apply rules.yaml
ip rule # 30001

Actual results:
0:      from all lookup local
1000:   from all lookup [l3mdev-table]
30001:  from 8.8.8.0/24 to 200.1.1.0/24 lookup 100 proto static
32766:  from all lookup main
32767:  from all lookup default

Expected results:
Nothing changed

Additional info:
It comes from https://bugzilla.redhat.com/show_bug.cgi?id=1911397#c6, in the earlier version, nmstate won't change the priority.

Comment 1 Mingyu Shi 2023-03-16 08:00:48 UTC
cat << EOF > no-prioriy-rule.yaml
route-rules:
  config:
    - ip-from: 8.8.8.8/24
      ip-to: 200.1.1.1/24
      route-table: 100
    - ip-from: 8:8:8::8/24
      ip-to: 200:1:1::1/24
      route-table: 100
routes:
  config:
    - destination: 0.0.0.0/0
      next-hop-interface: veth0
      next-hop-address: 100.1.1.254
      table-id: 100
    - destination: ::/0
      next-hop-interface: veth0
      next-hop-address: 100:1:1::254
      table-id: 100
interfaces:
  - name: veth0
    type: veth
    state: up
    ipv4:
      enabled: true
      address:
        - ip: 100.1.1.1
          prefix-length: 24
    ipv6:
      enabled: true
      address:
        - ip: 100:1:1::1
          prefix-length: 24
    veth:
      peer: veth0_p
EOF

If using dual stack rules, the priority will increase by 2 for every applying.