about summary refs log tree commit diff
path: root/libnm-core/nm-team-utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'libnm-core/nm-team-utils.h')
-rw-r--r--libnm-core/nm-team-utils.h330
1 files changed, 157 insertions, 173 deletions
diff --git a/libnm-core/nm-team-utils.h b/libnm-core/nm-team-utils.h
index 2d22d63e..9fcde437 100644
--- a/libnm-core/nm-team-utils.h
+++ b/libnm-core/nm-team-utils.h
@@ -1,4 +1,4 @@
-// SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1+ */
 /*
  * Copyright (C) 2019 Red Hat, Inc.
  */
@@ -6,8 +6,8 @@
 #ifndef __NM_TEAM_UITLS_H__
 #define __NM_TEAM_UITLS_H__
 
-#if !((NETWORKMANAGER_COMPILATION) & NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_CORE_PRIVATE)
-#error Cannot use this header.
+#if !((NETWORKMANAGER_COMPILATION) &NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_CORE_PRIVATE)
+    #error Cannot use this header.
 #endif
 
 #include "nm-glib-aux/nm-value-type.h"
@@ -19,262 +19,246 @@ struct NMTeamLinkWatcher;
 
 typedef enum {
 
-	_NM_TEAM_ATTRIBUTE_0            = 0,
-	NM_TEAM_ATTRIBUTE_CONFIG        = 1,
-	NM_TEAM_ATTRIBUTE_LINK_WATCHERS = 2,
-
-	_NM_TEAM_ATTRIBUTE_START        = 3,
-
-	NM_TEAM_ATTRIBUTE_MASTER_NOTIFY_PEERS_COUNT = _NM_TEAM_ATTRIBUTE_START,
-	NM_TEAM_ATTRIBUTE_MASTER_NOTIFY_PEERS_INTERVAL,
-	NM_TEAM_ATTRIBUTE_MASTER_MCAST_REJOIN_COUNT,
-	NM_TEAM_ATTRIBUTE_MASTER_MCAST_REJOIN_INTERVAL,
-	NM_TEAM_ATTRIBUTE_MASTER_RUNNER,
-	NM_TEAM_ATTRIBUTE_MASTER_RUNNER_HWADDR_POLICY,
-	NM_TEAM_ATTRIBUTE_MASTER_RUNNER_TX_HASH,
-	NM_TEAM_ATTRIBUTE_MASTER_RUNNER_TX_BALANCER,
-	NM_TEAM_ATTRIBUTE_MASTER_RUNNER_TX_BALANCER_INTERVAL,
-	NM_TEAM_ATTRIBUTE_MASTER_RUNNER_ACTIVE,
-	NM_TEAM_ATTRIBUTE_MASTER_RUNNER_FAST_RATE,
-	NM_TEAM_ATTRIBUTE_MASTER_RUNNER_SYS_PRIO,
-	NM_TEAM_ATTRIBUTE_MASTER_RUNNER_MIN_PORTS,
-	NM_TEAM_ATTRIBUTE_MASTER_RUNNER_AGG_SELECT_POLICY,
-	_NM_TEAM_ATTRIBUTE_MASTER_NUM,
-
-	NM_TEAM_ATTRIBUTE_PORT_QUEUE_ID = _NM_TEAM_ATTRIBUTE_START,
-	NM_TEAM_ATTRIBUTE_PORT_PRIO,
-	NM_TEAM_ATTRIBUTE_PORT_STICKY,
-	NM_TEAM_ATTRIBUTE_PORT_LACP_PRIO,
-	NM_TEAM_ATTRIBUTE_PORT_LACP_KEY,
-	_NM_TEAM_ATTRIBUTE_PORT_NUM,
-
-	_NM_TEAM_ATTRIBUTE_NUM = MAX (_NM_TEAM_ATTRIBUTE_MASTER_NUM, _NM_TEAM_ATTRIBUTE_PORT_NUM),
+    _NM_TEAM_ATTRIBUTE_0            = 0,
+    NM_TEAM_ATTRIBUTE_CONFIG        = 1,
+    NM_TEAM_ATTRIBUTE_LINK_WATCHERS = 2,
+
+    _NM_TEAM_ATTRIBUTE_START = 3,
+
+    NM_TEAM_ATTRIBUTE_MASTER_NOTIFY_PEERS_COUNT = _NM_TEAM_ATTRIBUTE_START,
+    NM_TEAM_ATTRIBUTE_MASTER_NOTIFY_PEERS_INTERVAL,
+    NM_TEAM_ATTRIBUTE_MASTER_MCAST_REJOIN_COUNT,
+    NM_TEAM_ATTRIBUTE_MASTER_MCAST_REJOIN_INTERVAL,
+    NM_TEAM_ATTRIBUTE_MASTER_RUNNER,
+    NM_TEAM_ATTRIBUTE_MASTER_RUNNER_HWADDR_POLICY,
+    NM_TEAM_ATTRIBUTE_MASTER_RUNNER_TX_HASH,
+    NM_TEAM_ATTRIBUTE_MASTER_RUNNER_TX_BALANCER,
+    NM_TEAM_ATTRIBUTE_MASTER_RUNNER_TX_BALANCER_INTERVAL,
+    NM_TEAM_ATTRIBUTE_MASTER_RUNNER_ACTIVE,
+    NM_TEAM_ATTRIBUTE_MASTER_RUNNER_FAST_RATE,
+    NM_TEAM_ATTRIBUTE_MASTER_RUNNER_SYS_PRIO,
+    NM_TEAM_ATTRIBUTE_MASTER_RUNNER_MIN_PORTS,
+    NM_TEAM_ATTRIBUTE_MASTER_RUNNER_AGG_SELECT_POLICY,
+    _NM_TEAM_ATTRIBUTE_MASTER_NUM,
+
+    NM_TEAM_ATTRIBUTE_PORT_QUEUE_ID = _NM_TEAM_ATTRIBUTE_START,
+    NM_TEAM_ATTRIBUTE_PORT_PRIO,
+    NM_TEAM_ATTRIBUTE_PORT_STICKY,
+    NM_TEAM_ATTRIBUTE_PORT_LACP_PRIO,
+    NM_TEAM_ATTRIBUTE_PORT_LACP_KEY,
+    _NM_TEAM_ATTRIBUTE_PORT_NUM,
+
+    _NM_TEAM_ATTRIBUTE_NUM = MAX(_NM_TEAM_ATTRIBUTE_MASTER_NUM, _NM_TEAM_ATTRIBUTE_PORT_NUM),
 
 } NMTeamAttribute;
 
 static inline guint32
-nm_team_attribute_to_flags (NMTeamAttribute team_attr)
+nm_team_attribute_to_flags(NMTeamAttribute team_attr)
 {
-	nm_assert (_NM_INT_NOT_NEGATIVE (team_attr));
-	nm_assert (team_attr < _NM_TEAM_ATTRIBUTE_NUM);
-	G_STATIC_ASSERT_EXPR (_NM_TEAM_ATTRIBUTE_NUM < 32);
+    nm_assert(_NM_INT_NOT_NEGATIVE(team_attr));
+    nm_assert(team_attr < _NM_TEAM_ATTRIBUTE_NUM);
+    G_STATIC_ASSERT_EXPR(_NM_TEAM_ATTRIBUTE_NUM < 32);
 
-	return ((guint32) 1) << team_attr;
+    return ((guint32) 1) << team_attr;
 }
 
 struct _NMTeamSettingData {
-
-	const char *_js_str;
-
-	const GPtrArray *link_watchers;
-
-	/* this means that @_js_str is unset and needs to be created by
-	 * converting the properties to JSON. This flag indicates that
-	 * we need to re-generate the JSON string on-demand (lazily). */
-	bool _js_str_need_synthetize;
-
-	bool strict_validated:1;
-
-	/* indicates tha the JSON is invalid. Usually, we do a very relaxed validation of
-	 * the JSON config, in case !@strict_validated and accept all unknown fields. This
-	 * flag indicates that the JSON value is not even parsable as JSON. nm_connection_verify()
-	 * would reject such a setting. */
-	bool js_str_invalid:1;
-
-	bool is_port:1;
-
-	guint32 has_fields_mask;
-
-	union {
-		struct {
-			const GPtrArray *runner_tx_hash;
-			const char *runner;
-			const char *runner_hwaddr_policy;
-			const char *runner_tx_balancer;
-			const char *runner_agg_select_policy;
-			gint32 notify_peers_count;
-			gint32 notify_peers_interval;
-			gint32 mcast_rejoin_count;
-			gint32 mcast_rejoin_interval;
-			gint32 runner_sys_prio;
-			gint32 runner_min_ports;
-			gint32 runner_tx_balancer_interval;
-			bool runner_active;
-			bool runner_fast_rate;
-		} master;
-		struct {
-			gint32 queue_id;
-			gint32 prio;
-			gint32 lacp_prio;
-			gint32 lacp_key;
-			bool sticky;
-		} port;
-	};
+    const char *_js_str;
+
+    const GPtrArray *link_watchers;
+
+    /* this means that @_js_str is unset and needs to be created by
+     * converting the properties to JSON. This flag indicates that
+     * we need to re-generate the JSON string on-demand (lazily). */
+    bool _js_str_need_synthetize;
+
+    bool strict_validated : 1;
+
+    /* indicates tha the JSON is invalid. Usually, we do a very relaxed validation of
+     * the JSON config, in case !@strict_validated and accept all unknown fields. This
+     * flag indicates that the JSON value is not even parsable as JSON. nm_connection_verify()
+     * would reject such a setting. */
+    bool js_str_invalid : 1;
+
+    bool is_port : 1;
+
+    guint32 has_fields_mask;
+
+    union {
+        struct {
+            const GPtrArray *runner_tx_hash;
+            const char *     runner;
+            const char *     runner_hwaddr_policy;
+            const char *     runner_tx_balancer;
+            const char *     runner_agg_select_policy;
+            gint32           notify_peers_count;
+            gint32           notify_peers_interval;
+            gint32           mcast_rejoin_count;
+            gint32           mcast_rejoin_interval;
+            gint32           runner_sys_prio;
+            gint32           runner_min_ports;
+            gint32           runner_tx_balancer_interval;
+            bool             runner_active;
+            bool             runner_fast_rate;
+        } master;
+        struct {
+            gint32 queue_id;
+            gint32 prio;
+            gint32 lacp_prio;
+            gint32 lacp_key;
+            bool   sticky;
+        } port;
+    };
 };
 
 /*****************************************************************************/
 
 typedef struct {
-	union {
-		const struct _NMTeamSettingData d;
+    union {
+        const struct _NMTeamSettingData d;
 
-		struct _NMTeamSettingData _data_priv;
-	};
+        struct _NMTeamSettingData _data_priv;
+    };
 } NMTeamSetting;
 
-NMTeamSetting *nm_team_setting_new (gboolean is_port,
-                                    const char *js_str);
+NMTeamSetting *nm_team_setting_new(gboolean is_port, const char *js_str);
 
-void nm_team_setting_free (NMTeamSetting *self);
+void nm_team_setting_free(NMTeamSetting *self);
 
-NM_AUTO_DEFINE_FCN0 (NMTeamSetting *, _nm_auto_free_team_setting, nm_team_setting_free)
-#define nm_auto_free_team_setting nm_auto (_nm_auto_free_team_setting)
+NM_AUTO_DEFINE_FCN0(NMTeamSetting *, _nm_auto_free_team_setting, nm_team_setting_free);
+#define nm_auto_free_team_setting nm_auto(_nm_auto_free_team_setting)
 
 /*****************************************************************************/
 
-const char *nm_team_setting_config_get (const NMTeamSetting *self);
+const char *nm_team_setting_config_get(const NMTeamSetting *self);
 
-guint32 nm_team_setting_config_set (NMTeamSetting *self, const char *js_str);
+guint32 nm_team_setting_config_set(NMTeamSetting *self, const char *js_str);
 
 /*****************************************************************************/
 
-gconstpointer _nm_team_setting_value_get (const NMTeamSetting *self,
-                                          NMTeamAttribute team_attr,
-                                          NMValueType value_type);
+gconstpointer _nm_team_setting_value_get(const NMTeamSetting *self,
+                                         NMTeamAttribute      team_attr,
+                                         NMValueType          value_type);
 
 static inline gboolean
-nm_team_setting_value_get_bool (const NMTeamSetting *self,
-                                NMTeamAttribute team_attr)
+nm_team_setting_value_get_bool(const NMTeamSetting *self, NMTeamAttribute team_attr)
 {
-	const bool *p;
+    const bool *p;
 
-	p = _nm_team_setting_value_get (self, team_attr, NM_VALUE_TYPE_BOOL);
-	return p ? *p : 0;
+    p = _nm_team_setting_value_get(self, team_attr, NM_VALUE_TYPE_BOOL);
+    return p ? *p : 0;
 }
 
 static inline gint32
