From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roopa Prabhu Subject: [PATCH net-next v2 1/3] vxlan: support changelink for a few more attributes Date: Wed, 28 Nov 2018 14:27:57 -0800 Message-ID: <1543444079-29883-2-git-send-email-roopa@cumulusnetworks.com> References: <1543444079-29883-1-git-send-email-roopa@cumulusnetworks.com> Cc: netdev@vger.kernel.org To: davem@davemloft.net Return-path: Received: from mail-pl1-f196.google.com ([209.85.214.196]:38371 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726485AbeK2JbP (ORCPT ); Thu, 29 Nov 2018 04:31:15 -0500 Received: by mail-pl1-f196.google.com with SMTP id e5so18072723plb.5 for ; Wed, 28 Nov 2018 14:28:05 -0800 (PST) In-Reply-To: <1543444079-29883-1-git-send-email-roopa@cumulusnetworks.com> Sender: netdev-owner@vger.kernel.org List-ID: From: Roopa Prabhu We started very conservative when supporting changelink especially because not all attribute changes could be tested. This patch opens up a few more attributes for changelink. The reason for choosing this set of attributes is based on code references for these attributes. I have tested TTL changes and did some changelink api testing to sanity test the others. Signed-off-by: Roopa Prabhu --- drivers/net/vxlan.c | 36 ++++-------------------------------- 1 file changed, 4 insertions(+), 32 deletions(-) diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c index 9110662..73caa65 100644 --- a/drivers/net/vxlan.c +++ b/drivers/net/vxlan.c @@ -3438,11 +3438,8 @@ static int vxlan_nl2conf(struct nlattr *tb[], struct nlattr *data[], if (data[IFLA_VXLAN_TTL]) conf->ttl = nla_get_u8(data[IFLA_VXLAN_TTL]); - if (data[IFLA_VXLAN_TTL_INHERIT]) { - if (changelink) - return -EOPNOTSUPP; + if (data[IFLA_VXLAN_TTL_INHERIT]) conf->flags |= VXLAN_F_TTL_INHERIT; - } if (data[IFLA_VXLAN_LABEL]) conf->label = nla_get_be32(data[IFLA_VXLAN_LABEL]) & @@ -3462,29 +3459,21 @@ static int vxlan_nl2conf(struct nlattr *tb[], struct nlattr *data[], conf->age_interval = nla_get_u32(data[IFLA_VXLAN_AGEING]); if (data[IFLA_VXLAN_PROXY]) { - if (changelink) - return -EOPNOTSUPP; if (nla_get_u8(data[IFLA_VXLAN_PROXY])) conf->flags |= VXLAN_F_PROXY; } if (data[IFLA_VXLAN_RSC]) { - if (changelink) - return -EOPNOTSUPP; if (nla_get_u8(data[IFLA_VXLAN_RSC])) conf->flags |= VXLAN_F_RSC; } if (data[IFLA_VXLAN_L2MISS]) { - if (changelink) - return -EOPNOTSUPP; if (nla_get_u8(data[IFLA_VXLAN_L2MISS])) conf->flags |= VXLAN_F_L2MISS; } if (data[IFLA_VXLAN_L3MISS]) { - if (changelink) - return -EOPNOTSUPP; if (nla_get_u8(data[IFLA_VXLAN_L3MISS])) conf->flags |= VXLAN_F_L3MISS; } @@ -3527,50 +3516,33 @@ static int vxlan_nl2conf(struct nlattr *tb[], struct nlattr *data[], } if (data[IFLA_VXLAN_UDP_ZERO_CSUM6_TX]) { - if (changelink) - return -EOPNOTSUPP; if (nla_get_u8(data[IFLA_VXLAN_UDP_ZERO_CSUM6_TX])) conf->flags |= VXLAN_F_UDP_ZERO_CSUM6_TX; } if (data[IFLA_VXLAN_UDP_ZERO_CSUM6_RX]) { - if (changelink) - return -EOPNOTSUPP; if (nla_get_u8(data[IFLA_VXLAN_UDP_ZERO_CSUM6_RX])) conf->flags |= VXLAN_F_UDP_ZERO_CSUM6_RX; } if (data[IFLA_VXLAN_REMCSUM_TX]) { - if (changelink) - return -EOPNOTSUPP; if (nla_get_u8(data[IFLA_VXLAN_REMCSUM_TX])) conf->flags |= VXLAN_F_REMCSUM_TX; } if (data[IFLA_VXLAN_REMCSUM_RX]) { - if (changelink) - return -EOPNOTSUPP; if (nla_get_u8(data[IFLA_VXLAN_REMCSUM_RX])) conf->flags |= VXLAN_F_REMCSUM_RX; } - if (data[IFLA_VXLAN_GBP]) { - if (changelink) - return -EOPNOTSUPP; + if (data[IFLA_VXLAN_GBP]) conf->flags |= VXLAN_F_GBP; - } - if (data[IFLA_VXLAN_GPE]) { - if (changelink) - return -EOPNOTSUPP; + if (data[IFLA_VXLAN_GPE]) conf->flags |= VXLAN_F_GPE; - } - if (data[IFLA_VXLAN_REMCSUM_NOPARTIAL]) { - if (changelink) - return -EOPNOTSUPP; + if (data[IFLA_VXLAN_REMCSUM_NOPARTIAL]) conf->flags |= VXLAN_F_REMCSUM_NOPARTIAL; - } if (tb[IFLA_MTU]) { if (changelink) -- 2.1.4