Lines Matching +full:software +full:- +full:initiated
1 // SPDX-License-Identifier: GPL-2.0
3 /* Copyright (c) 2024, Kylin Software */
30 if (skops->op != BPF_SOCK_OPS_TCP_CONNECT_CB) in mptcp_subflow()
33 sk = skops->sk; in mptcp_subflow()
41 key = msk->token; in mptcp_subflow()
48 /* A new MPTCP connection is just initiated and this is its primary subflow */ in mptcp_subflow()
74 if (ssk->sk_mark != ++i) { in _check_getsockopt_subflow_mark()
75 ctx->retval = -2; in _check_getsockopt_subflow_mark()
95 if (ssk->sk_mark == 2 && in _check_getsockopt_subflow_cc()
96 __builtin_memcmp(icsk->icsk_ca_ops->name, cc, TCP_CA_NAME_MAX)) { in _check_getsockopt_subflow_cc()
97 ctx->retval = -2; in _check_getsockopt_subflow_cc()
108 struct bpf_sock *sk = ctx->sk; in _getsockopt_subflow()
114 if (!sk || sk->protocol != IPPROTO_MPTCP || in _getsockopt_subflow()
115 (!(ctx->level == SOL_SOCKET && ctx->optname == SO_MARK) && in _getsockopt_subflow()
116 !(ctx->level == SOL_TCP && ctx->optname == TCP_CONGESTION))) in _getsockopt_subflow()
120 if (msk->pm.subflows != 1) { in _getsockopt_subflow()
121 ctx->retval = -1; in _getsockopt_subflow()
125 if (ctx->optname == SO_MARK) in _getsockopt_subflow()