Blob Blame History Raw
From 8a7f1758da4cba81d65ba4b9b06bbf4b750a6f87 Mon Sep 17 00:00:00 2001
From: Gris Ge <fge@redhat.com>
Date: Thu, 22 Oct 2020 14:09:27 +0800
Subject: [PATCH 1/2] nm bond: Ignore ad_actor_system=00:00:00:00:00:00

The ad_actor_system=00:00:00:00:00:00 is invalid in kernel as that's the
default value of ad_actor_system.

NM plugin should not set that value.

Test case included.

Signed-off-by: Gris Ge <fge@redhat.com>
Signed-off-by: Fernando Fernandez Mancera <ffmancera@riseup.net>
---
 libnmstate/nm/bond.py             |  9 +++++++++
 tests/integration/nm/bond_test.py | 12 ++++++++++++
 2 files changed, 21 insertions(+)

diff --git a/libnmstate/nm/bond.py b/libnmstate/nm/bond.py
index 9ea3648..d196965 100644
--- a/libnmstate/nm/bond.py
+++ b/libnmstate/nm/bond.py
@@ -38,6 +38,8 @@ NM_SUPPORTED_BOND_OPTIONS = NM.SettingBond.get_valid_options(
 
 SYSFS_BOND_OPTION_FOLDER_FMT = "/sys/class/net/{ifname}/bonding"
 
+BOND_AD_ACTOR_SYSTEM_USE_BOND_MAC = "00:00:00:00:00:00"
+
 
 def create_setting(options, wired_setting):
     bond_setting = NM.SettingBond.new()
@@ -48,6 +50,13 @@ def create_setting(options, wired_setting):
         ):
             # When in MAC restricted mode, MAC address should be unset.
             wired_setting.props.cloned_mac_address = None
+        if (
+            option_name == "ad_actor_system"
+            and option_value == BOND_AD_ACTOR_SYSTEM_USE_BOND_MAC
+        ):
+            # The all zero ad_actor_system is the kernel default value
+            # And it is invalid to set as all zero
+            continue
         if option_value != SYSFS_EMPTY_VALUE:
             success = bond_setting.add_option(option_name, str(option_value))
             if not success:
-- 
2.25.4