From b64da5a5e0899d9d0b7e4a6cf3ce9f8c1cad5335 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Fri, 19 Oct 2012 13:25:17 -0700 Subject: [PATCH] vxlan: only send group address if defined Don't send 0 as group address. --- ip/iplink_vxlan.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ip/iplink_vxlan.c b/ip/iplink_vxlan.c index 7957781ca..ba5c4ab61 100644 --- a/ip/iplink_vxlan.c +++ b/ip/iplink_vxlan.c @@ -139,8 +139,10 @@ static int vxlan_parse_opt(struct link_util *lu, int argc, char **argv, return -1; } addattr32(n, 1024, IFLA_VXLAN_ID, vni); - addattr_l(n, 1024, IFLA_VXLAN_GROUP, &gaddr, 4); - addattr_l(n, 1024, IFLA_VXLAN_LOCAL, &saddr, 4); + if (gaddr) + addattr_l(n, 1024, IFLA_VXLAN_GROUP, &gaddr, 4); + if (saddr) + addattr_l(n, 1024, IFLA_VXLAN_LOCAL, &saddr, 4); if (link) addattr32(n, 1024, IFLA_VXLAN_LINK, link); addattr8(n, 1024, IFLA_VXLAN_TTL, ttl); @@ -179,16 +181,14 @@ static void vxlan_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[]) fprintf(f, "id %u ", vni); if (tb[IFLA_VXLAN_GROUP]) { - __u32 addr = rta_getattr_u32(tb[IFLA_VXLAN_GROUP]); - + __be32 addr = rta_getattr_u32(tb[IFLA_VXLAN_GROUP]); if (addr) fprintf(f, "group %s ", format_host(AF_INET, 4, &addr, s1, sizeof(s1))); } if (tb[IFLA_VXLAN_LOCAL]) { - unsigned addr = rta_getattr_u32(tb[IFLA_VXLAN_LOCAL]); - + __be32 addr = rta_getattr_u32(tb[IFLA_VXLAN_LOCAL]); if (addr) fprintf(f, "local %s ", format_host(AF_INET, 4, &addr, s1, sizeof(s1))); -- 2.47.2