Commit 619bb6b9 authored by Thomas Haller's avatar Thomas Haller

platform: compare routing rules according to kernel support for FRA_L3MDEV

Also, in nm_platform_routing_rule_cmp() always compare the routing
table field, also if l3mdev is set. For kernel, we cannot set table and
l3mdev together, hence such rules don't really exist (or if we try to
configure it, it will be rejected by kernel). But as far as
nm_platform_routing_rule_cmp() is concerned, if the table is set,
always compare it.
parent 83732dd3
Pipeline #31426 failed with stages
in 40 minutes and 38 seconds
......@@ -7459,9 +7459,12 @@ nm_platform_routing_rule_hash_update (const NMPlatformRoutingRule *obj,
: FALSE)),
obj->suppress_prefixlen_inverse,
obj->suppress_ifgroup_inverse,
( cmp_full
? obj->l3mdev
: (guint8) !!obj->l3mdev),
( _routing_rule_compare (cmp_type,
NM_PLATFORM_KERNEL_SUPPORT_TYPE_FRA_L3MDEV)
? ( cmp_full
? (guint16) obj->l3mdev
: (guint16) !!obj->l3mdev)
: G_MAXUINT16),
obj->action,
obj->tos,
obj->src_len,
......@@ -7536,13 +7539,15 @@ nm_platform_routing_rule_cmp (const NMPlatformRoutingRule *a,
NM_CMP_FIELD (a, b, priority);
NM_CMP_FIELD (a, b, tun_id);
if (cmp_full)
NM_CMP_FIELD (a, b, l3mdev);
else
NM_CMP_FIELD_BOOL (a, b, l3mdev);
if (_routing_rule_compare (cmp_type,
NM_PLATFORM_KERNEL_SUPPORT_TYPE_FRA_L3MDEV)) {
if (cmp_full)
NM_CMP_FIELD (a, b, l3mdev);
else
NM_CMP_FIELD_BOOL (a, b, l3mdev);
}
if (cmp_full || !a->l3mdev)
NM_CMP_FIELD (a, b, table);
NM_CMP_FIELD (a, b, table);
NM_CMP_DIRECT (a->flags & flags_mask, b->flags & flags_mask);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment