net: prefer listeners bound to an address
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest5 patches 2 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/5 | net: udp: prefer listeners bound to an addressnet/ | +19 | 0 replies | |
| 2/5 | net: udp6: prefer listeners bound to an addressnet/ | +21 | 0 replies | |
| 3/5 | net: tcp: prefer listeners bound to an addressnet/ | +8 | 0 replies | |
| 4/5 | net: tcp6: prefer listeners bound to an addressnet/ | +6 | 0 replies | |
| 5/5 | selftests: net: test that listening sockets match on address properlytools/ tools/ tools/ +1 more | +271 | 0 replies |
Reviews trailers per patch
None of the 5 patches has a Reviewed-by or Acked-by of their own; the series has one for all of them.
| Patch | Eric Dumazet |
|---|---|
| Series | R-b |
| 1/5 | |
| 2/5 | |
| 3/5 | |
| 4/5 | |
| 5/5 |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [PATCH net-next 0/5] net: prefer listeners bound to an address
A relatively common use case is to have several IPs configured on a host, and have different listeners for each of them. We would like to add a "catch all" listener on addr_any, to match incoming connections not served by any of the listeners bound to a specific address.
However, port-only lookups can match addr_any sockets when sockets listening on specific addresses are present if so_reuseport flag is set. This patchset eliminates lookups into port-only hashtable, as lookups by (addr,port) tuple are easily available.
In a future patchset I plan to explore whether it is possible to remove port-only hashtables completely: additional refactoring will be required, as some non-lookup code uses the hashtables.
Peter Oskolkov (5):
net: udp: prefer listeners bound to an address
net: udp6: prefer listeners bound to an address
net: tcp: prefer listeners bound to an address
net: tcp6: prefer listeners bound to an address
selftests: net: test that listening sockets match on address properly
net/ipv4/inet_hashtables.c | 60 +--- net/ipv4/udp.c | 76 ++--- net/ipv6/inet6_hashtables.c | 54 +--- net/ipv6/udp.c | 79 ++---- tools/testing/selftests/net/.gitignore | 1 + tools/testing/selftests/net/Makefile | 4 +- .../selftests/net/reuseport_addr_any.c | 264 ++++++++++++++++++ .../selftests/net/reuseport_addr_any.sh | 4 + 8 files changed, 325 insertions(+), 217 deletions(-) create mode 100644 tools/testing/selftests/net/reuseport_addr_any.c create mode 100755 tools/testing/selftests/net/reuseport_addr_any.sh
Signature · 1 line
2.20.0.rc2.403.gdbc3b29805-goog