RE: [PATCH] neighbour: guarantee the localhost connections be established successfully even the ARP table is full

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





Internal Use - Confidential
-----Original Message-----
From: Eric Dumazet +ADw-edumazet+AEA-google.com+AD4-
Sent: Tuesday, April 16, 2024 6:02 PM
To: Zheng Li +ADw-lizheng043+AEA-gmail.com+AD4-
Cc: netdev+AEA-vger.kernel.org+ADs- bpf+AEA-vger.kernel.org+ADs- davem+AEA-davemloft.net+ADs- jmorris+AEA-namei.org+ADs- pabeni+AEA-redhat.com+ADs- kuba+AEA-kernel.org+ADs- Li, James Zheng +ADw-James.Z.Li+AEA-Dell.com+AD4-
Subject: Re: +AFs-PATCH+AF0- neighbour: guarantee the localhost connections be established successfully even the ARP table is full


+AFs-EXTERNAL EMAIL+AF0-

On Tue, Apr 16, 2024 at 11:54+IC8-AM Zheng Li +ADw-lizheng043+AEA-gmail.com+AD4- wrote:
+AD4-
+AD4- From: Zheng Li +ADw-James.Z.Li+AEA-Dell.com+AD4-
+AD4-
+AD4- Inter-process communication on localhost should be established
+AD4- successfully even the ARP table is full, many processes on server
+AD4- machine use the localhost to communicate such as command-line
+AD4- interface (CLI), servers hope all CLI commands can be executed
+AD4- successfully even the arp table is full. Right now CLI commands got
+AD4- timeout when the arp table is full. Set the parameter of
+AD4- exempt+AF8-from+AF8-gc to be true for LOOPBACK net device to keep localhost neigh in arp table, not removed by gc.
+AD4-
+AD4- the steps of reproduced:
+AD4- server with +ACI-gc+AF8-thresh3 +AD0- 1024+ACI- setting, ping server from more than
+AD4- 1024 same netmask Lan IPv4 addresses, run +ACI-ssh localhost+ACI- on console
+AD4- interface, then the command will get timeout.
+AD4-
+AD4- Signed-off-by: Zheng Li +ADw-James.Z.Li+AEA-Dell.com+AD4-
+AD4- ---
+AD4-  net/core/neighbour.c +AHw- 4 +-+-+--
+AD4-  1 file changed, 3 insertions(+-), 1 deletion(-)
+AD4-
+AD4- diff --git a/net/core/neighbour.c b/net/core/neighbour.c index
+AD4- 552719c3bbc3..47d07b122f7a 100644
+AD4- --- a/net/core/neighbour.c
+AD4- +-+-+- b/net/core/neighbour.c
+AD4- +AEAAQA- -734,7 +-734,9 +AEAAQA- +AF8AXwBf-neigh+AF8-create(struct neigh+AF8-table +ACo-tbl, const
+AD4- void +ACo-pkey,  struct neighbour +ACoAXwBf-neigh+AF8-create(struct neigh+AF8-table +ACo-tbl, const void +ACo-pkey,
+AD4-                                  struct net+AF8-device +ACo-dev, bool
+AD4- want+AF8-ref)  +AHs-
+AD4- -       return +AF8AXwBf-neigh+AF8-create(tbl, pkey, dev, 0, false, want+AF8-ref)+ADs-
+AD4- +-       bool exempt+AF8-from+AF8-gc +AD0- +ACEAIQ-(dev-+AD4-flags +ACY- IFF+AF8-LOOPBACK)+ADs-
+AD4- +-
+AD4- +-       return +AF8AXwBf-neigh+AF8-create(tbl, pkey, dev, 0, exempt+AF8-from+AF8-gc,
+AD4- +- want+AF8-ref)+ADs-
+AD4-  +AH0-
+AD4-  EXPORT+AF8-SYMBOL(+AF8AXw-neigh+AF8-create)+ADs-
+AD4-

+AD4- Hmmm...

+AD4- Loopback IPv4 can hold 2+AF4-24 different addresses, that is 16384 +ACo- 1024

There is only one Loopback neigh +ACI-0.0.0.0 dev lo lladdr 00:00:00:00:00:00 NOARP+ACI- existing even you have configured 2+AF4-24 different addresses on the loopback device.








[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux