From patchwork Sun Sep 25 10:52:26 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Maciej_=C5=BBenczykowski?= X-Patchwork-Id: 674577 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 3shkTD6qmTz9s5g for ; Sun, 25 Sep 2016 20:52:48 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=EmrArEWp; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S966003AbcIYKwm (ORCPT ); Sun, 25 Sep 2016 06:52:42 -0400 Received: from mail-pa0-f67.google.com ([209.85.220.67]:33677 "EHLO mail-pa0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S937926AbcIYKwh (ORCPT ); Sun, 25 Sep 2016 06:52:37 -0400 Received: by mail-pa0-f67.google.com with SMTP id oz2so7309016pac.0 for ; Sun, 25 Sep 2016 03:52:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=NMQ7nw6URLBaNzUZoWx9nG9nZ6JUORjgjCybbgHhYNI=; b=EmrArEWpHDRtu28nMBzn+XDX2YCSsn7Ocac9iC034+R+KYukkOMjjXijVTfYy83LlX aaJA61K3To2bamst0hs3f1XrRLsKjHYN71MbYu11rk5ORkRZCRJZQh6j2LgE1Ui3vNBq 80kU6dS9sxPVuhwTFXmgWeWJjCESiU7FPhNLUDsJCVkAJeA92y56hb4slBPpnnXaCoAx pjrK4q9xZYOihnxmJQXRzbPoPfgLJRQsax5XgQePDdKxX5G97Ou6yYVh2ge7YOq5oY9b fXR340N7gitAQElOKH2qG1rNbMEz5m/asUpAiUownQCaNcjcTfAqKcRW/+YMp+kcqMHw dZjg== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=NMQ7nw6URLBaNzUZoWx9nG9nZ6JUORjgjCybbgHhYNI=; b=UmPfW0feRSY/HzLeppltFsIF4p7cWanIWOwolTMsYOs6bdf4QkKv/YfvFCwLPqoqFr A53DwK5YYDlfjbfq2Sbr2EjGgcZ1qdHD6TMON3zQZCJ4aqs1jV5VOwagrvyHBuu6NT+v Ra33dJokg0HJzy7DgaZXwnQ+VyxwsYUOPylEGxKH/x70X8/vd3iDKNN1mFzcsjCjGO8t rNQg2jxoY5lGhRl2Wmv1iIw6D8JMWWvAxQIsW9fXpMutiBK/Setl0TjZuraT5w9tlwkK UUPBVh+izMODH5a49gf2c/Z+D/VHZaayVtgO1JBbCNr9RJX11Tw6mL5OK0DtQcXB8/EX uYLA== X-Gm-Message-State: AE9vXwNg5/6GsIYIXkblFmwnlHGW/XoQtOWKjbS1mFBMZ5eULaoO5zGzZVeTcmDqWvXBAw== X-Received: by 10.66.89.72 with SMTP id bm8mr28983074pab.1.1474800757100; Sun, 25 Sep 2016 03:52:37 -0700 (PDT) Received: from vpbr9.mtv.corp.google.com ([172.24.110.201]) by smtp.gmail.com with ESMTPSA id q14sm23270480pfg.63.2016.09.25.03.52.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 25 Sep 2016 03:52:36 -0700 (PDT) From: =?UTF-8?q?Maciej=20=C5=BBenczykowski?= To: =?UTF-8?q?Maciej=20=C5=BBenczykowski?= , "David S . Miller" Cc: netdev@vger.kernel.org, Erik Kline , Lorenzo Colitti Subject: [PATCH v3 4/7] ipv6 addrconf: add new sysctl 'router_solicitation_max_interval' Date: Sun, 25 Sep 2016 03:52:26 -0700 Message-Id: <1474800749-2306-5-git-send-email-zenczykowski@gmail.com> X-Mailer: git-send-email 2.8.0.rc3.226.g39d4020 In-Reply-To: <1474800749-2306-1-git-send-email-zenczykowski@gmail.com> References: <20160925.060423.854801855957024790.davem@davemloft.net> <1474800749-2306-1-git-send-email-zenczykowski@gmail.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Maciej Żenczykowski Accessible via: /proc/sys/net/ipv6/conf/*/router_solicitation_max_interval For now we default it to the same value as the normal interval. Signed-off-by: Maciej Żenczykowski --- include/linux/ipv6.h | 1 + include/net/addrconf.h | 1 + include/uapi/linux/ipv6.h | 1 + net/ipv6/addrconf.c | 11 +++++++++++ 4 files changed, 14 insertions(+) diff --git a/include/linux/ipv6.h b/include/linux/ipv6.h index c6dbcd84a2c7..7e9a789be5e0 100644 --- a/include/linux/ipv6.h +++ b/include/linux/ipv6.h @@ -18,6 +18,7 @@ struct ipv6_devconf { __s32 dad_transmits; __s32 rtr_solicits; __s32 rtr_solicit_interval; + __s32 rtr_solicit_max_interval; __s32 rtr_solicit_delay; __s32 force_mld_version; __s32 mldv1_unsolicited_report_interval; diff --git a/include/net/addrconf.h b/include/net/addrconf.h index 9826d3a9464c..275e5af4c2f4 100644 --- a/include/net/addrconf.h +++ b/include/net/addrconf.h @@ -3,6 +3,7 @@ #define MAX_RTR_SOLICITATIONS 3 #define RTR_SOLICITATION_INTERVAL (4*HZ) +#define RTR_SOLICITATION_MAX_INTERVAL (4*HZ) #define MIN_VALID_LIFETIME (2*3600) /* 2 hours */ diff --git a/include/uapi/linux/ipv6.h b/include/uapi/linux/ipv6.h index 395876060f50..8c2772340c3f 100644 --- a/include/uapi/linux/ipv6.h +++ b/include/uapi/linux/ipv6.h @@ -177,6 +177,7 @@ enum { DEVCONF_DROP_UNICAST_IN_L2_MULTICAST, DEVCONF_DROP_UNSOLICITED_NA, DEVCONF_KEEP_ADDR_ON_DOWN, + DEVCONF_RTR_SOLICIT_MAX_INTERVAL, DEVCONF_MAX }; diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index 6c63bf06fbcf..255be34cdbce 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -187,6 +187,7 @@ static struct ipv6_devconf ipv6_devconf __read_mostly = { .dad_transmits = 1, .rtr_solicits = MAX_RTR_SOLICITATIONS, .rtr_solicit_interval = RTR_SOLICITATION_INTERVAL, + .rtr_solicit_max_interval = RTR_SOLICITATION_MAX_INTERVAL, .rtr_solicit_delay = MAX_RTR_SOLICITATION_DELAY, .use_tempaddr = 0, .temp_valid_lft = TEMP_VALID_LIFETIME, @@ -232,6 +233,7 @@ static struct ipv6_devconf ipv6_devconf_dflt __read_mostly = { .dad_transmits = 1, .rtr_solicits = MAX_RTR_SOLICITATIONS, .rtr_solicit_interval = RTR_SOLICITATION_INTERVAL, + .rtr_solicit_max_interval = RTR_SOLICITATION_MAX_INTERVAL, .rtr_solicit_delay = MAX_RTR_SOLICITATION_DELAY, .use_tempaddr = 0, .temp_valid_lft = TEMP_VALID_LIFETIME, @@ -4891,6 +4893,8 @@ static inline void ipv6_store_devconf(struct ipv6_devconf *cnf, array[DEVCONF_RTR_SOLICITS] = cnf->rtr_solicits; array[DEVCONF_RTR_SOLICIT_INTERVAL] = jiffies_to_msecs(cnf->rtr_solicit_interval); + array[DEVCONF_RTR_SOLICIT_MAX_INTERVAL] = + jiffies_to_msecs(cnf->rtr_solicit_max_interval); array[DEVCONF_RTR_SOLICIT_DELAY] = jiffies_to_msecs(cnf->rtr_solicit_delay); array[DEVCONF_FORCE_MLD_VERSION] = cnf->force_mld_version; @@ -5771,6 +5775,13 @@ static const struct ctl_table addrconf_sysctl[] = { .proc_handler = proc_dointvec_jiffies, }, { + .procname = "router_solicitation_max_interval", + .data = &ipv6_devconf.rtr_solicit_max_interval, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec_jiffies, + }, + { .procname = "router_solicitation_delay", .data = &ipv6_devconf.rtr_solicit_delay, .maxlen = sizeof(int),