Searched refs:subflow (Results 1 - 16 of 16) sorted by relevance

/linux-master/net/mptcp/
H A Dsubflow.c313 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); local
321 mptcp_fastopen_subflow_synack_set_params(subflow, req);
378 static bool subflow_thmac_valid(struct mptcp_subflow_context *subflow) argument
383 subflow_generate_hmac(subflow->remote_key, subflow->local_key,
384 subflow->remote_nonce, subflow->local_nonce,
388 pr_debug("subflow=%p, token=%u, thmac=%llu, subflow->thmac=%llu\n",
389 subflow, subflo
396 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); local
423 struct mptcp_subflow_context *subflow; local
443 subflow_set_remote_key(struct mptcp_sock *msk, struct mptcp_subflow_context *subflow, const struct mptcp_options_received *mp_opt) argument
464 mptcp_propagate_state(struct sock *sk, struct sock *ssk, struct mptcp_subflow_context *subflow, const struct mptcp_options_received *mp_opt) argument
491 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); local
577 subflow_set_local_id(struct mptcp_subflow_context *subflow, int local_id) argument
585 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); local
627 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); local
658 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); local
754 __mptcp_subflow_fully_established(struct mptcp_sock *msk, struct mptcp_subflow_context *subflow, const struct mptcp_options_received *mp_opt) argument
926 dbg_bad_map(struct mptcp_subflow_context *subflow, u32 ssn) argument
934 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); local
947 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); local
969 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); local
1048 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); local
1193 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); local
1220 subflow_can_fallback(struct mptcp_subflow_context *subflow) argument
1234 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); local
1261 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); local
1358 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); local
1385 const struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); local
1413 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); local
1470 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); local
1522 struct mptcp_subflow_context *subflow; local
1654 struct mptcp_subflow_context *subflow; local
1759 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); local
1796 struct mptcp_subflow_context *subflow; local
1992 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); local
[all...]
H A Dfastopen.c9 void mptcp_fastopen_subflow_synack_set_params(struct mptcp_subflow_context *subflow, argument
16 /* on early fallback the subflow context is deleted by
19 if (!subflow)
22 ssk = subflow->tcp_sock;
23 sk = subflow->conn;
26 subflow->is_mptfo = 1;
38 * space, need to offset it in the subflow sequence, see mptcp_subflow_get_map_offset()
41 subflow->ssn_offset += skb->len;
62 void __mptcp_fastopen_gen_msk_ackseq(struct mptcp_sock *msk, struct mptcp_subflow_context *subflow, argument
H A Dsched.c118 void mptcp_subflow_set_scheduled(struct mptcp_subflow_context *subflow, argument
121 WRITE_ONCE(subflow->scheduled, scheduled);
126 struct mptcp_subflow_context *subflow; local
142 mptcp_for_each_subflow(msk, subflow) {
143 if (READ_ONCE(subflow->scheduled))
155 struct mptcp_subflow_context *subflow; local
164 mptcp_for_each_subflow(msk, subflow) {
165 if (READ_ONCE(subflow->scheduled))
H A Doptions.c56 * close the subflow with a RST, as it is not behaving as negotiated.
58 * receiver MUST close the subflow with a RST, as it is considered
407 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); local
412 subflow->snd_isn = TCP_SKB_CB(skb)->end_seq;
413 if (subflow->request_mptcp) {
419 } else if (subflow->request_join) {
420 pr_debug("remote_token=%u, nonce=%u", subflow->remote_token,
421 subflow->local_nonce);
423 opts->join_id = subflow->local_id;
424 opts->token = subflow
448 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); local
528 mptcp_write_data_fin(struct mptcp_subflow_context *subflow, struct sk_buff *skb, struct mptcp_ext *ext) argument
561 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); local
654 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); local
709 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); local
739 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); local
765 const struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); local
784 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); local
807 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); local
829 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); local
925 check_fully_established(struct mptcp_sock *msk, struct sock *ssk, struct mptcp_subflow_context *subflow, struct sk_buff *skb, struct mptcp_options_received *mp_opt) argument
1116 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); local
1253 struct mptcp_subflow_context *subflow; local
1348 struct mptcp_subflow_context *subflow; local
[all...]
H A Dprotocol.c69 struct mptcp_subflow_context *subflow; local
80 subflow = mptcp_subflow_ctx(ssock->sk);
81 list_add(&subflow->node, &msk->conn_list);
83 subflow->request_mptcp = 1;
84 subflow->subflow_id = msk->subflow_id++;
86 /* This is the first subflow, always with id 0 */
87 WRITE_ONCE(subflow->local_id, 0);
94 /* If the MPC handshake is not started, returns the first subflow,
341 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); local
351 /* try to fetch required memory from subflow */
481 mptcp_timeout_from_subflow(const struct mptcp_subflow_context *subflow) argument
491 struct mptcp_subflow_context *subflow; local
522 struct mptcp_subflow_context *subflow; local
554 struct mptcp_subflow_context *subflow; local
624 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); local
790 struct mptcp_subflow_context *subflow; local
827 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); local
886 struct mptcp_subflow_context *tmp, *subflow; local
933 struct mptcp_subflow_context *subflow; local
1066 struct mptcp_subflow_context *subflow; local
1374 mptcp_subflow_set_active(struct mptcp_subflow_context *subflow) argument
1383 mptcp_subflow_active(struct mptcp_subflow_context *subflow) argument
1407 struct mptcp_subflow_context *subflow; local
1573 struct mptcp_subflow_context *subflow; local
1639 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); local
1979 struct mptcp_subflow_context *subflow; local
2306 struct mptcp_subflow_context *subflow; local
2384 __mptcp_subflow_disconnect(struct sock *ssk, struct mptcp_subflow_context *subflow, unsigned int flags) argument
2408 __mptcp_close_ssk(struct sock *sk, struct sock *ssk, struct mptcp_subflow_context *subflow, unsigned int flags) argument
2501 mptcp_close_ssk(struct sock *sk, struct sock *ssk, struct mptcp_subflow_context *subflow) argument
2510 mptcp_pm_subflow_check_next(mptcp_sk(sk), subflow); local
2522 struct mptcp_subflow_context *subflow, *tmp; local
2554 struct mptcp_subflow_context *subflow, *tmp; local
2604 struct mptcp_subflow_context *subflow; local
2720 struct mptcp_subflow_context *subflow, *tmp; local
2948 struct mptcp_subflow_context *subflow; local
3043 struct mptcp_subflow_context *subflow; local
3255 struct mptcp_subflow_context *subflow; local
3347 struct mptcp_subflow_context *subflow, *tmp; local
3489 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); local
3539 struct mptcp_subflow_context *subflow; local
3571 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); local
3695 mptcp_subflow_early_fallback(struct mptcp_sock *msk, struct mptcp_subflow_context *subflow) argument
3704 struct mptcp_subflow_context *subflow; local
3895 struct mptcp_subflow_context *subflow; local
4055 struct mptcp_subflow_context *subflow; local
[all...]
H A Dprotocol.h262 u64 local_key; /* protected by the first subflow socket lock
290 bool recovery; /* closing subflow write queue reinjected */
299 u8 pending_state; /* A subflow asked to set this sk_state,
320 * ONCE annotation, the subflow outside the socket
475 /* MPTCP subflow context */
515 is_mptfo : 1, /* subflow is doing TFO */
524 u8 hmac[MPTCPOPT_HMAC_LEN]; /* MPJ subflow only */
568 mptcp_subflow_tcp_sock(const struct mptcp_subflow_context *subflow) argument
570 return subflow->tcp_sock;
574 mptcp_subflow_ctx_reset(struct mptcp_subflow_context *subflow) argument
582 mptcp_subflow_get_map_offset(const struct mptcp_subflow_context *subflow) argument
590 mptcp_subflow_get_mapped_dsn(const struct mptcp_subflow_context *subflow) argument
597 mptcp_subflow_delegate(struct mptcp_subflow_context *subflow, int action) argument
717 __mptcp_subflow_active(struct mptcp_subflow_context *subflow) argument
847 struct mptcp_subflow_context *subflow; local
871 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); local
884 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); local
1073 subflow_get_local_id(const struct mptcp_subflow_context *subflow) argument
1122 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); local
1148 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); local
1180 is_active_ssk(struct mptcp_subflow_context *subflow) argument
1187 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); local
[all...]
H A Dpm.c187 const struct mptcp_subflow_context *subflow)
192 update_subflows = subflow->request_join || subflow->mp_join;
209 /* Even if this subflow is not really established, tell the PM to try
221 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); local
222 struct mptcp_sock *msk = mptcp_sk(subflow->conn);
295 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); local
296 struct sock *sk = subflow->conn;
299 pr_debug("subflow->backup=%d, bkup=%d\n", subflow
186 mptcp_pm_subflow_check_next(struct mptcp_sock *msk, const struct mptcp_subflow_context *subflow) argument
309 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); local
468 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); local
[all...]
H A Dtoken.c136 * mptcp_token_new_connect - create new key/idsn/token for subflow
153 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); local
154 struct mptcp_sock *msk = mptcp_sk(subflow->conn);
156 struct sock *sk = subflow->conn;
160 mptcp_crypto_key_gen_sha(&subflow->local_key, &subflow->token,
161 &subflow->idsn);
163 bucket = token_bucket(subflow->token);
165 if (__token_bucket_busy(bucket, subflow->token)) {
173 ssk, subflow
[all...]
H A Dsockopt.c72 struct mptcp_subflow_context *subflow; local
78 mptcp_for_each_subflow(msk, subflow) {
79 struct sock *ssk = mptcp_subflow_tcp_sock(subflow);
116 subflow->setsockopt_seq = msk->setsockopt_seq;
150 struct mptcp_subflow_context *subflow; local
160 mptcp_for_each_subflow(msk, subflow) {
161 struct sock *ssk = mptcp_subflow_tcp_sock(subflow);
212 struct mptcp_subflow_context *subflow; local
238 mptcp_for_each_subflow(msk, subflow) {
239 struct sock *ssk = mptcp_subflow_tcp_sock(subflow);
254 struct mptcp_subflow_context *subflow; local
587 struct mptcp_subflow_context *subflow; local
629 struct mptcp_subflow_context *subflow; local
649 struct mptcp_subflow_context *subflow; local
715 struct mptcp_subflow_context *subflow; local
1032 struct mptcp_subflow_context *subflow; local
1124 struct mptcp_subflow_context *subflow; local
1223 struct mptcp_subflow_context *subflow; local
1469 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); local
1493 struct mptcp_subflow_context *subflow; local
[all...]
H A DMakefile4 mptcp-y := protocol.o subflow.o options.o token.o crypto.o ctrl.o pm.o diag.o \
H A Dpm_netlink.c112 struct mptcp_subflow_context *subflow; local
116 list_for_each_entry(subflow, list, node) {
117 skc = (struct sock_common *)mptcp_subflow_tcp_sock(subflow);
130 struct mptcp_subflow_context *subflow; local
134 list_for_each_entry(subflow, list, node) {
135 skc = (struct sock_common *)mptcp_subflow_tcp_sock(subflow);
403 struct mptcp_subflow_context *subflow; local
412 * corresponding to the primary MPC subflow remote address
430 mptcp_for_each_subflow(msk, subflow)
431 if (READ_ONCE(subflow
461 __mptcp_pm_send_ack(struct mptcp_sock *msk, struct mptcp_subflow_context *subflow, bool prio, bool backup) argument
481 mptcp_pm_send_ack(struct mptcp_sock *msk, struct mptcp_subflow_context *subflow, bool prio, bool backup) argument
530 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(msk->first); local
719 struct mptcp_subflow_context *subflow; local
738 struct mptcp_subflow_context *subflow; local
772 struct mptcp_subflow_context *subflow, *tmp; local
1109 struct mptcp_subflow_context *iter, *subflow = mptcp_subflow_ctx(ssk); local
2119 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); local
[all...]
H A Dpm_userspace.c84 /* If the subflow is closed from the other peer (not via a
85 * subflow destroy command then), we want to keep the entry
87 * able to send RM_ADDR after the removal of the subflow.
237 struct mptcp_subflow_context *subflow; local
243 mptcp_for_each_subflow(msk, subflow) {
244 if (READ_ONCE(subflow->local_id) == 0) {
416 struct mptcp_subflow_context *subflow; local
421 mptcp_for_each_subflow(msk, subflow) {
425 ssk = mptcp_subflow_tcp_sock(subflow);
529 struct mptcp_subflow_context *subflow local
[all...]
/linux-master/include/trace/events/
H A Dmptcp.h20 TP_PROTO(struct mptcp_subflow_context *subflow),
22 TP_ARGS(subflow),
36 __entry->active = mptcp_subflow_active(subflow);
37 __entry->backup = subflow->backup;
39 if (subflow->tcp_sock && sk_fullsock(subflow->tcp_sock))
40 __entry->free = sk_stream_memory_free(subflow->tcp_sock);
44 ssk = mptcp_subflow_tcp_sock(subflow);
/linux-master/tools/testing/selftests/net/mptcp/
H A Dmptcp_join.sh789 local flags="subflow"
795 # let the mptcp subflow be established in background before
1452 # the subflow creation
1701 # in case of simult flush, the subflow removal count on each side is
1823 # number of all subflows, including the initial subflow.
1912 # subflow limited by client
1913 if reset "single subflow, limited by client"; then
1916 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
1921 # subflow limited by server
1922 if reset "single subflow, limite
[all...]
H A Dpm_netlink.sh79 ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.2 flags subflow dev lo
85 id 2 flags subflow dev lo 10.0.1.2
169 ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.1 flags subflow
172 subflow,backup 10.0.1.1" "set flags (backup)"
175 subflow 10.0.1.1" " (nobackup)"
182 subflow,fullmesh 10.0.1.1" " (fullmesh)"
185 subflow 10.0.1.1" " (nofullmesh)"
188 subflow,backup,fullmesh 10.0.1.1" " (backup,fullmesh)"
H A Dsimult_flows.sh89 ip netns exec "$ns1" ./pm_nl_ctl add 10.0.2.1 dev ns1eth2 flags subflow

Completed in 172 milliseconds