From b6fae7887ff061d092bb11515f99540ada49684e Mon Sep 17 00:00:00 2001 From: Robert Shearman Date: Tue, 28 Nov 2017 11:16:50 +0000 Subject: [PATCH] vxlan: Make id optional when modifying a link Specifying the IFLA_VXLAN_LINK attribute on a vxlan link modify is optional in the kernel, so make the id argument optional for "ip link set ..." to avoid a user needing to specify it when changing another attribute. Signed-off-by: Robert Shearman --- ip/iplink_vxlan.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ip/iplink_vxlan.c b/ip/iplink_vxlan.c index a0530dda..661eaa79 100644 --- a/ip/iplink_vxlan.c +++ b/ip/iplink_vxlan.c @@ -345,7 +345,7 @@ static int vxlan_parse_opt(struct link_util *lu, int argc, char **argv, return -1; } - if (!metadata && !VXLAN_ATTRSET(attrs, IFLA_VXLAN_ID)) { + if (!metadata && !VXLAN_ATTRSET(attrs, IFLA_VXLAN_ID) && !set_op) { fprintf(stderr, "vxlan: missing virtual network identifier\n"); return -1; } @@ -367,7 +367,8 @@ static int vxlan_parse_opt(struct link_util *lu, int argc, char **argv, "Use 'dstport 0' to get default and quiet this message\n"); } - addattr32(n, 1024, IFLA_VXLAN_ID, vni); + if (VXLAN_ATTRSET(attrs, IFLA_VXLAN_ID)) + addattr32(n, 1024, IFLA_VXLAN_ID, vni); if (gaddr) addattr_l(n, 1024, IFLA_VXLAN_GROUP, &gaddr, 4); else if (daddr)