libnm, nmcli: introduce new "prefix-delegation" setting

Introduce a new "prefix-delegation" setting. It contains properties
related to the configuration of downstream interfaces using IPv6
prefix-delegation. The only property at the moment is "subnet-id",
which specifies which prefix to choose when the delegation contains
multiple /64 networks.
This commit is contained in:
Beniamino Galvani
2025-03-06 22:14:02 +01:00
parent 4a8bedcd89
commit b372caf0c4
21 changed files with 247 additions and 21 deletions

3
NEWS
View File

@@ -11,6 +11,9 @@ USE AT YOUR OWN RISK. NOT RECOMMENDED FOR PRODUCTION USE!
* Add systemd services to provide networking in the initrd.
* Introduce a new "ovs-dpdk.lsc-interrupt" property to configure the
Link State Change (LSC) detection mode for OVS DPDK interfaces.
* Add a new "prefix-delegation" setting containing a "subnet-id"
property that specifies the subnet to choose on the downstream
interface when using IPv6 prefix delegation.
=============================================
NetworkManager-1.52

View File

@@ -341,6 +341,7 @@ print ("NetworkManager version " + client.get_version())]]></programlisting></in
<xi:include href="xml/nm-setting-ovs-port.xml"/>
<xi:include href="xml/nm-setting-ppp.xml"/>
<xi:include href="xml/nm-setting-pppoe.xml"/>
<xi:include href="xml/nm-setting-prefix-delegation.xml"/>
<xi:include href="xml/nm-setting-proxy.xml"/>
<xi:include href="xml/nm-setting-serial.xml"/>
<xi:include href="xml/nm-setting-sriov.xml"/>

View File

@@ -2055,4 +2055,7 @@ global:
nm_setting_ip_config_get_forwarding;
nm_setting_ovs_dpdk_get_lsc_interrupt;
nm_setting_ovs_dpdk_lsc_interrupt_get_type;
nm_setting_prefix_delegation_get_subnet_id;
nm_setting_prefix_delegation_get_type;
nm_setting_prefix_delegation_new;
} libnm_1_52_0;

View File

@@ -59,6 +59,7 @@
#include "nm-setting-ovs-port.h"
#include "nm-setting-ppp.h"
#include "nm-setting-pppoe.h"
#include "nm-setting-prefix-delegation.h"
#include "nm-setting-proxy.h"
#include "nm-setting-serial.h"
#include "nm-setting-sriov.h"

View File

