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

NetworkManager IPv6 address expires when overloaded by netlink messages

    • No
    • None
    • rhel-sst-network-management
    • ssg_networking
    • None
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • Hide

      Given a system administrator is running a NetworkManager scenario where an IPv6 address is leased for a device with high netlink message traffic during resync,

      When NetworkManager processes netlink messages under high load and the resync takes a prolonged time,

      Then the IPv6 leased address should be renewed before expiration, ensuring that the address remains valid and does not expire during the resync process and the number of routes should stay consistent with the expected state.

      Definition of Done:

      • The implementation meets the acceptance criteria
      • The code is part of a downstream build attached to an errata
      Show
      Given a system administrator is running a NetworkManager scenario where an IPv6 address is leased for a device with high netlink message traffic during resync, When NetworkManager processes netlink messages under high load and the resync takes a prolonged time, Then the IPv6 leased address should be renewed before expiration, ensuring that the address remains valid and does not expire during the resync process and the number of routes should stay consistent with the expected state. Definition of Done: The implementation meets the acceptance criteria The code is part of a downstream build attached to an errata
    • None
    • None
    • None

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

      When NetworkManager resyncs netlink messages, and there are too many of them and it takes long, it doesn't renew leased address which then expires.

      Please provide the package NVR for which bug is seen:

      1.49.5-33459.copr.fedc37ac48.el10

      How reproducible:

      always (or very often).

      Steps to reproduce

      1. run the following NetworkManager-ci scenario:

      @logging_info_only
      @ipv6_address_renew_during_netlink_resync
      Scenario: NM - ipv6 - check that address and route is renewed during netlink resync
      * Prepare simulated test "many_routes6" device with ifindex "65006"
      * Commentary
      """
      Clean up the device early with ip so that in case of some problems, the restarted
      NM doesn't have to cope with 100000s of routes
      """
      * Cleanup execute "ip link delete many_routes6" with timeout "10" seconds and priority "-45"
      * Cleanup execute "sleep 2" with timeout "3" seconds and priority "-44"
      * Add "ethernet" connection named "con_ipv6" for device "many_routes6"
      * Bring "up" connection "con_ipv6"
      # wait until `connecting` or `activating` is finished
      When "ing" is not visible with command "nmcli -f general.state c show con_ipv6" in "10" seconds
      # wait for DHCP routes
      When "2620:dead:beaf::[^/]" is visible with command "ip -6 r sh dev many_routes6" in "10" seconds
      * Note "ipv6" routes on interface "many_routes6" as value "ip_routes_before"
      Then Check "ipv6" route list on NM device "many_routes6" matches "ip_routes_before"
      * Note "ipv6" routes on NM device "many_routes6" as value "nm_routes_before"
      Then Check "ipv6" route list on NM device "many_routes6" matches "nm_routes_before"
      # If more routes are needed, just adjust argument to the generating script and When check
      * Execute "prepare/bird_routes.py many_routes6 6 5000000 > /tmp/nmci-bird-routes-v6"
      * Run child "ip -b /tmp/nmci-bird-routes-v6"
      * Execute "sleep 140"
      * Kill children
      Then Check "ipv6" route list on NM device "many_routes6" matches "nm_routes_before" in "40" seconds
      * Delete connection "con_ipv6"
      * Commentary
      """
      Wait before starting the check, as the check might block/slow down the route deletion.
      """
      * Wait for "5" seconds
      Then There are "at most" "5" IP version "6" routes for device "many_routes6" in "5" seconds

      Expected results

      Scenario should pass reliably

      Actual results

      The scenario fails, routes differ, after resnc the address with 2 minutes lease is gone.

              rh-ee-sfaye Stanislas Faye
              fpokryvk@redhat.com Filip Pokryvka
              Network Management Team Network Management Team
              Vladimir Benes Vladimir Benes
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

                Created:
                Updated: