mbox series

[net-next,0/3] tcp: add tos reflection feature

Message ID 20200910005048.4146399-1-weiwan@google.com
Headers show
Series tcp: add tos reflection feature | expand

Message

Wei Wang Sept. 10, 2020, 12:50 a.m. UTC
This patch series adds a new tcp feature to reflect TOS value received in
SYN, and send it out in SYN-ACK, and eventually set the TOS value of the
established socket with this reflected TOS value. This provides a way to
set the traffic class/QoS level for all traffic in the same connection
to be the same as the incoming SYN. It could be useful for datacenters
to provide equivalent QoS according to the incoming request.
This feature is guarded by /proc/sys/net/ipv4/tcp_reflect_tos, and is by
default turned off.

Wei Wang (3):
  tcp: record received TOS value in the request socket
  ip: pass tos into ip_build_and_send_pkt()
  tcp: reflect tos value received in SYN to the socket

 include/linux/tcp.h        |  1 +
 include/net/ip.h           |  2 +-
 include/net/netns/ipv4.h   |  1 +
 net/dccp/ipv4.c            |  6 ++++--
 net/ipv4/ip_output.c       |  5 +++--
 net/ipv4/syncookies.c      |  6 +++---
 net/ipv4/sysctl_net_ipv4.c |  9 +++++++++
 net/ipv4/tcp_input.c       |  1 +
 net/ipv4/tcp_ipv4.c        | 11 ++++++++++-
 net/ipv6/tcp_ipv6.c        | 10 +++++++++-
 10 files changed, 42 insertions(+), 10 deletions(-)

Comments

David Miller Sept. 10, 2020, 8:15 p.m. UTC | #1
From: Wei Wang <weiwan@google.com>
Date: Wed,  9 Sep 2020 17:50:45 -0700

> This patch series adds a new tcp feature to reflect TOS value received in
> SYN, and send it out in SYN-ACK, and eventually set the TOS value of the
> established socket with this reflected TOS value. This provides a way to
> set the traffic class/QoS level for all traffic in the same connection
> to be the same as the incoming SYN. It could be useful for datacenters
> to provide equivalent QoS according to the incoming request.
> This feature is guarded by /proc/sys/net/ipv4/tcp_reflect_tos, and is by
> default turned off.
> 
> Wei Wang (3):
>   tcp: record received TOS value in the request socket
>   ip: pass tos into ip_build_and_send_pkt()
>   tcp: reflect tos value received in SYN to the socket

This looks good, series applied, thanks.