diff options
| author | Michael Biebl <biebl@debian.org> | 2022-01-13 22:30:39 +0100 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2022-01-13 22:30:39 +0100 |
| commit | 88c227d90a6b7b388c5c85d72802a0ca8f05ed5c (patch) | |
| tree | 71f32df6617802270e8a78574bd8e1637dc532f4 /src/libnm-core-impl/nm-setting-bridge.c | |
| parent | e74c568b07b50b97873fb4ee1d776dedefbd54d6 (diff) | |
New upstream version 1.34.0 upstream/1.34.0
Diffstat (limited to 'src/libnm-core-impl/nm-setting-bridge.c')
| -rw-r--r-- | src/libnm-core-impl/nm-setting-bridge.c | 713 |
1 files changed, 272 insertions, 441 deletions
diff --git a/src/libnm-core-impl/nm-setting-bridge.c b/src/libnm-core-impl/nm-setting-bridge.c index e987310f..9045d619 100644 --- a/src/libnm-core-impl/nm-setting-bridge.c +++ b/src/libnm-core-impl/nm-setting-bridge.c @@ -71,18 +71,18 @@ typedef struct { guint32 multicast_hash_max; guint32 multicast_last_member_count; guint32 multicast_startup_query_count; - guint16 priority; - guint16 forward_delay; - guint16 hello_time; - guint16 max_age; - guint16 vlan_default_pvid; - guint16 group_forward_mask; - bool multicast_snooping : 1; - bool vlan_filtering : 1; - bool stp : 1; - bool vlan_stats_enabled : 1; - bool multicast_query_use_ifaddr : 1; - bool multicast_querier : 1; + guint32 priority; + guint32 forward_delay; + guint32 hello_time; + guint32 max_age; + guint32 group_forward_mask; + guint32 vlan_default_pvid; + bool stp; + bool multicast_snooping; + bool vlan_filtering; + bool vlan_stats_enabled; + bool multicast_query_use_ifaddr; + bool multicast_querier; } NMSettingBridgePrivate; /** @@ -1231,7 +1231,7 @@ verify(NMSetting *setting, NMConnection *connection, GError **error) error)) return FALSE; - if (priv->group_forward_mask & 7) { + if (priv->group_forward_mask & 7u) { g_set_error_literal(error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_INVALID_PROPERTY, @@ -1315,35 +1315,13 @@ verify(NMSetting *setting, NMConnection *connection, GError **error) } static NMTernary -compare_property(const NMSettInfoSetting *sett_info, - guint property_idx, - NMConnection * con_a, - NMSetting * set_a, - NMConnection * con_b, - NMSetting * set_b, - NMSettingCompareFlags flags) +compare_fcn_vlans(_NM_SETT_INFO_PROP_COMPARE_FCN_ARGS _nm_nil) { - NMSettingBridgePrivate *priv_a; - NMSettingBridgePrivate *priv_b; - guint i; - - if (nm_streq(sett_info->property_infos[property_idx].name, NM_SETTING_BRIDGE_VLANS)) { - if (set_b) { - priv_a = NM_SETTING_BRIDGE_GET_PRIVATE(set_a); - priv_b = NM_SETTING_BRIDGE_GET_PRIVATE(set_b); - - if (priv_a->vlans->len != priv_b->vlans->len) - return FALSE; - for (i = 0; i < priv_a->vlans->len; i++) { - if (nm_bridge_vlan_cmp(priv_a->vlans->pdata[i], priv_b->vlans->pdata[i])) - return FALSE; - } - } - return TRUE; + if (set_b) { + return _nm_utils_bridge_compare_vlans(NM_SETTING_BRIDGE_GET_PRIVATE(set_a)->vlans, + NM_SETTING_BRIDGE_GET_PRIVATE(set_b)->vlans); } - - return NM_SETTING_CLASS(nm_setting_bridge_parent_class) - ->compare_property(sett_info, property_idx, con_a, set_a, con_b, set_b, flags); + return TRUE; } /*****************************************************************************/ @@ -1351,88 +1329,9 @@ compare_property(const NMSettInfoSetting *sett_info, static void get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NMSettingBridgePrivate *priv = NM_SETTING_BRIDGE_GET_PRIVATE(object); - NMSettingBridge * setting = NM_SETTING_BRIDGE(object); + NMSettingBridgePrivate *priv = NM_SETTING_BRIDGE_GET_PRIVATE(object); switch (prop_id) { - case PROP_MAC_ADDRESS: - g_value_set_string(value, nm_setting_bridge_get_mac_address(setting)); - break; - case PROP_STP: - g_value_set_boolean(value, priv->stp); - break; - case PROP_PRIORITY: - g_value_set_uint(value, priv->priority); - break; - case PROP_FORWARD_DELAY: - g_value_set_uint(value, priv->forward_delay); - break; - case PROP_HELLO_TIME: - g_value_set_uint(value, priv->hello_time); - break; - case PROP_MAX_AGE: - g_value_set_uint(value, priv->max_age); - break; - case PROP_AGEING_TIME: - g_value_set_uint(value, priv->ageing_time); - break; - case PROP_GROUP_ADDRESS: - g_value_set_string(value, priv->group_address); - break; - case PROP_GROUP_FORWARD_MASK: - g_value_set_uint(value, priv->group_forward_mask); - break; - case PROP_MULTICAST_HASH_MAX: - g_value_set_uint(value, priv->multicast_hash_max); - break; - case PROP_MULTICAST_LAST_MEMBER_COUNT: - g_value_set_uint(value, priv->multicast_last_member_count); - break; - case PROP_MULTICAST_LAST_MEMBER_INTERVAL: - g_value_set_uint64(value, priv->multicast_last_member_interval); - break; - case PROP_MULTICAST_MEMBERSHIP_INTERVAL: - g_value_set_uint64(value, priv->multicast_membership_interval); - break; - case PROP_MULTICAST_SNOOPING: - g_value_set_boolean(value, priv->multicast_snooping); - break; - case PROP_MULTICAST_ROUTER: - g_value_set_string(value, priv->multicast_router); - break; - case PROP_MULTICAST_QUERIER: - g_value_set_boolean(value, priv->multicast_querier); - break; - case PROP_MULTICAST_QUERIER_INTERVAL: - g_value_set_uint64(value, priv->multicast_querier_interval); - break; - 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; - case PROP_MULTICAST_STARTUP_QUERY_COUNT: - g_value_set_uint(value, priv->multicast_startup_query_count); - break; - case PROP_MULTICAST_STARTUP_QUERY_INTERVAL: - g_value_set_uint64(value, priv->multicast_startup_query_interval); - break; - case PROP_VLAN_FILTERING: - g_value_set_boolean(value, priv->vlan_filtering); - break; - case PROP_VLAN_DEFAULT_PVID: - g_value_set_uint(value, priv->vlan_default_pvid); - break; - case PROP_VLAN_PROTOCOL: - g_value_set_string(value, priv->vlan_protocol); - break; - case PROP_VLAN_STATS_ENABLED: - g_value_set_boolean(value, priv->vlan_stats_enabled); - break; case PROP_VLANS: g_value_take_boxed(value, _nm_utils_copy_array(priv->vlans, @@ -1440,7 +1339,7 @@ get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) (GDestroyNotify) nm_bridge_vlan_unref)); break; default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + _nm_setting_property_get_property_direct(object, prop_id, value, pspec); break; } } @@ -1451,90 +1350,6 @@ set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *ps NMSettingBridgePrivate *priv = NM_SETTING_BRIDGE_GET_PRIVATE(object); switch (prop_id) { - case PROP_MAC_ADDRESS: - g_free(priv->mac_address); - priv->mac_address = - _nm_utils_hwaddr_canonical_or_invalid(g_value_get_string(value), ETH_ALEN); - break; - case PROP_STP: - priv->stp = g_value_get_boolean(value); - break; - case PROP_PRIORITY: - priv->priority = (guint16) g_value_get_uint(value); - break; - case PROP_FORWARD_DELAY: - priv->forward_delay = (guint16) g_value_get_uint(value); - break; - case PROP_HELLO_TIME: - priv->hello_time = (guint16) g_value_get_uint(value); - break; - case PROP_MAX_AGE: - priv->max_age = (guint16) g_value_get_uint(value); - break; - case PROP_AGEING_TIME: - priv->ageing_time = g_value_get_uint(value); - break; - case PROP_GROUP_ADDRESS: - g_free(priv->group_address); - priv->group_address = - _nm_utils_hwaddr_canonical_or_invalid(g_value_get_string(value), ETH_ALEN); - break; - case PROP_GROUP_FORWARD_MASK: - priv->group_forward_mask = (guint16) g_value_get_uint(value); - break; - case PROP_MULTICAST_HASH_MAX: - priv->multicast_hash_max = g_value_get_uint(value); - break; - case PROP_MULTICAST_LAST_MEMBER_COUNT: - priv->multicast_last_member_count = g_value_get_uint(value); - break; - case PROP_MULTICAST_LAST_MEMBER_INTERVAL: - priv->multicast_last_member_interval = g_value_get_uint64(value); - break; - case PROP_MULTICAST_MEMBERSHIP_INTERVAL: - priv->multicast_membership_interval = g_value_get_uint64(value); - break; - case PROP_MULTICAST_SNOOPING: - priv->multicast_snooping = g_value_get_boolean(value); - break; - case PROP_MULTICAST_ROUTER: - g_free(priv->multicast_router); - priv->multicast_router = g_value_dup_string(value); - break; - case PROP_MULTICAST_QUERIER: - priv->multicast_querier = g_value_get_boolean(value); - break; - case PROP_MULTICAST_QUERIER_INTERVAL: - priv->multicast_querier_interval = g_value_get_uint64(value); - break; - 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; - case PROP_MULTICAST_STARTUP_QUERY_COUNT: - priv->multicast_startup_query_count = g_value_get_uint(value); - break; - case PROP_MULTICAST_STARTUP_QUERY_INTERVAL: - priv->multicast_startup_query_interval = g_value_get_uint64(value); - break; - case PROP_VLAN_FILTERING: - priv->vlan_filtering = g_value_get_boolean(value); - break; - case PROP_VLAN_DEFAULT_PVID: - priv->vlan_default_pvid = g_value_get_uint(value); - break; - case PROP_VLAN_PROTOCOL: - g_free(priv->vlan_protocol); - priv->vlan_protocol = g_value_dup_string(value); - break; - case PROP_VLAN_STATS_ENABLED: - priv->vlan_stats_enabled = g_value_get_boolean(value); - break; case PROP_VLANS: g_ptr_array_unref(priv->vlans); priv->vlans = _nm_utils_copy_array(g_value_get_boxed(value), @@ -1542,7 +1357,7 @@ set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *ps (GDestroyNotify) nm_bridge_vlan_unref); break; default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + _nm_setting_property_set_property_direct(object, prop_id, value, pspec); break; } } @@ -1555,28 +1370,6 @@ nm_setting_bridge_init(NMSettingBridge *setting) NMSettingBridgePrivate *priv = NM_SETTING_BRIDGE_GET_PRIVATE(setting); priv->vlans = g_ptr_array_new_with_free_func((GDestroyNotify) nm_bridge_vlan_unref); - - priv->ageing_time = NM_BRIDGE_AGEING_TIME_DEF; - priv->forward_delay = NM_BRIDGE_FORWARD_DELAY_DEF; - priv->hello_time = NM_BRIDGE_HELLO_TIME_DEF; - priv->max_age = NM_BRIDGE_MAX_AGE_DEF; - priv->multicast_last_member_count = NM_BRIDGE_MULTICAST_LAST_MEMBER_COUNT_DEF; - priv->multicast_last_member_interval = NM_BRIDGE_MULTICAST_LAST_MEMBER_INTERVAL_DEF; - priv->multicast_membership_interval = NM_BRIDGE_MULTICAST_MEMBERSHIP_INTERVAL_DEF; - priv->multicast_hash_max = NM_BRIDGE_MULTICAST_HASH_MAX_DEF; - priv->multicast_snooping = NM_BRIDGE_MULTICAST_SNOOPING_DEF; - priv->priority = NM_BRIDGE_PRIORITY_DEF; - priv->stp = NM_BRIDGE_STP_DEF; - priv->vlan_default_pvid = NM_BRIDGE_VLAN_DEFAULT_PVID_DEF; - priv->multicast_query_interval = NM_BRIDGE_MULTICAST_QUERY_INTERVAL_DEF; - priv->multicast_query_response_interval = NM_BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL_DEF; - priv->multicast_querier_interval = NM_BRIDGE_MULTICAST_QUERIER_INTERVAL_DEF; - priv->multicast_startup_query_count = NM_BRIDGE_MULTICAST_STARTUP_QUERY_COUNT_DEF; - priv->multicast_startup_query_interval = NM_BRIDGE_MULTICAST_STARTUP_QUERY_INTERVAL_DEF; - - nm_assert(priv->multicast_querier == NM_BRIDGE_MULTICAST_QUERIER_DEF); - nm_assert(priv->multicast_query_use_ifaddr == NM_BRIDGE_MULTICAST_QUERY_USE_IFADDR_DEF); - nm_assert(priv->vlan_stats_enabled == NM_BRIDGE_VLAN_STATS_ENABLED_DEF); } /** @@ -1597,10 +1390,6 @@ finalize(GObject *object) { NMSettingBridgePrivate *priv = NM_SETTING_BRIDGE_GET_PRIVATE(object); - g_free(priv->mac_address); - g_free(priv->multicast_router); - g_free(priv->group_address); - g_free(priv->vlan_protocol); g_ptr_array_unref(priv->vlans); G_OBJECT_CLASS(nm_setting_bridge_parent_class)->finalize(object); @@ -1617,8 +1406,7 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) object_class->set_property = set_property; object_class->finalize = finalize; - setting_class->compare_property = compare_property; - setting_class->verify = verify; + setting_class->verify = verify; /** * NMSettingBridge:mac-address: @@ -1650,15 +1438,14 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * BRIDGE_MACADDR for bridges is an NM extension. * ---end--- */ - obj_properties[PROP_MAC_ADDRESS] = g_param_spec_string( - NM_SETTING_BRIDGE_MAC_ADDRESS, - "", - "", - NULL, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); - _nm_properties_override_gobj(properties_override, - obj_properties[PROP_MAC_ADDRESS], - &nm_sett_info_propert_type_mac_address); + _nm_setting_property_define_direct_mac_address(properties_override, + obj_properties, + NM_SETTING_BRIDGE_MAC_ADDRESS, + PROP_MAC_ADDRESS, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + mac_address, + .direct_set_string_mac_address_len = ETH_ALEN); /** * NMSettingBridge:stp: @@ -1672,13 +1459,14 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * description: Span tree protocol participation. * ---end--- */ - _nm_setting_property_define_boolean(properties_override, - obj_properties, - NM_SETTING_BRIDGE_STP, - PROP_STP, - NM_BRIDGE_STP_DEF, - NM_SETTING_PARAM_INFERRABLE, - nm_setting_bridge_get_stp); + _nm_setting_property_define_direct_boolean(properties_override, + obj_properties, + NM_SETTING_BRIDGE_STP, + PROP_STP, + NM_BRIDGE_STP_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + stp); /** * NMSettingBridge:priority: @@ -1695,14 +1483,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * description: STP priority. * ---end--- */ - obj_properties[PROP_PRIORITY] = - g_param_spec_uint(NM_SETTING_BRIDGE_PRIORITY, - "", - "", - NM_BRIDGE_PRIORITY_MIN, - NM_BRIDGE_PRIORITY_MAX, - NM_BRIDGE_PRIORITY_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_BRIDGE_PRIORITY, + PROP_PRIORITY, + NM_BRIDGE_PRIORITY_MIN, + NM_BRIDGE_PRIORITY_MAX, + NM_BRIDGE_PRIORITY_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + priority); /** * NMSettingBridge:forward-delay: @@ -1717,14 +1507,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * description: STP forwarding delay. * ---end--- */ - obj_properties[PROP_FORWARD_DELAY] = - g_param_spec_uint(NM_SETTING_BRIDGE_FORWARD_DELAY, - "", - "", - 0, - NM_BRIDGE_FORWARD_DELAY_MAX, - NM_BRIDGE_FORWARD_DELAY_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_BRIDGE_FORWARD_DELAY, + PROP_FORWARD_DELAY, + 0, + NM_BRIDGE_FORWARD_DELAY_MAX, + NM_BRIDGE_FORWARD_DELAY_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + forward_delay); /** * NMSettingBridge:hello-time: @@ -1739,14 +1531,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * description: STP hello time. * ---end--- */ - obj_properties[PROP_HELLO_TIME] = - g_param_spec_uint(NM_SETTING_BRIDGE_HELLO_TIME, - "", - "", - 0, - NM_BRIDGE_HELLO_TIME_MAX, - NM_BRIDGE_HELLO_TIME_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_BRIDGE_HELLO_TIME, + PROP_HELLO_TIME, + 0, + NM_BRIDGE_HELLO_TIME_MAX, + NM_BRIDGE_HELLO_TIME_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + hello_time); /** * NMSettingBridge:max-age: @@ -1761,14 +1555,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * description: STP maximum message age. * ---end--- */ - obj_properties[PROP_MAX_AGE] = - g_param_spec_uint(NM_SETTING_BRIDGE_MAX_AGE, - "", - "", - 0, - NM_BRIDGE_MAX_AGE_MAX, - NM_BRIDGE_MAX_AGE_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_BRIDGE_MAX_AGE, + PROP_MAX_AGE, + 0, + NM_BRIDGE_MAX_AGE_MAX, + NM_BRIDGE_MAX_AGE_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + max_age); /** * NMSettingBridge:ageing-time: @@ -1783,14 +1579,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * description: Ethernet MAC ageing time. * ---end--- */ - obj_properties[PROP_AGEING_TIME] = - g_param_spec_uint(NM_SETTING_BRIDGE_AGEING_TIME, - "", - "", - NM_BRIDGE_AGEING_TIME_MIN, - NM_BRIDGE_AGEING_TIME_MAX, - NM_BRIDGE_AGEING_TIME_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_BRIDGE_AGEING_TIME, + PROP_AGEING_TIME, + NM_BRIDGE_AGEING_TIME_MIN, + NM_BRIDGE_AGEING_TIME_MAX, + NM_BRIDGE_AGEING_TIME_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + ageing_time); /** * NMSettingBridge:group-forward-mask: @@ -1804,14 +1602,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * * Since: 1.10 **/ - obj_properties[PROP_GROUP_FORWARD_MASK] = - g_param_spec_uint(NM_SETTING_BRIDGE_GROUP_FORWARD_MASK, - "", - "", - 0, - 0xFFFF, - 0, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_BRIDGE_GROUP_FORWARD_MASK, + PROP_GROUP_FORWARD_MASK, + 0, + 0xFFFF, + 0, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + group_forward_mask); /** * NMSettingBridge:multicast-snooping: @@ -1831,13 +1631,14 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * description: IGMP snooping support. * ---end--- */ - _nm_setting_property_define_boolean(properties_override, - obj_properties, - NM_SETTING_BRIDGE_MULTICAST_SNOOPING, - PROP_MULTICAST_SNOOPING, - NM_BRIDGE_MULTICAST_SNOOPING_DEF, - NM_SETTING_PARAM_INFERRABLE, - nm_setting_bridge_get_multicast_snooping); + _nm_setting_property_define_direct_boolean(properties_override, + obj_properties, + NM_SETTING_BRIDGE_MULTICAST_SNOOPING, + PROP_MULTICAST_SNOOPING, + NM_BRIDGE_MULTICAST_SNOOPING_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + multicast_snooping); /** * NMSettingBridge:vlan-filtering: @@ -1854,13 +1655,14 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * description: VLAN filtering support. * ---end--- */ - _nm_setting_property_define_boolean(properties_override, - obj_properties, - NM_SETTING_BRIDGE_VLAN_FILTERING, - PROP_VLAN_FILTERING, - FALSE, - NM_SETTING_PARAM_INFERRABLE, - nm_setting_bridge_get_vlan_filtering); + _nm_setting_property_define_direct_boolean(properties_override, + obj_properties, + NM_SETTING_BRIDGE_VLAN_FILTERING, + PROP_VLAN_FILTERING, + FALSE, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + vlan_filtering); /** * NMSettingBridge:vlan-default-pvid: @@ -1878,14 +1680,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * description: default VLAN PVID. * ---end--- */ - obj_properties[PROP_VLAN_DEFAULT_PVID] = - g_param_spec_uint(NM_SETTING_BRIDGE_VLAN_DEFAULT_PVID, - "", - "", - 0, - NM_BRIDGE_VLAN_VID_MAX, - NM_BRIDGE_VLAN_DEFAULT_PVID_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_BRIDGE_VLAN_DEFAULT_PVID, + PROP_VLAN_DEFAULT_PVID, + 0, + NM_BRIDGE_VLAN_VID_MAX, + NM_BRIDGE_VLAN_DEFAULT_PVID_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + vlan_default_pvid); /** * NMSettingBridge:vlans: (type GPtrArray(NMBridgeVlan)) @@ -1917,9 +1721,13 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) G_TYPE_PTR_ARRAY, G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); - _nm_properties_override_gobj(properties_override, - obj_properties[PROP_VLANS], - &nm_sett_info_propert_type_bridge_vlans); + _nm_properties_override_gobj( + properties_override, + obj_properties[PROP_VLANS], + NM_SETT_INFO_PROPERT_TYPE_DBUS(NM_G_VARIANT_TYPE("aa{sv}"), + .to_dbus_fcn = _nm_utils_bridge_vlans_to_dbus, + .compare_fcn = compare_fcn_vlans, + .from_dbus_fcn = _nm_utils_bridge_vlans_from_dbus, )); /* ---dbus--- * property: interface-name @@ -1951,15 +1759,14 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * example: BRIDGING_OPTS="group_address=01:80:C2:00:00:0A" * ---end--- */ - obj_properties[PROP_GROUP_ADDRESS] = g_param_spec_string( - NM_SETTING_BRIDGE_GROUP_ADDRESS, - "", - "", - NULL, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); - _nm_properties_override_gobj(properties_override, - obj_properties[PROP_GROUP_ADDRESS], - &nm_sett_info_propert_type_mac_address); + _nm_setting_property_define_direct_mac_address(properties_override, + obj_properties, + NM_SETTING_BRIDGE_GROUP_ADDRESS, + PROP_GROUP_ADDRESS, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + group_address, + .direct_set_string_mac_address_len = ETH_ALEN); /** * NMSettingBridge:vlan-protocol: @@ -1980,12 +1787,13 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * * Since: 1.24 */ - obj_properties[PROP_VLAN_PROTOCOL] = g_param_spec_string( - NM_SETTING_BRIDGE_VLAN_PROTOCOL, - "", - "", - NULL, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_BRIDGE_VLAN_PROTOCOL, + PROP_VLAN_PROTOCOL, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + vlan_protocol); /** * NMSettingBridge:vlan-stats-enabled: @@ -2001,13 +1809,14 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * * Since: 1.24 */ - _nm_setting_property_define_boolean(properties_override, - obj_properties, - NM_SETTING_BRIDGE_VLAN_STATS_ENABLED, - PROP_VLAN_STATS_ENABLED, - NM_BRIDGE_VLAN_STATS_ENABLED_DEF, - NM_SETTING_PARAM_INFERRABLE, - nm_setting_bridge_get_vlan_stats_enabled); + _nm_setting_property_define_direct_boolean(properties_override, + obj_properties, + NM_SETTING_BRIDGE_VLAN_STATS_ENABLED, + PROP_VLAN_STATS_ENABLED, + NM_BRIDGE_VLAN_STATS_ENABLED_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + vlan_stats_enabled); /** * NMSettingBridge:multicast-router: @@ -2029,12 +1838,13 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * * Since: 1.24 */ - obj_properties[PROP_MULTICAST_ROUTER] = g_param_spec_string( - NM_SETTING_BRIDGE_MULTICAST_ROUTER, - "", - "", - NULL, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_BRIDGE_MULTICAST_ROUTER, + PROP_MULTICAST_ROUTER, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + multicast_router); /** * NMSettingBridge:multicast-query-use-ifaddr: @@ -2052,13 +1862,14 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * * Since: 1.24 */ - _nm_setting_property_define_boolean(properties_override, - obj_properties, - NM_SETTING_BRIDGE_MULTICAST_QUERY_USE_IFADDR, - PROP_MULTICAST_QUERY_USE_IFADDR, - NM_BRIDGE_MULTICAST_QUERY_USE_IFADDR_DEF, - NM_SETTING_PARAM_INFERRABLE, - nm_setting_bridge_get_multicast_query_use_ifaddr); + _nm_setting_property_define_direct_boolean(properties_override, + obj_properties, + NM_SETTING_BRIDGE_MULTICAST_QUERY_USE_IFADDR, + PROP_MULTICAST_QUERY_USE_IFADDR, + NM_BRIDGE_MULTICAST_QUERY_USE_IFADDR_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + multicast_query_use_ifaddr); /** * NMSettingBridge:multicast-querier: @@ -2075,13 +1886,14 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * * Since: 1.24 */ - _nm_setting_property_define_boolean(properties_override, - obj_properties, - NM_SETTING_BRIDGE_MULTICAST_QUERIER, - PROP_MULTICAST_QUERIER, - NM_BRIDGE_MULTICAST_QUERIER_DEF, - NM_SETTING_PARAM_INFERRABLE, - nm_setting_bridge_get_multicast_querier); + _nm_setting_property_define_direct_boolean(properties_override, + obj_properties, + NM_SETTING_BRIDGE_MULTICAST_QUERIER, + PROP_MULTICAST_QUERIER, + NM_BRIDGE_MULTICAST_QUERIER_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + multicast_querier); /** * NMSettingBridge:multicast-hash-max: @@ -2097,14 +1909,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * * Since: 1.26 */ - obj_properties[PROP_MULTICAST_HASH_MAX] = - g_param_spec_uint(NM_SETTING_BRIDGE_MULTICAST_HASH_MAX, - "", - "", - NM_BRIDGE_MULTICAST_HASH_MAX_MIN, - NM_BRIDGE_MULTICAST_HASH_MAX_MAX, - NM_BRIDGE_MULTICAST_HASH_MAX_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_BRIDGE_MULTICAST_HASH_MAX, + PROP_MULTICAST_HASH_MAX, + NM_BRIDGE_MULTICAST_HASH_MAX_MIN, + NM_BRIDGE_MULTICAST_HASH_MAX_MAX, + NM_BRIDGE_MULTICAST_HASH_MAX_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + multicast_hash_max); /** * NMSettingBridge:multicast-last-member-count: @@ -2122,14 +1936,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * * Since: 1.26 */ - obj_properties[PROP_MULTICAST_LAST_MEMBER_COUNT] = - g_param_spec_uint(NM_SETTING_BRIDGE_MULTICAST_LAST_MEMBER_COUNT, - "", - "", - NM_BRIDGE_MULTICAST_LAST_MEMBER_COUNT_MIN, - NM_BRIDGE_MULTICAST_LAST_MEMBER_COUNT_MAX, - NM_BRIDGE_MULTICAST_LAST_MEMBER_COUNT_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_BRIDGE_MULTICAST_LAST_MEMBER_COUNT, + PROP_MULTICAST_LAST_MEMBER_COUNT, + NM_BRIDGE_MULTICAST_LAST_MEMBER_COUNT_MIN, + NM_BRIDGE_MULTICAST_LAST_MEMBER_COUNT_MAX, + NM_BRIDGE_MULTICAST_LAST_MEMBER_COUNT_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + multicast_last_member_count); /** * NMSettingBridge:multicast-last-member-interval: @@ -2146,14 +1962,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * * Since: 1.26 */ - obj_properties[PROP_MULTICAST_LAST_MEMBER_INTERVAL] = g_param_spec_uint64( - NM_SETTING_BRIDGE_MULTICAST_LAST_MEMBER_INTERVAL, - "", - "", - NM_BRIDGE_MULTICAST_LAST_MEMBER_INTERVAL_MIN, - NM_BRIDGE_MULTICAST_LAST_MEMBER_INTERVAL_MAX, - NM_BRIDGE_MULTICAST_LAST_MEMBER_INTERVAL_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint64(properties_override, + obj_properties, + NM_SETTING_BRIDGE_MULTICAST_LAST_MEMBER_INTERVAL, + PROP_MULTICAST_LAST_MEMBER_INTERVAL, + NM_BRIDGE_MULTICAST_LAST_MEMBER_INTERVAL_MIN, + NM_BRIDGE_MULTICAST_LAST_MEMBER_INTERVAL_MAX, + NM_BRIDGE_MULTICAST_LAST_MEMBER_INTERVAL_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + multicast_last_member_interval); /** * NMSettingBridge:multicast-membership-interval: @@ -2171,14 +1989,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * * Since: 1.26 */ - obj_properties[PROP_MULTICAST_MEMBERSHIP_INTERVAL] = g_param_spec_uint64( - NM_SETTING_BRIDGE_MULTICAST_MEMBERSHIP_INTERVAL, - "", - "", - NM_BRIDGE_MULTICAST_MEMBERSHIP_INTERVAL_MIN, - NM_BRIDGE_MULTICAST_MEMBERSHIP_INTERVAL_MAX, - NM_BRIDGE_MULTICAST_MEMBERSHIP_INTERVAL_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint64(properties_override, + obj_properties, + NM_SETTING_BRIDGE_MULTICAST_MEMBERSHIP_INTERVAL, + PROP_MULTICAST_MEMBERSHIP_INTERVAL, + NM_BRIDGE_MULTICAST_MEMBERSHIP_INTERVAL_MIN, + NM_BRIDGE_MULTICAST_MEMBERSHIP_INTERVAL_MAX, + NM_BRIDGE_MULTICAST_MEMBERSHIP_INTERVAL_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + multicast_membership_interval); /** * NMSettingBridge:multicast-querier-interval: @@ -2195,14 +2015,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * * Since: 1.26 */ - obj_properties[PROP_MULTICAST_QUERIER_INTERVAL] = g_param_spec_uint64( - NM_SETTING_BRIDGE_MULTICAST_QUERIER_INTERVAL, - "", - "", - NM_BRIDGE_MULTICAST_QUERIER_INTERVAL_MIN, - NM_BRIDGE_MULTICAST_QUERIER_INTERVAL_MAX, - NM_BRIDGE_MULTICAST_QUERIER_INTERVAL_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint64(properties_override, + obj_properties, + NM_SETTING_BRIDGE_MULTICAST_QUERIER_INTERVAL, + PROP_MULTICAST_QUERIER_INTERVAL, + NM_BRIDGE_MULTICAST_QUERIER_INTERVAL_MIN, + NM_BRIDGE_MULTICAST_QUERIER_INTERVAL_MAX, + NM_BRIDGE_MULTICAST_QUERIER_INTERVAL_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + multicast_querier_interval); /** * NMSettingBridge:multicast-query-interval: @@ -2219,14 +2041,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * * Since: 1.26 */ - obj_properties[PROP_MULTICAST_QUERY_INTERVAL] = g_param_spec_uint64( - NM_SETTING_BRIDGE_MULTICAST_QUERY_INTERVAL, - "", - "", - NM_BRIDGE_MULTICAST_QUERY_INTERVAL_MIN, - NM_BRIDGE_MULTICAST_QUERY_INTERVAL_MAX, - NM_BRIDGE_MULTICAST_QUERY_INTERVAL_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint64(properties_override, + obj_properties, + NM_SETTING_BRIDGE_MULTICAST_QUERY_INTERVAL, + PROP_MULTICAST_QUERY_INTERVAL, + NM_BRIDGE_MULTICAST_QUERY_INTERVAL_MIN, + NM_BRIDGE_MULTICAST_QUERY_INTERVAL_MAX, + NM_BRIDGE_MULTICAST_QUERY_INTERVAL_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + multicast_query_interval); /** * NMSettingBridge:multicast-query-response-interval: @@ -2243,14 +2067,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * * Since: 1.26 */ - obj_properties[PROP_MULTICAST_QUERY_RESPONSE_INTERVAL] = g_param_spec_uint64( - NM_SETTING_BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL, - "", - "", - NM_BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL_MIN, - NM_BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL_MAX, - NM_BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint64(properties_override, + obj_properties, + NM_SETTING_BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL, + PROP_MULTICAST_QUERY_RESPONSE_INTERVAL, + NM_BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL_MIN, + NM_BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL_MAX, + NM_BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + multicast_query_response_interval); /** * NMSettingBridge:multicast-startup-query-count: @@ -2266,14 +2092,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * * Since: 1.26 */ - obj_properties[PROP_MULTICAST_STARTUP_QUERY_COUNT] = - g_param_spec_uint(NM_SETTING_BRIDGE_MULTICAST_STARTUP_QUERY_COUNT, - "", - "", - NM_BRIDGE_MULTICAST_STARTUP_QUERY_COUNT_MIN, - NM_BRIDGE_MULTICAST_STARTUP_QUERY_COUNT_MAX, - NM_BRIDGE_MULTICAST_STARTUP_QUERY_COUNT_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_BRIDGE_MULTICAST_STARTUP_QUERY_COUNT, + PROP_MULTICAST_STARTUP_QUERY_COUNT, + NM_BRIDGE_MULTICAST_STARTUP_QUERY_COUNT_MIN, + NM_BRIDGE_MULTICAST_STARTUP_QUERY_COUNT_MAX, + NM_BRIDGE_MULTICAST_STARTUP_QUERY_COUNT_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + multicast_startup_query_count); /** * NMSettingBridge:multicast-startup-query-interval: @@ -2290,19 +2118,22 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * * Since: 1.26 */ - obj_properties[PROP_MULTICAST_STARTUP_QUERY_INTERVAL] = g_param_spec_uint64( - NM_SETTING_BRIDGE_MULTICAST_STARTUP_QUERY_INTERVAL, - "", - "", - NM_BRIDGE_MULTICAST_STARTUP_QUERY_INTERVAL_MIN, - NM_BRIDGE_MULTICAST_STARTUP_QUERY_INTERVAL_MAX, - NM_BRIDGE_MULTICAST_STARTUP_QUERY_INTERVAL_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint64(properties_override, + obj_properties, + NM_SETTING_BRIDGE_MULTICAST_STARTUP_QUERY_INTERVAL, + PROP_MULTICAST_STARTUP_QUERY_INTERVAL, + NM_BRIDGE_MULTICAST_STARTUP_QUERY_INTERVAL_MIN, + NM_BRIDGE_MULTICAST_STARTUP_QUERY_INTERVAL_MAX, + NM_BRIDGE_MULTICAST_STARTUP_QUERY_INTERVAL_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + multicast_startup_query_interval); g_object_class_install_properties(object_class, _PROPERTY_ENUMS_LAST, obj_properties); - _nm_setting_class_commit_full(setting_class, - NM_META_SETTING_TYPE_BRIDGE, - NULL, - properties_override); + _nm_setting_class_commit(setting_class, + NM_META_SETTING_TYPE_BRIDGE, + NULL, + properties_override, + G_STRUCT_OFFSET(NMSettingBridge, _priv)); } |