SOL_IPV6
return ipv6_bpf_stub->ipv6_getsockopt(sk, SOL_IPV6, optname,
return ipv6_bpf_stub->ipv6_setsockopt(sk, SOL_IPV6, optname,
else if (IS_ENABLED(CONFIG_IPV6) && level == SOL_IPV6)
else if (IS_ENABLED(CONFIG_IPV6) && level == SOL_IPV6)
cmsg->cmsg_level == SOL_IPV6 &&
put_cmsg(msg, SOL_IPV6, IPV6_RECVERR, sizeof(errhdr), &errhdr);
put_cmsg(msg, SOL_IPV6, IPV6_PATHMTU, sizeof(mtu_info), &mtu_info);
put_cmsg(msg, SOL_IPV6, IPV6_PKTINFO,
put_cmsg(msg, SOL_IPV6, IPV6_HOPLIMIT, sizeof(hlim), &hlim);
put_cmsg(msg, SOL_IPV6, IPV6_TCLASS, sizeof(tclass), &tclass);
put_cmsg(msg, SOL_IPV6, IPV6_FLOWINFO, sizeof(flowinfo), &flowinfo);
put_cmsg(msg, SOL_IPV6, IPV6_HOPOPTS, (ptr[1]+1)<<3, ptr);
put_cmsg(msg, SOL_IPV6, IPV6_DSTOPTS, len, ptr);
put_cmsg(msg, SOL_IPV6, IPV6_RTHDR, len, ptr);
put_cmsg(msg, SOL_IPV6, IPV6_2292PKTINFO, sizeof(src_info), &src_info);
put_cmsg(msg, SOL_IPV6, IPV6_2292HOPLIMIT, sizeof(hlim), &hlim);
put_cmsg(msg, SOL_IPV6, IPV6_2292HOPOPTS, (ptr[1]+1)<<3, ptr);
put_cmsg(msg, SOL_IPV6, IPV6_2292DSTOPTS, (ptr[1]+1)<<3, ptr);
put_cmsg(msg, SOL_IPV6, IPV6_2292RTHDR, (rthdr->hdrlen+1) << 3, rthdr);
put_cmsg(msg, SOL_IPV6, IPV6_2292DSTOPTS, (ptr[1]+1)<<3, ptr);
put_cmsg(msg, SOL_IPV6, IPV6_ORIGDSTADDR, sizeof(sin6), &sin6);
put_cmsg(msg, SOL_IPV6, IPV6_RECVFRAGSIZE, sizeof(val), &val);
if (cmsg->cmsg_level != SOL_IPV6)
put_cmsg(&msg, SOL_IPV6, IPV6_PKTINFO, sizeof(src_info), &src_info);
put_cmsg(&msg, SOL_IPV6, IPV6_HOPLIMIT, sizeof(hlim), &hlim);
put_cmsg(&msg, SOL_IPV6, IPV6_TCLASS, sizeof(tclass), &tclass);
put_cmsg(&msg, SOL_IPV6, IPV6_2292PKTINFO, sizeof(src_info), &src_info);
put_cmsg(&msg, SOL_IPV6, IPV6_2292HOPLIMIT, sizeof(hlim), &hlim);
put_cmsg(&msg, SOL_IPV6, IPV6_FLOWINFO, sizeof(flowinfo), &flowinfo);
if (level != SOL_IPV6)
if (level != SOL_IPV6)
case SOL_IPV6:
case SOL_IPV6:
if (level == SOL_IPV6)
ret = tcp_setsockopt(ssk, SOL_IPV6, optname, optval, optlen);
if (level == SOL_IPV6) {
if (level == SOL_IPV6)
cmh->cmsg_level = SOL_IPV6;
case SOL_IPV6:
bpf_setsockopt(skops, SOL_IPV6,
(cm->cmsg_level == SOL_IPV6 &&
err = setsockopt(fd, SOL_IPV6, IPV6_RECVORIGDSTADDR, &one,
(cm->cmsg_level == SOL_IPV6 &&
err = setsockopt(sock_fd, SOL_IPV6, IPV6_TCLASS, &buf, sizeof(buf));
if (ctx->level != SOL_IPV6 || ctx->optname != IPV6_TCLASS)
rv = bpf_setsockopt(skops, SOL_IPV6, IPV6_TCLASS, &v,
cm->cmsg_level != SOL_IPV6)
if (cm->cmsg_level == SOL_IPV6 &&
ret = setsockopt(self->fd[i], SOL_IPV6, IPV6_V6ONLY, &(int){1}, sizeof(int));
SOL_IPV6, IPV6_DONTFRAG, &opt.cmsg.dontfrag);
SOL_IPV6, IPV6_TCLASS, &opt.cmsg.tclass);
SOL_IPV6, IPV6_HOPLIMIT, &opt.cmsg.hlimit);
cmsg->cmsg_level = SOL_IPV6;
(cmsg->cmsg_level == SOL_IPV6 &&
setsockopt(fd, SOL_IPV6, IPV6_DONTFRAG,
setsockopt(fd, SOL_IPV6, IPV6_TCLASS,
setsockopt(fd, SOL_IPV6, IPV6_UNICAST_HOPS,
.level = SOL_IPV6,
if (cm->cmsg_level != SOL_IPV6 ||
if (setsockopt(fd, SOL_IPV6, IPV6_FLOWLABEL_MGR, &req, sizeof(req)))
if (setsockopt(fdr, SOL_IPV6, IPV6_FLOWINFO, &one, sizeof(one)))
if (setsockopt(fdt, SOL_IPV6, IPV6_FLOWINFO_SEND, &one,
cm->cmsg_level = SOL_IPV6;
return setsockopt(fd, SOL_IPV6, IPV6_FLOWLABEL_MGR, &req, sizeof(req));
return setsockopt(fd, SOL_IPV6, IPV6_FLOWLABEL_MGR, &req, sizeof(req));
(cm->cmsg_level == SOL_IPV6 && cm->cmsg_type == IPV6_RECVERR) ||
level = SOL_IPV6;
rc = setsockopt(sd, SOL_IPV6, IPV6_RECVPKTINFO, &one, sizeof(one));
rc = setsockopt(sd, SOL_IPV6, IPV6_RECVERR, &one, sizeof(one));
level = SOL_IPV6;
if (setsockopt(sd, SOL_IPV6, IPV6_FREEBIND, &one, sizeof(one))) {
if (setsockopt(sd, SOL_IPV6, IPV6_TCLASS, &dsfield,
} else if (cm->cmsg_level == SOL_IPV6 &&
cm->cmsg_level = SOL_IPV6;
cfg_errq_level = SOL_IPV6;
const int sk_ip_level = SOL_IPV6;
const int sk_ip_level = SOL_IPV6;
level = SOL_IPV6;
(cm->cmsg_level == SOL_IPV6 &&
} else if (cm->cmsg_level == SOL_IPV6 &&
if (setsockopt(fd, SOL_IPV6, IPV6_RECVPKTINFO,
level = SOL_IPV6;
ret = getsockopt(fd, SOL_IPV6, IPV6_MTU, &mtu, &vallen);
case SOL_IPV6:
level = SOL_IPV6;