vxlan: only send group address if defined
Don't send 0 as group address.
This commit is contained in:
parent
2d596120cf
commit
b64da5a5e0
|
|
@ -139,8 +139,10 @@ static int vxlan_parse_opt(struct link_util *lu, int argc, char **argv,
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
addattr32(n, 1024, IFLA_VXLAN_ID, vni);
|
addattr32(n, 1024, IFLA_VXLAN_ID, vni);
|
||||||
addattr_l(n, 1024, IFLA_VXLAN_GROUP, &gaddr, 4);
|
if (gaddr)
|
||||||
addattr_l(n, 1024, IFLA_VXLAN_LOCAL, &saddr, 4);
|
addattr_l(n, 1024, IFLA_VXLAN_GROUP, &gaddr, 4);
|
||||||
|
if (saddr)
|
||||||
|
addattr_l(n, 1024, IFLA_VXLAN_LOCAL, &saddr, 4);
|
||||||
if (link)
|
if (link)
|
||||||
addattr32(n, 1024, IFLA_VXLAN_LINK, link);
|
addattr32(n, 1024, IFLA_VXLAN_LINK, link);
|
||||||
addattr8(n, 1024, IFLA_VXLAN_TTL, ttl);
|
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);
|
fprintf(f, "id %u ", vni);
|
||||||
|
|
||||||
if (tb[IFLA_VXLAN_GROUP]) {
|
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)
|
if (addr)
|
||||||
fprintf(f, "group %s ",
|
fprintf(f, "group %s ",
|
||||||
format_host(AF_INET, 4, &addr, s1, sizeof(s1)));
|
format_host(AF_INET, 4, &addr, s1, sizeof(s1)));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tb[IFLA_VXLAN_LOCAL]) {
|
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)
|
if (addr)
|
||||||
fprintf(f, "local %s ",
|
fprintf(f, "local %s ",
|
||||||
format_host(AF_INET, 4, &addr, s1, sizeof(s1)));
|
format_host(AF_INET, 4, &addr, s1, sizeof(s1)));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue