if (inet_sk_state_load(sk) == TCP_LISTEN) return 0;
start = nla_nest_start_noflag(skb, INET_ULP_INFO_MPTCP); if (!start) return -EMSGSIZE;
slow = lock_sock_fast(sk);
rcu_read_lock();
sf = rcu_dereference(inet_csk(sk)->icsk_ulp_data); if (!sf) {
err = 0; goto nla_failure;
}
if (sf->mp_capable)
flags |= MPTCP_SUBFLOW_FLAG_MCAP_REM; if (sf->request_mptcp)
flags |= MPTCP_SUBFLOW_FLAG_MCAP_LOC; if (sf->mp_join)
flags |= MPTCP_SUBFLOW_FLAG_JOIN_REM; if (sf->request_join)
flags |= MPTCP_SUBFLOW_FLAG_JOIN_LOC; if (sf->backup)
flags |= MPTCP_SUBFLOW_FLAG_BKUP_REM; if (sf->request_bkup)
flags |= MPTCP_SUBFLOW_FLAG_BKUP_LOC; if (READ_ONCE(sf->fully_established))
flags |= MPTCP_SUBFLOW_FLAG_FULLY_ESTABLISHED; if (sf->conn_finished)
flags |= MPTCP_SUBFLOW_FLAG_CONNECTED; if (sf->map_valid)
flags |= MPTCP_SUBFLOW_FLAG_MAPVALID;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.