Use the most significant 6 bits of the dscp instead of the least
significant ones. This has changed in the latest version of the socket API ID and provides backwards compatibility and gets it in syn with the usage of the IP_TOS socket option. MFC after: 3 days.
This commit is contained in:
parent
05ad7ad667
commit
7906f59a29
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=226252
@ -2435,7 +2435,7 @@ sctp_getopt(struct socket *so, int optname, void *optval, size_t *optsize,
|
||||
paddrp->spp_flags |= SPP_PMTUD_DISABLE;
|
||||
}
|
||||
if (net->dscp & 0x01) {
|
||||
paddrp->spp_dscp = net->dscp >> 2;
|
||||
paddrp->spp_dscp = net->dscp & 0xfc;
|
||||
paddrp->spp_flags |= SPP_DSCP;
|
||||
}
|
||||
#ifdef INET6
|
||||
@ -2453,7 +2453,7 @@ sctp_getopt(struct socket *so, int optname, void *optval, size_t *optsize,
|
||||
paddrp->spp_pathmaxrxt = stcb->asoc.def_net_failure;
|
||||
paddrp->spp_pathmtu = sctp_get_frag_point(stcb, &stcb->asoc);
|
||||
if (stcb->asoc.default_dscp & 0x01) {
|
||||
paddrp->spp_dscp = stcb->asoc.default_dscp >> 2;
|
||||
paddrp->spp_dscp = stcb->asoc.default_dscp & 0xfc;
|
||||
paddrp->spp_flags |= SPP_DSCP;
|
||||
}
|
||||
#ifdef INET6
|
||||
@ -2488,7 +2488,7 @@ sctp_getopt(struct socket *so, int optname, void *optval, size_t *optsize,
|
||||
paddrp->spp_assoc_id = SCTP_FUTURE_ASSOC;
|
||||
/* get inp's default */
|
||||
if (inp->sctp_ep.default_dscp & 0x01) {
|
||||
paddrp->spp_dscp = inp->sctp_ep.default_dscp >> 2;
|
||||
paddrp->spp_dscp = inp->sctp_ep.default_dscp & 0xfc;
|
||||
paddrp->spp_flags |= SPP_DSCP;
|
||||
}
|
||||
#ifdef INET6
|
||||
@ -4691,7 +4691,7 @@ sctp_setopt(struct socket *so, int optname, void *optval, size_t optsize,
|
||||
net->failure_threshold = paddrp->spp_pathmaxrxt;
|
||||
}
|
||||
if (paddrp->spp_flags & SPP_DSCP) {
|
||||
net->dscp = paddrp->spp_dscp << 2;
|
||||
net->dscp = paddrp->spp_dscp & 0xfc;
|
||||
net->dscp |= 0x01;
|
||||
}
|
||||
#ifdef INET6
|
||||
@ -4794,10 +4794,10 @@ sctp_setopt(struct socket *so, int optname, void *optval, size_t optsize,
|
||||
}
|
||||
if (paddrp->spp_flags & SPP_DSCP) {
|
||||
TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
|
||||
net->dscp = paddrp->spp_dscp << 2;
|
||||
net->dscp = paddrp->spp_dscp & 0xfc;
|
||||
net->dscp |= 0x01;
|
||||
}
|
||||
stcb->asoc.default_dscp = paddrp->spp_dscp << 2;
|
||||
stcb->asoc.default_dscp = paddrp->spp_dscp & 0xfc;
|
||||
stcb->asoc.default_dscp |= 0x01;
|
||||
}
|
||||
#ifdef INET6
|
||||
@ -4851,7 +4851,7 @@ sctp_setopt(struct socket *so, int optname, void *optval, size_t optsize,
|
||||
sctp_feature_on(inp, SCTP_PCB_FLAGS_DO_NOT_PMTUD);
|
||||
}
|
||||
if (paddrp->spp_flags & SPP_DSCP) {
|
||||
inp->sctp_ep.default_dscp = paddrp->spp_dscp << 2;
|
||||
inp->sctp_ep.default_dscp = paddrp->spp_dscp & 0xfc;
|
||||
inp->sctp_ep.default_dscp |= 0x01;
|
||||
}
|
||||
#ifdef INET6
|
||||
|
Loading…
Reference in New Issue
Block a user