• Home
  • Raw
  • Download

Lines Matching refs:ssk

273 void mptcp_subflow_reset(struct sock *ssk)  in mptcp_subflow_reset()  argument
275 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); in mptcp_subflow_reset()
278 tcp_set_state(ssk, TCP_CLOSE); in mptcp_subflow_reset()
279 tcp_send_active_reset(ssk, GFP_ATOMIC); in mptcp_subflow_reset()
280 tcp_done(ssk); in mptcp_subflow_reset()
501 static void subflow_drop_ctx(struct sock *ssk) in subflow_drop_ctx() argument
503 struct mptcp_subflow_context *ctx = mptcp_subflow_ctx(ssk); in subflow_drop_ctx()
508 subflow_ulp_fallback(ssk, ctx); in subflow_drop_ctx()
690 static bool skb_is_fully_mapped(struct sock *ssk, struct sk_buff *skb) in skb_is_fully_mapped() argument
692 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); in skb_is_fully_mapped()
695 skb_consumed = tcp_sk(ssk)->copied_seq - TCP_SKB_CB(skb)->seq; in skb_is_fully_mapped()
703 static bool validate_mapping(struct sock *ssk, struct sk_buff *skb) in validate_mapping() argument
705 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); in validate_mapping()
706 u32 ssn = tcp_sk(ssk)->copied_seq - subflow->ssn_offset; in validate_mapping()
724 static enum mapping_status get_mapping_status(struct sock *ssk, in get_mapping_status() argument
727 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); in get_mapping_status()
733 skb = skb_peek(&ssk->sk_receive_queue); in get_mapping_status()
737 if (mptcp_check_fallback(ssk)) in get_mapping_status()
752 sk_eat_skb(ssk, skb); in get_mapping_status()
768 MPTCP_INC_STATS(sock_net(ssk), MPTCP_MIB_INFINITEMAPRX); in get_mapping_status()
830 if (skb_is_fully_mapped(ssk, skb)) { in get_mapping_status()
831 MPTCP_INC_STATS(sock_net(ssk), MPTCP_MIB_DSSNOMATCH); in get_mapping_status()
852 if (!validate_mapping(ssk, skb)) in get_mapping_status()
859 static void mptcp_subflow_discard_data(struct sock *ssk, struct sk_buff *skb, in mptcp_subflow_discard_data() argument
862 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); in mptcp_subflow_discard_data()
870 MPTCP_INC_STATS(sock_net(ssk), MPTCP_MIB_DUPDATA); in mptcp_subflow_discard_data()
871 tcp_sk(ssk)->copied_seq += incr; in mptcp_subflow_discard_data()
872 if (!before(tcp_sk(ssk)->copied_seq, TCP_SKB_CB(skb)->end_seq)) in mptcp_subflow_discard_data()
873 sk_eat_skb(ssk, skb); in mptcp_subflow_discard_data()
877 tcp_cleanup_rbuf(ssk, incr); in mptcp_subflow_discard_data()
880 static bool subflow_check_data_avail(struct sock *ssk) in subflow_check_data_avail() argument
882 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); in subflow_check_data_avail()
887 pr_debug("msk=%p ssk=%p data_avail=%d skb=%p", subflow->conn, ssk, in subflow_check_data_avail()
888 subflow->data_avail, skb_peek(&ssk->sk_receive_queue)); in subflow_check_data_avail()
889 if (!skb_peek(&ssk->sk_receive_queue)) in subflow_check_data_avail()
899 status = get_mapping_status(ssk, msk); in subflow_check_data_avail()
900 pr_debug("msk=%p ssk=%p status=%d", msk, ssk, status); in subflow_check_data_avail()
902 ssk->sk_err = EBADMSG; in subflow_check_data_avail()
907 skb = skb_peek(&ssk->sk_receive_queue); in subflow_check_data_avail()
911 subflow->map_subflow_seq = tcp_sk(ssk)->copied_seq - in subflow_check_data_avail()
920 skb = skb_peek(&ssk->sk_receive_queue); in subflow_check_data_avail()
929 ssk->sk_err = EBADMSG; in subflow_check_data_avail()
952 mptcp_subflow_discard_data(ssk, skb, old_ack - ack_seq); in subflow_check_data_avail()
960 ssk->sk_error_report(ssk); in subflow_check_data_avail()
961 tcp_set_state(ssk, TCP_CLOSE); in subflow_check_data_avail()
962 tcp_send_active_reset(ssk, GFP_ATOMIC); in subflow_check_data_avail()
994 void mptcp_space(const struct sock *ssk, int *space, int *full_space) in mptcp_space() argument
996 const struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); in mptcp_space()
1106 struct sock *ssk; in __mptcp_subflow_connect() local
1118 ssk = sf->sk; in __mptcp_subflow_connect()
1119 subflow = mptcp_subflow_ctx(ssk); in __mptcp_subflow_connect()
1125 err = mptcp_pm_get_local_id(msk, (struct sock_common *)ssk); in __mptcp_subflow_connect()
1142 ssk->sk_bound_dev_if = loc->ifindex; in __mptcp_subflow_connect()