summary refs log tree commit diff
path: root/libnm-core/nm-libnm-core-intern/nm-libnm-core-utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'libnm-core/nm-libnm-core-intern/nm-libnm-core-utils.c')
-rw-r--r--libnm-core/nm-libnm-core-intern/nm-libnm-core-utils.c49
1 files changed, 49 insertions, 0 deletions
diff --git a/libnm-core/nm-libnm-core-intern/nm-libnm-core-utils.c b/libnm-core/nm-libnm-core-intern/nm-libnm-core-utils.c
index 8d2ea09c..f2c85cc6 100644
--- a/libnm-core/nm-libnm-core-intern/nm-libnm-core-utils.c
+++ b/libnm-core/nm-libnm-core-intern/nm-libnm-core-utils.c
@@ -10,6 +10,54 @@
 
 /*****************************************************************************/
 
+const char **
+nm_utils_bond_option_arp_ip_targets_split (const char *arp_ip_target)
+{
+	return nm_utils_strsplit_set_full (arp_ip_target, ",", NM_UTILS_STRSPLIT_SET_FLAGS_STRSTRIP);
+}
+
+void
+_nm_setting_bond_remove_options_miimon (NMSettingBond *s_bond)
+{
+	g_return_if_fail (NM_IS_SETTING_BOND (s_bond));
+
+	nm_setting_bond_remove_option (s_bond, NM_SETTING_BOND_OPTION_MIIMON);
+	nm_setting_bond_remove_option (s_bond, NM_SETTING_BOND_OPTION_UPDELAY);
+	nm_setting_bond_remove_option (s_bond, NM_SETTING_BOND_OPTION_DOWNDELAY);
+}
+
+void
+_nm_setting_bond_remove_options_arp_interval (NMSettingBond *s_bond)
+{
+	g_return_if_fail (NM_IS_SETTING_BOND (s_bond));
+
+	nm_setting_bond_remove_option (s_bond, NM_SETTING_BOND_OPTION_ARP_INTERVAL);
+	nm_setting_bond_remove_option (s_bond, NM_SETTING_BOND_OPTION_ARP_IP_TARGET);
+}
+
+NM_UTILS_STRING_TABLE_LOOKUP_DEFINE (
+	_nm_setting_bond_mode_from_string,
+	NMBondMode,
+	{ g_return_val_if_fail (name, NM_BOND_MODE_UNKNOWN); },
+	{ return NM_BOND_MODE_UNKNOWN; },
+	{ "0",             NM_BOND_MODE_ROUNDROBIN   },
+	{ "1",             NM_BOND_MODE_ACTIVEBACKUP },
+	{ "2",             NM_BOND_MODE_XOR          },
+	{ "3",             NM_BOND_MODE_BROADCAST    },
+	{ "4",             NM_BOND_MODE_8023AD       },
+	{ "5",             NM_BOND_MODE_TLB          },
+	{ "6",             NM_BOND_MODE_ALB          },
+	{ "802.3ad",       NM_BOND_MODE_8023AD       },
+	{ "active-backup", NM_BOND_MODE_ACTIVEBACKUP },
+	{ "balance-alb",   NM_BOND_MODE_ALB          },
+	{ "balance-rr",    NM_BOND_MODE_ROUNDROBIN   },
+	{ "balance-tlb",   NM_BOND_MODE_TLB          },
+	{ "balance-xor",   NM_BOND_MODE_XOR          },
+	{ "broadcast",     NM_BOND_MODE_BROADCAST    },
+);
+
+/*****************************************************************************/
+
 gboolean
 nm_utils_vlan_priority_map_parse_str (NMVlanPriorityMap map_type,
                                       const char *str,
@@ -207,4 +255,5 @@ NM_UTILS_ENUM2STR_DEFINE (nm_utils_route_type2str, guint8,
 	NM_UTILS_ENUM2STR (RTN_THROW, "throw"),
 	NM_UTILS_ENUM2STR (RTN_UNICAST, "unicast"),
 	NM_UTILS_ENUM2STR (RTN_UNREACHABLE, "unreachable"),
+	NM_UTILS_ENUM2STR (RTN_UNSPEC, "unspecified"),
 );