summaryrefslogtreecommitdiffstats
path: root/sys/netinet
diff options
context:
space:
mode:
authortuexen <tuexen@FreeBSD.org>2011-10-11 13:24:37 +0000
committertuexen <tuexen@FreeBSD.org>2011-10-11 13:24:37 +0000
commit7adf0c3790c9a76c8ca6c5c48431669f689bcc0f (patch)
tree274505aeedaf0f467bfc8b6bd5c25774cd583862 /sys/netinet
parentcc0ce9bd6a824a28591dc5221b6fd2ef260fcf09 (diff)
downloadFreeBSD-src-7adf0c3790c9a76c8ca6c5c48431669f689bcc0f.zip
FreeBSD-src-7adf0c3790c9a76c8ca6c5c48431669f689bcc0f.tar.gz
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.
Diffstat (limited to 'sys/netinet')
-rw-r--r--sys/netinet/sctp_usrreq.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/sys/netinet/sctp_usrreq.c b/sys/netinet/sctp_usrreq.c
index d49ea38..c6e77cd 100644
--- a/sys/netinet/sctp_usrreq.c
+++ b/sys/netinet/sctp_usrreq.c
@@ -2435,7 +2435,7 @@ flags_out:
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 @@ flags_out:
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 @@ flags_out:
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
OpenPOWER on IntegriCloud