libnl3/libnl3-route-link-vxlan-Fix-IPv4-set_local-resetting-ce_mas.patch

33 lines
1.2 KiB
Diff
Raw Normal View History

2019-09-30 10:57:19 -04:00
From cd5f6f842905b83d8c49f3eacb17273997036552 Mon Sep 17 00:00:00 2001
From: Tuetuopay <tuetuopay@me.com>
Date: Tue, 15 May 2018 14:11:20 +0200
Subject: [PATCH 53/76] route/link/vxlan: Fix IPv4 set_local resetting ce_mask
rtnl_link_vxlan_set_local() removes the bit for the other IP version in
ce_mask. A missing flag inversion in the v4 part made this removal
reset all bits to 0 except the v6 one, screwing all link configuration.
Fixes: 2e68fb5b02304fa6a3e6429c4fdabb084e61b501
https://github.com/thom311/libnl/pull/192
---
lib/route/link/vxlan.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/route/link/vxlan.c b/lib/route/link/vxlan.c
index 9e578ec..686ac31 100644
--- a/lib/route/link/vxlan.c
+++ b/lib/route/link/vxlan.c
@@ -889,7 +889,7 @@ int rtnl_link_vxlan_set_local(struct rtnl_link *link, struct nl_addr *addr)
memcpy(&vxi->vxi_local, nl_addr_get_binary_addr(addr),
sizeof(vxi->vxi_local));
vxi->ce_mask |= VXLAN_ATTR_LOCAL;
- vxi->ce_mask &= VXLAN_ATTR_LOCAL6;
+ vxi->ce_mask &= ~VXLAN_ATTR_LOCAL6;
} else if ((nl_addr_get_family(addr) == AF_INET6) &&
(nl_addr_get_len(addr) == sizeof(vxi->vxi_local6))) {
memcpy(&vxi->vxi_local6, nl_addr_get_binary_addr(addr),
--
1.8.3.1