-nm_team_setting_value_get_int32 (const NMTeamSetting *self,
-                                 NMTeamAttribute team_attr)
+nm_team_setting_value_get_int32(const NMTeamSetting *self, NMTeamAttribute team_attr)
 {
-	const gint32 *p;
+    const gint32 *p;
 
-	p = _nm_team_setting_value_get (self, team_attr, NM_VALUE_TYPE_INT32);
-	return p ? *p : 0;
+    p = _nm_team_setting_value_get(self, team_attr, NM_VALUE_TYPE_INT32);
+    return p ? *p : 0;
 }
 
 static inline const char *
-nm_team_setting_value_get_string (const NMTeamSetting *self,
-                                  NMTeamAttribute team_attr)
+nm_team_setting_value_get_string(const NMTeamSetting *self, NMTeamAttribute team_attr)
 {
-	const char *const*p;
+    const char *const *p;
 
-	p = _nm_team_setting_value_get (self, team_attr, NM_VALUE_TYPE_STRING);
-	return p ? *p : NULL;
+    p = _nm_team_setting_value_get(self, team_attr, NM_VALUE_TYPE_STRING);
+    return p ? *p : NULL;
 }
 
 /*****************************************************************************/
 
-guint32 nm_team_setting_value_reset (NMTeamSetting *self,
-                                     NMTeamAttribute team_attr,
-                                     gboolean to_default /* or else unset */);
-
-guint32 _nm_team_setting_value_set (NMTeamSetting *self,
+guint32 nm_team_setting_value_reset(NMTeamSetting * self,
                                     NMTeamAttribute team_attr,
-                                    NMValueType value_type,
-                                    gconstpointer val);
+                                    gboolean        to_default /* or else unset */);
+
+guint32 _nm_team_setting_value_set(NMTeamSetting * self,
+                                   NMTeamAttribute team_attr,
+                                   NMValueType     value_type,
+                                   gconstpointer   val);
 
 static inline guint32
-nm_team_setting_value_set_bool (NMTeamSetting *self,
-                                NMTeamAttribute team_attr,
-                                gboolean val)
+nm_team_setting_value_set_bool(NMTeamSetting *self, NMTeamAttribute team_attr, gboolean val)
 {
-	const bool bool_val = val;
+    const bool bool_val = val;
 
-	return _nm_team_setting_value_set (self, team_attr, NM_VALUE_TYPE_BOOL, &bool_val);
+    return _nm_team_setting_value_set(self, team_attr, NM_VALUE_TYPE_BOOL, &bool_val);
 }
 
 static inline guint32
-nm_team_setting_value_set_int32 (NMTeamSetting *self,
-                                 NMTeamAttribute team_attr,
-                                 gint32 val)
+nm_team_setting_value_set_int32(NMTeamSetting *self, NMTeamAttribute team_attr, gint32 val)
 {
-	return _nm_team_setting_value_set (self, team_attr, NM_VALUE_TYPE_INT32, &val);
+    return _nm_team_setting_value_set(self, team_attr, NM_VALUE_TYPE_INT32, &val);
 }
 
 static inline guint32
-nm_team_setting_value_set_string (NMTeamSetting *self,
-                                  NMTeamAttribute team_attr,
-                                  const char *arg)
+nm_team_setting_value_set_string(NMTeamSetting *self, NMTeamAttribute team_attr, const char *arg)
 {
-	return _nm_team_setting_value_set (self, team_attr, NM_VALUE_TYPE_STRING, &arg);
+    return _nm_team_setting_value_set(self, team_attr, NM_VALUE_TYPE_STRING, &arg);
 }
 
 /*****************************************************************************/
 
-guint32 nm_team_setting_value_link_watchers_add (NMTeamSetting *self,
-                                                 const struct NMTeamLinkWatcher *link_watcher);
+guint32 nm_team_setting_value_link_watchers_add(NMTeamSetting *                 self,
+                                                const struct NMTeamLinkWatcher *link_watcher);
 
-guint32 nm_team_setting_value_link_watchers_remove (NMTeamSetting *self,
-                                                    guint idx);
+guint32 nm_team_setting_value_link_watchers_remove(NMTeamSetting *self, guint idx);
 
-guint32 nm_team_setting_value_link_watchers_remove_by_value (NMTeamSetting *self,
-                                                             const struct NMTeamLinkWatcher *link_watcher);
+guint32
+nm_team_setting_value_link_watchers_remove_by_value(NMTeamSetting *                 self,
+                                                    const struct NMTeamLinkWatcher *link_watcher);
 
-guint32 nm_team_setting_value_link_watchers_set_list (NMTeamSetting *self,
-                                                      const struct NMTeamLinkWatcher *const*arr,
-                                                      guint len);
+guint32 nm_team_setting_value_link_watchers_set_list(NMTeamSetting *                        self,
+                                                     const struct NMTeamLinkWatcher *const *arr,
+                                                     guint                                  len);
 
 /*****************************************************************************/
 
-guint32 nm_team_setting_value_master_runner_tx_hash_add (NMTeamSetting *self,
-                                                         const char *txhash);
+guint32 nm_team_setting_value_master_runner_tx_hash_add(NMTeamSetting *self, const char *txhash);
 
-guint32 nm_team_setting_value_master_runner_tx_hash_remove (NMTeamSetting *self,
-                                                            guint idx);
+guint32 nm_team_setting_value_master_runner_tx_hash_remove(NMTeamSetting *self, guint idx);
 
-guint32 nm_team_setting_value_master_runner_tx_hash_set_list (NMTeamSetting *self,
-                                                              const char *const*arr,
-                                                              guint len);
+guint32 nm_team_setting_value_master_runner_tx_hash_set_list(NMTeamSetting *    self,
+                                                             const char *const *arr,
+                                                             guint              len);
 
 /*****************************************************************************/
 
-gboolean nm_team_setting_verify (const NMTeamSetting *self,
-                                 GError **error);
+gboolean nm_team_setting_verify(const NMTeamSetting *self, GError **error);
 
 /*****************************************************************************/
 
-int nm_team_setting_cmp (const NMTeamSetting *self_a,
-                         const NMTeamSetting *self_b,
-                         gboolean ignore_js_str);
+int nm_team_setting_cmp(const NMTeamSetting *self_a,
+                        const NMTeamSetting *self_b,
+                        gboolean             ignore_js_str);
 
-guint32 nm_team_setting_reset (NMTeamSetting *self,
-                               const NMTeamSetting *src);
+guint32 nm_team_setting_reset(NMTeamSetting *self, const NMTeamSetting *src);
 
-gboolean nm_team_setting_reset_from_dbus (NMTeamSetting *self,
-                                          GVariant *setting_dict,
-                                          GHashTable *keys,
-                                          guint32 *out_changed,
-                                          guint /* NMSettingParseFlags */ parse_flags,
-                                          GError **error);
+gboolean nm_team_setting_reset_from_dbus(NMTeamSetting *                 self,
+                                         GVariant *                      setting_dict,
+                                         GHashTable *                    keys,
+                                         guint32 *                       out_changed,
+                                         guint /* NMSettingParseFlags */ parse_flags,
+                                         GError **                       error);
 
 /*****************************************************************************/
 
-GPtrArray *_nm_utils_team_link_watchers_from_variant (GVariant *value,
-                                                      gboolean strict_parsing,
-                                                      GError **error);
-GVariant  *_nm_utils_team_link_watchers_to_variant (const GPtrArray *link_watchers);
+GPtrArray *
+_nm_utils_team_link_watchers_from_variant(GVariant *value, gboolean strict_parsing, GError **error);
+GVariant *_nm_utils_team_link_watchers_to_variant(const GPtrArray *link_watchers);
 
 /*****************************************************************************/
 
-gboolean nm_team_setting_maybe_changed (struct _NMSetting *source,
-                                        const GParamSpec *const*obj_properties,
-                                        guint32 changed);
+gboolean nm_team_setting_maybe_changed(struct _NMSetting *      source,
+                                       const GParamSpec *const *obj_properties,
+                                       guint32                  changed);
 
 struct _NMSettingTeam;
 struct _NMSettingTeamPort;
-NMTeamSetting *_nm_setting_team_get_team_setting (struct _NMSettingTeam *setting);
-NMTeamSetting *_nm_setting_team_port_get_team_setting (struct _NMSettingTeamPort *setting);
-NMTeamSetting *_nm_setting_get_team_setting (struct _NMSetting *setting);
+NMTeamSetting *_nm_setting_team_get_team_setting(struct _NMSettingTeam *setting);
+NMTeamSetting *_nm_setting_team_port_get_team_setting(struct _NMSettingTeamPort *setting);
+NMTeamSetting *_nm_setting_get_team_setting(struct _NMSetting *setting);
 
 /*****************************************************************************/