diff options
Diffstat (limited to 'src/libnmc-setting/nm-meta-setting-desc.c')
| -rw-r--r-- | src/libnmc-setting/nm-meta-setting-desc.c | 46 |
1 files changed, 42 insertions, 4 deletions
diff --git a/src/libnmc-setting/nm-meta-setting-desc.c b/src/libnmc-setting/nm-meta-setting-desc.c index fcb2d041..aa290b9f 100644 --- a/src/libnmc-setting/nm-meta-setting-desc.c +++ b/src/libnmc-setting/nm-meta-setting-desc.c @@ -11,7 +11,6 @@ #include <arpa/inet.h> #include <linux/if_ether.h> #include <linux/if_infiniband.h> -#include <linux/ethtool.h> #include "libnm-core-aux-intern/nm-common-macros.h" #include "libnm-glib-aux/nm-enum-utils.h" @@ -1005,8 +1004,16 @@ _get_fcn_gobject_int(ARGS_GET_FCN) case 16: if (is_uint64) return_str = g_strdup_printf("0x%" G_GINT64_MODIFIER "x", v.u64); - else - return_str = g_strdup_printf("0x%" G_GINT64_MODIFIER "x", (guint64) v.i64); + else { + if (property_info->property_typ_data + && property_info->property_typ_data->subtype.gobject_int + .print_hex_negative_as_base10 + && v.i64 < 0) { + return_str = g_strdup_printf("%" G_GINT64_FORMAT, v.i64); + } else { + return_str = g_strdup_printf("0x%" G_GINT64_MODIFIER "x", (guint64) v.i64); + } + } break; default: return_str = NULL; @@ -1422,6 +1429,11 @@ _set_fcn_gobject_int(ARGS_SET_FCN) nm_meta_property_int_get_range(property_info, &min, &max); + /* See the comment on "print_hex_negative_as_base10" */ + nm_assert(!property_info->property_typ_data + || !property_info->property_typ_data->subtype.gobject_int.print_hex_negative_as_base10 + || (!is_uint64 && min.i64 > -10)); + if (is_uint64) v.u64 = _nm_utils_ascii_str_to_uint64(value, base, min.u64, max.u64, 0); else @@ -6473,6 +6485,9 @@ static const NMMetaPropertyInfo *const property_infos_IP4_CONFIG[] = { ), ), ), + PROPERTY_INFO (NM_SETTING_IP_CONFIG_FORWARDING, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_FORWARDING, + .property_type = &_pt_gobject_enum, + ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_DHCP_HOSTNAME, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME, .property_type = &_pt_gobject_string, ), @@ -7306,7 +7321,10 @@ static const NMMetaPropertyInfo *const property_infos_OVS_DPDK[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_OVS_DPDK_N_TXQ_DESC, .property_type = &_pt_gobject_int, ), - NULL + PROPERTY_INFO_WITH_DESC (NM_SETTING_OVS_DPDK_LSC_INTERRUPT, + .property_type = &_pt_gobject_enum, + ), + NULL }; #undef _CURRENT_NM_META_SETTING_TYPE @@ -7476,6 +7494,19 @@ static const NMMetaPropertyInfo *const property_infos_PPPOE[] = { }; #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[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_PROXY_METHOD, @@ -7599,6 +7630,9 @@ static const NMMetaPropertyInfo *const property_infos_SRIOV[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_SRIOV_ESWITCH_ENCAP_MODE, .property_type = &_pt_gobject_enum, ), + PROPERTY_INFO_WITH_DESC (NM_SETTING_SRIOV_PRESERVE_ON_DOWN, + .property_type = &_pt_gobject_enum, + ), NULL }; @@ -8932,6 +8966,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") @@ -9144,6 +9179,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), ), @@ -9169,6 +9205,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, ), @@ -9297,6 +9334,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), |