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

