Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-27843

Ansible RHEL network system role issue with nmstate (vlan.flags = NONE)

    • None
    • Moderate
    • rhel-sst-system-roles
    • None
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • None
    • None
    • None

      What were you trying to do that didn't work?

      While using the `network_state` variable to configure a vlan on top of the bond the `vlan.flags` is set to `none` .

      $ nmcli connection show bond1.1234 | grep vlan.flags
      vlan.flags: 0 (NONE)

      Compared with the `network.connections` variable which leads to:

      $ nmcli connection show bond1.1234 | grep vlan.flags
      vlan.flags: 1 (REORDER_HEADERS) 

      The same result is obtained with the `nmcli` command:

      $ nmcli connection add type vlan ifname bond1.1234 dev bond1 id 1234 connection.id bond1.1234 ipv4.method disabled ipv6.method disabled` 

      Please provide the package NVR for which bug is seen:

      $ cat /etc/redhat-release
      Red Hat Enterprise Linux release 9.3 (Plow)
      
      $ uname -a
      Linux localhost.localdomain 5.14.0-362.18.1.el9_3.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jan 3 15:54:45 EST 2024 x86_64 x86_64 x86_64 GNU/Linux
      
      $ rpm -qa | grep -E 'nmstate|rhel'
      rhel-system-roles-1.22.0-2.el9.noarch
      nmstate-2.2.23-1.el9_3.x86_64
      nmstate-libs-2.2.23-1.el9_3.x86_64
      python3-libnmstate-2.2.23-1.el9_3.x86_64  

      How reproducible:

      • Install rhel-system-roles.network
      • Run a playbook to configure a vlan with the `network_state` variable

      Steps to reproduce:

      Example of playbook:

      ---
      
      - name: Configure a bond interface with nmstate 
        hosts: localhost
        gather_facts: false
        become: true
        vars:
          network_state:
            interfaces:
              - name: bond1 
                state: up
                type: bond
                link-aggregation:
                  mode: active-backup
                  options:  
                    miimon: 100
                  port:
                  - eth1
              - name: bond1.1234
                type: vlan
                state: up
                vlan:
                    base-iface: bond1
                    id: 1234
        roles:
          - rhel-system-roles.network
      ... 

      Expected results

      $ nmcli connection show bond1.1234 | grep vlan.flags
      vlan.flags: 1 (REORDER_HEADERS)

      Actual results:

      $ nmcli connection show bond1.1234 | grep vlan.flags
      vlan.flags: 0 (NONE 

      I suggested the customer to use the `reorder-headers: true` on the playbook. 

      It seems there's a discrepancy between `network_connections` and `network_state`:

      $ man nm-settings-nmcli | egrep vlan.flags -A11
      vlan.flags
      Alias: flags 
      One or more flags which control the behavior and features of the VLAN interface. Flags include NM_VLAN_FLAG_REORDER_HEADERS (0x1) (reordering of output
      packet headers), NM_VLAN_FLAG_GVRP (0x2) (use of the GVRP protocol), and NM_VLAN_FLAG_LOOSE_BINDING (0x4) (loose binding of the interface to its master
      device's operating state). NM_VLAN_FLAG_MVRP (0x8) (use of the MVRP protocol).
      The default value of this property is NM_VLAN_FLAG_REORDER_HEADERS, but it used to be 0. To preserve backward compatibility, the default-value in the
      D-Bus API continues to be 0 and a missing property on D-Bus is still considered as 0.
      Format: NMVlanFlags (uint32)

       

              liangwen12year Wen Liang
              rhn-support-elaurett Emanuele Lauretta
              Wen Liang Wen Liang
              rhel-cs-system-management-subsystem-qe Bot rhel-cs-system-management-subsystem-qe Bot
              Votes:
              1 Vote for this issue
              Watchers:
              7 Start watching this issue

                Created:
                Updated:
                Resolved: