mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-02-03 13:40:39 +01:00
nm-setting-bridge: add 'multicast-query-response-interval' bridge option
https://bugzilla.redhat.com/show_bug.cgi?id=1755768
This commit is contained in:
parent
9842c55503
commit
62facc59e8
8 changed files with 215 additions and 145 deletions
|
|
@ -4967,6 +4967,10 @@ static const NMMetaPropertyInfo *const property_infos_BRIDGE[] = {
|
|||
.property_type = &_pt_gobject_int,
|
||||
.hide_if_default = TRUE,
|
||||
),
|
||||
PROPERTY_INFO_WITH_DESC (NM_SETTING_BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL,
|
||||
.property_type = &_pt_gobject_int,
|
||||
.hide_if_default = TRUE,
|
||||
),
|
||||
PROPERTY_INFO_WITH_DESC (NM_SETTING_BRIDGE_MULTICAST_QUERY_USE_IFADDR,
|
||||
.property_type = &_pt_gobject_bool,
|
||||
.hide_if_default = TRUE,
|
||||
|
|
|
|||
|
|
@ -126,6 +126,7 @@
|
|||
#define DESCRIBE_DOC_NM_SETTING_BRIDGE_MULTICAST_QUERIER N_("Enable or disable sending of multicast queries by the bridge. If not specified the option is disabled.")
|
||||
#define DESCRIBE_DOC_NM_SETTING_BRIDGE_MULTICAST_QUERIER_INTERVAL N_("If no queries are seen after this delay (in deciseconds) has passed, the bridge will start to send its own queries.")
|
||||
#define DESCRIBE_DOC_NM_SETTING_BRIDGE_MULTICAST_QUERY_INTERVAL N_("Interval (in deciseconds) between queries sent by the bridge after the end of the startup phase.")
|
||||
#define DESCRIBE_DOC_NM_SETTING_BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL N_("Set the Max Response Time/Max Response Delay (in deciseconds) for IGMP/MLD queries sent by the bridge.")
|
||||
#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.")
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
#define BRIDGE_MULTICAST_HASH_MAX_DEFAULT 4096
|
||||
#define BRIDGE_MULTICAST_QUERIER_DEFAULT FALSE
|
||||
#define BRIDGE_MULTICAST_QUERY_INTERVAL_DEFAULT 12500
|
||||
#define BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL_DEFAULT 1000
|
||||
#define BRIDGE_MULTICAST_QUERY_USE_IFADDR_DEFAULT FALSE
|
||||
#define BRIDGE_MULTICAST_SNOOPING_DEFAULT TRUE
|
||||
#define BRIDGE_PRIORITY_DEFAULT 0x8000
|
||||
|
|
@ -60,6 +61,7 @@ NM_GOBJECT_PROPERTIES_DEFINE (NMSettingBridge,
|
|||
PROP_MULTICAST_QUERIER,
|
||||
PROP_MULTICAST_QUERIER_INTERVAL,
|
||||
PROP_MULTICAST_QUERY_INTERVAL,
|
||||
PROP_MULTICAST_QUERY_RESPONSE_INTERVAL,
|
||||
PROP_MULTICAST_QUERY_USE_IFADDR,
|
||||
PROP_MULTICAST_SNOOPING,
|
||||
PROP_VLAN_FILTERING,
|
||||
|
|
@ -79,6 +81,7 @@ typedef struct {
|
|||
guint64 multicast_membership_interval;
|
||||
guint64 multicast_querier_interval;
|
||||
guint64 multicast_query_interval;
|
||||
guint64 multicast_query_response_interval;
|
||||
guint32 ageing_time;
|
||||
guint32 multicast_hash_max;
|
||||
guint32 multicast_last_member_count;
|
||||
|
|
@ -1124,6 +1127,22 @@ nm_setting_bridge_get_multicast_query_interval (const NMSettingBridge *setting)
|
|||
return NM_SETTING_BRIDGE_GET_PRIVATE (setting)->multicast_query_interval;
|
||||
}
|
||||
|
||||
/**
|
||||
* nm_setting_bridge_get_multicast_query_response_interval:
|
||||
* @setting: the #NMSettingBridge
|
||||
*
|
||||
* Returns: the #NMSettingBridge:multicast-query-response-interval property of the setting
|
||||
*
|
||||
* Since 1.26
|
||||
**/
|
||||
guint64
|
||||
nm_setting_bridge_get_multicast_query_response_interval (const NMSettingBridge *setting)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_SETTING_BRIDGE (setting), 0);
|
||||
|
||||
return NM_SETTING_BRIDGE_GET_PRIVATE (setting)->multicast_query_response_interval;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
static gboolean
|
||||
|
|
@ -1386,6 +1405,9 @@ get_property (GObject *object, guint prop_id,
|
|||
case PROP_MULTICAST_QUERY_INTERVAL:
|
||||
g_value_set_uint64 (value, priv->multicast_query_interval);
|
||||
break;
|
||||
case PROP_MULTICAST_QUERY_RESPONSE_INTERVAL:
|
||||
g_value_set_uint64 (value, priv->multicast_query_response_interval);
|
||||
break;
|
||||
case PROP_MULTICAST_QUERY_USE_IFADDR:
|
||||
g_value_set_boolean (value, priv->multicast_query_use_ifaddr);
|
||||
break;
|
||||
|
|
@ -1478,6 +1500,9 @@ set_property (GObject *object, guint prop_id,
|
|||
case PROP_MULTICAST_QUERY_INTERVAL:
|
||||
priv->multicast_query_interval = g_value_get_uint64 (value);
|
||||
break;
|
||||
case PROP_MULTICAST_QUERY_RESPONSE_INTERVAL:
|
||||
priv->multicast_query_response_interval = g_value_get_uint64 (value);
|
||||
break;
|
||||
case PROP_MULTICAST_QUERY_USE_IFADDR:
|
||||
priv->multicast_query_use_ifaddr = g_value_get_boolean (value);
|
||||
break;
|
||||
|
|
@ -1515,23 +1540,24 @@ nm_setting_bridge_init (NMSettingBridge *setting)
|
|||
|
||||
priv->vlans = g_ptr_array_new_with_free_func ((GDestroyNotify) nm_bridge_vlan_unref);
|
||||
|
||||
priv->ageing_time = BRIDGE_AGEING_TIME_DEFAULT;
|
||||
priv->forward_delay = BRIDGE_FORWARD_DELAY_DEFAULT;
|
||||
priv->hello_time = BRIDGE_HELLO_TIME_DEFAULT;
|
||||
priv->max_age = BRIDGE_MAX_AGE_DEFAULT;
|
||||
priv->multicast_last_member_count = BRIDGE_MULTICAST_LAST_MEMBER_COUNT_DEFAULT;
|
||||
priv->multicast_last_member_interval = BRIDGE_MULTICAST_LAST_MEMBER_INTERVAL_DEFAULT;
|
||||
priv->multicast_membership_interval = BRIDGE_MULTICAST_MEMBERSHIP_INTERVAL_DEFAULT;
|
||||
priv->multicast_hash_max = BRIDGE_MULTICAST_HASH_MAX_DEFAULT;
|
||||
priv->multicast_snooping = BRIDGE_MULTICAST_SNOOPING_DEFAULT;
|
||||
priv->priority = BRIDGE_PRIORITY_DEFAULT;
|
||||
priv->stp = BRIDGE_STP_DEFAULT;
|
||||
priv->vlan_default_pvid = BRIDGE_VLAN_DEFAULT_PVID_DEFAULT;
|
||||
priv->vlan_stats_enabled = BRIDGE_VLAN_STATS_ENABLED_DEFAULT;
|
||||
priv->multicast_query_interval = BRIDGE_MULTICAST_QUERY_INTERVAL_DEFAULT;
|
||||
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->ageing_time = BRIDGE_AGEING_TIME_DEFAULT;
|
||||
priv->forward_delay = BRIDGE_FORWARD_DELAY_DEFAULT;
|
||||
priv->hello_time = BRIDGE_HELLO_TIME_DEFAULT;
|
||||
priv->max_age = BRIDGE_MAX_AGE_DEFAULT;
|
||||
priv->multicast_last_member_count = BRIDGE_MULTICAST_LAST_MEMBER_COUNT_DEFAULT;
|
||||
priv->multicast_last_member_interval = BRIDGE_MULTICAST_LAST_MEMBER_INTERVAL_DEFAULT;
|
||||
priv->multicast_membership_interval = BRIDGE_MULTICAST_MEMBERSHIP_INTERVAL_DEFAULT;
|
||||
priv->multicast_hash_max = BRIDGE_MULTICAST_HASH_MAX_DEFAULT;
|
||||
priv->multicast_snooping = BRIDGE_MULTICAST_SNOOPING_DEFAULT;
|
||||
priv->priority = BRIDGE_PRIORITY_DEFAULT;
|
||||
priv->stp = BRIDGE_STP_DEFAULT;
|
||||
priv->vlan_default_pvid = BRIDGE_VLAN_DEFAULT_PVID_DEFAULT;
|
||||
priv->vlan_stats_enabled = BRIDGE_VLAN_STATS_ENABLED_DEFAULT;
|
||||
priv->multicast_query_interval = BRIDGE_MULTICAST_QUERY_INTERVAL_DEFAULT;
|
||||
priv->multicast_query_response_interval = BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL_DEFAULT;
|
||||
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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -2142,6 +2168,28 @@ nm_setting_bridge_class_init (NMSettingBridgeClass *klass)
|
|||
NM_SETTING_PARAM_INFERRABLE |
|
||||
G_PARAM_STATIC_STRINGS);
|
||||
|
||||
/**
|
||||
* NMSettingBridge:multicast-query-response-interval:
|
||||
*
|
||||
* Set the Max Response Time/Max Response Delay
|
||||
* (in deciseconds) for IGMP/MLD queries sent by the bridge.
|
||||
**/
|
||||
/* ---ifcfg-rh---
|
||||
* property: multicast-query-response-interval
|
||||
* variable: BRIDGING_OPTS: multicast_query_response_interval=
|
||||
* default: 1000
|
||||
* example: BRIDGING_OPTS="multicast_query_response_interval=2000"
|
||||
* ---end---
|
||||
*
|
||||
* Since: 1.26
|
||||
*/
|
||||
obj_properties[PROP_MULTICAST_QUERY_RESPONSE_INTERVAL] =
|
||||
g_param_spec_uint64 (NM_SETTING_BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL, "", "",
|
||||
0, G_MAXUINT64, BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL_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,
|
||||
|
|
|
|||
|
|
@ -23,30 +23,31 @@ G_BEGIN_DECLS
|
|||
|
||||
#define NM_SETTING_BRIDGE_SETTING_NAME "bridge"
|
||||
|
||||
#define NM_SETTING_BRIDGE_MAC_ADDRESS "mac-address"
|
||||
#define NM_SETTING_BRIDGE_STP "stp"
|
||||
#define NM_SETTING_BRIDGE_PRIORITY "priority"
|
||||
#define NM_SETTING_BRIDGE_FORWARD_DELAY "forward-delay"
|
||||
#define NM_SETTING_BRIDGE_HELLO_TIME "hello-time"
|
||||
#define NM_SETTING_BRIDGE_MAX_AGE "max-age"
|
||||
#define NM_SETTING_BRIDGE_AGEING_TIME "ageing-time"
|
||||
#define NM_SETTING_BRIDGE_GROUP_FORWARD_MASK "group-forward-mask"
|
||||
#define NM_SETTING_BRIDGE_MULTICAST_HASH_MAX "multicast-hash-max"
|
||||
#define NM_SETTING_BRIDGE_MULTICAST_LAST_MEMBER_COUNT "multicast-last-member-count"
|
||||
#define NM_SETTING_BRIDGE_MULTICAST_LAST_MEMBER_INTERVAL "multicast-last-member-interval"
|
||||
#define NM_SETTING_BRIDGE_MULTICAST_MEMBERSHIP_INTERVAL "multicast-membership-interval"
|
||||
#define NM_SETTING_BRIDGE_MULTICAST_SNOOPING "multicast-snooping"
|
||||
#define NM_SETTING_BRIDGE_MULTICAST_ROUTER "multicast-router"
|
||||
#define NM_SETTING_BRIDGE_MULTICAST_QUERIER "multicast-querier"
|
||||
#define NM_SETTING_BRIDGE_MULTICAST_QUERIER_INTERVAL "multicast-querier-interval"
|
||||
#define NM_SETTING_BRIDGE_MULTICAST_QUERY_INTERVAL "multicast-query-interval"
|
||||
#define NM_SETTING_BRIDGE_MULTICAST_QUERY_USE_IFADDR "multicast-query-use-ifaddr"
|
||||
#define NM_SETTING_BRIDGE_VLAN_FILTERING "vlan-filtering"
|
||||
#define NM_SETTING_BRIDGE_VLAN_DEFAULT_PVID "vlan-default-pvid"
|
||||
#define NM_SETTING_BRIDGE_VLANS "vlans"
|
||||
#define NM_SETTING_BRIDGE_GROUP_ADDRESS "group-address"
|
||||
#define NM_SETTING_BRIDGE_VLAN_PROTOCOL "vlan-protocol"
|
||||
#define NM_SETTING_BRIDGE_VLAN_STATS_ENABLED "vlan-stats-enabled"
|
||||
#define NM_SETTING_BRIDGE_MAC_ADDRESS "mac-address"
|
||||
#define NM_SETTING_BRIDGE_STP "stp"
|
||||
#define NM_SETTING_BRIDGE_PRIORITY "priority"
|
||||
#define NM_SETTING_BRIDGE_FORWARD_DELAY "forward-delay"
|
||||
#define NM_SETTING_BRIDGE_HELLO_TIME "hello-time"
|
||||
#define NM_SETTING_BRIDGE_MAX_AGE "max-age"
|
||||
#define NM_SETTING_BRIDGE_AGEING_TIME "ageing-time"
|
||||
#define NM_SETTING_BRIDGE_GROUP_FORWARD_MASK "group-forward-mask"
|
||||
#define NM_SETTING_BRIDGE_MULTICAST_HASH_MAX "multicast-hash-max"
|
||||
#define NM_SETTING_BRIDGE_MULTICAST_LAST_MEMBER_COUNT "multicast-last-member-count"
|
||||
#define NM_SETTING_BRIDGE_MULTICAST_LAST_MEMBER_INTERVAL "multicast-last-member-interval"
|
||||
#define NM_SETTING_BRIDGE_MULTICAST_MEMBERSHIP_INTERVAL "multicast-membership-interval"
|
||||
#define NM_SETTING_BRIDGE_MULTICAST_SNOOPING "multicast-snooping"
|
||||
#define NM_SETTING_BRIDGE_MULTICAST_ROUTER "multicast-router"
|
||||
#define NM_SETTING_BRIDGE_MULTICAST_QUERIER "multicast-querier"
|
||||
#define NM_SETTING_BRIDGE_MULTICAST_QUERIER_INTERVAL "multicast-querier-interval"
|
||||
#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_VLAN_FILTERING "vlan-filtering"
|
||||
#define NM_SETTING_BRIDGE_VLAN_DEFAULT_PVID "vlan-default-pvid"
|
||||
#define NM_SETTING_BRIDGE_VLANS "vlans"
|
||||
#define NM_SETTING_BRIDGE_GROUP_ADDRESS "group-address"
|
||||
#define NM_SETTING_BRIDGE_VLAN_PROTOCOL "vlan-protocol"
|
||||
#define NM_SETTING_BRIDGE_VLAN_STATS_ENABLED "vlan-stats-enabled"
|
||||
|
||||
#define NM_BRIDGE_VLAN_VID_MIN 1
|
||||
#define NM_BRIDGE_VLAN_VID_MAX 4094
|
||||
|
|
@ -164,6 +165,9 @@ guint64 nm_setting_bridge_get_multicast_querier_interval (const NMSettingBridge
|
|||
NM_AVAILABLE_IN_1_26
|
||||
guint64 nm_setting_bridge_get_multicast_query_interval (const NMSettingBridge *setting);
|
||||
|
||||
NM_AVAILABLE_IN_1_26
|
||||
guint64 nm_setting_bridge_get_multicast_query_response_interval (const NMSettingBridge *setting);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __NM_SETTING_BRIDGE_H__ */
|
||||
|
|
|
|||
|
|
@ -1704,5 +1704,6 @@ global:
|
|||
nm_setting_bridge_get_multicast_membership_interval;
|
||||
nm_setting_bridge_get_multicast_querier_interval;
|
||||
nm_setting_bridge_get_multicast_query_interval;
|
||||
nm_setting_bridge_get_multicast_query_response_interval;
|
||||
nm_setting_connection_get_mud_url;
|
||||
} libnm_1_24_0;
|
||||
|
|
|
|||
|
|
@ -246,86 +246,90 @@ typedef struct {
|
|||
} Option;
|
||||
|
||||
static const Option master_options[] = {
|
||||
{ NM_SETTING_BRIDGE_STP, "stp_state", /* this must stay as the first item */
|
||||
NULL, NULL,
|
||||
0, 1, 1,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_PRIORITY, "priority",
|
||||
NULL, NULL,
|
||||
0, G_MAXUINT16, 0x8000,
|
||||
TRUE, FALSE, TRUE },
|
||||
{ NM_SETTING_BRIDGE_FORWARD_DELAY, "forward_delay",
|
||||
NULL, NULL,
|
||||
0, NM_BR_MAX_FORWARD_DELAY, 15,
|
||||
TRUE, TRUE, TRUE},
|
||||
{ NM_SETTING_BRIDGE_HELLO_TIME, "hello_time",
|
||||
NULL, NULL,
|
||||
0, NM_BR_MAX_HELLO_TIME, 2,
|
||||
TRUE, TRUE, TRUE },
|
||||
{ NM_SETTING_BRIDGE_MAX_AGE, "max_age",
|
||||
NULL, NULL,
|
||||
0, NM_BR_MAX_MAX_AGE, 20,
|
||||
TRUE, TRUE, TRUE },
|
||||
{ NM_SETTING_BRIDGE_AGEING_TIME, "ageing_time",
|
||||
NULL, NULL,
|
||||
NM_BR_MIN_AGEING_TIME, NM_BR_MAX_AGEING_TIME, 300,
|
||||
TRUE, TRUE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_GROUP_FORWARD_MASK, "group_fwd_mask",
|
||||
NULL, NULL,
|
||||
0, 0xFFFF, 0,
|
||||
TRUE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_MULTICAST_HASH_MAX, "hash_max",
|
||||
NULL, NULL,
|
||||
NM_BR_MIN_MULTICAST_HASH_MAX, NM_BR_MAX_MULTICAST_HASH_MAX, 4096,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_MULTICAST_LAST_MEMBER_COUNT, "multicast_last_member_count",
|
||||
NULL, NULL,
|
||||
0, G_MAXUINT32, 2,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_MULTICAST_LAST_MEMBER_INTERVAL, "multicast_last_member_interval",
|
||||
NULL, NULL,
|
||||
0, G_MAXUINT64, 100,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_MULTICAST_MEMBERSHIP_INTERVAL, "multicast_membership_interval",
|
||||
NULL, NULL,
|
||||
0, G_MAXUINT64, 26000,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_MULTICAST_QUERIER, "multicast_querier",
|
||||
NULL, NULL,
|
||||
0, 1, 0,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_MULTICAST_QUERIER_INTERVAL, "multicast_querier_interval",
|
||||
NULL, NULL,
|
||||
0, G_MAXUINT64, 25500,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_MULTICAST_QUERY_INTERVAL, "multicast_query_interval",
|
||||
NULL, NULL,
|
||||
0, G_MAXUINT64, 12500,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_MULTICAST_QUERY_USE_IFADDR, "multicast_query_use_ifaddr",
|
||||
NULL, NULL,
|
||||
0, 1, 0,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_MULTICAST_SNOOPING, "multicast_snooping",
|
||||
NULL, NULL,
|
||||
0, 1, 1,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_MULTICAST_ROUTER, "multicast_router",
|
||||
to_sysfs_multicast_router, from_sysfs_multicast_router,
|
||||
0, 0, 0,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_GROUP_ADDRESS, "group_addr",
|
||||
to_sysfs_group_address, from_sysfs_group_address,
|
||||
0, 0, 0,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_VLAN_PROTOCOL, "vlan_protocol",
|
||||
to_sysfs_vlan_protocol, from_sysfs_vlan_protocol,
|
||||
0, 0, 0,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_VLAN_STATS_ENABLED, "vlan_stats_enabled",
|
||||
NULL, NULL,
|
||||
0, 1, 0,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_STP, "stp_state", /* this must stay as the first item */
|
||||
NULL, NULL,
|
||||
0, 1, 1,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_PRIORITY, "priority",
|
||||
NULL, NULL,
|
||||
0, G_MAXUINT16, 0x8000,
|
||||
TRUE, FALSE, TRUE },
|
||||
{ NM_SETTING_BRIDGE_FORWARD_DELAY, "forward_delay",
|
||||
NULL, NULL,
|
||||
0, NM_BR_MAX_FORWARD_DELAY, 15,
|
||||
TRUE, TRUE, TRUE},
|
||||
{ NM_SETTING_BRIDGE_HELLO_TIME, "hello_time",
|
||||
NULL, NULL,
|
||||
0, NM_BR_MAX_HELLO_TIME, 2,
|
||||
TRUE, TRUE, TRUE },
|
||||
{ NM_SETTING_BRIDGE_MAX_AGE, "max_age",
|
||||
NULL, NULL,
|
||||
0, NM_BR_MAX_MAX_AGE, 20,
|
||||
TRUE, TRUE, TRUE },
|
||||
{ NM_SETTING_BRIDGE_AGEING_TIME, "ageing_time",
|
||||
NULL, NULL,
|
||||
NM_BR_MIN_AGEING_TIME, NM_BR_MAX_AGEING_TIME, 300,
|
||||
TRUE, TRUE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_GROUP_FORWARD_MASK, "group_fwd_mask",
|
||||
NULL, NULL,
|
||||
0, 0xFFFF, 0,
|
||||
TRUE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_MULTICAST_HASH_MAX, "hash_max",
|
||||
NULL, NULL,
|
||||
NM_BR_MIN_MULTICAST_HASH_MAX, NM_BR_MAX_MULTICAST_HASH_MAX, 4096,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_MULTICAST_LAST_MEMBER_COUNT, "multicast_last_member_count",
|
||||
NULL, NULL,
|
||||
0, G_MAXUINT32, 2,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_MULTICAST_LAST_MEMBER_INTERVAL, "multicast_last_member_interval",
|
||||
NULL, NULL,
|
||||
0, G_MAXUINT64, 100,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_MULTICAST_MEMBERSHIP_INTERVAL, "multicast_membership_interval",
|
||||
NULL, NULL,
|
||||
0, G_MAXUINT64, 26000,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_MULTICAST_QUERIER, "multicast_querier",
|
||||
NULL, NULL,
|
||||
0, 1, 0,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_MULTICAST_QUERIER_INTERVAL, "multicast_querier_interval",
|
||||
NULL, NULL,
|
||||
0, G_MAXUINT64, 25500,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_MULTICAST_QUERY_INTERVAL, "multicast_query_interval",
|
||||
NULL, NULL,
|
||||
0, G_MAXUINT64, 12500,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL, "multicast_query_response_interval",
|
||||
NULL, NULL,
|
||||
0, G_MAXUINT64, 1000,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_MULTICAST_QUERY_USE_IFADDR, "multicast_query_use_ifaddr",
|
||||
NULL, NULL,
|
||||
0, 1, 0,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_MULTICAST_SNOOPING, "multicast_snooping",
|
||||
NULL, NULL,
|
||||
0, 1, 1,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_MULTICAST_ROUTER, "multicast_router",
|
||||
to_sysfs_multicast_router, from_sysfs_multicast_router,
|
||||
0, 0, 0,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_GROUP_ADDRESS, "group_addr",
|
||||
to_sysfs_group_address, from_sysfs_group_address,
|
||||
0, 0, 0,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_VLAN_PROTOCOL, "vlan_protocol",
|
||||
to_sysfs_vlan_protocol, from_sysfs_vlan_protocol,
|
||||
0, 0, 0,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NM_SETTING_BRIDGE_VLAN_STATS_ENABLED, "vlan_stats_enabled",
|
||||
NULL, NULL,
|
||||
0, 1, 0,
|
||||
FALSE, FALSE, FALSE },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -5157,30 +5157,31 @@ handle_bridge_option (NMSetting *setting,
|
|||
gboolean only_with_stp;
|
||||
gboolean extended_bool;
|
||||
} m/*etadata*/[] = {
|
||||
{ "DELAY", NM_SETTING_BRIDGE_FORWARD_DELAY, BRIDGE_OPT_TYPE_MAIN, .only_with_stp = TRUE },
|
||||
{ "priority", NM_SETTING_BRIDGE_PRIORITY, BRIDGE_OPT_TYPE_OPTION, .only_with_stp = TRUE },
|
||||
{ "hello_time", NM_SETTING_BRIDGE_HELLO_TIME, BRIDGE_OPT_TYPE_OPTION, .only_with_stp = TRUE },
|
||||
{ "max_age", NM_SETTING_BRIDGE_MAX_AGE, BRIDGE_OPT_TYPE_OPTION, .only_with_stp = TRUE },
|
||||
{ "ageing_time", NM_SETTING_BRIDGE_AGEING_TIME, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "multicast_last_member_count", NM_SETTING_BRIDGE_MULTICAST_LAST_MEMBER_COUNT, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "multicast_last_member_interval", NM_SETTING_BRIDGE_MULTICAST_LAST_MEMBER_INTERVAL, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "multicast_membership_interval", NM_SETTING_BRIDGE_MULTICAST_MEMBERSHIP_INTERVAL, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "multicast_hash_max", NM_SETTING_BRIDGE_MULTICAST_HASH_MAX, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "multicast_querier", NM_SETTING_BRIDGE_MULTICAST_QUERIER, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "multicast_querier_interval", NM_SETTING_BRIDGE_MULTICAST_QUERIER_INTERVAL, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "multicast_query_interval", NM_SETTING_BRIDGE_MULTICAST_QUERY_INTERVAL, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "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 },
|
||||
{ "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 },
|
||||
{ "group_fwd_mask", NM_SETTING_BRIDGE_GROUP_FORWARD_MASK, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "vlan_protocol", NM_SETTING_BRIDGE_VLAN_PROTOCOL, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "vlan_stats_enabled", NM_SETTING_BRIDGE_VLAN_STATS_ENABLED, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "priority", NM_SETTING_BRIDGE_PORT_PRIORITY, BRIDGE_OPT_TYPE_PORT_OPTION },
|
||||
{ "path_cost", NM_SETTING_BRIDGE_PORT_PATH_COST, BRIDGE_OPT_TYPE_PORT_OPTION },
|
||||
{ "hairpin_mode", NM_SETTING_BRIDGE_PORT_HAIRPIN_MODE, BRIDGE_OPT_TYPE_PORT_OPTION, .extended_bool = TRUE, },
|
||||
{ "DELAY", NM_SETTING_BRIDGE_FORWARD_DELAY, BRIDGE_OPT_TYPE_MAIN, .only_with_stp = TRUE },
|
||||
{ "priority", NM_SETTING_BRIDGE_PRIORITY, BRIDGE_OPT_TYPE_OPTION, .only_with_stp = TRUE },
|
||||
{ "hello_time", NM_SETTING_BRIDGE_HELLO_TIME, BRIDGE_OPT_TYPE_OPTION, .only_with_stp = TRUE },
|
||||
{ "max_age", NM_SETTING_BRIDGE_MAX_AGE, BRIDGE_OPT_TYPE_OPTION, .only_with_stp = TRUE },
|
||||
{ "ageing_time", NM_SETTING_BRIDGE_AGEING_TIME, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "multicast_last_member_count", NM_SETTING_BRIDGE_MULTICAST_LAST_MEMBER_COUNT, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "multicast_last_member_interval", NM_SETTING_BRIDGE_MULTICAST_LAST_MEMBER_INTERVAL, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "multicast_membership_interval", NM_SETTING_BRIDGE_MULTICAST_MEMBERSHIP_INTERVAL, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "multicast_hash_max", NM_SETTING_BRIDGE_MULTICAST_HASH_MAX, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "multicast_querier", NM_SETTING_BRIDGE_MULTICAST_QUERIER, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "multicast_querier_interval", NM_SETTING_BRIDGE_MULTICAST_QUERIER_INTERVAL, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "multicast_query_interval", NM_SETTING_BRIDGE_MULTICAST_QUERY_INTERVAL, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "multicast_query_response_interval", NM_SETTING_BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "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 },
|
||||
{ "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 },
|
||||
{ "group_fwd_mask", NM_SETTING_BRIDGE_GROUP_FORWARD_MASK, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "vlan_protocol", NM_SETTING_BRIDGE_VLAN_PROTOCOL, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "vlan_stats_enabled", NM_SETTING_BRIDGE_VLAN_STATS_ENABLED, BRIDGE_OPT_TYPE_OPTION },
|
||||
{ "priority", NM_SETTING_BRIDGE_PORT_PRIORITY, BRIDGE_OPT_TYPE_PORT_OPTION },
|
||||
{ "path_cost", NM_SETTING_BRIDGE_PORT_PATH_COST, BRIDGE_OPT_TYPE_PORT_OPTION },
|
||||
{ "hairpin_mode", NM_SETTING_BRIDGE_PORT_HAIRPIN_MODE, BRIDGE_OPT_TYPE_PORT_OPTION, .extended_bool = TRUE, },
|
||||
};
|
||||
const char *error_message = NULL;
|
||||
int i;
|
||||
|
|
|
|||
|
|
@ -1569,6 +1569,13 @@ write_bridge_setting (NMConnection *connection, shvarFile *ifcfg, gboolean *wire
|
|||
g_string_append_printf (opts, "multicast_query_interval=%"G_GUINT64_FORMAT, u64);
|
||||
}
|
||||
|
||||
u64 = nm_setting_bridge_get_multicast_query_response_interval (s_bridge);
|
||||
if (u64 != get_setting_default_uint64 (NM_SETTING (s_bridge), NM_SETTING_BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL)) {
|
||||
if (opts->len)
|
||||
g_string_append_c (opts, ' ');
|
||||
g_string_append_printf (opts, "multicast_query_response_interval=%"G_GUINT64_FORMAT, u64);
|
||||
}
|
||||
|
||||
b = nm_setting_bridge_get_multicast_query_use_ifaddr (s_bridge);
|
||||
if (b != get_setting_default_boolean (NM_SETTING (s_bridge), NM_SETTING_BRIDGE_MULTICAST_QUERY_USE_IFADDR)) {
|
||||
if (opts->len)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue