| /linux-6.15/net/mptcp/ |
| H A D | sockopt.c | 88 ssk->sk_prot->keepalive(ssk, !!val); in mptcp_sol_socket_sync_intval() 294 struct sock *ssk; in mptcp_setsockopt_sol_socket() local 610 lock_sock(ssk); in mptcp_setsockopt_sol_tcp_congestion() 636 lock_sock(ssk); in __mptcp_setsockopt_set_val() 660 lock_sock(ssk); in __mptcp_setsockopt_sol_tcp_cork() 680 lock_sock(ssk); in __mptcp_setsockopt_sol_tcp_nodelay() 893 if (ssk) in mptcp_setsockopt() 917 if (ssk) { in mptcp_getsockopt_first_sf_only() 1493 if (ssk) in mptcp_getsockopt() 1514 ssk->sk_prot->keepalive(ssk, 1); in sync_socket_options() [all …]
|
| H A D | protocol.c | 1362 send_info[backup].ssk = ssk; in mptcp_subflow_get_send() 1383 ssk = send_info[SSK_MODE_ACTIVE].ssk; in mptcp_subflow_get_send() 1384 if (!ssk || !sk_stream_memory_free(ssk)) in mptcp_subflow_get_send() 1390 return ssk; in mptcp_subflow_get_send() 1397 return ssk; in mptcp_subflow_get_send() 1541 if (ssk) in __mptcp_push_pending() 1607 tcp_push(ssk, 0, info.mss_now, tcp_sk(ssk)->nonagle, in __mptcp_subflow_push_pending() 2602 tcp_push(ssk, 0, info.mss_now, tcp_sk(ssk)->nonagle, in __mptcp_retrans() 2648 if (!ssk) in mptcp_mp_fail_no_response() 3683 err = ssk->sk_prot->connect(ssk, uaddr, addr_len); in mptcp_connect() [all …]
|
| H A D | subflow.c | 444 tcp_done(ssk); in mptcp_subflow_reset() 1130 sk_eat_skb(ssk, skb); in get_mapping_status() 1270 sk_eat_skb(ssk, skb); in mptcp_subflow_discard_data() 1327 tcp_send_ack(ssk); in mptcp_subflow_fail() 1603 struct sock *ssk; in __mptcp_subflow_connect() local 1619 ssk = sf->sk; in __mptcp_subflow_connect() 1669 sock_hold(ssk); in __mptcp_subflow_connect() 1879 struct sock *sk, *ssk; in mptcp_subflow_queue_clean() local 1901 ssk = req->sk; in mptcp_subflow_queue_clean() 1902 if (!sk_is_mptcp(ssk)) in mptcp_subflow_queue_clean() [all …]
|
| H A D | pm_netlink.c | 305 switch (ssk->sk_family) { in mptcp_event_add_subflow() 331 sf = mptcp_subflow_ctx(ssk); in mptcp_event_add_subflow() 346 const struct sock *ssk) in mptcp_event_put_token_and_ssk() argument 358 sf = mptcp_subflow_ctx(ssk); in mptcp_event_put_token_and_ssk() 365 if (ssk->sk_bound_dev_if && in mptcp_event_put_token_and_ssk() 369 sk_err = READ_ONCE(ssk->sk_err); in mptcp_event_put_token_and_ssk() 386 const struct sock *ssk) in mptcp_event_sub_closed() argument 393 sf = mptcp_subflow_ctx(ssk); in mptcp_event_sub_closed() 408 const struct sock *ssk) in mptcp_event_created() argument 481 inet_sk(ssk)->inet_dport : in mptcp_event_addr_announced() [all …]
|
| H A D | protocol.h | 722 void mptcp_subflow_reset(struct sock *ssk); 802 void mptcp_subflow_drop_ctx(struct sock *ssk); 822 struct sock *ssk, 978 int mptcp_token_new_connect(struct sock *ssk); 1066 const struct sock *ssk, gfp_t gfp); 1224 struct sock *ssk = READ_ONCE(msk->first); in __mptcp_has_initial_subflow() local 1226 return ssk && ((1 << inet_sk_state_load(ssk)) & in __mptcp_has_initial_subflow() 1245 ssk->sk_allocation = GFP_ATOMIC; in mptcp_do_fallback() 1246 ssk->sk_shutdown |= SEND_SHUTDOWN; in mptcp_do_fallback() 1247 tcp_shutdown(ssk, SEND_SHUTDOWN); in mptcp_do_fallback() [all …]
|
| H A D | sched.c | 22 struct sock *ssk; in mptcp_sched_default_get_send() local 24 ssk = mptcp_subflow_get_send(msk); in mptcp_sched_default_get_send() 25 if (!ssk) in mptcp_sched_default_get_send() 28 mptcp_subflow_set_scheduled(mptcp_subflow_ctx(ssk), true); in mptcp_sched_default_get_send() 35 struct sock *ssk; in mptcp_sched_default_get_retrans() local 37 ssk = mptcp_subflow_get_retrans(msk); in mptcp_sched_default_get_retrans() 38 if (!ssk) in mptcp_sched_default_get_retrans() 41 mptcp_subflow_set_scheduled(mptcp_subflow_ctx(ssk), true); in mptcp_sched_default_get_retrans()
|
| H A D | fastopen.c | 12 struct sock *sk, *ssk; in mptcp_fastopen_subflow_synack_set_params() local 22 ssk = subflow->tcp_sock; in mptcp_fastopen_subflow_synack_set_params() 24 tp = tcp_sk(ssk); in mptcp_fastopen_subflow_synack_set_params() 28 skb = skb_peek(&ssk->sk_receive_queue); in mptcp_fastopen_subflow_synack_set_params() 33 __skb_unlink(skb, &ssk->sk_receive_queue); in mptcp_fastopen_subflow_synack_set_params()
|
| H A D | pm.c | 192 slow = lock_sock_fast(ssk); in __mptcp_pm_send_ack() 198 __mptcp_subflow_send_ack(ssk); in __mptcp_pm_send_ack() 199 unlock_sock_fast(ssk, slow); in __mptcp_pm_send_ack() 599 mptcp_event_addr_announced(ssk, addr); in mptcp_pm_add_addr_received() 682 if ((1 << inet_sk_state_load(ssk)) & in mptcp_pm_rm_addr_or_subflow() 694 mptcp_subflow_shutdown(sk, ssk, how); in mptcp_pm_rm_addr_or_subflow() 698 mptcp_close_ssk(sk, ssk, subflow); in mptcp_pm_rm_addr_or_subflow() 911 slow = lock_sock_fast(ssk); in mptcp_pm_subflows_chk_stale() 912 if (!tcp_rtx_and_write_queues_empty(ssk)) { in mptcp_pm_subflows_chk_stale() 917 unlock_sock_fast(ssk, slow); in mptcp_pm_subflows_chk_stale() [all …]
|
| H A D | pm_userspace.c | 441 struct sock *ssk; in mptcp_nl_find_ssk() local 443 ssk = mptcp_subflow_tcp_sock(subflow); in mptcp_nl_find_ssk() 445 if (local->family != ssk->sk_family) in mptcp_nl_find_ssk() 448 issk = inet_sk(ssk); in mptcp_nl_find_ssk() 450 switch (ssk->sk_family) { in mptcp_nl_find_ssk() 459 !ipv6_addr_equal(&remote->addr6, &ssk->sk_v6_daddr)) in mptcp_nl_find_ssk() 470 return ssk; in mptcp_nl_find_ssk() 482 struct sock *sk, *ssk; in mptcp_pm_nl_subflow_destroy_doit() local 534 ssk = mptcp_nl_find_ssk(msk, &addr_l.addr, &addr_r); in mptcp_pm_nl_subflow_destroy_doit() 535 if (!ssk) { in mptcp_pm_nl_subflow_destroy_doit() [all …]
|
| H A D | ctrl.c | 466 bool mptcp_active_should_disable(struct sock *ssk) in mptcp_active_should_disable() argument 468 struct net *net = sock_net(ssk); in mptcp_active_should_disable() 512 void mptcp_active_detect_blackhole(struct sock *ssk, bool expired) in mptcp_active_detect_blackhole() argument 519 if (likely(!sk_is_mptcp(ssk) || ssk->sk_state != TCP_SYN_SENT)) in mptcp_active_detect_blackhole() 522 subflow = mptcp_subflow_ctx(ssk); in mptcp_active_detect_blackhole() 531 net = sock_net(ssk); in mptcp_active_detect_blackhole() 532 timeouts = inet_csk(ssk)->icsk_retransmits; in mptcp_active_detect_blackhole()
|
| H A D | pm_kernel.c | 90 if (!((1 << inet_sk_state_load(ssk)) & in lookup_subflow_by_daddr() 204 ssk = mptcp_subflow_tcp_sock(subflow); in fill_remote_addresses_vec() 636 struct sock *newsk, *ssk; in mptcp_pm_nl_create_listen_socket() local 662 ssk = __mptcp_nmpc_sk(mptcp_sk(newsk)); in mptcp_pm_nl_create_listen_socket() 664 if (IS_ERR(ssk)) in mptcp_pm_nl_create_listen_socket() 665 return PTR_ERR(ssk); in mptcp_pm_nl_create_listen_socket() 672 if (ssk->sk_family == AF_INET) in mptcp_pm_nl_create_listen_socket() 675 else if (ssk->sk_family == AF_INET6) in mptcp_pm_nl_create_listen_socket() 687 lock_sock(ssk); in mptcp_pm_nl_create_listen_socket() 689 err = __inet_listen_sk(ssk, backlog); in mptcp_pm_nl_create_listen_socket() [all …]
|
| H A D | options.c | 946 tcp_send_ack(ssk); in check_fully_established() 982 mptcp_do_fallback(ssk); in check_fully_established() 1008 clear_3rdack_retransmission(ssk); in check_fully_established() 1011 mptcp_pm_fully_established(msk, ssk); in check_fully_established() 1016 mptcp_subflow_reset(ssk); in check_fully_established() 1043 struct sock *ssk, in ack_update_msk() argument 1063 new_wnd_end = new_snd_una + tcp_sk(ssk)->snd_wnd; in ack_update_msk() 1070 __mptcp_check_push(sk, ssk); in ack_update_msk() 1265 subflow = mptcp_subflow_ctx(ssk); in mptcp_set_rwin() 1591 subflow = mptcp_subflow_ctx(ssk); in mptcp_write_options() [all …]
|
| H A D | token.c | 151 int mptcp_token_new_connect(struct sock *ssk) in mptcp_token_new_connect() argument 153 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); in mptcp_token_new_connect() 173 ssk, subflow->local_key, subflow->token, subflow->idsn); in mptcp_token_new_connect()
|
| /linux-6.15/tools/testing/selftests/bpf/progs/ |
| H A D | mptcp_subflow.c | 69 struct sock *ssk; in _check_getsockopt_subflow_mark() local 71 ssk = mptcp_subflow_tcp_sock(bpf_core_cast(subflow, in _check_getsockopt_subflow_mark() 74 if (ssk->sk_mark != ++i) { in _check_getsockopt_subflow_mark() 89 struct sock *ssk; in _check_getsockopt_subflow_cc() local 91 ssk = mptcp_subflow_tcp_sock(bpf_core_cast(subflow, in _check_getsockopt_subflow_cc() 93 icsk = bpf_core_cast(ssk, struct inet_connection_sock); in _check_getsockopt_subflow_cc() 95 if (ssk->sk_mark == 2 && in _check_getsockopt_subflow_cc()
|
| H A D | mptcp_sock.c | 82 const struct sock *ssk, int server_side) in BPF_PROG() argument
|
| /linux-6.15/include/trace/events/ |
| H A D | mptcp.h | 34 struct sock *ssk; 44 ssk = mptcp_subflow_tcp_sock(subflow); 45 if (ssk && sk_fullsock(ssk)) { 46 __entry->snd_wnd = tcp_sk(ssk)->snd_wnd; 47 __entry->pace = READ_ONCE(ssk->sk_pacing_rate); 53 if (ssk && sk_fullsock(ssk) && __entry->pace) 54 __entry->ratio = div_u64((u64)ssk->sk_wmem_queued << 32, __entry->pace);
|
| /linux-6.15/include/linux/ |
| H A D | netlink.h | 228 int netlink_unicast(struct sock *ssk, struct sk_buff *skb, __u32 portid, int nonblock); 229 int netlink_broadcast(struct sock *ssk, struct sk_buff *skb, __u32 portid, 234 int netlink_broadcast_filtered(struct sock *ssk, struct sk_buff *skb, 238 int netlink_set_err(struct sock *ssk, __u32 portid, __u32 group, int code); 245 long *timeo, struct sock *ssk); 330 int __netlink_dump_start(struct sock *ssk, struct sk_buff *skb, 333 static inline int netlink_dump_start(struct sock *ssk, struct sk_buff *skb, in netlink_dump_start() argument 340 return __netlink_dump_start(ssk, skb, nlh, control); in netlink_dump_start()
|
| H A D | security.h | 1684 int security_mptcp_add_subflow(struct sock *sk, struct sock *ssk); 1913 static inline int security_mptcp_add_subflow(struct sock *sk, struct sock *ssk) in security_mptcp_add_subflow() argument
|
| H A D | lsm_hook_defs.h | 376 LSM_HOOK(int, 0, mptcp_add_subflow, struct sock *sk, struct sock *ssk)
|
| /linux-6.15/net/netlink/ |
| H A D | af_netlink.c | 1144 sock = netlink_lookup(sock_net(ssk), ssk->sk_protocol, portid); in netlink_getsockbyportid() 1213 long *timeo, struct sock *ssk) in netlink_attachskb() argument 1223 if (!ssk || netlink_is_kernel(ssk)) in netlink_attachskb() 1302 struct sock *ssk) in netlink_unicast_kernel() argument 1311 NETLINK_CB(skb).sk = ssk; in netlink_unicast_kernel() 1312 netlink_deliver_tap_kernel(sk, ssk, skb); in netlink_unicast_kernel() 1331 timeo = sock_sndtimeo(ssk, nonblock); in netlink_unicast() 1497 struct net *net = sock_net(ssk); in netlink_broadcast_filtered() 1503 info.exclude_sk = ssk; in netlink_broadcast_filtered() 1601 info.exclude_sk = ssk; in netlink_set_err() [all …]
|
| /linux-6.15/include/net/ |
| H A D | mptcp.h | 156 void mptcp_space(const struct sock *ssk, int *space, int *full_space); 309 static inline void mptcp_space(const struct sock *ssk, int *s, int *fs) { } in mptcp_space() argument
|
| /linux-6.15/security/ |
| H A D | security.c | 5191 int security_mptcp_add_subflow(struct sock *sk, struct sock *ssk) in security_mptcp_add_subflow() argument 5193 return call_int_hook(mptcp_add_subflow, sk, ssk); in security_mptcp_add_subflow()
|
| /linux-6.15/security/selinux/ |
| H A D | hooks.c | 5562 static int selinux_mptcp_add_subflow(struct sock *sk, struct sock *ssk) in selinux_mptcp_add_subflow() argument 5564 struct sk_security_struct *ssksec = selinux_sock(ssk); in selinux_mptcp_add_subflow() 5574 return selinux_netlbl_socket_post_create(ssk, ssk->sk_family); in selinux_mptcp_add_subflow()
|
| /linux-6.15/net/core/ |
| H A D | rtnetlink.c | 6842 static int rtnetlink_dump_start(struct sock *ssk, struct sk_buff *skb, in rtnetlink_dump_start() argument 6853 return netlink_dump_start(ssk, skb, nlh, control); in rtnetlink_dump_start()
|