mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-02-03 13:40:39 +01:00
nm-setting-bridge: add 'multicast-startup-query-count' bridge option
https://bugzilla.redhat.com/show_bug.cgi?id=1755768
This commit is contained in:
parent
62facc59e8
commit
abe660f780
8 changed files with 69 additions and 0 deletions
|
|
@ -4981,6 +4981,10 @@ static const NMMetaPropertyInfo *const property_infos_BRIDGE[] = {
|
|||
.prompt = N_("Enable IGMP snooping [no]"),
|
||||
.property_type = &_pt_gobject_bool,
|
||||
),
|
||||
PROPERTY_INFO_WITH_DESC (NM_SETTING_BRIDGE_MULTICAST_STARTUP_QUERY_COUNT,
|
||||
.property_type = &_pt_gobject_int,
|
||||
.hide_if_default = TRUE,
|
||||
),
|
||||
PROPERTY_INFO_WITH_DESC (NM_SETTING_BRIDGE_MULTICAST_ROUTER,
|
||||
.property_type = &_pt_gobject_string,
|
||||
.hide_if_default = TRUE,
|
||||
|
|
|
|||
|
|
@ -130,6 +130,7 @@
|
|||
#define DESCRIBE_DOC_NM_SETTING_BRIDGE_MULTICAST_QUERY_USE_IFADDR N_("If enabled the bridge's own IP address is used as the source address for IGMP queries otherwise the default of 0.0.0.0 is used.")
|
||||
#define DESCRIBE_DOC_NM_SETTING_BRIDGE_MULTICAST_ROUTER N_("Sets bridge's multicast router. multicast-snooping must be enabled for this option to work. Supported values are: 'auto', 'disabled', 'enabled'. If not specified the default value is 'auto'.")
|
||||
#define DESCRIBE_DOC_NM_SETTING_BRIDGE_MULTICAST_SNOOPING N_("Controls whether IGMP snooping is enabled for this bridge. Note that if snooping was automatically disabled due to hash collisions, the system may refuse to enable the feature until the collisions are resolved.")
|
||||
#define DESCRIBE_DOC_NM_SETTING_BRIDGE_MULTICAST_STARTUP_QUERY_COUNT N_("Set the number of IGMP queries to send during startup phase.")
|
||||
#define DESCRIBE_DOC_NM_SETTING_BRIDGE_PRIORITY N_("Sets the Spanning Tree Protocol (STP) priority for this bridge. Lower values are \"better\"; the lowest priority bridge will be elected the root bridge.")
|
||||
#define DESCRIBE_DOC_NM_SETTING_BRIDGE_STP N_("Controls whether Spanning Tree Protocol (STP) is enabled for this bridge.")
|
||||
#define DESCRIBE_DOC_NM_SETTING_BRIDGE_VLAN_DEFAULT_PVID N_("The default PVID for the ports of the bridge, that is the VLAN id assigned to incoming untagged frames.")
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@
|
|||
#define BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL_DEFAULT 1000
|
||||
#define BRIDGE_MULTICAST_QUERY_USE_IFADDR_DEFAULT FALSE
|
||||
#define BRIDGE_MULTICAST_SNOOPING_DEFAULT TRUE
|
||||
#define BRIDGE_MULTICAST_STARTUP_QUERY_COUNT_DEFAULT 2
|
||||
#define BRIDGE_PRIORITY_DEFAULT 0x8000
|
||||
#define BRIDGE_STP_DEFAULT TRUE
|
||||
#define BRIDGE_VLAN_DEFAULT_PVID_DEFAULT 1
|
||||
|
|
@ -64,6 +65,7 @@ NM_GOBJECT_PROPERTIES_DEFINE (NMSettingBridge,
|
|||
PROP_MULTICAST_QUERY_RESPONSE_INTERVAL,
|
||||
PROP_MULTICAST_QUERY_USE_IFADDR,
|
||||
PROP_MULTICAST_SNOOPING,
|
||||
PROP_MULTICAST_STARTUP_QUERY_COUNT,
|
||||
PROP_VLAN_FILTERING,
|
||||
PROP_VLAN_DEFAULT_PVID,
|
||||
PROP_VLAN_PROTOCOL,
|
||||
|
|
@ -85,6 +87,7 @@ typedef struct {
|
|||
guint32 ageing_time;
|
||||
guint32 multicast_hash_max;
|
||||
guint32 multicast_last_member_count;
|
||||
guint32 multicast_startup_query_count;
|
||||
guint16 priority;
|
||||
guint16 forward_delay;
|
||||
guint16 hello_time;
|
||||
|
|
@ -1143,6 +1146,22 @@ nm_setting_bridge_get_multicast_query_response_interval (const NMSettingBridge *
|
|||
return NM_SETTING_BRIDGE_GET_PRIVATE (setting)->multicast_query_response_interval;
|
||||
}
|
||||
|
||||
/**
|
||||
* nm_setting_bridge_get_multicast_startup_query_count:
|
||||
* @setting: the #NMSettingBridge
|
||||
*
|
||||
* Returns: the #NMSettingBridge:multicast-query-response-interval property of the setting
|
||||
*
|
||||
* Since 1.26
|
||||
**/
|
||||
guint32
|
||||
nm_setting_bridge_get_multicast_startup_query_count (const NMSettingBridge *setting)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_SETTING_BRIDGE (setting), 0);
|
||||
|
||||
return NM_SETTING_BRIDGE_GET_PRIVATE (setting)->multicast_startup_query_count;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
static gboolean
|
||||
|
|
@ -1411,6 +1430,9 @@ get_property (GObject *object, guint prop_id,
|
|||
case PROP_MULTICAST_QUERY_USE_IFADDR:
|
||||
g_value_set_boolean (value, priv->multicast_query_use_ifaddr);
|
||||
break;
|
||||
case PROP_MULTICAST_STARTUP_QUERY_COUNT:
|
||||
g_value_set_uint (value, priv->multicast_startup_query_count);
|
||||
break;
|
||||
case PROP_VLAN_FILTERING:
|
||||
g_value_set_boolean (value, priv->vlan_filtering);
|
||||
break;
|
||||
|
|
@ -1506,6 +1528,9 @@ set_property (GObject *object, guint prop_id,
|
|||
case PROP_MULTICAST_QUERY_USE_IFADDR:
|
||||
priv->multicast_query_use_ifaddr = g_value_get_boolean (value);
|
||||
break;
|
||||
case PROP_MULTICAST_STARTUP_QUERY_COUNT:
|
||||
priv->multicast_startup_query_count = g_value_get_uint (value);
|
||||
break;
|
||||
case PROP_VLAN_FILTERING:
|
||||
priv->vlan_filtering = g_value_get_boolean (value);
|
||||
break;
|
||||
|
|
@ -1558,6 +1583,7 @@ nm_setting_bridge_init (NMSettingBridge *setting)
|
|||
priv->multicast_query_use_ifaddr = BRIDGE_MULTICAST_QUERY_USE_IFADDR_DEFAULT;
|
||||
priv->multicast_querier = BRIDGE_MULTICAST_QUERIER_DEFAULT;
|
||||
priv->multicast_querier_interval = BRIDGE_MULTICAST_QUERIER_INTERVAL_DEFAULT;
|
||||
priv->multicast_startup_query_count = BRIDGE_MULTICAST_STARTUP_QUERY_COUNT_DEFAULT;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -2190,6 +2216,27 @@ nm_setting_bridge_class_init (NMSettingBridgeClass *klass)
|
|||
NM_SETTING_PARAM_INFERRABLE |
|
||||
G_PARAM_STATIC_STRINGS);
|
||||
|
||||
/**
|
||||
* NMSettingBridge:multicast-startup-query-count:
|
||||
*
|
||||
* Set the number of IGMP queries to send during startup phase.
|
||||
**/
|
||||
/* ---ifcfg-rh---
|
||||
* property: multicast-startup-query-count
|
||||
* variable: BRIDGING_OPTS: multicast_startup_query_count=
|
||||
* default: 2
|
||||
* example: BRIDGING_OPTS="multicast_startup_query_count=4"
|
||||
* ---end---
|
||||
*
|
||||
* Since: 1.26
|
||||
*/
|
||||
obj_properties[PROP_MULTICAST_STARTUP_QUERY_COUNT] =
|
||||
g_param_spec_uint (NM_SETTING_BRIDGE_MULTICAST_STARTUP_QUERY_COUNT, "", "",
|
||||
0, G_MAXUINT32, BRIDGE_MULTICAST_STARTUP_QUERY_COUNT_DEFAULT,
|
||||
G_PARAM_READWRITE |
|
||||
NM_SETTING_PARAM_INFERRABLE |
|
||||
G_PARAM_STATIC_STRINGS);
|
||||
|
||||
g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
|
||||
|
||||
_nm_setting_class_commit_full (setting_class, NM_META_SETTING_TYPE_BRIDGE,
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ G_BEGIN_DECLS
|
|||
#define NM_SETTING_BRIDGE_MULTICAST_QUERY_INTERVAL "multicast-query-interval"
|
||||
#define NM_SETTING_BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL "multicast-query-response-interval"
|
||||
#define NM_SETTING_BRIDGE_MULTICAST_QUERY_USE_IFADDR "multicast-query-use-ifaddr"
|
||||
#define NM_SETTING_BRIDGE_MULTICAST_STARTUP_QUERY_COUNT "multicast-startup-query-count"
|
||||
#define NM_SETTING_BRIDGE_VLAN_FILTERING "vlan-filtering"
|
||||
#define NM_SETTING_BRIDGE_VLAN_DEFAULT_PVID "vlan-default-pvid"
|
||||
#define NM_SETTING_BRIDGE_VLANS "vlans"
|
||||
|
|
@ -168,6 +169,9 @@ guint64 nm_setting_bridge_get_multicast_query_interval (const NMSettingBridge *s
|
|||
NM_AVAILABLE_IN_1_26
|
||||
guint64 nm_setting_bridge_get_multicast_query_response_interval (const NMSettingBridge *setting);
|
||||
|
||||
NM_AVAILABLE_IN_1_26
|
||||
guint32 nm_setting_bridge_get_multicast_startup_query_count (const NMSettingBridge *setting);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __NM_SETTING_BRIDGE_H__ */
|
||||
|
|
|
|||
|
|
@ -1705,5 +1705,6 @@ global:
|
|||
nm_setting_bridge_get_multicast_querier_interval;
|
||||
nm_setting_bridge_get_multicast_query_interval;
|
||||
nm_setting_bridge_get_multicast_query_response_interval;
|
||||
nm_setting_bridge_get_multicast_startup_query_count;
|
||||
nm_setting_connection_get_mud_url;
|
||||
} libnm_1_24_0;
|
||||
|
|
|
|||
|
|
@ -318,6 +318,10 @@ static const Option master_options[] = {
|
|||
to_sysfs_multicast_router, from_sysfs_multicast_router,
|
||||
0, 0, 0,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_MULTICAST_STARTUP_QUERY_COUNT, "multicast_startup_query_count",
|
||||
NULL, NULL,
|
||||
0, G_MAXUINT32, 2,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_GROUP_ADDRESS, "group_addr",
|
||||
to_sysfs_group_address, from_sysfs_group_address,
|
||||
0, 0, 0,
|
||||
|
|
|
|||
|
|
@ -5173,6 +5173,7 @@ handle_bridge_option (NMSetting *setting,
|
|||
{ "multicast_query_use_ifaddr", NM_SETTING_BRIDGE_MULTICAST_QUERY_USE_IFADDR, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "multicast_snooping", NM_SETTING_BRIDGE_MULTICAST_SNOOPING, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "multicast_router", NM_SETTING_BRIDGE_MULTICAST_ROUTER, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "multicast_startup_query_count", NM_SETTING_BRIDGE_MULTICAST_STARTUP_QUERY_COUNT, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "vlan_filtering", NM_SETTING_BRIDGE_VLAN_FILTERING, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "default_pvid", NM_SETTING_BRIDGE_VLAN_DEFAULT_PVID, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "group_address", NM_SETTING_BRIDGE_GROUP_ADDRESS, BRIDGE_OPT_TYPE_OPTION },
|
||||
|
|
|
|||
|
|
@ -1590,6 +1590,13 @@ write_bridge_setting (NMConnection *connection, shvarFile *ifcfg, gboolean *wire
|
|||
g_string_append_printf (opts, "multicast_snooping=%u", (guint32) b);
|
||||
}
|
||||
|
||||
i = nm_setting_bridge_get_multicast_startup_query_count (s_bridge);
|
||||
if (i != get_setting_default_uint (NM_SETTING (s_bridge), NM_SETTING_BRIDGE_MULTICAST_STARTUP_QUERY_COUNT)) {
|
||||
if (opts->len)
|
||||
g_string_append_c (opts, ' ');
|
||||
g_string_append_printf (opts, "multicast_startup_query_count=%u", i);
|
||||
}
|
||||
|
||||
s = nm_setting_bridge_get_multicast_router (s_bridge);
|
||||
if (s) {
|
||||
if (opts->len)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue