SOL_TCP
return do_tcp_getsockopt(sk, SOL_TCP, TCP_CONGESTION,
ret = do_tcp_setsockopt(sk, SOL_TCP, TCP_CONGESTION,
return do_tcp_getsockopt(sk, SOL_TCP, optname,
return do_tcp_setsockopt(sk, SOL_TCP, optname,
else if (IS_ENABLED(CONFIG_INET) && level == SOL_TCP)
else if (IS_ENABLED(CONFIG_INET) && level == SOL_TCP)
if (IS_ENABLED(CONFIG_INET) && level == SOL_TCP &&
put_cmsg(msg, SOL_TCP, TCP_CM_INQ,
if (level != SOL_TCP)
if (level == SOL_TCP && optname == TCP_ZEROCOPY_RECEIVE)
if (level != SOL_TCP)
put_cmsg(msg, SOL_TCP, TCP_CM_INQ, sizeof(inq), &inq);
return mptcp_getsockopt_first_sf_only(msk, SOL_TCP, optname,
return mptcp_getsockopt_first_sf_only(msk, SOL_TCP, optname,
if (level == SOL_TCP)
if (level == SOL_TCP) {
mptcp_setsockopt_first_sf_only(msk, SOL_TCP, optname, optval, optlen);
return mptcp_setsockopt_first_sf_only(msk, SOL_TCP, optname,
ret = mptcp_setsockopt_all_sf(msk, SOL_TCP, optname, optval,
if (level == SOL_TCP)
if (level == SOL_TCP && optname == TCP_ULP)
n = bpf_getsockopt(skops, SOL_TCP, TCP_CONGESTION,
rv = bpf_setsockopt(skops, SOL_TCP,
rv = bpf_setsockopt(skops, SOL_TCP,
rv = bpf_setsockopt(skops, SOL_TCP, TCP_CONGESTION,
rv = bpf_setsockopt(skops, SOL_TCP, TCP_CONGESTION,
rv = bpf_setsockopt(skops, SOL_TCP, TCP_BPF_IW, &iw,
rv = bpf_setsockopt(skops, SOL_TCP, TCP_SAVE_SYN,
rv = bpf_getsockopt(skops, SOL_TCP, TCP_SAVED_SYN,
if (setsockopt(fds[i], SOL_TCP, TCP_CONGESTION, "bpf_cubic",
if (getsockopt(fds[i], SOL_TCP, TCP_CONGESTION,
err = getsockopt(srv_fd, SOL_TCP, TCP_CONGESTION, srv_cc, &cc_len);
SOL_TCP, TCP_FASTOPEN,
err = getsockopt(client_fd, SOL_TCP, TCP_CONGESTION, new, &len);
if (!ASSERT_OK(getsockopt(cfd, SOL_TCP, TCP_BPF_SOCK_OPS_CB_FLAGS, &flags, &flagslen),
#ifndef SOL_TCP
err = setsockopt(s, SOL_TCP, TCP_REPAIR, &repair, sizeof(repair));
err = setsockopt(s, SOL_TCP, TCP_REPAIR, &repair, sizeof(repair));
err = getsockopt(sock_fd, SOL_TCP, TCP_CONGESTION, cc, &optlen);
err = setsockopt(sock_fd, SOL_TCP, TCP_CONGESTION, &cc_cubic,
err = setsockopt(fd, SOL_TCP, TCP_CONGESTION, &buf, strlen("nv"));
err = getsockopt(fd, SOL_TCP, TCP_CONGESTION, &buf, &optlen);
err = getsockopt(fd, SOL_TCP, TCP_ZEROCOPY_RECEIVE, &buf, &optlen);
err = getsockopt(fd, SOL_TCP, TCP_ZEROCOPY_RECEIVE, &buf, &optlen);
#ifndef SOL_TCP
err = setsockopt(listen_fd, SOL_TCP, TCP_TX_DELAY, &opt,
err = getsockopt(fd, SOL_TCP, TCP_INFO, &info, &optlen);
if (bpf_setsockopt(sk, SOL_TCP, TCP_CONGESTION,
if (bpf_setsockopt(sk, SOL_TCP, TCP_CONGESTION,
if (bpf_setsockopt(sk, SOL_TCP, TCP_CONGESTION,
tcp_cdg_res = bpf_setsockopt(sk, SOL_TCP, TCP_CONGESTION,
bpf_getsockopt(sk, SOL_TCP, TCP_CONGESTION,
bpf_setsockopt(sk, SOL_TCP, TCP_CONGESTION,
if (bpf_getsockopt(tp, SOL_TCP, TCP_CONGESTION,
bpf_setsockopt(tp, SOL_TCP, TCP_CONGESTION, dctcp_cc, sizeof(dctcp_cc));
if (bpf_setsockopt(ctx, SOL_TCP, TCP_KEEPIDLE, &one, sizeof(one)))
if (bpf_setsockopt(ctx, SOL_TCP, TCP_KEEPINTVL, &one, sizeof(one)))
if (bpf_setsockopt(ctx, SOL_TCP, TCP_KEEPCNT, &one, sizeof(one)))
if (bpf_setsockopt(ctx, SOL_TCP, TCP_SYNCNT, &one, sizeof(one)))
if (bpf_setsockopt(ctx, SOL_TCP, TCP_USER_TIMEOUT, &one, sizeof(one)))
if (bpf_setsockopt(ctx, SOL_TCP, TCP_NOTSENT_LOWAT, &lowat, sizeof(lowat)))
#ifndef SOL_TCP
if (bpf_getsockopt(ctx, SOL_TCP, TCP_CONGESTION, &buf, sizeof(buf)))
if (bpf_setsockopt(ctx, SOL_TCP, TCP_CONGESTION, (void *)reno, sizeof(reno)))
if (bpf_setsockopt(ctx, SOL_TCP, TCP_CONGESTION, (void *)cubic, sizeof(cubic)))
!(ctx->level == SOL_TCP && ctx->optname == TCP_CONGESTION)))
err = bpf_setsockopt(skops, SOL_TCP, TCP_CONGESTION, cc, TCP_CA_NAME_MAX);
if (!sk || ctx->level != SOL_TCP || ctx->optname != TCP_BPF_SOCK_OPS_CB_FLAGS)
bpf_setsockopt(skops, SOL_TCP, TCP_BPF_SOCK_OPS_CB_FLAGS, &flags, sizeof(flags));
if (bpf_getsockopt(ctx->sk, SOL_TCP, TCP_CONGESTION, &buf, sizeof(buf)))
if (bpf_setsockopt(ctx->sk, SOL_TCP, TCP_CONGESTION, (void *)&cc_reno,
#ifndef SOL_TCP
if (ctx->level == SOL_TCP && ctx->optname == TCP_CONGESTION) {
if (ctx->level == SOL_TCP && ctx->optname == TCP_CONGESTION) {
if (ctx->level == SOL_TCP && ctx->optname == TCP_ZEROCOPY_RECEIVE) {
ret = bpf_getsockopt(skops, SOL_TCP, TCP_BPF_SYN_IP, &hdr, sizeof(hdr));
ret = bpf_getsockopt(skops, SOL_TCP, TCP_BPF_SYN, &hdr, sizeof(hdr));
bpf_setsockopt(skops, SOL_TCP, TCP_SAVE_SYN,
ret = bpf_getsockopt(skops, SOL_TCP, TCP_BPF_SYN_IP, &hdr.ip6,
return bpf_setsockopt(skops, SOL_TCP, TCP_BPF_DELACK_MAX,
return bpf_setsockopt(skops, SOL_TCP, TCP_BPF_RTO_MIN, &min_rto_us,
bpf_setsockopt(skops, SOL_TCP, TCP_SAVE_SYN,
rv = bpf_setsockopt(skops, SOL_TCP, TCP_WINDOW_CLAMP,
#ifndef SOL_TCP
rv = bpf_setsockopt(skops, SOL_TCP, TCP_WINDOW_CLAMP,
#ifndef SOL_TCP
if (setsockopt(fd[i], SOL_TCP, TCP_FASTOPEN, &opt,
if (setsockopt(sk, SOL_TCP, TCP_REPAIR, &val, sizeof(val)))
if (setsockopt(sk, SOL_TCP, TCP_REPAIR_QUEUE, &val, sizeof(val)))
if (getsockopt(sk, SOL_TCP, TCP_QUEUE_SEQ, &ret, &sz))
if (setsockopt(sk, SOL_TCP, TCP_REPAIR, &val, sizeof(val)))
if (setsockopt(sk, SOL_TCP, TCP_REPAIR, &val, sizeof(val)))
if (setsockopt(sk, SOL_TCP, TCP_REPAIR_QUEUE, &val, sizeof(val)))
if (getsockopt(sk, SOL_TCP, TCP_QUEUE_SEQ, &ret, &sz))
if (setsockopt(sk, SOL_TCP, TCP_REPAIR, &val, sizeof(val)))
err = getsockopt(sk, SOL_TCP, TCP_AO_REPAIR, &ao_img, &len);
err = setsockopt(sk, SOL_TCP, TCP_AO_REPAIR, &ao_img, sizeof(ao_img));
#ifndef SOL_TCP
ret = getsockopt(sk, SOL_TCP, TCP_MAXSEG, &state->mss, &len);
ret = getsockopt(sk, SOL_TCP, TCP_TIMESTAMP, &state->timestamp, &len);
ret = getsockopt(sk, SOL_TCP, TCP_AO_REPAIR, state, &len);
if (setsockopt(sk, SOL_TCP, TCP_REPAIR_QUEUE, &queue, sizeof(queue)))
if (setsockopt(sk, SOL_TCP, TCP_QUEUE_SEQ, &seq, sizeof(seq)))
if (setsockopt(sk, SOL_TCP, TCP_REPAIR_QUEUE, &queue, sizeof(queue)))
if (setsockopt(sk, SOL_TCP, TCP_REPAIR_OPTIONS, opts, opt_nr * sizeof(opts[0])))
if (setsockopt(sk, SOL_TCP, TCP_TIMESTAMP,
if (setsockopt(sk, SOL_TCP, TCP_REPAIR_WINDOW, &state->trw, sizeof(state->trw)))
if (setsockopt(sk, SOL_TCP, TCP_AO_REPAIR, state, sizeof(*state)))
if (setsockopt(sk, SOL_TCP, TCP_REPAIR, &val, sizeof(val)))
if (setsockopt(sk, SOL_TCP, TCP_REPAIR, &val, sizeof(val)))
if (setsockopt(sk, SOL_TCP, TCP_REPAIR_QUEUE, &queue, sizeof(queue)))
ret = getsockopt(sk, SOL_TCP, TCP_QUEUE_SEQ, &q->seq, &len);
ret = getsockopt(sk, SOL_TCP, TCP_INFO, &state->info, &len);
ret = getsockopt(sk, SOL_TCP, TCP_REPAIR_WINDOW, &state->trw, &len);
if (setsockopt(rcv_fds[i], SOL_TCP, TCP_FASTOPEN, &qlen,
if (getsockopt(fd, SOL_TCP, TCP_FASTOPEN_KEY, keys, &len))
if (setsockopt(fd, SOL_TCP, TCP_FASTOPEN_KEY, keys,
if (setsockopt(fd, SOL_TCP, TCP_INQ, &one, sizeof(one)) != 0)
if (cm->cmsg_level == SOL_TCP && cm->cmsg_type == TCP_CM_INQ)
if (setsockopt(fd, SOL_TCP, TCP_FASTOPEN, &qlen, sizeof(qlen)) < 0)