From patchwork Mon Jul 6 18:21:59 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Gospodarek X-Patchwork-Id: 491749 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 35D9D140D5E for ; Tue, 7 Jul 2015 04:22:18 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=cumulusnetworks.com header.i=@cumulusnetworks.com header.b=GZkKPyFu; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751748AbbGFSWO (ORCPT ); Mon, 6 Jul 2015 14:22:14 -0400 Received: from mail-qk0-f171.google.com ([209.85.220.171]:34960 "EHLO mail-qk0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751181AbbGFSWM (ORCPT ); Mon, 6 Jul 2015 14:22:12 -0400 Received: by qkbp125 with SMTP id p125so123153030qkb.2 for ; Mon, 06 Jul 2015 11:22:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cumulusnetworks.com; s=google; h=from:to:cc:subject:date:message-id; bh=SgGex/QsYuXHpAw1MjOVweoJAQNcv4ZluFptDEBP9+w=; b=GZkKPyFu2KlfxKLCn1fbA9elFZGG43QS00cgtYcGAlmpj3v+iXAPlqwq+aU3qiYoh7 R/g4CXX1CKfQHdIFqd8o78y+oIM3wC6WNN33ZcBZXjfPWPp3yO7AVmQI2pXqSPNOnXgB JIfYrEgBzkfte/Oha5Dk2XDyTGeauF0/WVWeQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=SgGex/QsYuXHpAw1MjOVweoJAQNcv4ZluFptDEBP9+w=; b=hklKkUOE0zj+guDgl8DrGnbYTyljZCjkRoU8E7P4hvNHL2g9fphshvHO12t8jbyhaO DhOP5KYaP/oprs1tQxRS1a3gDfMhS66NFvey5cYmAL1Q1pcSHKJKKdSNYKBbHWAywnQJ 4yLUG9bxpOZBzRBaPVywSgLPQbfTdmr+dtoPtcyXdrN2X1Za0dftMdrFwKEW2wG01tQK wtyzGa+i57ExsB/r1V2RKIGP9m5rOEVbPOQXCmIx4HCYZaXf/DMyMza6Ey7MoUAf9gCA n896itxd1sj2QlOniQXPPfpPNZfSjnXMMzBFDnvULE6JkeFYa+0IERLkZCNFStBaPIAT h4ZA== X-Gm-Message-State: ALoCoQn6a9LivNnt5QKuzSIx+MbAee2o1M7OVEXVRX4udc+Or3yGQHX1F7SbEaCOZ2lJn0eVYp6V X-Received: by 10.140.232.131 with SMTP id d125mr411219qhc.80.1436206932079; Mon, 06 Jul 2015 11:22:12 -0700 (PDT) Received: from fedora-devel.home.greyhouse.net (cpe-24-211-243-155.nc.res.rr.com. [24.211.243.155]) by mx.google.com with ESMTPSA id 131sm9646536qhf.14.2015.07.06.11.22.11 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 Jul 2015 11:22:11 -0700 (PDT) From: Andy Gospodarek To: netdev@vger.kernel.org Cc: nicolas.dichtel@6wind.com, Andy Gospodarek Subject: [PATCH net-next] net: add support for linkdown sysctl to netconf Date: Mon, 6 Jul 2015 14:21:59 -0400 Message-Id: <1436206919-973-1-git-send-email-gospo@cumulusnetworks.com> X-Mailer: git-send-email 1.9.3 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This kernel patch exports the value of the new ignore_routes_with_linkdown via netconf. Signed-off-by: Andy Gospodarek Suggested-by: Nicolas Dichtel --- include/uapi/linux/netconf.h | 1 + net/ipv4/devinet.c | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/include/uapi/linux/netconf.h b/include/uapi/linux/netconf.h index 669a1f0..23cbd34 100644 --- a/include/uapi/linux/netconf.h +++ b/include/uapi/linux/netconf.h @@ -15,6 +15,7 @@ enum { NETCONFA_RP_FILTER, NETCONFA_MC_FORWARDING, NETCONFA_PROXY_NEIGH, + NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN, __NETCONFA_MAX }; #define NETCONFA_MAX (__NETCONFA_MAX - 1) diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c index 7498716..de2c563 100644 --- a/net/ipv4/devinet.c +++ b/net/ipv4/devinet.c @@ -1740,6 +1740,8 @@ static int inet_netconf_msgsize_devconf(int type) size += nla_total_size(4); if (type == -1 || type == NETCONFA_PROXY_NEIGH) size += nla_total_size(4); + if (type == -1 || type == NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN) + size += nla_total_size(4); return size; } @@ -1780,6 +1782,10 @@ static int inet_netconf_fill_devconf(struct sk_buff *skb, int ifindex, nla_put_s32(skb, NETCONFA_PROXY_NEIGH, IPV4_DEVCONF(*devconf, PROXY_ARP)) < 0) goto nla_put_failure; + if ((type == -1 || type == NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN) && + nla_put_s32(skb, NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN, + IPV4_DEVCONF(*devconf, IGNORE_ROUTES_WITH_LINKDOWN)) < 0) + goto nla_put_failure; nlmsg_end(skb, nlh); return 0; @@ -1819,6 +1825,7 @@ static const struct nla_policy devconf_ipv4_policy[NETCONFA_MAX+1] = { [NETCONFA_FORWARDING] = { .len = sizeof(int) }, [NETCONFA_RP_FILTER] = { .len = sizeof(int) }, [NETCONFA_PROXY_NEIGH] = { .len = sizeof(int) }, + [NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN] = { .len = sizeof(int) }, }; static int inet_netconf_get_devconf(struct sk_buff *in_skb,