device: merge branch 'th/device-cleanup-addr-family'

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/665
This commit is contained in:
Thomas Haller
2020-11-01 16:47:14 +01:00
12 changed files with 338 additions and 443 deletions

View File

@@ -57,16 +57,12 @@ typedef enum { /*< skip >*/
/* aliases: */
LOGD_DHCP = LOGD_DHCP4 | LOGD_DHCP6,
LOGD_IP = LOGD_IP4 | LOGD_IP6,
#define LOGD_DHCPX(is_ipv4) ((is_ipv4) ? LOGD_DHCP4 : LOGD_DHCP6)
#define LOGD_IPX(is_ipv4) ((is_ipv4) ? LOGD_IP4 : LOGD_IP6)
} NMLogDomain;
static inline NMLogDomain
LOGD_DHCP_from_addr_family(int addr_family)
{
nm_assert_addr_family(addr_family);
return addr_family == AF_INET6 ? LOGD_DHCP6 : LOGD_DHCP4;
}
/* Log levels */
typedef enum { /*< skip >*/
LOGL_TRACE,

View File

@@ -152,7 +152,7 @@ nm_utils_get_ip_config_method(NMConnection *connection, int addr_family)
s_con = nm_connection_get_setting_connection(connection);
if (addr_family == AF_INET) {
if (NM_IS_IPv4(addr_family)) {
g_return_val_if_fail(s_con != NULL, NM_SETTING_IP4_CONFIG_METHOD_AUTO);
s_ip = nm_connection_get_setting_ip4_config(connection);
@@ -164,19 +164,15 @@ nm_utils_get_ip_config_method(NMConnection *connection, int addr_family)
return method;
}
if (addr_family == AF_INET6) {
g_return_val_if_fail(s_con != NULL, NM_SETTING_IP6_CONFIG_METHOD_AUTO);
g_return_val_if_fail(s_con != NULL, NM_SETTING_IP6_CONFIG_METHOD_AUTO);
s_ip = nm_connection_get_setting_ip6_config(connection);
if (!s_ip)
return NM_SETTING_IP6_CONFIG_METHOD_IGNORE;
s_ip = nm_connection_get_setting_ip6_config(connection);
if (!s_ip)
return NM_SETTING_IP6_CONFIG_METHOD_IGNORE;
method = nm_setting_ip_config_get_method(s_ip);
g_return_val_if_fail(method != NULL, NM_SETTING_IP6_CONFIG_METHOD_AUTO);
return method;
}
g_return_val_if_reached("" /* bogus */);
method = nm_setting_ip_config_get_method(s_ip);
g_return_val_if_fail(method != NULL, NM_SETTING_IP6_CONFIG_METHOD_AUTO);
return method;
}
gboolean
@@ -204,7 +200,7 @@ nm_utils_connection_has_default_route(NMConnection *connection,
}
method = nm_utils_get_ip_config_method(connection, addr_family);
if (addr_family == AF_INET) {
if (NM_IS_IPv4(addr_family)) {
if (NM_IN_STRSET(method,
NM_SETTING_IP4_CONFIG_METHOD_DISABLED,
NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL))
@@ -1312,7 +1308,7 @@ nm_utils_ip_route_attribute_to_platform(int addr_family,
else
r->table_coerced = nm_platform_route_table_coerce(table ?: (route_table ?: RT_TABLE_MAIN));
if (addr_family == AF_INET) {
if (NM_IS_IPv4(addr_family)) {
guint8 scope;
GET_ATTR(NM_IP_ROUTE_ATTRIBUTE_TOS, r4->tos, BYTE, byte, 0);
@@ -1338,14 +1334,14 @@ nm_utils_ip_route_attribute_to_platform(int addr_family,
if ((variant = nm_ip_route_get_attribute(s_route, NM_IP_ROUTE_ATTRIBUTE_SRC))
&& g_variant_is_of_type(variant, G_VARIANT_TYPE_STRING)) {
if (inet_pton(addr_family, g_variant_get_string(variant, NULL), &addr) == 1) {
if (addr_family == AF_INET)
if (NM_IS_IPv4(addr_family))
r4->pref_src = addr.addr4;
else
r6->pref_src = addr.addr6;
}
}
if (addr_family == AF_INET6
if (!NM_IS_IPv4(addr_family)
&& (variant = nm_ip_route_get_attribute(s_route, NM_IP_ROUTE_ATTRIBUTE_FROM))
&& g_variant_is_of_type(variant, G_VARIANT_TYPE_STRING)) {
int prefix;
@@ -1392,7 +1388,7 @@ nm_utils_ip_addresses_to_dbus(int addr_family,
GVariant ** out_address_data,
GVariant ** out_addresses)
{
const gboolean IS_IPv4 = NM_IS_IPv4(addr_family);
const int IS_IPv4 = NM_IS_IPv4(addr_family);
GVariantBuilder builder_data;
GVariantBuilder builder_legacy;
char addr_str[NM_UTILS_INET_ADDRSTRLEN];
@@ -1516,7 +1512,7 @@ nm_utils_ip_routes_to_dbus(int addr_family,
GVariant ** out_route_data,
GVariant ** out_routes)
{
const gboolean IS_IPv4 = NM_IS_IPv4(addr_family);
const int IS_IPv4 = NM_IS_IPv4(addr_family);
NMDedupMultiIter iter;
const NMPObject *obj;
GVariantBuilder builder_data;

View File

@@ -54,17 +54,7 @@ gboolean nm_device_set_ip_iface(NMDevice *self, const char *iface);
void nm_device_activate_schedule_stage3_ip_config_start(NMDevice *device);
gboolean nm_device_activate_stage3_ip4_start(NMDevice *self);
gboolean nm_device_activate_stage3_ip6_start(NMDevice *self);
static inline gboolean
nm_device_activate_stage3_ip_start(NMDevice *self, int addr_family)
{
if (NM_IS_IPv4(addr_family))
return nm_device_activate_stage3_ip4_start(self);
return nm_device_activate_stage3_ip6_start(self);
}
gboolean nm_device_activate_stage3_ip_start(NMDevice *self, int addr_family);
gboolean nm_device_bring_up(NMDevice *self, gboolean wait, gboolean *no_firmware);

File diff suppressed because it is too large Load Diff

View File

@@ -209,7 +209,7 @@ nm_utils_ip6_route_metric_normalize(guint32 metric)
static inline guint32
nm_utils_ip_route_metric_normalize(int addr_family, guint32 metric)
{
return addr_family == AF_INET6 ? nm_utils_ip6_route_metric_normalize(metric) : metric;
return NM_IS_IPv4(addr_family) ? metric : nm_utils_ip6_route_metric_normalize(metric);
}
static inline guint32

View File

@@ -587,9 +587,7 @@ _route_valid_6(const NMPlatformIP6Route *r)
static gboolean
_route_valid(int addr_family, gconstpointer r)
{
nm_assert_addr_family(addr_family);
return addr_family == AF_INET ? _route_valid_4(r) : _route_valid_6(r);
return NM_IS_IPv4(addr_family) ? _route_valid_4(r) : _route_valid_6(r);
}
static gboolean
@@ -1204,8 +1202,7 @@ nm_l3_config_data_add_address_full(NML3ConfigData * self,
nm_assert(!obj_new || NMP_OBJECT_GET_ADDR_FAMILY(obj_new) == addr_family);
changed = _l3_config_data_add_obj(self->multi_idx,
addr_family == AF_INET ? &self->idx_addresses_4
: &self->idx_addresses_6,
&self->idx_addresses_x[NM_IS_IPv4(addr_family)],
self->ifindex,
obj_new,
(const NMPlatformObject *) pl_new,
@@ -1252,7 +1249,7 @@ nm_l3_config_data_add_route_full(NML3ConfigData * self,
else
self->has_routes_with_type_local_6_set = FALSE;
if (_l3_config_data_add_obj(self->multi_idx,
addr_family == AF_INET ? &self->idx_routes_4 : &self->idx_routes_6,
&self->idx_routes_x[NM_IS_IPv4(addr_family)],
self->ifindex,
obj_new,
(const NMPlatformObject *) pl_new,

View File

@@ -223,21 +223,13 @@ const NMDedupMultiHeadEntry *nm_l3_config_data_lookup_objs(const NML3ConfigData
static inline const NMDedupMultiHeadEntry *
nm_l3_config_data_lookup_addresses(const NML3ConfigData *self, int addr_family)
{
nm_assert_addr_family(addr_family);
return nm_l3_config_data_lookup_objs(self,
addr_family == AF_INET ? NMP_OBJECT_TYPE_IP4_ADDRESS
: NMP_OBJECT_TYPE_IP6_ADDRESS);
return nm_l3_config_data_lookup_objs(self, NMP_OBJECT_TYPE_IP_ADDRESS(NM_IS_IPv4(addr_family)));
}
static inline const NMDedupMultiHeadEntry *
nm_l3_config_data_lookup_routes(const NML3ConfigData *self, int addr_family)
{
nm_assert_addr_family(addr_family);
return nm_l3_config_data_lookup_objs(self,
addr_family == AF_INET ? NMP_OBJECT_TYPE_IP4_ROUTE
: NMP_OBJECT_TYPE_IP6_ROUTE);
return nm_l3_config_data_lookup_objs(self, NMP_OBJECT_TYPE_IP_ROUTE(NM_IS_IPv4(addr_family)));
}
#define nm_l3_config_data_iter_obj_for_each(iter, self, obj, type) \

View File

@@ -637,7 +637,7 @@ _l3cfg_externally_removed_objs_track(NML3Cfg *self, const NMPObject *obj, gboole
static void
_l3cfg_externally_removed_objs_pickup(NML3Cfg *self, int addr_family)
{
const gboolean IS_IPv4 = NM_IS_IPv4(addr_family);
const int IS_IPv4 = NM_IS_IPv4(addr_family);
NMDedupMultiIter iter;
const NMPObject *obj;
@@ -3233,7 +3233,7 @@ _l3_commit_one(NML3Cfg * self,
gboolean changed_combined_l3cd,
const NML3ConfigData *l3cd_old)
{
const gboolean IS_IPv4 = NM_IS_IPv4(addr_family);
const int IS_IPv4 = NM_IS_IPv4(addr_family);
gs_unref_ptrarray GPtrArray *addresses = NULL;
gs_unref_ptrarray GPtrArray *routes = NULL;
gs_unref_ptrarray GPtrArray *addresses_prune = NULL;

View File

@@ -17,18 +17,6 @@
#define NM_LOG_CONFIG_BACKEND_SYSLOG "syslog"
#define NM_LOG_CONFIG_BACKEND_JOURNAL "journal"
static inline NMLogDomain
LOGD_IP_from_af(int addr_family)
{
switch (addr_family) {
case AF_INET:
return LOGD_IP4;
case AF_INET6:
return LOGD_IP6;
}
g_return_val_if_reached(LOGD_NONE);
}
#define nm_log_err(domain, ...) nm_log(LOGL_ERR, (domain), NULL, NULL, __VA_ARGS__)
#define nm_log_warn(domain, ...) nm_log(LOGL_WARN, (domain), NULL, NULL, __VA_ARGS__)
#define nm_log_info(domain, ...) nm_log(LOGL_INFO, (domain), NULL, NULL, __VA_ARGS__)

View File

@@ -3740,7 +3740,7 @@ _addr_array_clean_expired(int addr_family,
}
#endif
if (addr_family == AF_INET6 && NM_FLAGS_HAS(a->n_ifa_flags, IFA_F_TEMPORARY)) {
if (!NM_IS_IPv4(addr_family) && NM_FLAGS_HAS(a->n_ifa_flags, IFA_F_TEMPORARY)) {
/* temporary addresses are never added explicitly by NetworkManager but
* kernel adds them via mngtempaddr flag.
*
@@ -3981,7 +3981,7 @@ nm_platform_ip_address_sync(NMPlatform *self,
GPtrArray * addresses_prune)
{
const gint32 now = nm_utils_get_monotonic_timestamp_sec();
const gboolean IS_IPv4 = NM_IS_IPv4(addr_family);
const int IS_IPv4 = NM_IS_IPv4(addr_family);
gs_unref_hashtable GHashTable *known_addresses_idx = NULL;
GPtrArray * plat_addresses;
GHashTable * known_subnets = NULL;
@@ -4330,7 +4330,7 @@ nm_platform_ip_address_get_prune_list(NMPlatform *self,
int ifindex,
gboolean exclude_ipv6_temporary_addrs)
{
const gboolean IS_IPv4 = NM_IS_IPv4(addr_family);
const int IS_IPv4 = NM_IS_IPv4(addr_family);
const NMDedupMultiHeadEntry *head_entry;
NMPLookup lookup;
GPtrArray * result;
@@ -4382,10 +4382,7 @@ nm_platform_ip_route_get_prune_list(NMPlatform * self,
NM_IP_ROUTE_TABLE_SYNC_MODE_FULL,
NM_IP_ROUTE_TABLE_SYNC_MODE_ALL));
nmp_lookup_init_object(&lookup,
addr_family == AF_INET ? NMP_OBJECT_TYPE_IP4_ROUTE
: NMP_OBJECT_TYPE_IP6_ROUTE,
ifindex);
nmp_lookup_init_object(&lookup, NMP_OBJECT_TYPE_IP_ROUTE(NM_IS_IPv4(addr_family)), ifindex);
head_entry = nm_platform_lookup(self, &lookup);
if (!head_entry)
return NULL;
@@ -4441,6 +4438,7 @@ nm_platform_ip_route_sync(NMPlatform *self,
GPtrArray * routes_prune,
GPtrArray **out_temporary_not_available)
{
const int IS_IPv4 = NM_IS_IPv4(addr_family);
const NMPlatformVTableRoute *vt;
gs_unref_hashtable GHashTable *routes_idx = NULL;
const NMPObject * conf_o;
@@ -4450,10 +4448,8 @@ nm_platform_ip_route_sync(NMPlatform *self,
gboolean success = TRUE;
char sbuf1[sizeof(_nm_utils_to_string_buffer)];
char sbuf2[sizeof(_nm_utils_to_string_buffer)];
const gboolean IS_IPv4 = (addr_family == AF_INET);
nm_assert(NM_IS_PLATFORM(self));
nm_assert(NM_IN_SET(addr_family, AF_INET, AF_INET6));
nm_assert(ifindex > 0);
vt = &nm_platform_vtable_route.vx[IS_IPv4];
@@ -4665,9 +4661,9 @@ sync_route_add:
prune_o = routes_prune->pdata[i];
nm_assert((addr_family == AF_INET
nm_assert((NM_IS_IPv4(addr_family)
&& NMP_OBJECT_GET_TYPE(prune_o) == NMP_OBJECT_TYPE_IP4_ROUTE)
|| (addr_family == AF_INET6
|| (!NM_IS_IPv4(addr_family)
&& NMP_OBJECT_GET_TYPE(prune_o) == NMP_OBJECT_TYPE_IP6_ROUTE));
if (routes_idx && g_hash_table_lookup(routes_idx, prune_o))
@@ -4810,8 +4806,8 @@ _ip_route_add(NMPlatform *self, NMPNlmFlags flags, int addr_family, gconstpointe
_LOG3D("route: %-10s IPv%c route: %s",
_nmp_nlm_flag_to_string(flags & NMP_NLM_FLAG_FMASK),
nm_utils_addr_family_to_char(addr_family),
addr_family == AF_INET ? nm_platform_ip4_route_to_string(route, sbuf, sizeof(sbuf))
: nm_platform_ip6_route_to_string(route, sbuf, sizeof(sbuf)));
NM_IS_IPv4(addr_family) ? nm_platform_ip4_route_to_string(route, sbuf, sizeof(sbuf))
: nm_platform_ip6_route_to_string(route, sbuf, sizeof(sbuf)));
return klass->ip_route_add(self, flags, addr_family, route);
}

View File

@@ -89,7 +89,7 @@ nmtstp_platform_ip6_address_get_all(NMPlatform *self, int ifindex)
const NMPlatformIPAddress *
nmtstp_platform_ip_address_find(NMPlatform *self, int ifindex, int addr_family, gconstpointer addr)
{
const gboolean IS_IPv4 = NM_IS_IPv4(addr_family);
const int IS_IPv4 = NM_IS_IPv4(addr_family);
const NMPlatformIPAddress *found = NULL;
NMDedupMultiIter iter;
const NMPObject * obj;

View File

@@ -18,8 +18,8 @@ get_missing_options()
get_src_con_defaults()
{
sed -ne 's/.*\<NM_CON_DEFAULT\s*("\([^"]*\)").*/\1/p' $(find "$srcdir/src/" -name \*.c ! -name test\*.c)
sed -ne 's/.*\<NM_CON_DEFAULT_NOP\s*("\([^"]*\)").*/\1/p' $(find "$srcdir/src/" -name \*.c ! -name test\*.c)
sed -n 's/\<NM_CON_DEFAULT/\n\0/gp' $(find "$srcdir/src/" -name \*.c ! -name test\*.c) |
sed -n 's/.*\<NM_CON_DEFAULT\(_NOP\)\?\s*("\([^"]*\)").*/\2/p'
}
get_man_con_defaults()