bond: use defines for sysfs attribute names

Previously we used defines for bond option names and used string
literals for their attribute names in sysfs. But they are the same by
definition so let's use defines also for attributes.
This commit is contained in:
Beniamino Galvani
2016-07-05 22:24:47 +02:00
parent f33a620b97
commit c5fa3738b1

View File

@@ -15,7 +15,7 @@
* with this program; if not, write to the Free Software Foundation, Inc., * with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* *
* Copyright 2011 - 2012 Red Hat, Inc. * Copyright 2011 - 2016 Red Hat, Inc.
*/ */
#include "nm-default.h" #include "nm-default.h"
@@ -137,10 +137,10 @@ set_bond_attr (NMDevice *device, NMBondMode mode, const char *attr, const char *
static gboolean static gboolean
ignore_if_zero (const char *option, const char *value) ignore_if_zero (const char *option, const char *value)
{ {
if (strcmp (option, "arp_interval") && if (!NM_IN_STRSET (option, NM_SETTING_BOND_OPTION_ARP_INTERVAL,
strcmp (option, "miimon") && NM_SETTING_BOND_OPTION_DOWNDELAY,
strcmp (option, "downdelay") && NM_SETTING_BOND_OPTION_MIIMON,
strcmp (option, "updelay")) NM_SETTING_BOND_OPTION_UPDELAY))
return FALSE; return FALSE;
return g_strcmp0 (value, "0") == 0 ? TRUE : FALSE; return g_strcmp0 (value, "0") == 0 ? TRUE : FALSE;
@@ -176,7 +176,7 @@ update_connection (NMDevice *device, NMConnection *connection)
&& !ignore_if_zero (*options, value) && !ignore_if_zero (*options, value)
&& !nm_streq0 (value, defvalue)) { && !nm_streq0 (value, defvalue)) {
/* Replace " " with "," for arp_ip_targets from the kernel */ /* Replace " " with "," for arp_ip_targets from the kernel */
if (strcmp (*options, "arp_ip_target") == 0) { if (strcmp (*options, NM_SETTING_BOND_OPTION_ARP_IP_TARGET) == 0) {
for (p = value; *p; p++) { for (p = value; *p; p++) {
if (*p == ' ') if (*p == ' ')
*p = ','; *p = ',';
@@ -218,7 +218,7 @@ set_arp_targets (NMDevice *device,
for (iter = items; iter && *iter; iter++) { for (iter = items; iter && *iter; iter++) {
if (*iter[0]) { if (*iter[0]) {
tmp = g_strdup_printf ("%s%s", prefix, *iter); tmp = g_strdup_printf ("%s%s", prefix, *iter);
set_bond_attr (device, mode, "arp_ip_target", tmp); set_bond_attr (device, mode, NM_SETTING_BOND_OPTION_ARP_IP_TARGET, tmp);
g_free (tmp); g_free (tmp);
} }
} }
@@ -228,7 +228,6 @@ set_arp_targets (NMDevice *device,
static void static void
set_simple_option (NMDevice *device, set_simple_option (NMDevice *device,
NMBondMode mode, NMBondMode mode,
const char *attr,
NMSettingBond *s_bond, NMSettingBond *s_bond,
const char *opt) const char *opt)
{ {
@@ -237,7 +236,7 @@ set_simple_option (NMDevice *device,
value = nm_setting_bond_get_option_by_name (s_bond, opt); value = nm_setting_bond_get_option_by_name (s_bond, opt);
if (!value) if (!value)
value = nm_setting_bond_get_option_default (s_bond, opt); value = nm_setting_bond_get_option_default (s_bond, opt);
set_bond_attr (device, mode, attr, value); set_bond_attr (device, mode, opt, value);
} }
static NMActStageReturn static NMActStageReturn
@@ -283,26 +282,27 @@ apply_bonding_config (NMDevice *device)
/* Set mode first, as some other options (e.g. arp_interval) are valid /* Set mode first, as some other options (e.g. arp_interval) are valid
* only for certain modes. * only for certain modes.
*/ */
set_bond_attr (device, mode, "mode", mode_str);
set_bond_attr (device, mode, NM_SETTING_BOND_OPTION_MODE, mode_str);
value = nm_setting_bond_get_option_by_name (s_bond, NM_SETTING_BOND_OPTION_MIIMON); value = nm_setting_bond_get_option_by_name (s_bond, NM_SETTING_BOND_OPTION_MIIMON);
if (value && atoi (value)) { if (value && atoi (value)) {
/* clear arp interval */ /* clear arp interval */
set_bond_attr (device, mode, "arp_interval", "0"); set_bond_attr (device, mode, NM_SETTING_BOND_OPTION_ARP_INTERVAL, "0");
set_arp_interval = FALSE; set_arp_interval = FALSE;
set_bond_attr (device, mode, "miimon", value); set_bond_attr (device, mode, NM_SETTING_BOND_OPTION_MIIMON, value);
set_simple_option (device, mode, "updelay", s_bond, NM_SETTING_BOND_OPTION_UPDELAY); set_simple_option (device, mode, s_bond, NM_SETTING_BOND_OPTION_UPDELAY);
set_simple_option (device, mode, "downdelay", s_bond, NM_SETTING_BOND_OPTION_DOWNDELAY); set_simple_option (device, mode, s_bond, NM_SETTING_BOND_OPTION_DOWNDELAY);
} else if (!value) { } else if (!value) {
/* If not given, and arp_interval is not given or disabled, default to 100 */ /* If not given, and arp_interval is not given or disabled, default to 100 */
value = nm_setting_bond_get_option_by_name (s_bond, NM_SETTING_BOND_OPTION_ARP_INTERVAL); value = nm_setting_bond_get_option_by_name (s_bond, NM_SETTING_BOND_OPTION_ARP_INTERVAL);
if (_nm_utils_ascii_str_to_int64 (value, 10, 0, G_MAXUINT32, 0) == 0) if (_nm_utils_ascii_str_to_int64 (value, 10, 0, G_MAXUINT32, 0) == 0)
set_bond_attr (device, mode, "miimon", "100"); set_bond_attr (device, mode, NM_SETTING_BOND_OPTION_MIIMON, "100");
} }
if (set_arp_interval) { if (set_arp_interval) {
set_simple_option (device, mode, "arp_interval", s_bond, NM_SETTING_BOND_OPTION_ARP_INTERVAL); set_simple_option (device, mode, s_bond, NM_SETTING_BOND_OPTION_ARP_INTERVAL);
/* Just let miimon get cleared automatically; even setting miimon to /* Just let miimon get cleared automatically; even setting miimon to
* 0 (disabled) clears arp_interval. * 0 (disabled) clears arp_interval.
*/ */
@@ -314,16 +314,17 @@ apply_bonding_config (NMDevice *device)
&& !nm_streq (value, "0") && !nm_streq (value, "0")
&& !nm_streq (value, "none") && !nm_streq (value, "none")
&& mode == NM_BOND_MODE_ACTIVEBACKUP) && mode == NM_BOND_MODE_ACTIVEBACKUP)
set_bond_attr (device, mode, "arp_validate", value); set_bond_attr (device, mode, NM_SETTING_BOND_OPTION_ARP_VALIDATE, value);
else else
set_bond_attr (device, mode, "arp_validate", "0"); set_bond_attr (device, mode, NM_SETTING_BOND_OPTION_ARP_VALIDATE, "0");
/* Primary */ /* Primary */
value = nm_setting_bond_get_option_by_name (s_bond, NM_SETTING_BOND_OPTION_PRIMARY); value = nm_setting_bond_get_option_by_name (s_bond, NM_SETTING_BOND_OPTION_PRIMARY);
set_bond_attr (device, mode, "primary", value ? value : ""); set_bond_attr (device, mode, NM_SETTING_BOND_OPTION_PRIMARY, value ? value : "");
/* ARP targets: clear and initialize the list */ /* ARP targets: clear and initialize the list */
contents = nm_platform_sysctl_master_get_option (NM_PLATFORM_GET, ifindex, "arp_ip_target"); contents = nm_platform_sysctl_master_get_option (NM_PLATFORM_GET, ifindex,
NM_SETTING_BOND_OPTION_ARP_IP_TARGET);
set_arp_targets (device, mode, contents, " \n", "-"); set_arp_targets (device, mode, contents, " \n", "-");
value = nm_setting_bond_get_option_by_name (s_bond, NM_SETTING_BOND_OPTION_ARP_IP_TARGET); value = nm_setting_bond_get_option_by_name (s_bond, NM_SETTING_BOND_OPTION_ARP_IP_TARGET);
set_arp_targets (device, mode, value, ",", "+"); set_arp_targets (device, mode, value, ",", "+");
@@ -332,27 +333,26 @@ apply_bonding_config (NMDevice *device)
/* AD actor system: don't set if empty */ /* 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); value = nm_setting_bond_get_option_by_name (s_bond, NM_SETTING_BOND_OPTION_AD_ACTOR_SYSTEM);
if (value) if (value)
set_bond_attr (device, mode, "ad_actor_system", value); set_bond_attr (device, mode, NM_SETTING_BOND_OPTION_AD_ACTOR_SYSTEM, value);
set_simple_option (device, mode, "primary_reselect", s_bond, NM_SETTING_BOND_OPTION_PRIMARY_RESELECT); set_simple_option (device, mode, s_bond, NM_SETTING_BOND_OPTION_ACTIVE_SLAVE);
set_simple_option (device, mode, "fail_over_mac", s_bond, NM_SETTING_BOND_OPTION_FAIL_OVER_MAC); set_simple_option (device, mode, s_bond, NM_SETTING_BOND_OPTION_AD_ACTOR_SYS_PRIO);
set_simple_option (device, mode, "use_carrier", s_bond, NM_SETTING_BOND_OPTION_USE_CARRIER); set_simple_option (device, mode, s_bond, NM_SETTING_BOND_OPTION_AD_SELECT);
set_simple_option (device, mode, "ad_select", s_bond, NM_SETTING_BOND_OPTION_AD_SELECT); set_simple_option (device, mode, s_bond, NM_SETTING_BOND_OPTION_AD_USER_PORT_KEY);
set_simple_option (device, mode, "xmit_hash_policy", s_bond, NM_SETTING_BOND_OPTION_XMIT_HASH_POLICY); set_simple_option (device, mode, s_bond, NM_SETTING_BOND_OPTION_ALL_SLAVES_ACTIVE);
set_simple_option (device, mode, "resend_igmp", s_bond, NM_SETTING_BOND_OPTION_RESEND_IGMP); set_simple_option (device, mode, s_bond, NM_SETTING_BOND_OPTION_ARP_ALL_TARGETS);
set_simple_option (device, mode, "active_slave", s_bond, NM_SETTING_BOND_OPTION_ACTIVE_SLAVE); set_simple_option (device, mode, s_bond, NM_SETTING_BOND_OPTION_FAIL_OVER_MAC);
set_simple_option (device, mode, "all_slaves_active", s_bond, NM_SETTING_BOND_OPTION_ALL_SLAVES_ACTIVE); set_simple_option (device, mode, s_bond, NM_SETTING_BOND_OPTION_LACP_RATE);
set_simple_option (device, mode, "num_grat_arp", s_bond, NM_SETTING_BOND_OPTION_NUM_GRAT_ARP); set_simple_option (device, mode, s_bond, NM_SETTING_BOND_OPTION_LP_INTERVAL);
set_simple_option (device, mode, "num_unsol_na", s_bond, NM_SETTING_BOND_OPTION_NUM_UNSOL_NA); set_simple_option (device, mode, s_bond, NM_SETTING_BOND_OPTION_NUM_GRAT_ARP);
set_simple_option (device, mode, "lacp_rate", s_bond, NM_SETTING_BOND_OPTION_LACP_RATE); set_simple_option (device, mode, s_bond, NM_SETTING_BOND_OPTION_NUM_UNSOL_NA);
set_simple_option (device, mode, "ad_actor_sys_prio", s_bond, NM_SETTING_BOND_OPTION_AD_ACTOR_SYS_PRIO); set_simple_option (device, mode, s_bond, NM_SETTING_BOND_OPTION_MIN_LINKS);
set_simple_option (device, mode, "ad_actor_system", s_bond, NM_SETTING_BOND_OPTION_AD_ACTOR_SYSTEM); set_simple_option (device, mode, s_bond, NM_SETTING_BOND_OPTION_PACKETS_PER_SLAVE);
set_simple_option (device, mode, "ad_user_port_key", s_bond, NM_SETTING_BOND_OPTION_AD_USER_PORT_KEY); set_simple_option (device, mode, s_bond, NM_SETTING_BOND_OPTION_PRIMARY_RESELECT);
set_simple_option (device, mode, "min_links", s_bond, NM_SETTING_BOND_OPTION_MIN_LINKS); set_simple_option (device, mode, s_bond, NM_SETTING_BOND_OPTION_RESEND_IGMP);
set_simple_option (device, mode, "arp_all_targets", s_bond, NM_SETTING_BOND_OPTION_ARP_ALL_TARGETS); set_simple_option (device, mode, s_bond, NM_SETTING_BOND_OPTION_TLB_DYNAMIC_LB);
set_simple_option (device, mode, "packets_per_slave", s_bond, NM_SETTING_BOND_OPTION_PACKETS_PER_SLAVE); set_simple_option (device, mode, s_bond, NM_SETTING_BOND_OPTION_USE_CARRIER);
set_simple_option (device, mode, "tlb_dynamic_lb", s_bond, NM_SETTING_BOND_OPTION_TLB_DYNAMIC_LB); set_simple_option (device, mode, s_bond, NM_SETTING_BOND_OPTION_XMIT_HASH_POLICY);
set_simple_option (device, mode, "lp_interval", s_bond, NM_SETTING_BOND_OPTION_LP_INTERVAL);
return NM_ACT_STAGE_RETURN_SUCCESS; return NM_ACT_STAGE_RETURN_SUCCESS;
} }