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

Dispatcher scripts used in linux bonds are not refreshed when changes are made

Linking RHIVOS CVEs to...Migration: Automation ...SWIFT: POC ConversionSync from "Extern...XMLWordPrintable

    • nmstate-2.2.48-1.el10
    • No
    • Moderate
    • ZStream
    • rhel-net-mgmt
    • ssg_networking
    • 2
    • False
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • Regression Exception
    • Hide

      Definition of Done:

      Please mark each item below with ( / ) if completed or ( x ) if incomplete:

      The acceptance criteria defined below are met.

      Given a RHEL 9.4+ system with nmstate and NetworkManager installed,
      When a system administrator updates dispatcher script contents via nmstatectl apply for an interface,
      Then the newly updated dispatcher script is executed on the next connection activation without requiring a reboot.


      Integration test case is available upstream.


      Code is reviewed and merged upstream.


      ( ) Preliminary testing is done.


      A demo is recorded

      Show
      Definition of Done: Please mark each item below with ( / ) if completed or ( x ) if incomplete: The acceptance criteria defined below are met. Given a RHEL 9.4+ system with nmstate and NetworkManager installed, When a system administrator updates dispatcher script contents via nmstatectl apply for an interface, Then the newly updated dispatcher script is executed on the next connection activation without requiring a reboot. Integration test case is available upstream. Code is reviewed and merged upstream. ( ) Preliminary testing is done. A demo is recorded
    • Pass
    • Automated
    • Unspecified
    • Unspecified
    • Unspecified
    • None

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

      [root@compute-0 cloud-admin]# cat ~/nms_off.yaml 
      interfaces:
      - dispatch:
          post-activation: '      set +e      set -x      /sbin/ethtool --set-priv-flags $1 disable-fw-lldp off      '
        ethernet:
          sr-iov:
            total-vfs: 0
        ethtool: {}
        ipv4:
          dhcp: false
          enabled: false
        ipv6:
          autoconf: false
          dhcp: false
          enabled: false
        name: enp130s0f0
        state: up
        type: ethernet
      - dispatch:
          post-activation: '      set +e      set -x      /sbin/ethtool --set-priv-flags $1 disable-fw-lldp off      '
        ethernet:
          sr-iov:
            total-vfs: 0
        ethtool: {}
        ipv4:
          dhcp: false
          enabled: false
        ipv6:
          autoconf: false
          dhcp: false
          enabled: false
        name: enp130s0f1
        state: up
        type: ethernet
      - ipv4:
          address:
          - ip: 192.168.122.100
            prefix-length: 24
          auto-dns: false
          dhcp: false
          enabled: true
        ipv6:
          auto-dns: false
          autoconf: false
          dhcp: false
          enabled: false
        link-aggregation:
          mode: active-backup
          options:
            primary: enp130s0f0
          port:
          - enp130s0f0
          - enp130s0f1
        name: bond_api
        state: up
        type: bond 

      Apply the above template

       

      nmstatectl apply ~/nms_off.yaml 

      Check the NetworkManager-dispatcher logs

       

       

      • n 02 12:24:40 compute-0 systemd[1]: Starting Network Manager Script Dispatcher Service... Jun 02 12:24:40 compute-0 systemd[1]: Started Network Manager Script Dispatcher Service. Jun 02 12:24:40 compute-0 nm-dispatcher[15540]: + /sbin/ethtool --set-priv-flags enp130s0f0 disable-fw-lldp off Jun 02 12:24:40 compute-0 nm-dispatcher[15555]: + /sbin/ethtool --set-priv-flags enp130s0f1 disable-fw-lldp off Jun 02 12:24:51 compute-0 systemd[1]: NetworkManager-dispatcher.service: Deactivated successfully.
      •  

       

       

      Check the ethtool settings

       

      [root@compute-0 cloud-admin]# ethtool --show-priv-flags enp130s0f0 | grep disable-fw-lldp
      disable-fw-lldp        : off
      [root@compute-0 cloud-admin]# ethtool --show-priv-flags enp130s0f1 | grep disable-fw-lldp
      disable-fw-lldp       : off 

       

       

      Modify the dispatcher script for both enp130s0f0 and enp130s0f1

       

      - dispatch:
          post-activation: '      set +e      set -x      /sbin/ethtool --set-priv-flags $1 disable-fw-lldp on      '  

      Apply the same

       

      nmstatectl apply ~/nms.yaml 

      On checking the dispatcher logs, the earlier dispatcher script is run

      Jun 02 13:41:45 compute-0 systemd[1]: Starting Network Manager Script Dispatcher Service...
      Jun 02 13:41:45 compute-0 systemd[1]: Started Network Manager Script Dispatcher Service.
      Jun 02 13:41:46 compute-0 nm-dispatcher[37667]: + /sbin/ethtool --set-priv-flags enp130s0f0 disable-fw-lldp off
      Jun 02 13:41:46 compute-0 nm-dispatcher[37682]: + /sbin/ethtool --set-priv-flags enp130s0f1 disable-fw-lldp on
      Jun 02 13:41:56 compute-0 systemd[1]: NetworkManager-dispatcher.service: Deactivated successfully. 

      The above logs indicate that the earlier version of the dispatcher script has kicked in. Its confirmed after checking the status via ethtool

      [root@compute-0 cloud-admin]# ethtool --show-priv-flags enp130s0f0 | grep disable-fw-lldp
      disable-fw-lldp        : off
      [root@compute-0 cloud-admin]# ethtool --show-priv-flags enp130s0f1 | grep disable-fw-lldp
      disable-fw-lldp       : on 

      The dispatcher contents are updated and the timestamps are

      [root@compute-0 ~]# stat  /etc/NetworkManager/dispatcher.d/nmstate-enp130s0f*
        File: /etc/NetworkManager/dispatcher.d/nmstate-enp130s0f0-up.sh
        Size: 236       	Blocks: 8          IO Block: 4096   regular file
      Device: fd04h/64772d	Inode: 3183458     Links: 1
      Access: (0744/-rwxr--r--)  Uid: (    0/    root)   Gid: (    0/    root)
      Context: unconfined_u:object_r:NetworkManager_dispatcher_script_t:s0
      Access: 2025-06-02 13:41:46.243824350 +0000
      Modify: 2025-06-02 13:41:46.232824382 +0000
      Change: 2025-06-02 13:41:46.232824382 +0000
       Birth: 2025-05-31 15:48:51.593945895 +0000
        File: /etc/NetworkManager/dispatcher.d/nmstate-enp130s0f1-up.sh
        Size: 236       	Blocks: 8          IO Block: 4096   regular file
      Device: fd04h/64772d	Inode: 3183461     Links: 1
      Access: (0744/-rwxr--r--)  Uid: (    0/    root)   Gid: (    0/    root)
      Context: unconfined_u:object_r:NetworkManager_dispatcher_script_t:s0
      Access: 2025-06-02 13:41:46.245824344 +0000
      Modify: 2025-06-02 13:41:46.232824382 +0000
      Change: 2025-06-02 13:41:46.232824382 +0000
       Birth: 2025-05-31 15:48:51.594945892 +0000 

      What is the impact of this issue to you?

      The updates to the dispatcher scripts are not taking effect during configuration. However it is found to work properly during reboots.

      Please provide the package NVR for which the bug is seen:

      [root@compute-0 ~]# nmstatectl --version

      nmstatectl 2.2.44

      [root@compute-0 ~]# nmcli -v

      nmcli tool, version 1.46.0-30.el9_4

      How reproducible is this bug?:

      Frequently

      Expected results

      The updates to the dispatcher scripts shall be seen during the configuration 

      Actual results

      The updates to the dispatcher script is affecting only one port of the linux bond and not on the other port

              rh-ee-sfaye Stanislas Faye
              ksundara@redhat.com Karthik Sundaravel
              Network Management Team Network Management Team
              Network Management Team Network Management Team
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

                Created:
                Updated: