SOL_IP
return do_ip_getsockopt(sk, SOL_IP, optname,
return do_ip_setsockopt(sk, SOL_IP, optname,
else if (IS_ENABLED(CONFIG_INET) && level == SOL_IP)
else if (IS_ENABLED(CONFIG_INET) && level == SOL_IP)
put_cmsg(msg, SOL_IP, IP_RECVFRAGSIZE, sizeof(val), &val);
put_cmsg(msg, SOL_IP, IP_CHECKSUM, sizeof(__wsum), &csum);
if (level != SOL_IP)
put_cmsg(msg, SOL_IP, SCM_SECURITY, ctx.len, ctx.context);
if (level != SOL_IP)
put_cmsg(msg, SOL_IP, IP_ORIGDSTADDR, sizeof(sin), &sin);
put_cmsg(&msg, SOL_IP, IP_PKTINFO, sizeof(info), &info);
put_cmsg(&msg, SOL_IP, IP_TTL, sizeof(hlim), &hlim);
put_cmsg(&msg, SOL_IP, IP_TOS, sizeof(tos), &tos);
if (cmsg->cmsg_level != SOL_IP)
put_cmsg(msg, SOL_IP, IP_RECVERR, sizeof(errhdr), &errhdr);
put_cmsg(msg, SOL_IP, IP_PKTINFO, sizeof(info), &info);
put_cmsg(msg, SOL_IP, IP_TTL, sizeof(int), &ttl);
put_cmsg(msg, SOL_IP, IP_TOS, 1, &ip_hdr(skb)->tos);
put_cmsg(msg, SOL_IP, IP_RECVOPTS, IPCB(skb)->opt.optlen,
put_cmsg(msg, SOL_IP, IP_RETOPTS, opt->optlen, opt->__data);
if (level == SOL_IP && sk->sk_type != SOCK_RAW)
if (level == SOL_IP && sk->sk_type != SOCK_RAW)
if (level == SOL_IP)
if (level == SOL_IP) {
err = ip_setsockopt(sk, SOL_IP, optname, optval, optlen);
err = ip_setsockopt(sk, SOL_IP, optname, optval, optlen);
if (level == SOL_IP)
return sock_recv_errqueue(sk, msg, size, SOL_IP, IP_RECVERR);
cmh->cmsg_level = SOL_IP;
case SOL_IP:
return sock_recv_errqueue(sk, msg, len, SOL_IP, IP_RECVERR);
bpf_setsockopt(skops, SOL_IP, IP_TOS,
err = getsockopt(sock_fd, SOL_IP, IP_TOS, &buf, &optlen);
err = setsockopt(sock_fd, SOL_IP, IP_TOS, &buf, 1);
err = getsockopt(sock_fd, SOL_IP, IP_TOS, &buf, &optlen);
err = getsockopt(sock_fd, SOL_IP, IP_TOS, &buf, &optlen);
} else if ((cm->cmsg_level == SOL_IP &&
err = setsockopt(fd, SOL_IP, IP_RECVORIGDSTADDR, &one,
if ((cm->cmsg_level == SOL_IP &&
.get_level = SOL_IP,
.get_level = SOL_IP,
.get_level = SOL_IP,
.get_level = SOL_IP,
.set_level = SOL_IP,
.set_level = SOL_IP,
BPF_MOV64_IMM(BPF_REG_0, SOL_IP),
.get_level = SOL_IP,
.get_level = SOL_IP,
.set_level = SOL_IP,
.set_level = SOL_IP,
.get_level = SOL_IP,
.get_level = SOL_IP,
.set_level = SOL_IP,
.get_level = SOL_IP,
.set_level = SOL_IP,
.get_level = SOL_IP,
.set_level = SOL_IP,
.get_level = SOL_IP,
.set_level = SOL_IP,
err = getsockopt(sock_fd, SOL_IP, IP_TOS, &buf, &optlen);
err = getsockopt(sock_fd, SOL_IP, IP_TOS, &buf, &optlen);
err = setsockopt(sock_fd, SOL_IP, IP_TOS, &buf, 1);
err = getsockopt(sock_fd, SOL_IP, IP_TOS, &buf, &optlen);
err = setsockopt(sock_fd, SOL_IP, IP_TOS, &buf, 1);
err = getsockopt(sock_fd, SOL_IP, IP_TOS, &buf, &optlen);
err = setsockopt(sock_fd, SOL_IP, IP_TOS, &buf, 1);
err = setsockopt(sock_fd, SOL_IP, IP_TOS, &buf, 1);
err = getsockopt(sock_fd, SOL_IP, IP_TOS, &buf, &optlen);
err = setsockopt(sock_fd, SOL_IP, IP_TOS, &buf, 1);
err = getsockopt(sock_fd, SOL_IP, IP_TOS, &buf, &optlen);
err = getsockopt(sock_fd, SOL_IP, IP_TOS, &buf, &optlen);
err = getsockopt(sock_fd, SOL_IP, IP_TOS, &buf, &optlen);
err = getsockopt(sock_fd, SOL_IP, IP_TOS, &buf, &optlen);
err = setsockopt(sock_fd, SOL_IP, IP_TOS, &buf, 1);
err = setsockopt(fd, SOL_IP, IP_FREEBIND, big_buf, optlen);
err = getsockopt(fd, SOL_IP, IP_FREEBIND, big_buf, &optlen);
err = setsockopt(fd, SOL_IP, IP_TOS, big_buf, optlen);
err = getsockopt(fd, SOL_IP, IP_TOS, big_buf, &optlen);
err = setsockopt(fd, SOL_IP, IP_TTL, &buf, 1);
(void)getsockopt(fd, SOL_IP, IP_TTL, buf, &optlen);
if (ctx->level != SOL_IP || ctx->optname != IP_TOS)
if (ctx->level != SOL_IP || ctx->optname != IP_TOS)
if (ctx->level != SOL_IP || ctx->optname != IP_TOS)
if (ctx->level == SOL_IP && ctx->optname == IP_TOS) {
if (ctx->level == SOL_IP && ctx->optname == IP_FREEBIND) {
if (ctx->level == SOL_IP && ctx->optname == IP_TOS) {
if (ctx->level == SOL_IP && ctx->optname == IP_FREEBIND) {
if (cm->cmsg_level != SOL_IP &&
if (cm->cmsg_level == SOL_IP &&
SOL_IP, IP_TOS, &opt.cmsg.tclass);
SOL_IP, IP_TTL, &opt.cmsg.hlimit);
if ((cmsg->cmsg_level == SOL_IP &&
setsockopt(fd, SOL_IP, IP_TOS,
setsockopt(fd, SOL_IP, IP_TTL,
.level = SOL_IP,
err = getsockopt(fd, SOL_IP, IP_LOCAL_PORT_RANGE, &val, &len);
err = setsockopt(fd, SOL_IP, IP_LOCAL_PORT_RANGE, &val16, sizeof(val16));
err = setsockopt(fd, SOL_IP, IP_LOCAL_PORT_RANGE, &val32, sizeof(val32));
err = setsockopt(fd, SOL_IP, IP_LOCAL_PORT_RANGE, &val64, sizeof(val64));
err = setsockopt(fd, SOL_IP, IP_LOCAL_PORT_RANGE, &range, sizeof(range));
err = setsockopt(fd, SOL_IP, IP_LOCAL_PORT_RANGE, &range, sizeof(range));
err = setsockopt(fd, SOL_IP, IP_LOCAL_PORT_RANGE, &range, sizeof(range));
err = setsockopt(fd, SOL_IP, IP_LOCAL_PORT_RANGE, &range, sizeof(range));
err = setsockopt(fd, SOL_IP, IP_LOCAL_PORT_RANGE, &range, sizeof(range));
err = setsockopt(fd, SOL_IP, IP_BIND_ADDRESS_NO_PORT, &one, sizeof(one));
err = setsockopt(fd, SOL_IP, IP_LOCAL_PORT_RANGE, &range, sizeof(range));
err = setsockopt(fd, SOL_IP, IP_LOCAL_PORT_RANGE, &range, sizeof(range));
if (-1 == setsockopt(fd, SOL_IP, IP_TRANSPARENT, &one, sizeof(one)))
r = setsockopt(fd, SOL_IP, IP_TOS, &tos_in, sizeof(tos_out));
r = getsockopt(fd, SOL_IP, IP_TOS, &tos_out, &s);
r = getsockopt(fd, SOL_IP, IP_TOS, &tos_out, &s);
r = getsockopt(fd, SOL_IP, IP_TOS, &tos_out, &s);
if (!((cm->cmsg_level == SOL_IP && cm->cmsg_type == IP_RECVERR) ||
int level = SOL_IP;
rc = setsockopt(sd, SOL_IP, IP_PKTINFO, &one, sizeof(one));
rc = setsockopt(sd, SOL_IP, IP_RECVERR, &one, sizeof(one));
int level = SOL_IP;
rc = setsockopt(sd, SOL_IP, IP_MULTICAST_IF, &mreq, sizeof(mreq));
if (setsockopt(sd, SOL_IP, IP_FREEBIND, &one, sizeof(one))) {
if (setsockopt(sd, SOL_IP, IP_TOS, &dsfield,
if (cm->cmsg_level == SOL_IP &&
cm->cmsg_level = SOL_IP;
cfg_errq_level = SOL_IP;
const int sk_ip_level = SOL_IP;
const int sk_ip_level = SOL_IP;
ASSERT_EQ(setsockopt(c1, SOL_IP, IP_BIND_ADDRESS_NO_PORT, &one, sizeof(one)), 0);
ASSERT_EQ(setsockopt(c2, SOL_IP, IP_BIND_ADDRESS_NO_PORT, &one, sizeof(one)), 0);
ASSERT_EQ(setsockopt(c1, SOL_IP, IP_BIND_ADDRESS_NO_PORT, &one, sizeof(one)), 0);
ASSERT_EQ(setsockopt(c2, SOL_IP, IP_BIND_ADDRESS_NO_PORT, &one, sizeof(one)), 0);
if (setsockopt(sock, SOL_IP, IP_PKTINFO,
level = SOL_IP;
} else if ((cm->cmsg_level == SOL_IP &&
} else if (cm->cmsg_level == SOL_IP &&
if (setsockopt(fd, SOL_IP, IP_PKTINFO,
level = SOL_IP;
ret = getsockopt(fd, SOL_IP, IP_MTU, &mtu, &vallen);
case SOL_IP:
level = SOL_IP;