mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-27 07:00:09 +01:00
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.
This commit is contained in:
parent
b843c1eab8
commit
b6ff02e76f
1 changed files with 14 additions and 9 deletions
|
|
@ -7463,9 +7463,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,
|
||||
|
|
@ -7540,13 +7543,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);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue