SO_PRIORITY socket option requests TCP egress packets
to contain a user provided value.

TCP manages to send most packets with the requested values,
notably for TCP_ESTABLISHED state, but fails to do so for
few packets.

These packets are control packets sent on behalf
of SYN_RECV or TIME_WAIT states.

Note that to test this with packetdrill, it is a bit
of a hassle, since packetdrill can not verify priority
of egress packets, other than indirect observations,
using for example sch_prio on its tunnel device.

The bad skb priorities cause problems for GCP,
as this field is one of the keys used in routing.

Eric Dumazet (3):
  ipv6: add priority parameter to ip6_xmit()
  ipv6: tcp: provide sk->sk_priority to ctl packets
  tcp: honor SO_PRIORITY in TIME_WAIT state

 include/net/inet_timewait_sock.h |  1 +
 include/net/ipv6.h               |  2 +-
 net/dccp/ipv6.c                  |  5 +++--
 net/ipv4/ip_output.c             |  1 -
 net/ipv4/tcp_ipv4.c              |  4 ++++
 net/ipv4/tcp_minisocks.c         |  1 +
 net/ipv6/inet6_connection_sock.c |  2 +-
 net/ipv6/ip6_output.c            |  4 ++--
 net/ipv6/tcp_ipv6.c              | 24 +++++++++++++++---------
 net/sctp/ipv6.c                  |  2 +-
 10 files changed, 29 insertions(+), 17 deletions(-)

-- 
2.23.0.351.gc4317032e6-goog

Reply via email to