Skip to content

tcp: receive-side per route dctcp handling

Daniel Borkmann netdev 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v2 Latest4 patches 1 replyIn review

Changes in v2 from the cover letter

- Addressed Dave's feedback, not exposing any bits to user space
- Added patch 3 to reject incorrect configurations
- Rest as is, rebased and retested

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/4net: fib: move metrics parsing to a helpernet/ipv4/fib_semantics.c+41 -300 replies
2/4net: fib6: reduce identation in ip6_convert_metricsnet/ipv6/route.c+16 -160 replies
3/4fib, fib6: reject invalid feature bitsinclude/uapi/linux/rtnetlink.h net/ipv4/fib_semantics.c net/ipv6/route.c+11 -40 replies
4/4tcp: use dctcp if enabled on the route to the initiatorinclude/net/dst.h include/net/tcp.h net/core/rtnetlink.c +4 more+36 -90 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.

Read the v2 thread

Cover letter [PATCH net-next v2 0/4] tcp: receive-side per route dctcp handling

Original cover letter:

Currently, the following case doesn't use DCTCP, even if it should:

- responder has f.e. cubic as system wide default
- 'ip route congctl dctcp $src' was set

Then, DCTCP is NOT used if a DCTCP sender attempts to connect from a host in the $src range: ECT(0) is set, but listen_sk is not dctcp, so we fail the INET_ECN_is_not_ect sanity check.

We also have to examine the dst used for the SYN/ACK reply to make this case work.

In order to minimize additional cost, store the 'ecn is must have' information is the dst_features field.

The set targets -next instead of -net since this doesn't seem to be a serious bug and to give the change more soak time until it hits linus tree.

v1 -> v2:
- Addressed Dave's feedback, not exposing any bits to user space
- Added patch 3 to reject incorrect configurations
- Rest as is, rebased and retested

Thanks!

Daniel Borkmann (3):
net: fib6: reduce identation in ip6_convert_metrics fib, fib6: reject invalid feature bits
tcp: use dctcp if enabled on the route to the initiator

Florian Westphal (1):
net: fib: move metrics parsing to a helper

 include/net/dst.h              |  6 ++++
 include/net/tcp.h              |  2 +-
 include/uapi/linux/rtnetlink.h | 11 +++---
 net/core/rtnetlink.c           |  6 ++++
 net/ipv4/fib_semantics.c       | 77 ++++++++++++++++++++++++++----------------
 net/ipv4/tcp_cong.c            |  9 +++--
 net/ipv4/tcp_input.c           |  7 ++--
 net/ipv6/route.c               | 39 ++++++++++++---------
 8 files changed, 101 insertions(+), 56 deletions(-)
Signature · 1 line
1.9.3