Changeset View
Changeset View
Standalone View
Standalone View
head/sys/netinet6/ip6_output.c
Show First 20 Lines • Show All 1,394 Lines • ▼ Show 20 Lines | #endif | ||||
case IPV6_UNICAST_HOPS: | case IPV6_UNICAST_HOPS: | ||||
case IPV6_HOPLIMIT: | case IPV6_HOPLIMIT: | ||||
case IPV6_RECVPKTINFO: | case IPV6_RECVPKTINFO: | ||||
case IPV6_RECVHOPLIMIT: | case IPV6_RECVHOPLIMIT: | ||||
case IPV6_RECVRTHDR: | case IPV6_RECVRTHDR: | ||||
case IPV6_RECVPATHMTU: | case IPV6_RECVPATHMTU: | ||||
case IPV6_RECVTCLASS: | case IPV6_RECVTCLASS: | ||||
case IPV6_RECVFLOWID: | |||||
#ifdef RSS | |||||
case IPV6_RECVRSSBUCKETID: | |||||
#endif | |||||
case IPV6_V6ONLY: | case IPV6_V6ONLY: | ||||
case IPV6_AUTOFLOWLABEL: | case IPV6_AUTOFLOWLABEL: | ||||
case IPV6_BINDANY: | case IPV6_BINDANY: | ||||
case IPV6_BINDMULTI: | case IPV6_BINDMULTI: | ||||
#ifdef RSS | #ifdef RSS | ||||
case IPV6_RSS_LISTEN_BUCKET: | case IPV6_RSS_LISTEN_BUCKET: | ||||
#endif | #endif | ||||
if (optname == IPV6_BINDANY && td != NULL) { | if (optname == IPV6_BINDANY && td != NULL) { | ||||
▲ Show 20 Lines • Show All 132 Lines • ▼ Show 20 Lines | #define OPTBIT2(bit) (in6p->inp_flags2 & (bit) ? 1 : 0) | ||||
* sockets. | * sockets. | ||||
* (RFC3542 leaves this case | * (RFC3542 leaves this case | ||||
* unspecified.) | * unspecified.) | ||||
*/ | */ | ||||
if (uproto != IPPROTO_TCP) | if (uproto != IPPROTO_TCP) | ||||
OPTSET(IN6P_MTU); | OPTSET(IN6P_MTU); | ||||
break; | break; | ||||
case IPV6_RECVFLOWID: | |||||
OPTSET2(INP_RECVFLOWID, optval); | |||||
break; | |||||
#ifdef RSS | |||||
case IPV6_RECVRSSBUCKETID: | |||||
OPTSET2(INP_RECVRSSBUCKETID, optval); | |||||
break; | |||||
#endif | |||||
case IPV6_V6ONLY: | case IPV6_V6ONLY: | ||||
/* | /* | ||||
* make setsockopt(IPV6_V6ONLY) | * make setsockopt(IPV6_V6ONLY) | ||||
* available only prior to bind(2). | * available only prior to bind(2). | ||||
* see ipng mailing list, Jun 22 2001. | * see ipng mailing list, Jun 22 2001. | ||||
*/ | */ | ||||
if (in6p->inp_lport || | if (in6p->inp_lport || | ||||
!IN6_IS_ADDR_UNSPECIFIED(&in6p->in6p_laddr)) { | !IN6_IS_ADDR_UNSPECIFIED(&in6p->in6p_laddr)) { | ||||
▲ Show 20 Lines • Show All 247 Lines • ▼ Show 20 Lines | #endif | ||||
case IPV6_V6ONLY: | case IPV6_V6ONLY: | ||||
case IPV6_PORTRANGE: | case IPV6_PORTRANGE: | ||||
case IPV6_RECVTCLASS: | case IPV6_RECVTCLASS: | ||||
case IPV6_AUTOFLOWLABEL: | case IPV6_AUTOFLOWLABEL: | ||||
case IPV6_BINDANY: | case IPV6_BINDANY: | ||||
case IPV6_FLOWID: | case IPV6_FLOWID: | ||||
case IPV6_FLOWTYPE: | case IPV6_FLOWTYPE: | ||||
case IPV6_RECVFLOWID: | |||||
#ifdef RSS | #ifdef RSS | ||||
case IPV6_RSSBUCKETID: | case IPV6_RSSBUCKETID: | ||||
case IPV6_RECVRSSBUCKETID: | |||||
#endif | #endif | ||||
switch (optname) { | switch (optname) { | ||||
case IPV6_RECVHOPOPTS: | case IPV6_RECVHOPOPTS: | ||||
optval = OPTBIT(IN6P_HOPOPTS); | optval = OPTBIT(IN6P_HOPOPTS); | ||||
break; | break; | ||||
case IPV6_RECVDSTOPTS: | case IPV6_RECVDSTOPTS: | ||||
▲ Show 20 Lines • Show All 54 Lines • ▼ Show 20 Lines | #endif | ||||
case IPV6_FLOWID: | case IPV6_FLOWID: | ||||
optval = in6p->inp_flowid; | optval = in6p->inp_flowid; | ||||
break; | break; | ||||
case IPV6_FLOWTYPE: | case IPV6_FLOWTYPE: | ||||
optval = in6p->inp_flowtype; | optval = in6p->inp_flowtype; | ||||
break; | break; | ||||
case IPV6_RECVFLOWID: | |||||
optval = OPTBIT2(INP_RECVFLOWID); | |||||
break; | |||||
#ifdef RSS | #ifdef RSS | ||||
case IPV6_RSSBUCKETID: | case IPV6_RSSBUCKETID: | ||||
retval = | retval = | ||||
rss_hash2bucket(in6p->inp_flowid, | rss_hash2bucket(in6p->inp_flowid, | ||||
in6p->inp_flowtype, | in6p->inp_flowtype, | ||||
&rss_bucket); | &rss_bucket); | ||||
if (retval == 0) | if (retval == 0) | ||||
optval = rss_bucket; | optval = rss_bucket; | ||||
else | else | ||||
error = EINVAL; | error = EINVAL; | ||||
break; | |||||
case IPV6_RECVRSSBUCKETID: | |||||
optval = OPTBIT2(INP_RECVRSSBUCKETID); | |||||
break; | break; | ||||
#endif | #endif | ||||
case IPV6_BINDMULTI: | case IPV6_BINDMULTI: | ||||
optval = OPTBIT2(INP_BINDMULTI); | optval = OPTBIT2(INP_BINDMULTI); | ||||
break; | break; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 1,070 Lines • Show Last 20 Lines |