From patchwork Wed Oct 13 22:27:07 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Prestwood X-Patchwork-Id: 12557417 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7C450C433EF for ; Wed, 13 Oct 2021 22:32:34 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6280E60F11 for ; Wed, 13 Oct 2021 22:32:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231148AbhJMWeh (ORCPT ); Wed, 13 Oct 2021 18:34:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49634 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230405AbhJMWeg (ORCPT ); Wed, 13 Oct 2021 18:34:36 -0400 Received: from mail-pf1-x42b.google.com (mail-pf1-x42b.google.com [IPv6:2607:f8b0:4864:20::42b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D6C15C061570 for ; Wed, 13 Oct 2021 15:32:32 -0700 (PDT) Received: by mail-pf1-x42b.google.com with SMTP id g14so3779561pfm.1 for ; Wed, 13 Oct 2021 15:32:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=PB57NM3C0OzrR4DZ8FgQUtdNhkfvLC9NqulxMvh9XMY=; b=O2PqiMqG4SQBXPsRWkr8rjTiZrjaGPqx2knTDaRJCHqw08ETlPij/MSmFjxhCg1eUa Jd+GipOAyxWj0tLurOriV+2v2s9x7ghcAuOZyTrXxfMWD3FdrAOGfqvkLsHxeOe6qiIW rOfpNE5zugyYkP2lm3XdVJjtEPqUpCNTscWaVgvZPh0Z+zRWSzjOiGOAVtcIXBX1uAef 9EKFvR9/dIE7x4hcte7lj8HL7yoic2gj8yjeKi32DrRtTanKbEY/Llud3XUz8EVZbBLj uCuNPiT8VaWWa5WlEMYQR6KE1XCDybIWRvhOh7HxBwWJ7m/GgA+DRBJNyv3H2aZ8hu1K KHgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=PB57NM3C0OzrR4DZ8FgQUtdNhkfvLC9NqulxMvh9XMY=; b=cbJDf8s03WhgYYbn0TY5NTzmH7Dv1IvWk7o+6fdjCsqJxzMEXImAXOwxQeutM3LpHP 2wehDiard1Ppoo8Iaem+1+k4dd7zg9hxsbUIDzSwLmfBD506li2w4eQGDAQuSNOR7N8V pPDHUlNXqFDxsnnLZeFCKp6jQr6CWlj1WMfv/LdTDvRq1ALi76fQ3qBhHRXcbVlZMoLK QjaHqXgO4HtrHm96BYHqeREeEGWjPFSHanBOqc0RxKadNSmw2Y5ZZdlfcV9vNFkBrLVC HlIGYabfSHE3NK0B8w94e+5JHknrtOt12quYMrvtqsXdH2RkkMxu0rHrr/OnlC/7Yedm 7gRw== X-Gm-Message-State: AOAM532tKLeKzZxogLEbJVVMrVsH8Wshckhvd676KmLMo3T1F+pjV5P5 aW+ju1Z1hqf0Ldw2iiLKhjijEyNkjLM= X-Google-Smtp-Source: ABdhPJw1ughS9AvN6iwTWBV96HFDZsk/CyAsx7MF+7nCRzmhZtNoIelwhgE0uSPJsGOPwED5Jn2QAQ== X-Received: by 2002:a62:64c9:0:b0:44d:27ba:9a8e with SMTP id y192-20020a6264c9000000b0044d27ba9a8emr2020595pfb.2.1634164351811; Wed, 13 Oct 2021 15:32:31 -0700 (PDT) Received: from localhost.localdomain ([50.39.163.188]) by smtp.gmail.com with ESMTPSA id i2sm6546091pjt.19.2021.10.13.15.32.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Oct 2021 15:32:31 -0700 (PDT) From: James Prestwood To: netdev@vger.kernel.org Cc: James Prestwood Subject: [PATCH 1/4] net: arp: introduce arp_evict_nocarrier sysctl parameter Date: Wed, 13 Oct 2021 15:27:07 -0700 Message-Id: <20211013222710.4162634-1-prestwoj@gmail.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org This change introduces a new sysctl parameter, arp_evict_nocarrier. When set (default) the ARP cache will be cleared on a NOCARRIER event. This new option has been defaulted to '1' which maintains existing behavior. Clearing the ARP cache on NOCARRIER is relatively new, introduced by: commit 859bd2ef1fc1110a8031b967ee656c53a6260a76 Author: David Ahern Date: Thu Oct 11 20:33:49 2018 -0700 net: Evict neighbor entries on carrier down The reason for this changes is to prevent the ARP cache from being cleared when a wireless device roams. Specifically for wireless roams the ARP cache should not be cleared because the underlying network has not changed. Clearing the ARP cache in this case can introduce significant delays sending out packets after a roam. A user reported such a situation here: https://lore.kernel.org/linux-wireless/CACsRnHWa47zpx3D1oDq9JYnZWniS8yBwW1h0WAVZ6vrbwL_S0w@mail.gmail.com/ After some investigation it was found that the kernel was holding onto packets until ARP finished which resulted in this 1 second delay. It was also found that the first ARP who-has was never responded to, which is actually what caues the delay. This change is more or less working around this behavior, but again, there is no reason to clear the cache on a roam anyways. As for the unanswered who-has, we know the packet made it OTA since it was seen while monitoring. Why it never received a response is unknown. Signed-off-by: James Prestwood --- include/linux/inetdevice.h | 1 + include/uapi/linux/ip.h | 1 + include/uapi/linux/sysctl.h | 1 + net/ipv4/arp.c | 4 +++- net/ipv4/devinet.c | 4 ++++ 5 files changed, 10 insertions(+), 1 deletion(-) diff --git a/include/linux/inetdevice.h b/include/linux/inetdevice.h index 53aa0343bf69..63180170fdbd 100644 --- a/include/linux/inetdevice.h +++ b/include/linux/inetdevice.h @@ -133,6 +133,7 @@ static inline void ipv4_devconf_setall(struct in_device *in_dev) #define IN_DEV_ARP_ANNOUNCE(in_dev) IN_DEV_MAXCONF((in_dev), ARP_ANNOUNCE) #define IN_DEV_ARP_IGNORE(in_dev) IN_DEV_MAXCONF((in_dev), ARP_IGNORE) #define IN_DEV_ARP_NOTIFY(in_dev) IN_DEV_MAXCONF((in_dev), ARP_NOTIFY) +#define IN_DEV_ARP_EVICT_NOCARRIER(in_dev) IN_DEV_CONF_GET((in_dev), ARP_EVICT_NOCARRIER) struct in_ifaddr { struct hlist_node hash; diff --git a/include/uapi/linux/ip.h b/include/uapi/linux/ip.h index e42d13b55cf3..e00bbb9c47bb 100644 --- a/include/uapi/linux/ip.h +++ b/include/uapi/linux/ip.h @@ -169,6 +169,7 @@ enum IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST, IPV4_DEVCONF_DROP_GRATUITOUS_ARP, IPV4_DEVCONF_BC_FORWARDING, + IPV4_DEVCONF_ARP_EVICT_NOCARRIER, __IPV4_DEVCONF_MAX }; diff --git a/include/uapi/linux/sysctl.h b/include/uapi/linux/sysctl.h index 1e05d3caa712..6a3b194c50fe 100644 --- a/include/uapi/linux/sysctl.h +++ b/include/uapi/linux/sysctl.h @@ -482,6 +482,7 @@ enum NET_IPV4_CONF_PROMOTE_SECONDARIES=20, NET_IPV4_CONF_ARP_ACCEPT=21, NET_IPV4_CONF_ARP_NOTIFY=22, + NET_IPV4_CONF_ARP_EVICT_NOCARRIER=23, }; /* /proc/sys/net/ipv4/netfilter */ diff --git a/net/ipv4/arp.c b/net/ipv4/arp.c index 922dd73e5740..50cfe4f37089 100644 --- a/net/ipv4/arp.c +++ b/net/ipv4/arp.c @@ -1247,6 +1247,7 @@ static int arp_netdev_event(struct notifier_block *this, unsigned long event, { struct net_device *dev = netdev_notifier_info_to_dev(ptr); struct netdev_notifier_change_info *change_info; + struct in_device *in_dev = __in_dev_get_rcu(dev); switch (event) { case NETDEV_CHANGEADDR: @@ -1257,7 +1258,8 @@ static int arp_netdev_event(struct notifier_block *this, unsigned long event, change_info = ptr; if (change_info->flags_changed & IFF_NOARP) neigh_changeaddr(&arp_tbl, dev); - if (!netif_carrier_ok(dev)) + if (IN_DEV_ARP_EVICT_NOCARRIER(in_dev) && + !netif_carrier_ok(dev)) neigh_carrier_down(&arp_tbl, dev); break; default: diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c index 1c6429c353a9..4ff4403749e0 100644 --- a/net/ipv4/devinet.c +++ b/net/ipv4/devinet.c @@ -75,6 +75,7 @@ static struct ipv4_devconf ipv4_devconf = { [IPV4_DEVCONF_SHARED_MEDIA - 1] = 1, [IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL - 1] = 10000 /*ms*/, [IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL - 1] = 1000 /*ms*/, + [IPV4_DEVCONF_ARP_EVICT_NOCARRIER - 1] = 1, }, }; @@ -87,6 +88,7 @@ static struct ipv4_devconf ipv4_devconf_dflt = { [IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE - 1] = 1, [IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL - 1] = 10000 /*ms*/, [IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL - 1] = 1000 /*ms*/, + [IPV4_DEVCONF_ARP_EVICT_NOCARRIER - 1] = 1, }, }; @@ -2527,6 +2529,8 @@ static struct devinet_sysctl_table { DEVINET_SYSCTL_RW_ENTRY(ARP_IGNORE, "arp_ignore"), DEVINET_SYSCTL_RW_ENTRY(ARP_ACCEPT, "arp_accept"), DEVINET_SYSCTL_RW_ENTRY(ARP_NOTIFY, "arp_notify"), + DEVINET_SYSCTL_RW_ENTRY(ARP_EVICT_NOCARRIER, + "arp_evict_nocarrier"), DEVINET_SYSCTL_RW_ENTRY(PROXY_ARP_PVLAN, "proxy_arp_pvlan"), DEVINET_SYSCTL_RW_ENTRY(FORCE_IGMP_VERSION, "force_igmp_version"), From patchwork Wed Oct 13 22:27:08 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Prestwood X-Patchwork-Id: 12557419 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BBB16C433F5 for ; Wed, 13 Oct 2021 22:32:34 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9CD9161177 for ; Wed, 13 Oct 2021 22:32:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231233AbhJMWeh (ORCPT ); Wed, 13 Oct 2021 18:34:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49636 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230361AbhJMWeg (ORCPT ); Wed, 13 Oct 2021 18:34:36 -0400 Received: from mail-pg1-x52c.google.com (mail-pg1-x52c.google.com [IPv6:2607:f8b0:4864:20::52c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2ABBBC061746 for ; Wed, 13 Oct 2021 15:32:33 -0700 (PDT) Received: by mail-pg1-x52c.google.com with SMTP id 66so3674687pgc.9 for ; Wed, 13 Oct 2021 15:32:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=qWPTPIJDnvPdEiRkoLkZ93QW5GtRiH1iZyD5pZQJVEI=; b=EGlAzoDsNL6DW0GDRsulFD7zb3OhpH1XrFE5oqrAFAsqJPPWZ22fTjFi3VEXZHI8lf QcJh0brVPe/LyCk4lNeLTiSUBtlDO3y4tB/F04D3WSyQRZtdOWtR1tokj2rN4yuVYlWi QZHsmC0Pku8Dw0GR3mLSUu6bnOO0OturOV8nHJewBzR37GiCgt8fZr2oWGY4/X4Ic4xV 6AE+x7vtZtSBjpiLPAG34ol/Ib8D2cqcsi62eogzaeet0MD4qr4pwSGG+eLKdRGm8yfC eWna7lj0b9jD+uUZQD0RfRu68AFrUh0ImBzmccoapG4YqC3kjMcCs10EblJYulOwHvuo J7nw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=qWPTPIJDnvPdEiRkoLkZ93QW5GtRiH1iZyD5pZQJVEI=; b=QrINqYxv+yhgXONjiLJg406anifSHaqxGVqzzYqvQn0HMAdSGm8z+d9KewRTc4nH3C lUy08EKG3wM8M8AGbNuO/nOe3xSJ4hBDya+A1fWTJbha5Oy61NPF5yZLBtH6x7QxLvMX 9oTkfi1RSSuxREKb3eHivFPP+eElo1PiXnSfLOstMEwAUp/HMW6M6At7Vn7suhjDOeze zJj8xEBhoLFhIJlYOqFDdfpdjEJ8EXvKvTeIVb/QDDtGZgXubSZmBKir1nAo30m1jXWP kG6usEkPgh98fS4f0cxJr0dp4PHlLkyPT85OyzRufeDwcAQu2A/XX1GiQZh/fbFaXtbY 0sFA== X-Gm-Message-State: AOAM530z/g9im92B9FICvpOgW78GwWqfsBocvJLvHeAbAdxjCaIs064V QQqhEhODOIoJBobJKSWFIgq2jEDAK2A= X-Google-Smtp-Source: ABdhPJxzsStXeFn7nqdjQltGIWOwnD9wiyEbeT+ezPaRFLhO8bTatQs4uNMDY38cg7nAgO/tT3oYZQ== X-Received: by 2002:a62:8ccf:0:b0:44c:7db2:344e with SMTP id m198-20020a628ccf000000b0044c7db2344emr1661855pfd.66.1634164352438; Wed, 13 Oct 2021 15:32:32 -0700 (PDT) Received: from localhost.localdomain ([50.39.163.188]) by smtp.gmail.com with ESMTPSA id i2sm6546091pjt.19.2021.10.13.15.32.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Oct 2021 15:32:32 -0700 (PDT) From: James Prestwood To: netdev@vger.kernel.org Cc: James Prestwood Subject: [PATCH 2/4] net: ndisc: introduce ndisc_evict_nocarrier sysctl parameter Date: Wed, 13 Oct 2021 15:27:08 -0700 Message-Id: <20211013222710.4162634-2-prestwoj@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211013222710.4162634-1-prestwoj@gmail.com> References: <20211013222710.4162634-1-prestwoj@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org In most situations the neighbor discovery cache should be cleared on a NOCARRIER event which is currently done unconditionally. But for wireless roams the neighbor discovery cache can and should remain intact since the underlying network has not changed. This patch introduces a sysctl option ndisc_evict_nocarrier which can be disabled by a wireless supplicant during a roam. This allows packets to be sent after a roam immediately without having to wait for neighbor discovery. A user reported roughly a 1 second delay after a roam before packets could be sent out (note, on IPv4). This delay was due to the ARP cache being cleared. During testing of this same scenario using IPv6 no delay was noticed, but regardless there is no reason to clear the ndisc cache for wireless roams. Signed-off-by: James Prestwood --- include/linux/ipv6.h | 1 + include/uapi/linux/ipv6.h | 1 + net/ipv6/addrconf.c | 10 ++++++++++ net/ipv6/ndisc.c | 5 ++++- 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/include/linux/ipv6.h b/include/linux/ipv6.h index 70b2ad3b9884..72297d759a23 100644 --- a/include/linux/ipv6.h +++ b/include/linux/ipv6.h @@ -76,6 +76,7 @@ struct ipv6_devconf { __s32 disable_policy; __s32 ndisc_tclass; __s32 rpl_seg_enabled; + __u32 ndisc_evict_nocarrier; struct ctl_table_header *sysctl_header; }; diff --git a/include/uapi/linux/ipv6.h b/include/uapi/linux/ipv6.h index 70603775fe91..999b290d79c3 100644 --- a/include/uapi/linux/ipv6.h +++ b/include/uapi/linux/ipv6.h @@ -190,6 +190,7 @@ enum { DEVCONF_NDISC_TCLASS, DEVCONF_RPL_SEG_ENABLED, DEVCONF_RA_DEFRTR_METRIC, + DEVCONF_NDISC_EVICT_NOCARRIER, DEVCONF_MAX }; diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index 701eb82acd1c..b538054f8d0d 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -237,6 +237,7 @@ static struct ipv6_devconf ipv6_devconf __read_mostly = { .addr_gen_mode = IN6_ADDR_GEN_MODE_EUI64, .disable_policy = 0, .rpl_seg_enabled = 0, + .ndisc_evict_nocarrier = 1, }; static struct ipv6_devconf ipv6_devconf_dflt __read_mostly = { @@ -293,6 +294,7 @@ static struct ipv6_devconf ipv6_devconf_dflt __read_mostly = { .addr_gen_mode = IN6_ADDR_GEN_MODE_EUI64, .disable_policy = 0, .rpl_seg_enabled = 0, + .ndisc_evict_nocarrier = 1, }; /* Check if link is ready: is it up and is a valid qdisc available */ @@ -5526,6 +5528,7 @@ static inline void ipv6_store_devconf(struct ipv6_devconf *cnf, array[DEVCONF_DISABLE_POLICY] = cnf->disable_policy; array[DEVCONF_NDISC_TCLASS] = cnf->ndisc_tclass; array[DEVCONF_RPL_SEG_ENABLED] = cnf->rpl_seg_enabled; + array[DEVCONF_NDISC_EVICT_NOCARRIER] = cnf->ndisc_evict_nocarrier; } static inline size_t inet6_ifla6_size(void) @@ -6932,6 +6935,13 @@ static const struct ctl_table addrconf_sysctl[] = { .mode = 0644, .proc_handler = proc_dointvec, }, + { + .procname = "ndisc_evict_nocarrier", + .data = &ipv6_devconf.ndisc_evict_nocarrier, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec, + }, { /* sentinel */ } diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c index c467c6419893..d80346a2a789 100644 --- a/net/ipv6/ndisc.c +++ b/net/ipv6/ndisc.c @@ -1805,10 +1805,13 @@ static int ndisc_netdev_event(struct notifier_block *this, unsigned long event, in6_dev_put(idev); break; case NETDEV_CHANGE: + idev = in6_dev_get(dev); + if (!idev) + break; change_info = ptr; if (change_info->flags_changed & IFF_NOARP) neigh_changeaddr(&nd_tbl, dev); - if (!netif_carrier_ok(dev)) + if (!netif_carrier_ok(dev) && idev->cnf.ndisc_evict_nocarrier) neigh_carrier_down(&nd_tbl, dev); break; case NETDEV_DOWN: From patchwork Wed Oct 13 22:27:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Prestwood X-Patchwork-Id: 12557421 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2821FC433EF for ; Wed, 13 Oct 2021 22:32:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 05C91610CC for ; Wed, 13 Oct 2021 22:32:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231344AbhJMWem (ORCPT ); Wed, 13 Oct 2021 18:34:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49642 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231273AbhJMWeh (ORCPT ); Wed, 13 Oct 2021 18:34:37 -0400 Received: from mail-pf1-x42f.google.com (mail-pf1-x42f.google.com [IPv6:2607:f8b0:4864:20::42f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EC2F5C061570 for ; Wed, 13 Oct 2021 15:32:33 -0700 (PDT) Received: by mail-pf1-x42f.google.com with SMTP id m26so3765394pff.3 for ; Wed, 13 Oct 2021 15:32:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=K3xmyrvrabuXSa2GxlZvZmaD6t80A1dyvYqPOhLAPUM=; b=oH+s3TzBp80hi2+8fLk+BxUA/Lo8MJovNJJQVYkR/woOEx0/JK8jA3uz3FM/zYx/eU zikY9iYu9WC5mVQsEmvdZwHmPmyy8AhPIm2cTuAUXdcr5r6gYX2K+la0aJ+XpOjs0+1t SpuOiD2ip538ATQVM2DzFixtB5v395rFjG6PA885qMDErLt39YgLTeOBPLq87l0PzrUZ So/ycGq+BaIEG/VgO0Fmb532xgDTLq6g0VW2OUOvGX6DfxzN8InJqGvhqPZSv+7kO7ag dx4frzN0/ScZum55ixIycEc9u/zBN5zmn90nkuFKNAHduZeQH/IF75P4dYt0uY3JT1aL bzXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=K3xmyrvrabuXSa2GxlZvZmaD6t80A1dyvYqPOhLAPUM=; b=dvCPq9KpdKPDnXEbCCMeTaa3KOwgVZFDEwXjtNkge9nGx1z95m2vjZFUSVojHz7GkD 89BRVuSu47C+85lNg+8SCbC942sfdPB81vRDyk4JibQM9uVh3h6/d4JIqbTzK7GgJSUk oPtm4fn1VqsSMj8LCvQWHi/YpRfy1cqmtx2TNZzi6HP7dKJx59mDG1vP4fOCrX+aV5O2 fx0FGCw1jGLDOZLecfgUP+KXt+7dbwSeuzPogLkjft3LZrTk6ARMIBQ0LFH2yS4v2wbG UEIqusD1HR90+Ddg/S/digls3BdiSMiOxcZBrvsK07S342AiqLcMZPERXtMTdU9tEItP 9V+A== X-Gm-Message-State: AOAM533Sa+KiItujwR7Xqvz7YlgsqlEuW7gDj2NuVaxCLO0pxSSIFTuU MVboRNe+JftxQn37w1SEve6NAR6nahc= X-Google-Smtp-Source: ABdhPJyusmCMK0AKn6uPpwooU95/JwT12ECQEMAz6V9wWAtpyb1pppPtecoJeDB08kJMwWDfo1daKg== X-Received: by 2002:a05:6a00:d63:b0:44d:186d:c4c0 with SMTP id n35-20020a056a000d6300b0044d186dc4c0mr1946966pfv.47.1634164353246; Wed, 13 Oct 2021 15:32:33 -0700 (PDT) Received: from localhost.localdomain ([50.39.163.188]) by smtp.gmail.com with ESMTPSA id i2sm6546091pjt.19.2021.10.13.15.32.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Oct 2021 15:32:32 -0700 (PDT) From: James Prestwood To: netdev@vger.kernel.org Cc: James Prestwood Subject: [PATCH 3/4] doc: networking: document arp_evict_nocarrier Date: Wed, 13 Oct 2021 15:27:09 -0700 Message-Id: <20211013222710.4162634-3-prestwoj@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211013222710.4162634-1-prestwoj@gmail.com> References: <20211013222710.4162634-1-prestwoj@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org Signed-off-by: James Prestwood --- Documentation/networking/ip-sysctl.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Documentation/networking/ip-sysctl.rst b/Documentation/networking/ip-sysctl.rst index c2ecc9894fd0..174d9d3ee5c2 100644 --- a/Documentation/networking/ip-sysctl.rst +++ b/Documentation/networking/ip-sysctl.rst @@ -1565,6 +1565,15 @@ arp_accept - BOOLEAN gratuitous arp frame, the arp table will be updated regardless if this setting is on or off. +arp_evict_nocarrier - BOOLEAN + Clears the ARP cache on NOCARRIER events. This option is important for + wireless devices where the ARP cache should not be cleared when roaming + between access points on the same network. In most cases this should + remain as the default (1). + + - 1 - (default): Clear the ARP cache on NOCARRIER events + - 0 - Do not clear ARP cache on NOCARRIER events + mcast_solicit - INTEGER The maximum number of multicast probes in INCOMPLETE state, when the associated hardware address is unknown. Defaults From patchwork Wed Oct 13 22:27:10 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Prestwood X-Patchwork-Id: 12557423 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 78D5EC433F5 for ; Wed, 13 Oct 2021 22:32:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 62BF6610F9 for ; Wed, 13 Oct 2021 22:32:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231361AbhJMWen (ORCPT ); Wed, 13 Oct 2021 18:34:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49646 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230361AbhJMWei (ORCPT ); Wed, 13 Oct 2021 18:34:38 -0400 Received: from mail-pj1-x1035.google.com (mail-pj1-x1035.google.com [IPv6:2607:f8b0:4864:20::1035]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A63BEC061746 for ; Wed, 13 Oct 2021 15:32:34 -0700 (PDT) Received: by mail-pj1-x1035.google.com with SMTP id lk8-20020a17090b33c800b001a0a284fcc2so5525772pjb.2 for ; Wed, 13 Oct 2021 15:32:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=2sn0l15EeXVjYYIzqdi92hRykDGSnNV5xCLLrC1tcLE=; b=Kh2aSOAmd2QgPUsue3SnT7fnE66zH9AHXjkYvSowtwgpYlQP8Zv8BclxcPUV2KFJsD O7oo01yX9nYGgqbhYq+ww6AscwkRFvH7oQetB5XGZWY3CRNC/+IhxCnYyxAZ1OGBxnWg BiTsUeHKd0kyYR9wrCq23iwu7WnhtQX/8vZIEn6X/Rgg4/dDrmPjyXaSVdKl3EFVlaiP M5SSsFAS4CKNBAll45b+XQuHWarjTMW91Ko4zoHIAKjR8hVRD8luyiCAX0CTBoZ6di3l Fss62GBxaUyhug+5slC4ag37lc2ZVL+tjuRlewldW4ivRIeP9kDTCIyZ1bI78MWg8Z6h 65BQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=2sn0l15EeXVjYYIzqdi92hRykDGSnNV5xCLLrC1tcLE=; b=77dRMNXmKEQhuQ1VJ9OicWLDSsWXbYbxNzN0WWUYixczi8ZpDzyACwI3g074/y7OtP LL8o32LXMLB4LoiG6Zqe6UBkTo4IrDEy3AcxCFWc+ag7zra/5tDQqKaoTcCLiJ/TSmVD DuuAK9E8R2NhhxxZNQlfCFEb0YvbH+xskN1Kltc3ght/jmZ0gPwa/BZl11btiShNh7ba 68X0kv2ial8wsA3ab2pZ9yeGTTVPlPewRdvJ27xUlh5AA9SfGWz33HhIGSHyo7pxvuj/ /h32K0J2KdtjhFouOQ96UKdClOSsOPAAlcekd+ZtgGE3WU2BdZu45yBeXQunSi63nuDu fxVw== X-Gm-Message-State: AOAM531bybk4RX/rwP9JsYDfK4TOIg5B0l+x0KqiyYD9rf8XPlB5pLNo Jlf86p4JPNIeg9bP/3E1+nqqCK8MaKc= X-Google-Smtp-Source: ABdhPJzm6oaScbf6gzJrBMLHzKVrgjBIr0VrkVu9nj3TeAlhCj5RB6AXBe+LHQCNF7pyxV1iQlUtrw== X-Received: by 2002:a17:902:8a83:b0:13d:9572:86c2 with SMTP id p3-20020a1709028a8300b0013d957286c2mr1775156plo.48.1634164354019; Wed, 13 Oct 2021 15:32:34 -0700 (PDT) Received: from localhost.localdomain ([50.39.163.188]) by smtp.gmail.com with ESMTPSA id i2sm6546091pjt.19.2021.10.13.15.32.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Oct 2021 15:32:33 -0700 (PDT) From: James Prestwood To: netdev@vger.kernel.org Cc: James Prestwood Subject: [PATCH 4/4] doc: networking: document ndisc_evict_nocarrier Date: Wed, 13 Oct 2021 15:27:10 -0700 Message-Id: <20211013222710.4162634-4-prestwoj@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211013222710.4162634-1-prestwoj@gmail.com> References: <20211013222710.4162634-1-prestwoj@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org Signed-off-by: James Prestwood --- Documentation/networking/ip-sysctl.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Documentation/networking/ip-sysctl.rst b/Documentation/networking/ip-sysctl.rst index 174d9d3ee5c2..7bac67a2f6d7 100644 --- a/Documentation/networking/ip-sysctl.rst +++ b/Documentation/networking/ip-sysctl.rst @@ -2258,6 +2258,15 @@ ndisc_tclass - INTEGER * 0 - (default) +ndisc_evict_nocarrier - BOOLEAN + Clears the neighbor discovery table on NOCARRIER events. This option is + important for wireless devices where the neighbor discovery cache should + not be cleared when roaming between access points on the same network. + In most cases this should remain as the default (1). + + - 1 - (default): Clear neighbor discover cache on NOCARRIER events. + - 0 - Do not clear neighbor discovery cache on NOCARRIER events. + mldv1_unsolicited_report_interval - INTEGER The interval in milliseconds in which the next unsolicited MLDv1 report retransmit will take place.