@@ -104,6 +104,7 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(NMSettingOvsPatch, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC(NMSettingOvsPort, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC(NMSettingPpp, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC(NMSettingPppoe, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC(NMSettingPrefixDelegation, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC(NMSettingProxy, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC(NMSettingSerial, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC(NMSettingSriov, g_object_unref)

View File

@@ -2315,6 +2315,14 @@
gprop-type="gchararray"
/>
</setting>
<setting name="prefix-delegation"
gtype="NMSettingPrefixDelegation"
>
<property name="subnet-id"
dbus-type="x"
gprop-type="gint64"
/>
</setting>
<setting name="proxy"
gtype="NMSettingProxy"
>

View File

@@ -41,6 +41,7 @@ libnm_core_settings_sources = files(
'nm-setting-ovs-port.c',
'nm-setting-ppp.c',
'nm-setting-pppoe.c',
'nm-setting-prefix-delegation.c',
'nm-setting-proxy.c',
'nm-setting-serial.c',
'nm-setting-sriov.c',

View File

@@ -51,6 +51,7 @@
#include "nm-setting-ovs-port.h"
#include "nm-setting-ppp.h"
#include "nm-setting-pppoe.h"
#include "nm-setting-prefix-delegation.h"
#include "nm-setting-proxy.h"
#include "nm-setting-serial.h"
#include "nm-setting-tc-config.h"
@@ -484,6 +485,13 @@ const NMMetaSettingInfo nm_meta_setting_infos[] = {
.setting_name = NM_SETTING_PPP_SETTING_NAME,
.get_setting_gtype = nm_setting_ppp_get_type,
},
[NM_META_SETTING_TYPE_PREFIX_DELEGATION] =
{
.meta_type = NM_META_SETTING_TYPE_PREFIX_DELEGATION,
.setting_priority = NM_SETTING_PRIORITY_IP,
.setting_name = NM_SETTING_PREFIX_DELEGATION_SETTING_NAME,
.get_setting_gtype = nm_setting_prefix_delegation_get_type,
},
[NM_META_SETTING_TYPE_PROXY] =
{
.meta_type = NM_META_SETTING_TYPE_PROXY,
@@ -698,6 +706,7 @@ const NMMetaSettingType nm_meta_setting_types_by_priority[] = {
NM_META_SETTING_TYPE_HOSTNAME,
NM_META_SETTING_TYPE_IP4_CONFIG,
NM_META_SETTING_TYPE_IP6_CONFIG,
NM_META_SETTING_TYPE_PREFIX_DELEGATION,
NM_META_SETTING_TYPE_PROXY,
NM_META_SETTING_TYPE_TC_CONFIG,

View File

@@ -0,0 +1,118 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "libnm-core-impl/nm-default-libnm-core.h"
#include "nm-setting-prefix-delegation.h"
#include "nm-connection-private.h"
#include "nm-setting-connection.h"
#include "nm-setting-private.h"
/**
* SECTION:nm-setting-prefix-delegation
* @short_description: Describes connection properties related to IPv6 prefix delegation
*
* The #NMSettingPrefixDelegation object is a #NMSetting subclass that describes the
* configuration of downstream interfaces using IPv6 prefix delegation.
**/
/*****************************************************************************/
NM_GOBJECT_PROPERTIES_DEFINE_BASE(PROP_SUBNET_ID, );
/**
* NMSettingPrefixDelegation:
*
* IPv6 prefix delegation settings
*
* Since: 1.54
*/
struct _NMSettingPrefixDelegation {
NMSetting parent;
gint64 subnet_id;
};
struct _NMSettingPrefixDelegationClass {
NMSettingClass parent;
};
G_DEFINE_TYPE(NMSettingPrefixDelegation, nm_setting_prefix_delegation, NM_TYPE_SETTING)
/*****************************************************************************/
/**
* nm_setting_prefix_delegation_get_subnet_id:
* @setting: the #NMSettingPrefixDelegation
*
* Returns: the subnet ID for prefix delegation
*
* Since: 1.54
**/
gint64
nm_setting_prefix_delegation_get_subnet_id(NMSettingPrefixDelegation *setting)
{
g_return_val_if_fail(NM_IS_SETTING_PREFIX_DELEGATION(setting), 0);
return setting->subnet_id;
}
/*****************************************************************************/
static void
nm_setting_prefix_delegation_init(NMSettingPrefixDelegation *setting)
{}
/**
* nm_setting_prefix_delegation_new:
*
* Creates a new #NMSettingPrefixDelegation object with default values.
*
* Returns: (transfer full): the new empty #NMSettingPrefixDelegation object
*
* Since: 1.54
**/
NMSetting *
nm_setting_prefix_delegation_new(void)
{
return g_object_new(NM_TYPE_SETTING_PREFIX_DELEGATION, NULL);
}
static void
nm_setting_prefix_delegation_class_init(NMSettingPrefixDelegationClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS(klass);
NMSettingClass *setting_class = NM_SETTING_CLASS(klass);
GArray *properties_override = _nm_sett_info_property_override_create_array();
object_class->get_property = _nm_setting_property_get_property_direct;
object_class->set_property = _nm_setting_property_set_property_direct;
/**
* NMSettingPrefixDelegation:subnet-id:
*
* The subnet ID to use on the interface from the prefix delegation received via
* an upstream interface. Set to a value between 0 and 0xffffffff (2^32 - 1)
* to indicate a specific subnet ID; or set to -1 to automatically choose
* an available subnet ID.
*
* Since: 1.54
**/
_nm_setting_property_define_direct_int64(properties_override,
obj_properties,
NM_SETTING_PREFIX_DELEGATION_SUBNET_ID,
PROP_SUBNET_ID,
-1,
G_MAXUINT32,
-1,
NM_SETTING_PARAM_NONE,
NMSettingPrefixDelegation,
subnet_id);
g_object_class_install_properties(object_class, _PROPERTY_ENUMS_LAST, obj_properties);
_nm_setting_class_commit(setting_class,
NM_META_SETTING_TYPE_PREFIX_DELEGATION,
NULL,
properties_override,
0);
}

View File

@@ -58,6 +58,7 @@
#include "nm-setting-ovs-port.h"
#include "nm-setting-ppp.h"
#include "nm-setting-pppoe.h"
#include "nm-setting-prefix-delegation.h"
#include "nm-setting-proxy.h"
#include "nm-setting-serial.h"
#include "nm-setting-sriov.h"

View File

@@ -143,6 +143,7 @@ typedef enum _nm_packed {
NM_META_SETTING_TYPE_OVS_PORT,
NM_META_SETTING_TYPE_PPP,
NM_META_SETTING_TYPE_PPPOE,
NM_META_SETTING_TYPE_PREFIX_DELEGATION,
NM_META_SETTING_TYPE_PROXY,
NM_META_SETTING_TYPE_SERIAL,
NM_META_SETTING_TYPE_SRIOV,

View File

@@ -46,6 +46,7 @@ libnm_core_headers = files(
'nm-setting-ovs-port.h',
'nm-setting-ppp.h',
'nm-setting-pppoe.h',
'nm-setting-prefix-delegation.h',
'nm-setting-proxy.h',
'nm-setting-serial.h',
'nm-setting-sriov.h',

View File

@@ -52,6 +52,7 @@ typedef struct _NMSettingOvsPatch NMSettingOvsPatch;
typedef struct _NMSettingOvsPort NMSettingOvsPort;
typedef struct _NMSettingPpp NMSettingPpp;
typedef struct _NMSettingPppoe NMSettingPppoe;
typedef struct _NMSettingPrefixDelegation NMSettingPrefixDelegation;
typedef struct _NMSettingProxy NMSettingProxy;
typedef struct _NMSettingSerial NMSettingSerial;
typedef struct _NMSettingSriov NMSettingSriov;

View File

@@ -0,0 +1,41 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef __NM_SETTING_PREFIX_DELEGATION_H__
#define __NM_SETTING_PREFIX_DELEGATION_H__
#if !defined(__NETWORKMANAGER_H_INSIDE__) && !defined(NETWORKMANAGER_COMPILATION)
#error "Only <NetworkManager.h> can be included directly."
#endif
#include "nm-setting.h"
G_BEGIN_DECLS
#define NM_TYPE_SETTING_PREFIX_DELEGATION (nm_setting_prefix_delegation_get_type())
#define NM_SETTING_PREFIX_DELEGATION(obj) \
(G_TYPE_CHECK_INSTANCE_CAST((obj), NM_TYPE_SETTING_PREFIX_DELEGATION, NMSettingVrf))
#define NM_SETTING_PREFIX_DELEGATION_CLASS(klass) \
(G_TYPE_CHECK_CLASS_CAST((klass), NM_TYPE_SETTING_PREFIX_DELEGATIONCONFIG, NMSettingVrfClass))
#define NM_IS_SETTING_PREFIX_DELEGATION(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE((obj), NM_TYPE_SETTING_PREFIX_DELEGATION))
#define NM_IS_SETTING_PREFIX_DELEGATION_CLASS(klass) \
(G_TYPE_CHECK_CLASS_TYPE((klass), NM_TYPE_SETTING_PREFIX_DELEGATION))
#define NM_SETTING_PREFIX_DELEGATION_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS((obj), NM_TYPE_SETTING_PREFIX_DELEGATION, NMSettingVrfClass))
#define NM_SETTING_PREFIX_DELEGATION_SETTING_NAME "prefix-delegation"
#define NM_SETTING_PREFIX_DELEGATION_SUBNET_ID "subnet-id"
typedef struct _NMSettingPrefixDelegationClass NMSettingPrefixDelegationClass;
NM_AVAILABLE_IN_1_54
GType nm_setting_prefix_delegation_get_type(void);
NM_AVAILABLE_IN_1_54
NMSetting *nm_setting_prefix_delegation_new(void);
NM_AVAILABLE_IN_1_54
gint64 nm_setting_prefix_delegation_get_subnet_id(NMSettingPrefixDelegation *setting);
G_END_DECLS
#endif /* __NM_SETTING_PREFIX_DELEGATION_H__ */

View File

@@ -51,6 +51,7 @@
#include "nm-setting-ovs-port.h"
#include "nm-setting-ppp.h"
#include "nm-setting-pppoe.h"
#include "nm-setting-prefix-delegation.h"
#include "nm-setting-proxy.h"
#include "nm-setting-serial.h"
#include "nm-setting-tc-config.h"
@@ -484,6 +485,13 @@ const NMMetaSettingInfo nm_meta_setting_infos[] = {
.setting_name = NM_SETTING_PPP_SETTING_NAME,
.get_setting_gtype = nm_setting_ppp_get_type,
},
[NM_META_SETTING_TYPE_PREFIX_DELEGATION] =
{
.meta_type = NM_META_SETTING_TYPE_PREFIX_DELEGATION,
.setting_priority = NM_SETTING_PRIORITY_IP,
.setting_name = NM_SETTING_PREFIX_DELEGATION_SETTING_NAME,
.get_setting_gtype = nm_setting_prefix_delegation_get_type,
},
[NM_META_SETTING_TYPE_PROXY] =
{
.meta_type = NM_META_SETTING_TYPE_PROXY,
@@ -698,6 +706,7 @@ const NMMetaSettingType nm_meta_setting_types_by_priority[] = {
NM_META_SETTING_TYPE_HOSTNAME,
NM_META_SETTING_TYPE_IP4_CONFIG,
NM_META_SETTING_TYPE_IP6_CONFIG,
NM_META_SETTING_TYPE_PREFIX_DELEGATION,
NM_META_SETTING_TYPE_PROXY,
NM_META_SETTING_TYPE_TC_CONFIG,

View File

@@ -143,6 +143,7 @@ typedef enum _nm_packed {
NM_META_SETTING_TYPE_OVS_PORT,
NM_META_SETTING_TYPE_PPP,
NM_META_SETTING_TYPE_PPPOE,
NM_META_SETTING_TYPE_PREFIX_DELEGATION,
NM_META_SETTING_TYPE_PROXY,
NM_META_SETTING_TYPE_SERIAL,
NM_META_SETTING_TYPE_SRIOV,

View File

@@ -7494,6 +7494,19 @@ static const NMMetaPropertyInfo *const property_infos_PPPOE[] = {
NULL
};
#undef _CURRENT_NM_META_SETTING_TYPE
#define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_PREFIX_DELEGATION
static const NMMetaPropertyInfo *const property_infos_PREFIX_DELEGATION[] = {
PROPERTY_INFO_WITH_DESC (NM_SETTING_PREFIX_DELEGATION_SUBNET_ID,
.property_type = &_pt_gobject_int,
.property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int,
.base = 16,
.print_hex_negative_as_base10 = TRUE,
),
),
NULL
};
#undef _CURRENT_NM_META_SETTING_TYPE
#define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_PROXY
static const NMMetaPropertyInfo *const property_infos_PROXY[] = {
@@ -8951,6 +8964,7 @@ _setting_init_fcn_wireless (ARGS_SETTING_INIT_FCN)
#define SETTING_PRETTY_NAME_OVS_PORT N_("Open vSwitch port settings")
#define SETTING_PRETTY_NAME_PPP N_("PPP settings")
#define SETTING_PRETTY_NAME_PPPOE N_("PPPoE")
#define SETTING_PRETTY_NAME_PREFIX_DELEGATION N_("Prefix delegation settings")
#define SETTING_PRETTY_NAME_PROXY N_("Proxy")
#define SETTING_PRETTY_NAME_SERIAL N_("Serial settings")
#define SETTING_PRETTY_NAME_SRIOV N_("SR-IOV settings")
@@ -9168,6 +9182,7 @@ const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = {
NM_META_SETTING_VALID_PART_ITEM (OVS_PATCH, FALSE),
NM_META_SETTING_VALID_PART_ITEM (IP4_CONFIG, FALSE),
NM_META_SETTING_VALID_PART_ITEM (IP6_CONFIG, FALSE),
NM_META_SETTING_VALID_PART_ITEM (PREFIX_DELEGATION, FALSE),
NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE),
NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE),
),
@@ -9198,6 +9213,7 @@ const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = {
),
),
SETTING_INFO (PPP),
SETTING_INFO (PREFIX_DELEGATION),
SETTING_INFO (PROXY,
.setting_init_fcn = _setting_init_fcn_proxy,
),
@@ -9326,6 +9342,7 @@ static const NMMetaSettingValidPartItem *const valid_settings_noport[] = {
NM_META_SETTING_VALID_PART_ITEM(MATCH, FALSE),
NM_META_SETTING_VALID_PART_ITEM(IP4_CONFIG, FALSE),
NM_META_SETTING_VALID_PART_ITEM(IP6_CONFIG, FALSE),
NM_META_SETTING_VALID_PART_ITEM(PREFIX_DELEGATION, FALSE),
NM_META_SETTING_VALID_PART_ITEM(HOSTNAME, FALSE),
NM_META_SETTING_VALID_PART_ITEM(LINK, FALSE),
NM_META_SETTING_VALID_PART_ITEM(TC_CONFIG, FALSE),

View File

@@ -503,4 +503,5 @@
#define DESCRIBE_DOC_NM_SETTING_LOOPBACK_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple Ethernet frames.")
#define DESCRIBE_DOC_NM_SETTING_OVS_EXTERNAL_IDS_DATA N_("A dictionary of key/value pairs with external-ids for OVS.")
#define DESCRIBE_DOC_NM_SETTING_OVS_OTHER_CONFIG_DATA N_("A dictionary of key/value pairs with other_config settings for OVS. See also \"other_config\" in the \"ovs-vswitchd.conf.db\" manual for the keys that OVS supports.")
#define DESCRIBE_DOC_NM_SETTING_PREFIX_DELEGATION_SUBNET_ID N_("The subnet ID to use on the interface from the prefix delegation received via an upstream interface. Set to a value between 0 and 0xffffffff (2^32 - 1) to indicate a specific subnet ID; or set to -1 to automatically choose an available subnet ID.")
#define DESCRIBE_DOC_NM_SETTING_VETH_PEER N_("This property specifies the peer interface name of the veth. This property is mandatory.")

View File

@@ -1055,27 +1055,28 @@ const NmcMetaGenericInfo
"," NM_SETTING_VETH_SETTING_NAME "," NM_SETTING_802_1X_SETTING_NAME \
"," NM_SETTING_WIRELESS_SETTING_NAME "," NM_SETTING_WIRELESS_SECURITY_SETTING_NAME \
"," NM_SETTING_IP4_CONFIG_SETTING_NAME "," NM_SETTING_IP6_CONFIG_SETTING_NAME \
"," NM_SETTING_SERIAL_SETTING_NAME "," NM_SETTING_WIFI_P2P_SETTING_NAME \
"," NM_SETTING_PPP_SETTING_NAME "," NM_SETTING_PPPOE_SETTING_NAME \
"," NM_SETTING_ADSL_SETTING_NAME "," NM_SETTING_GSM_SETTING_NAME \
"," NM_SETTING_CDMA_SETTING_NAME "," NM_SETTING_BLUETOOTH_SETTING_NAME \
"," NM_SETTING_OLPC_MESH_SETTING_NAME "," NM_SETTING_VPN_SETTING_NAME \
"," NM_SETTING_INFINIBAND_SETTING_NAME "," NM_SETTING_BOND_SETTING_NAME \
"," NM_SETTING_BOND_PORT_SETTING_NAME "," NM_SETTING_VLAN_SETTING_NAME \
"," NM_SETTING_BRIDGE_SETTING_NAME "," NM_SETTING_BRIDGE_PORT_SETTING_NAME \
"," NM_SETTING_TEAM_SETTING_NAME "," NM_SETTING_TEAM_PORT_SETTING_NAME \
"," NM_SETTING_OVS_BRIDGE_SETTING_NAME "," NM_SETTING_OVS_INTERFACE_SETTING_NAME \
"," NM_SETTING_OVS_PATCH_SETTING_NAME "," NM_SETTING_OVS_PORT_SETTING_NAME \
"," NM_SETTING_GENERIC_SETTING_NAME "," NM_SETTING_DCB_SETTING_NAME \
"," NM_SETTING_TUN_SETTING_NAME "," NM_SETTING_IP_TUNNEL_SETTING_NAME \
"," NM_SETTING_MACSEC_SETTING_NAME "," NM_SETTING_MACVLAN_SETTING_NAME \
"," NM_SETTING_VXLAN_SETTING_NAME "," NM_SETTING_VRF_SETTING_NAME \
"," NM_SETTING_WPAN_SETTING_NAME "," NM_SETTING_6LOWPAN_SETTING_NAME \
"," NM_SETTING_WIREGUARD_SETTING_NAME "," NM_SETTING_LINK_SETTING_NAME \
"," NM_SETTING_PROXY_SETTING_NAME "," NM_SETTING_TC_CONFIG_SETTING_NAME \
"," NM_SETTING_SRIOV_SETTING_NAME "," NM_SETTING_ETHTOOL_SETTING_NAME \
"," NM_SETTING_OVS_DPDK_SETTING_NAME "," NM_SETTING_HOSTNAME_SETTING_NAME \
"," NM_SETTING_HSR_SETTING_NAME "," NM_SETTING_IPVLAN_SETTING_NAME
"," NM_SETTING_PREFIX_DELEGATION_SETTING_NAME "," NM_SETTING_SERIAL_SETTING_NAME \
"," NM_SETTING_WIFI_P2P_SETTING_NAME "," NM_SETTING_PPP_SETTING_NAME \
"," NM_SETTING_PPPOE_SETTING_NAME "," NM_SETTING_ADSL_SETTING_NAME \
"," NM_SETTING_GSM_SETTING_NAME "," NM_SETTING_CDMA_SETTING_NAME \
"," NM_SETTING_BLUETOOTH_SETTING_NAME "," NM_SETTING_OLPC_MESH_SETTING_NAME \
"," NM_SETTING_VPN_SETTING_NAME "," NM_SETTING_INFINIBAND_SETTING_NAME \
"," NM_SETTING_BOND_SETTING_NAME "," NM_SETTING_BOND_PORT_SETTING_NAME \
"," NM_SETTING_VLAN_SETTING_NAME "," NM_SETTING_BRIDGE_SETTING_NAME \
"," NM_SETTING_BRIDGE_PORT_SETTING_NAME "," NM_SETTING_TEAM_SETTING_NAME \
"," NM_SETTING_TEAM_PORT_SETTING_NAME "," NM_SETTING_OVS_BRIDGE_SETTING_NAME \
"," NM_SETTING_OVS_INTERFACE_SETTING_NAME "," NM_SETTING_OVS_PATCH_SETTING_NAME \
"," NM_SETTING_OVS_PORT_SETTING_NAME "," NM_SETTING_GENERIC_SETTING_NAME \
"," NM_SETTING_DCB_SETTING_NAME "," NM_SETTING_TUN_SETTING_NAME \
"," NM_SETTING_IP_TUNNEL_SETTING_NAME "," NM_SETTING_MACSEC_SETTING_NAME \
"," NM_SETTING_MACVLAN_SETTING_NAME "," NM_SETTING_VXLAN_SETTING_NAME \
"," NM_SETTING_VRF_SETTING_NAME "," NM_SETTING_WPAN_SETTING_NAME \
"," NM_SETTING_6LOWPAN_SETTING_NAME "," NM_SETTING_WIREGUARD_SETTING_NAME \
"," NM_SETTING_LINK_SETTING_NAME "," NM_SETTING_PROXY_SETTING_NAME \
"," NM_SETTING_TC_CONFIG_SETTING_NAME "," NM_SETTING_SRIOV_SETTING_NAME \
"," NM_SETTING_ETHTOOL_SETTING_NAME "," NM_SETTING_OVS_DPDK_SETTING_NAME \
"," NM_SETTING_HOSTNAME_SETTING_NAME "," NM_SETTING_HSR_SETTING_NAME \
"," NM_SETTING_IPVLAN_SETTING_NAME
/* NM_SETTING_DUMMY_SETTING_NAME NM_SETTING_WIMAX_SETTING_NAME */
const NmcMetaGenericInfo *const nmc_fields_con_active_details_groups[] = {

View File

@@ -1912,6 +1912,12 @@
format="flags (NMSettingSecretFlags)"
values="none (0x0), agent-owned (0x1), not-saved (0x2), not-required (0x4)" />
</setting>
<setting name="prefix-delegation" >
<property name="subnet-id"
nmcli-description="The subnet ID to use on the interface from the prefix delegation received via an upstream interface. Set to a value between 0 and 0xffffffff (2^32 - 1) to indicate a specific subnet ID; or set to -1 to automatically choose an available subnet ID."
format="integer"
values="-1 - 4294967295" />
</setting>
<setting name="proxy" >
<property name="method"
alias="method"

View File

@@ -54,6 +54,7 @@ SETTING_OVS_PORT_* parent="NM.SettingOvsPort" name="SETTIN
SETTING_PARAM_* parent="NM.Setting" name="SETTING_PARAM_(.+)"
SETTING_PPPOE_* parent="NM.SettingPppoe" name="SETTING_PPPOE_(.+)"
SETTING_PPP_* parent="NM.SettingPpp" name="SETTING_PPP_(.+)"
SETTING_PREFIX_DELEGATION_* parent="NM.SettingPrefixDelegation" name="SETTING_PREFIX_DELEGATION_(.+)"
SETTING_PROXY_* parent="NM.SettingProxy" name="SETTING_PROXY_(.+)"
SETTING_SERIAL_* parent="NM.SettingSerial" name="SETTING_SERIAL_(.+)"
SETTING_SRIOV_* parent="NM.SettingSriov" name="SETTING_SRIOV_(.+)"