mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-09 03:10:30 -04:00
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>
This commit is contained in:
committed by
David S. Miller
parent
69b9e1e07d
commit
8a9c58d28d
@@ -801,4 +801,11 @@ struct sctp_strreset_resptsn {
|
||||
__be32 receivers_next_tsn;
|
||||
};
|
||||
|
||||
enum {
|
||||
SCTP_DSCP_SET_MASK = 0x1,
|
||||
SCTP_DSCP_VAL_MASK = 0xfc,
|
||||
SCTP_FLOWLABEL_SET_MASK = 0x100000,
|
||||
SCTP_FLOWLABEL_VAL_MASK = 0xfffff
|
||||
};
|
||||
|
||||
#endif /* __LINUX_SCTP_H__ */
|
||||
|
||||
@@ -193,6 +193,9 @@ struct sctp_sock {
|
||||
/* This is the max_retrans value for new associations. */
|
||||
__u16 pathmaxrxt;
|
||||
|
||||
__u32 flowlabel;
|
||||
__u8 dscp;
|
||||
|
||||
/* The initial Path MTU to use for new associations. */
|
||||
__u32 pathmtu;
|
||||
|
||||
@@ -895,6 +898,9 @@ struct sctp_transport {
|
||||
*/
|
||||
__u16 pathmaxrxt;
|
||||
|
||||
__u32 flowlabel;
|
||||
__u8 dscp;
|
||||
|
||||
/* This is the partially failed retrans value for the transport
|
||||
* and will be initialized from the assocs value. This can be changed
|
||||
* using the SCTP_PEER_ADDR_THLDS socket option
|
||||
@@ -1772,6 +1778,9 @@ struct sctp_association {
|
||||
*/
|
||||
__u16 pathmaxrxt;
|
||||
|
||||
__u32 flowlabel;
|
||||
__u8 dscp;
|
||||
|
||||
/* Flag that path mtu update is pending */
|
||||
__u8 pmtu_pending;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user