addattr_l(n, 1024, IFLA_VXLAN_GROUP, &gaddr, 4);
else if (daddr)
addattr_l(n, 1024, IFLA_VXLAN_GROUP, &daddr, 4);
- if (!IN6_IS_ADDR_UNSPECIFIED(&gaddr6))
+ else if (!IN6_IS_ADDR_UNSPECIFIED(&gaddr6))
addattr_l(n, 1024, IFLA_VXLAN_GROUP6, &gaddr6, sizeof(struct in6_addr));
else if (!IN6_IS_ADDR_UNSPECIFIED(&daddr6))
addattr_l(n, 1024, IFLA_VXLAN_GROUP6, &daddr6, sizeof(struct in6_addr));
+ else if (preferred_family == AF_INET)
+ addattr_l(n, 1024, IFLA_VXLAN_GROUP, &daddr, 4);
+ else if (preferred_family == AF_INET6)
+ addattr_l(n, 1024, IFLA_VXLAN_GROUP6, &daddr6, sizeof(struct in6_addr));
if (saddr)
addattr_l(n, 1024, IFLA_VXLAN_LOCAL, &saddr, 4);