mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-26 21:40:08 +01:00
bond: fix default value for 'ad_actor_system' option
Even if the 'ad_actor_system' option is only valid for the 802.3ad mode, the sysfs file is always present and has a default value of ''. But in 802.3ad mode the default value is '00:00:00:00:00:00'. Return the correct value in nm_setting_bond_get_option_default(). Furthermore, writing a empty string to the file will generate an error, don't do it.
This commit is contained in:
parent
dd1c453ff7
commit
f33a620b97
2 changed files with 17 additions and 1 deletions
|
|
@ -92,7 +92,7 @@ static const BondDefault defaults[] = {
|
|||
{ "slow", "fast", NULL } },
|
||||
{ NM_SETTING_BOND_OPTION_ACTIVE_SLAVE, "", NM_BOND_OPTION_TYPE_IFNAME },
|
||||
{ NM_SETTING_BOND_OPTION_AD_ACTOR_SYS_PRIO,"65535", NM_BOND_OPTION_TYPE_INT, 1, 65535 },
|
||||
{ NM_SETTING_BOND_OPTION_AD_ACTOR_SYSTEM, "", NM_BOND_OPTION_TYPE_MAC },
|
||||
{ NM_SETTING_BOND_OPTION_AD_ACTOR_SYSTEM, NULL, NM_BOND_OPTION_TYPE_MAC },
|
||||
{ NM_SETTING_BOND_OPTION_AD_USER_PORT_KEY, "0", NM_BOND_OPTION_TYPE_INT, 0, 1023},
|
||||
{ NM_SETTING_BOND_OPTION_ALL_SLAVES_ACTIVE,"0", NM_BOND_OPTION_TYPE_INT, 0, 1},
|
||||
{ NM_SETTING_BOND_OPTION_ARP_ALL_TARGETS, "any", NM_BOND_OPTION_TYPE_BOTH, 0, 1, {"any", "all"}},
|
||||
|
|
@ -427,11 +427,22 @@ nm_setting_bond_get_valid_options (NMSettingBond *setting)
|
|||
const char *
|
||||
nm_setting_bond_get_option_default (NMSettingBond *setting, const char *name)
|
||||
{
|
||||
const char *mode;
|
||||
guint i;
|
||||
|
||||
g_return_val_if_fail (NM_IS_SETTING_BOND (setting), NULL);
|
||||
g_return_val_if_fail (nm_setting_bond_validate_option (name, NULL), NULL);
|
||||
|
||||
if (nm_streq (name, NM_SETTING_BOND_OPTION_AD_ACTOR_SYSTEM)) {
|
||||
/* The default value depends on the current mode */
|
||||
mode = nm_setting_bond_get_option_by_name (setting, NM_SETTING_BOND_OPTION_MODE);
|
||||
if ( nm_streq0 (mode, "4")
|
||||
|| nm_streq0 (mode, "802.3ad"))
|
||||
return "00:00:00:00:00:00";
|
||||
else
|
||||
return "";
|
||||
}
|
||||
|
||||
for (i = 0; i < G_N_ELEMENTS (defaults); i++) {
|
||||
if (g_strcmp0 (defaults[i].opt, name) == 0)
|
||||
return defaults[i].val;
|
||||
|
|
|
|||
|
|
@ -329,6 +329,11 @@ apply_bonding_config (NMDevice *device)
|
|||
set_arp_targets (device, mode, value, ",", "+");
|
||||
g_free (contents);
|
||||
|
||||
/* AD actor system: don't set if empty */
|
||||
value = nm_setting_bond_get_option_by_name (s_bond, NM_SETTING_BOND_OPTION_AD_ACTOR_SYSTEM);
|
||||
if (value)
|
||||
set_bond_attr (device, mode, "ad_actor_system", value);
|
||||
|
||||
set_simple_option (device, mode, "primary_reselect", s_bond, NM_SETTING_BOND_OPTION_PRIMARY_RESELECT);
|
||||
set_simple_option (device, mode, "fail_over_mac", s_bond, NM_SETTING_BOND_OPTION_FAIL_OVER_MAC);
|
||||
set_simple_option (device, mode, "use_carrier", s_bond, NM_SETTING_BOND_OPTION_USE_CARRIER);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue