Re: [PATCH v3] net: neighbour: introduce EVICT_NOCARRIER table option
From: Nikolay Aleksandrov <hidden>
Date: 2021-10-16 11:12:16
On 15/10/2021 23:06, James Prestwood wrote:
This adds an option to ARP/NDISC tables that clears the table on NOCARRIER events. The default option (1) maintains existing behavior. Clearing the ARP cache on NOCARRIER is relatively new, introduced by:
[snip]
quoted hunk ↗ jump to hunk
Signed-off-by: James Prestwood <redacted> --- Documentation/networking/ip-sysctl.rst | 9 +++++++++ include/net/neighbour.h | 3 ++- include/uapi/linux/neighbour.h | 1 + net/core/neighbour.c | 18 +++++++++++++----- net/ipv4/arp.c | 1 + net/ipv6/ndisc.c | 1 + 6 files changed, 27 insertions(+), 6 deletions(-)diff --git a/Documentation/networking/ip-sysctl.rst b/Documentation/networking/ip-sysctl.rst index 16b8bf72feaf..e2aced01905a 100644 --- a/Documentation/networking/ip-sysctl.rst +++ b/Documentation/networking/ip-sysctl.rst@@ -200,6 +200,15 @@ neigh/default/unres_qlen - INTEGER Default: 101 +neigh/default/evict_nocarrier - BOOLEAN + Clears the neighbor cache on NOCARRIER events. This option is important + for wireless devices where the 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 neighbor cache on NOCARRIER events + - 0 - Do not clear neighbor cache on NOCARRIER events + mtu_expires - INTEGER Time, in seconds, that cached PMTU information is kept.diff --git a/include/net/neighbour.h b/include/net/neighbour.h index e8e48be66755..71b28f83c3d3 100644 --- a/include/net/neighbour.h +++ b/include/net/neighbour.h@@ -54,7 +54,8 @@ enum { NEIGH_VAR_ANYCAST_DELAY, NEIGH_VAR_PROXY_DELAY, NEIGH_VAR_LOCKTIME, -#define NEIGH_VAR_DATA_MAX (NEIGH_VAR_LOCKTIME + 1) + NEIGH_VAR_EVICT_NOCARRIER, +#define NEIGH_VAR_DATA_MAX (NEIGH_VAR_EVICT_NOCARRIER + 1) /* Following are used as a second way to access one of the above */ NEIGH_VAR_QUEUE_LEN, /* same data as NEIGH_VAR_QUEUE_LEN_BYTES */ NEIGH_VAR_RETRANS_TIME_MS, /* same data as NEIGH_VAR_RETRANS_TIME */diff --git a/include/uapi/linux/neighbour.h b/include/uapi/linux/neighbour.h index db05fb55055e..4322e5f42646 100644 --- a/include/uapi/linux/neighbour.h +++ b/include/uapi/linux/neighbour.h@@ -151,6 +151,7 @@ enum { NDTPA_LOCKTIME, /* u64, msecs */ NDTPA_QUEUE_LENBYTES, /* u32 */ NDTPA_MCAST_REPROBES, /* u32 */ + NDTPA_EVICT_NOCARRIER, /* u8 */ NDTPA_PAD, __NDTPA_MAX };
I think this should be the last attribute (after PAD). Since this is a single patch you don't really need a cover letter, you can add the version changes below ---. Also your cover letter says v2 and the patch says v3. Cheers, Nik