Lines Matching refs:msk
296 * protected by the msk data lock
341 static inline void msk_owned_by_me(const struct mptcp_sock *msk)
343 sock_owned_by_me((const struct sock *)msk);
348 /* the msk socket don't use the backlog, also account for the bulk
368 const struct mptcp_sock *msk = mptcp_sk(sk);
370 return READ_ONCE(msk->first_pending);
375 struct mptcp_sock *msk = mptcp_sk(sk);
378 cur = msk->first_pending;
379 return list_is_last(&cur->list, &msk->rtx_queue) ? NULL :
385 const struct mptcp_sock *msk = mptcp_sk(sk);
387 if (!msk->first_pending)
390 if (WARN_ON_ONCE(list_empty(&msk->rtx_queue)))
393 return list_last_entry(&msk->rtx_queue, struct mptcp_data_frag, list);
398 struct mptcp_sock *msk = mptcp_sk(sk);
400 if (msk->snd_una == READ_ONCE(msk->snd_nxt))
403 return list_first_entry_or_null(&msk->rtx_queue, struct mptcp_data_frag, list);
429 struct mptcp_sock *msk;
463 unsigned long avg_pacing_rate; /* protected by msk socket lock */
527 int cached_sndbuf; /* sndbuf size when last synced with the msk sndbuf,
528 * protected by the msk socket lock
626 void __mptcp_subflow_fully_established(struct mptcp_sock *msk,
641 struct sock *__mptcp_nmpc_sk(struct mptcp_sock *msk);
664 int mptcp_init_sched(struct mptcp_sock *msk,
666 void mptcp_release_sched(struct mptcp_sock *msk);
669 struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk);
670 struct sock *mptcp_subflow_get_retrans(struct mptcp_sock *msk);
671 int mptcp_sched_get_send(struct mptcp_sock *msk);
672 int mptcp_sched_get_retrans(struct mptcp_sock *msk);
720 void mptcp_reset_tout_timer(struct mptcp_sock *msk, unsigned long fail_tout);
748 void mptcp_rcv_space_init(struct mptcp_sock *msk, const struct sock *ssk);
768 bool mptcp_update_rcv_data_fin(struct mptcp_sock *msk, u64 data_fin_seq, bool use_64bit);
769 static inline bool mptcp_data_fin_enabled(const struct mptcp_sock *msk)
771 return READ_ONCE(msk->snd_data_fin_enable) &&
772 READ_ONCE(msk->write_seq) == READ_ONCE(msk->snd_nxt);
801 /* the msk max wmem limit is <nr_subflows> * tcp wmem[2] */
806 /* The called held both the msk socket and the subflow socket locks,
818 * BH context. Additionally this can be called under the msk data lock,
834 void mptcp_destroy_common(struct mptcp_sock *msk, unsigned int flags);
848 struct mptcp_sock *msk);
853 void mptcp_token_destroy(struct mptcp_sock *msk);
861 void mptcp_pm_data_init(struct mptcp_sock *msk);
862 void mptcp_pm_data_reset(struct mptcp_sock *msk);
871 void mptcp_pm_subflow_chk_stale(const struct mptcp_sock *msk, struct sock *ssk);
872 void mptcp_pm_nl_subflow_chk_stale(const struct mptcp_sock *msk, struct sock *ssk);
873 void mptcp_pm_new_connection(struct mptcp_sock *msk, const struct sock *ssk, int server_side);
874 void mptcp_pm_fully_established(struct mptcp_sock *msk, const struct sock *ssk);
875 bool mptcp_pm_allow_new_subflow(struct mptcp_sock *msk);
876 void mptcp_pm_connection_closed(struct mptcp_sock *msk);
877 void mptcp_pm_subflow_established(struct mptcp_sock *msk);
878 bool mptcp_pm_nl_check_work_pending(struct mptcp_sock *msk);
879 void mptcp_pm_subflow_check_next(struct mptcp_sock *msk, const struct sock *ssk,
883 void mptcp_pm_add_addr_echoed(struct mptcp_sock *msk,
885 void mptcp_pm_add_addr_send_ack(struct mptcp_sock *msk);
886 void mptcp_pm_nl_addr_send_ack(struct mptcp_sock *msk);
887 void mptcp_pm_rm_addr_received(struct mptcp_sock *msk,
891 int mptcp_pm_nl_mp_prio_send_ack(struct mptcp_sock *msk,
895 bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk,
897 void mptcp_pm_free_anno_list(struct mptcp_sock *msk);
898 bool mptcp_pm_sport_in_anno_list(struct mptcp_sock *msk, const struct sock *sk);
900 mptcp_pm_del_add_timer(struct mptcp_sock *msk,
903 mptcp_lookup_anno_list_by_saddr(const struct mptcp_sock *msk,
905 int mptcp_pm_get_flags_and_ifindex_by_id(struct mptcp_sock *msk,
908 int mptcp_pm_nl_get_flags_and_ifindex_by_id(struct mptcp_sock *msk, unsigned int id,
910 int mptcp_userspace_pm_get_flags_and_ifindex_by_id(struct mptcp_sock *msk,
920 int mptcp_pm_announce_addr(struct mptcp_sock *msk,
923 int mptcp_pm_remove_addr(struct mptcp_sock *msk, const struct mptcp_rm_list *rm_list);
924 int mptcp_pm_remove_subflow(struct mptcp_sock *msk, const struct mptcp_rm_list *rm_list);
925 void mptcp_pm_remove_addrs(struct mptcp_sock *msk, struct list_head *rm_list);
926 void mptcp_pm_remove_addrs_and_subflows(struct mptcp_sock *msk,
929 void mptcp_free_local_addr_list(struct mptcp_sock *msk);
935 void mptcp_event(enum mptcp_event_type type, const struct mptcp_sock *msk,
938 void mptcp_event_addr_removed(const struct mptcp_sock *msk, u8 id);
941 bool mptcp_userspace_pm_active(const struct mptcp_sock *msk);
943 void __mptcp_fastopen_gen_msk_ackseq(struct mptcp_sock *msk, struct mptcp_subflow_context *subflow,
948 static inline bool mptcp_pm_should_add_signal(struct mptcp_sock *msk)
950 return READ_ONCE(msk->pm.addr_signal) &
954 static inline bool mptcp_pm_should_add_signal_addr(struct mptcp_sock *msk)
956 return READ_ONCE(msk->pm.addr_signal) & BIT(MPTCP_ADD_ADDR_SIGNAL);
959 static inline bool mptcp_pm_should_add_signal_echo(struct mptcp_sock *msk)
961 return READ_ONCE(msk->pm.addr_signal) & BIT(MPTCP_ADD_ADDR_ECHO);
964 static inline bool mptcp_pm_should_rm_signal(struct mptcp_sock *msk)
966 return READ_ONCE(msk->pm.addr_signal) & BIT(MPTCP_RM_ADDR_SIGNAL);
969 static inline bool mptcp_pm_is_userspace(const struct mptcp_sock *msk)
971 return READ_ONCE(msk->pm.pm_type) == MPTCP_PM_TYPE_USERSPACE;
974 static inline bool mptcp_pm_is_kernel(const struct mptcp_sock *msk)
976 return READ_ONCE(msk->pm.pm_type) == MPTCP_PM_TYPE_KERNEL;
1002 bool mptcp_pm_add_addr_signal(struct mptcp_sock *msk, const struct sk_buff *skb,
1006 bool mptcp_pm_rm_addr_signal(struct mptcp_sock *msk, unsigned int remaining,
1008 int mptcp_pm_get_local_id(struct mptcp_sock *msk, struct sock_common *skc);
1009 int mptcp_pm_nl_get_local_id(struct mptcp_sock *msk, struct mptcp_addr_info *skc);
1010 int mptcp_userspace_pm_get_local_id(struct mptcp_sock *msk, struct mptcp_addr_info *skc);
1022 void mptcp_pm_nl_work(struct mptcp_sock *msk);
1023 void mptcp_pm_nl_rm_subflow_received(struct mptcp_sock *msk,
1025 unsigned int mptcp_pm_get_add_addr_signal_max(const struct mptcp_sock *msk);
1026 unsigned int mptcp_pm_get_add_addr_accept_max(const struct mptcp_sock *msk);
1027 unsigned int mptcp_pm_get_subflows_max(const struct mptcp_sock *msk);
1028 unsigned int mptcp_pm_get_local_addr_max(const struct mptcp_sock *msk);
1031 static inline void __mptcp_pm_close_subflow(struct mptcp_sock *msk)
1033 if (--msk->pm.subflows < mptcp_pm_get_subflows_max(msk))
1034 WRITE_ONCE(msk->pm.accept_subflow, true);
1037 static inline void mptcp_pm_close_subflow(struct mptcp_sock *msk)
1039 spin_lock_bh(&msk->pm.lock);
1040 __mptcp_pm_close_subflow(msk);
1041 spin_unlock_bh(&msk->pm.lock);
1044 void mptcp_sockopt_sync(struct mptcp_sock *msk, struct sock *ssk);
1045 void mptcp_sockopt_sync_locked(struct mptcp_sock *msk, struct sock *ssk);
1054 static inline bool __mptcp_check_fallback(const struct mptcp_sock *msk)
1056 return test_bit(MPTCP_FALLBACK_DONE, &msk->flags);
1062 struct mptcp_sock *msk = mptcp_sk(subflow->conn);
1064 return __mptcp_check_fallback(msk);
1067 static inline void __mptcp_do_fallback(struct mptcp_sock *msk)
1069 if (test_bit(MPTCP_FALLBACK_DONE, &msk->flags)) {
1070 pr_debug("TCP fallback already done (msk=%p)", msk);
1073 set_bit(MPTCP_FALLBACK_DONE, &msk->flags);
1080 struct mptcp_sock *msk;
1082 msk = mptcp_sk(sk);
1083 __mptcp_do_fallback(msk);
1084 if (READ_ONCE(msk->snd_data_fin_enable) && !(ssk->sk_shutdown & SEND_SHUTDOWN)) {
1097 #define pr_fallback(a) pr_debug("%s:fallback to TCP (msk=%p)", __func__, a)