Lines Matching refs:msk

322 static inline void msk_owned_by_me(const struct mptcp_sock *msk)  in msk_owned_by_me()  argument
324 sock_owned_by_me((const struct sock *)msk); in msk_owned_by_me()
347 const struct mptcp_sock *msk = mptcp_sk(sk); in mptcp_send_head() local
349 return READ_ONCE(msk->first_pending); in mptcp_send_head()
354 struct mptcp_sock *msk = mptcp_sk(sk); in mptcp_send_next() local
357 cur = msk->first_pending; in mptcp_send_next()
358 return list_is_last(&cur->list, &msk->rtx_queue) ? NULL : in mptcp_send_next()
364 struct mptcp_sock *msk = mptcp_sk(sk); in mptcp_pending_tail() local
366 if (!msk->first_pending) in mptcp_pending_tail()
369 if (WARN_ON_ONCE(list_empty(&msk->rtx_queue))) in mptcp_pending_tail()
372 return list_last_entry(&msk->rtx_queue, struct mptcp_data_frag, list); in mptcp_pending_tail()
377 struct mptcp_sock *msk = mptcp_sk(sk); in mptcp_rtx_head() local
379 if (msk->snd_una == READ_ONCE(msk->snd_nxt)) in mptcp_rtx_head()
382 return list_first_entry_or_null(&msk->rtx_queue, struct mptcp_data_frag, list); in mptcp_rtx_head()
408 struct mptcp_sock *msk; member
604 void mptcp_copy_inaddrs(struct sock *msk, const struct sock *ssk);
619 struct socket *__mptcp_nmpc_socket(const struct mptcp_sock *msk);
677 void mptcp_reset_timeout(struct mptcp_sock *msk, unsigned long fail_tout);
683 void mptcp_rcv_space_init(struct mptcp_sock *msk, const struct sock *ssk);
704 bool mptcp_update_rcv_data_fin(struct mptcp_sock *msk, u64 data_fin_seq, bool use_64bit);
705 static inline bool mptcp_data_fin_enabled(const struct mptcp_sock *msk) in mptcp_data_fin_enabled() argument
707 return READ_ONCE(msk->snd_data_fin_enable) && in mptcp_data_fin_enabled()
708 READ_ONCE(msk->write_seq) == READ_ONCE(msk->snd_nxt); in mptcp_data_fin_enabled()
730 void mptcp_destroy_common(struct mptcp_sock *msk, unsigned int flags);
744 struct mptcp_sock *msk);
749 void mptcp_token_destroy(struct mptcp_sock *msk);
757 void mptcp_pm_data_init(struct mptcp_sock *msk);
758 void mptcp_pm_data_reset(struct mptcp_sock *msk);
764 void mptcp_pm_subflow_chk_stale(const struct mptcp_sock *msk, struct sock *ssk);
765 void mptcp_pm_nl_subflow_chk_stale(const struct mptcp_sock *msk, struct sock *ssk);
766 void mptcp_pm_new_connection(struct mptcp_sock *msk, const struct sock *ssk, int server_side);
767 void mptcp_pm_fully_established(struct mptcp_sock *msk, const struct sock *ssk, gfp_t gfp);
768 bool mptcp_pm_allow_new_subflow(struct mptcp_sock *msk);
769 void mptcp_pm_connection_closed(struct mptcp_sock *msk);
770 void mptcp_pm_subflow_established(struct mptcp_sock *msk);
771 bool mptcp_pm_nl_check_work_pending(struct mptcp_sock *msk);
772 void mptcp_pm_subflow_check_next(struct mptcp_sock *msk, const struct sock *ssk,
776 void mptcp_pm_add_addr_echoed(struct mptcp_sock *msk,
778 void mptcp_pm_add_addr_send_ack(struct mptcp_sock *msk);
779 void mptcp_pm_nl_addr_send_ack(struct mptcp_sock *msk);
780 void mptcp_pm_rm_addr_received(struct mptcp_sock *msk,
784 int mptcp_pm_nl_mp_prio_send_ack(struct mptcp_sock *msk,
788 bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk,
790 void mptcp_pm_free_anno_list(struct mptcp_sock *msk);
791 bool mptcp_pm_sport_in_anno_list(struct mptcp_sock *msk, const struct sock *sk);
793 mptcp_pm_del_add_timer(struct mptcp_sock *msk,
796 mptcp_lookup_anno_list_by_saddr(const struct mptcp_sock *msk,
798 int mptcp_pm_get_flags_and_ifindex_by_id(struct mptcp_sock *msk,
801 int mptcp_userspace_pm_get_flags_and_ifindex_by_id(struct mptcp_sock *msk,
807 int mptcp_pm_announce_addr(struct mptcp_sock *msk,
810 int mptcp_pm_remove_addr(struct mptcp_sock *msk, const struct mptcp_rm_list *rm_list);
811 int mptcp_pm_remove_subflow(struct mptcp_sock *msk, const struct mptcp_rm_list *rm_list);
812 void mptcp_pm_remove_addrs_and_subflows(struct mptcp_sock *msk,
815 int mptcp_userspace_pm_append_new_local_addr(struct mptcp_sock *msk,
817 void mptcp_free_local_addr_list(struct mptcp_sock *msk);
823 void mptcp_event(enum mptcp_event_type type, const struct mptcp_sock *msk,
826 void mptcp_event_addr_removed(const struct mptcp_sock *msk, u8 id);
827 bool mptcp_userspace_pm_active(const struct mptcp_sock *msk);
829 static inline bool mptcp_pm_should_add_signal(struct mptcp_sock *msk) in mptcp_pm_should_add_signal() argument
831 return READ_ONCE(msk->pm.addr_signal) & in mptcp_pm_should_add_signal()
835 static inline bool mptcp_pm_should_add_signal_addr(struct mptcp_sock *msk) in mptcp_pm_should_add_signal_addr() argument
837 return READ_ONCE(msk->pm.addr_signal) & BIT(MPTCP_ADD_ADDR_SIGNAL); in mptcp_pm_should_add_signal_addr()
840 static inline bool mptcp_pm_should_add_signal_echo(struct mptcp_sock *msk) in mptcp_pm_should_add_signal_echo() argument
842 return READ_ONCE(msk->pm.addr_signal) & BIT(MPTCP_ADD_ADDR_ECHO); in mptcp_pm_should_add_signal_echo()
845 static inline bool mptcp_pm_should_rm_signal(struct mptcp_sock *msk) in mptcp_pm_should_rm_signal() argument
847 return READ_ONCE(msk->pm.addr_signal) & BIT(MPTCP_RM_ADDR_SIGNAL); in mptcp_pm_should_rm_signal()
850 static inline bool mptcp_pm_is_userspace(const struct mptcp_sock *msk) in mptcp_pm_is_userspace() argument
852 return READ_ONCE(msk->pm.pm_type) == MPTCP_PM_TYPE_USERSPACE; in mptcp_pm_is_userspace()
855 static inline bool mptcp_pm_is_kernel(const struct mptcp_sock *msk) in mptcp_pm_is_kernel() argument
857 return READ_ONCE(msk->pm.pm_type) == MPTCP_PM_TYPE_KERNEL; in mptcp_pm_is_kernel()
883 bool mptcp_pm_add_addr_signal(struct mptcp_sock *msk, const struct sk_buff *skb,
887 bool mptcp_pm_rm_addr_signal(struct mptcp_sock *msk, unsigned int remaining,
889 int mptcp_pm_get_local_id(struct mptcp_sock *msk, struct sock_common *skc);
890 int mptcp_userspace_pm_get_local_id(struct mptcp_sock *msk, struct mptcp_addr_info *skc);
893 void mptcp_pm_nl_work(struct mptcp_sock *msk);
894 void mptcp_pm_nl_rm_subflow_received(struct mptcp_sock *msk,
896 int mptcp_pm_nl_get_local_id(struct mptcp_sock *msk, struct sock_common *skc);
897 unsigned int mptcp_pm_get_add_addr_signal_max(const struct mptcp_sock *msk);
898 unsigned int mptcp_pm_get_add_addr_accept_max(const struct mptcp_sock *msk);
899 unsigned int mptcp_pm_get_subflows_max(const struct mptcp_sock *msk);
900 unsigned int mptcp_pm_get_local_addr_max(const struct mptcp_sock *msk);
903 static inline void __mptcp_pm_close_subflow(struct mptcp_sock *msk) in __mptcp_pm_close_subflow() argument
905 if (--msk->pm.subflows < mptcp_pm_get_subflows_max(msk)) in __mptcp_pm_close_subflow()
906 WRITE_ONCE(msk->pm.accept_subflow, true); in __mptcp_pm_close_subflow()
909 static inline void mptcp_pm_close_subflow(struct mptcp_sock *msk) in mptcp_pm_close_subflow() argument
911 spin_lock_bh(&msk->pm.lock); in mptcp_pm_close_subflow()
912 __mptcp_pm_close_subflow(msk); in mptcp_pm_close_subflow()
913 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_close_subflow()
916 void mptcp_sockopt_sync(struct mptcp_sock *msk, struct sock *ssk);
917 void mptcp_sockopt_sync_locked(struct mptcp_sock *msk, struct sock *ssk);
926 static inline bool __mptcp_check_fallback(const struct mptcp_sock *msk) in __mptcp_check_fallback() argument
928 return test_bit(MPTCP_FALLBACK_DONE, &msk->flags); in __mptcp_check_fallback()
934 struct mptcp_sock *msk = mptcp_sk(subflow->conn); in mptcp_check_fallback() local
936 return __mptcp_check_fallback(msk); in mptcp_check_fallback()
939 static inline void __mptcp_do_fallback(struct mptcp_sock *msk) in __mptcp_do_fallback() argument
941 if (test_bit(MPTCP_FALLBACK_DONE, &msk->flags)) { in __mptcp_do_fallback()
942 pr_debug("TCP fallback already done (msk=%p)", msk); in __mptcp_do_fallback()
945 set_bit(MPTCP_FALLBACK_DONE, &msk->flags); in __mptcp_do_fallback()
952 struct mptcp_sock *msk; in mptcp_do_fallback() local
954 msk = mptcp_sk(sk); in mptcp_do_fallback()
955 __mptcp_do_fallback(msk); in mptcp_do_fallback()
956 if (READ_ONCE(msk->snd_data_fin_enable) && !(ssk->sk_shutdown & SEND_SHUTDOWN)) { in mptcp_do_fallback()