diff options
Diffstat (limited to 'src/libnm-base')
| -rw-r--r-- | src/libnm-base/nm-base.c | 34 | ||||
| -rw-r--r-- | src/libnm-base/nm-base.h | 5 | ||||
| -rw-r--r-- | src/libnm-base/nm-config-base.h | 2 |
3 files changed, 41 insertions, 0 deletions
diff --git a/src/libnm-base/nm-base.c b/src/libnm-base/nm-base.c index fa64372f..6e164908 100644 --- a/src/libnm-base/nm-base.c +++ b/src/libnm-base/nm-base.c @@ -39,3 +39,37 @@ nm_dhcp_iaid_from_hexstr(const char *str, guint32 *out_value) NM_SET_OUT(out_value, be32toh(iaid.num)); return TRUE; } + +/*****************************************************************************/ + +/* nm_net_devname_infiniband: + * @name: the output-buffer where the value will be written. Must be + * not %NULL and point to a string buffer of at least IFNAMSIZ bytes. + * @parent_name: the parent interface name + * @p_key: the partition key. + * + * Returns: the infiniband name will be written to @name and @name + * is returned. + */ +const char * +nm_net_devname_infiniband(char name[static NM_IFNAMSIZ], const char *parent_name, int p_key) +{ + g_return_val_if_fail(name, NULL); + g_return_val_if_fail(parent_name && parent_name[0], NULL); + g_return_val_if_fail(strlen(parent_name) < NM_IFNAMSIZ, NULL); + + /* technically, p_key of 0x0000 and 0x8000 is not allowed either. But we don't + * want to assert against that in nm_net_devname_infiniband(). So be more + * resilient here, and accept those. */ + g_return_val_if_fail(p_key >= 0 && p_key <= 0xffff, NULL); + + nm_assert(nm_utils_ifname_valid_kernel(parent_name, NULL)); + + /* If parent+suffix is too long, kernel would just truncate + * the name. We do the same. See ipoib_vlan_add(). */ + g_snprintf(name, NM_IFNAMSIZ, "%s.%04x", parent_name, p_key); + + nm_assert(nm_utils_ifname_valid_kernel(name, NULL)); + + return name; +} diff --git a/src/libnm-base/nm-base.h b/src/libnm-base/nm-base.h index 440fbc90..65fc9299 100644 --- a/src/libnm-base/nm-base.h +++ b/src/libnm-base/nm-base.h @@ -432,4 +432,9 @@ char *nm_dhcp_iaid_to_hexstr(guint32 iaid, char buf[static NM_DHCP_IAID_TO_HEXST gboolean nm_dhcp_iaid_from_hexstr(const char *str, guint32 *out_value); +/*****************************************************************************/ + +const char * +nm_net_devname_infiniband(char name[static NM_IFNAMSIZ], const char *parent_name, int p_key); + #endif /* __NM_LIBNM_BASE_H__ */ diff --git a/src/libnm-base/nm-config-base.h b/src/libnm-base/nm-config-base.h index c413e867..c90efc1b 100644 --- a/src/libnm-base/nm-config-base.h +++ b/src/libnm-base/nm-config-base.h @@ -30,6 +30,7 @@ #define NM_CONFIG_KEYFILE_KEY_MAIN_HOSTNAME_MODE "hostname-mode" #define NM_CONFIG_KEYFILE_KEY_MAIN_IGNORE_CARRIER "ignore-carrier" #define NM_CONFIG_KEYFILE_KEY_MAIN_IWD_CONFIG_PATH "iwd-config-path" +#define NM_CONFIG_KEYFILE_KEY_MAIN_MIGRATE_IFCFG_RH "migrate-ifcfg-rh" #define NM_CONFIG_KEYFILE_KEY_MAIN_MONITOR_CONNECTION_FILES "monitor-connection-files" #define NM_CONFIG_KEYFILE_KEY_MAIN_NO_AUTO_DEFAULT "no-auto-default" #define NM_CONFIG_KEYFILE_KEY_MAIN_PLUGINS "plugins" @@ -50,6 +51,7 @@ #define NM_CONFIG_KEYFILE_KEY_KEYFILE_PATH "path" #define NM_CONFIG_KEYFILE_KEY_KEYFILE_UNMANAGED_DEVICES "unmanaged-devices" #define NM_CONFIG_KEYFILE_KEY_KEYFILE_HOSTNAME "hostname" +#define NM_CONFIG_KEYFILE_KEY_KEYFILE_RENAME "rename" #define NM_CONFIG_KEYFILE_KEY_IFUPDOWN_MANAGED "managed" |