sctp: add support for dscp and flowlabel per transport
authorXin Long <lucien.xin@gmail.com>
Mon, 2 Jul 2018 10:21:12 +0000 (18:21 +0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 4 Jul 2018 02:36:54 +0000 (11:36 +0900)
commit8a9c58d28d0f66569737a3295116710ed24573cd
tree4d530788207cca98e68faee6d5a4145d5d8befc4
parent69b9e1e07d98b57b972df3c44647ca8795284d39
sctp: add support for dscp and flowlabel per transport

Like some other per transport params, flowlabel and dscp are added
in transport, asoc and sctp_sock. By default, transport sets its
value from asoc's, and asoc does it from sctp_sock. flowlabel
only works for ipv6 transport.

Other than that they need to be passed down in sctp_xmit, flow4/6
also needs to set them before looking up route in get_dst.

Note that it uses '& 0x100000' to check if flowlabel is set and
'& 0x1' (tos 1st bit is unused) to check if dscp is set by users,
so that they could be set to 0 by sockopt in next patch.

Signed-off-by: Xin Long <lucien.xin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/sctp.h
include/net/sctp/structs.h
net/sctp/associola.c
net/sctp/ipv6.c
net/sctp/protocol.c