Lines Matching refs:msk

299 					* protected by the msk data lock
347 static inline void msk_owned_by_me(const struct mptcp_sock *msk)
349 sock_owned_by_me((const struct sock *)msk);
354 /* the msk socket don't use the backlog, also account for the bulk
374 const struct mptcp_sock *msk = mptcp_sk(sk);
376 return READ_ONCE(msk->first_pending);
381 struct mptcp_sock *msk = mptcp_sk(sk);
384 cur = msk->first_pending;
385 return list_is_last(&cur->list, &msk->rtx_queue) ? NULL :
391 const struct mptcp_sock *msk = mptcp_sk(sk);
393 if (!msk->first_pending)
396 if (WARN_ON_ONCE(list_empty(&msk->rtx_queue)))
399 return list_last_entry(&msk->rtx_queue, struct mptcp_data_frag, list);
404 struct mptcp_sock *msk = mptcp_sk(sk);
406 if (msk->snd_una == READ_ONCE(msk->snd_nxt))
409 return list_first_entry_or_null(&msk->rtx_queue, struct mptcp_data_frag, list);
436 struct mptcp_sock *msk;
470 unsigned long avg_pacing_rate; /* protected by msk socket lock */
536 int cached_sndbuf; /* sndbuf size when last synced with the msk sndbuf,
537 * protected by the msk socket lock
635 void __mptcp_subflow_fully_established(struct mptcp_sock *msk,
650 struct sock *__mptcp_nmpc_sk(struct mptcp_sock *msk);
673 int mptcp_init_sched(struct mptcp_sock *msk,
675 void mptcp_release_sched(struct mptcp_sock *msk);
678 struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk);
679 struct sock *mptcp_subflow_get_retrans(struct mptcp_sock *msk);
680 int mptcp_sched_get_send(struct mptcp_sock *msk);
681 int mptcp_sched_get_retrans(struct mptcp_sock *msk);
683 static inline u64 mptcp_data_avail(const struct mptcp_sock *msk)
685 return READ_ONCE(msk->bytes_received) - READ_ONCE(msk->bytes_consumed);
752 void mptcp_reset_tout_timer(struct mptcp_sock *msk, unsigned long fail_tout);
781 void mptcp_rcv_space_init(struct mptcp_sock *msk, const struct sock *ssk);
801 bool mptcp_update_rcv_data_fin(struct mptcp_sock *msk, u64 data_fin_seq, bool use_64bit);
802 static inline bool mptcp_data_fin_enabled(const struct mptcp_sock *msk)
804 return READ_ONCE(msk->snd_data_fin_enable) &&
805 READ_ONCE(msk->write_seq) == READ_ONCE(msk->snd_nxt);
834 /* the msk max wmem limit is <nr_subflows> * tcp wmem[2] */
839 /* The called held both the msk socket and the subflow socket locks,
851 * BH context. Additionally this can be called under the msk data lock,
867 void mptcp_destroy_common(struct mptcp_sock *msk, unsigned int flags);
881 struct mptcp_sock *msk);
886 void mptcp_token_destroy(struct mptcp_sock *msk);
894 void mptcp_pm_data_init(struct mptcp_sock *msk);
895 void mptcp_pm_data_reset(struct mptcp_sock *msk);
904 void mptcp_pm_subflow_chk_stale(const struct mptcp_sock *msk, struct sock *ssk);
905 void mptcp_pm_nl_subflow_chk_stale(const struct mptcp_sock *msk, struct sock *ssk);
906 void mptcp_pm_new_connection(struct mptcp_sock *msk, const struct sock *ssk, int server_side);
907 void mptcp_pm_fully_established(struct mptcp_sock *msk, const struct sock *ssk);
908 bool mptcp_pm_allow_new_subflow(struct mptcp_sock *msk);
909 void mptcp_pm_connection_closed(struct mptcp_sock *msk);
910 void mptcp_pm_subflow_established(struct mptcp_sock *msk);
911 bool mptcp_pm_nl_check_work_pending(struct mptcp_sock *msk);
912 void mptcp_pm_subflow_check_next(struct mptcp_sock *msk, const struct sock *ssk,
916 void mptcp_pm_add_addr_echoed(struct mptcp_sock *msk,
918 void mptcp_pm_add_addr_send_ack(struct mptcp_sock *msk);
919 bool mptcp_pm_nl_is_init_remote_addr(struct mptcp_sock *msk,
921 void mptcp_pm_nl_addr_send_ack(struct mptcp_sock *msk);
922 void mptcp_pm_rm_addr_received(struct mptcp_sock *msk,
926 int mptcp_pm_nl_mp_prio_send_ack(struct mptcp_sock *msk,
930 bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk,
932 void mptcp_pm_free_anno_list(struct mptcp_sock *msk);
933 bool mptcp_pm_sport_in_anno_list(struct mptcp_sock *msk, const struct sock *sk);
935 mptcp_pm_del_add_timer(struct mptcp_sock *msk,
938 mptcp_lookup_anno_list_by_saddr(const struct mptcp_sock *msk,
940 int mptcp_pm_get_flags_and_ifindex_by_id(struct mptcp_sock *msk,
943 int mptcp_pm_nl_get_flags_and_ifindex_by_id(struct mptcp_sock *msk, unsigned int id,
945 int mptcp_userspace_pm_get_flags_and_ifindex_by_id(struct mptcp_sock *msk,
955 int mptcp_pm_announce_addr(struct mptcp_sock *msk,
958 int mptcp_pm_remove_addr(struct mptcp_sock *msk, const struct mptcp_rm_list *rm_list);
959 void mptcp_pm_remove_addrs(struct mptcp_sock *msk, struct list_head *rm_list);
961 void mptcp_free_local_addr_list(struct mptcp_sock *msk);
967 void mptcp_event(enum mptcp_event_type type, const struct mptcp_sock *msk,
970 void mptcp_event_addr_removed(const struct mptcp_sock *msk, u8 id);
973 bool mptcp_userspace_pm_active(const struct mptcp_sock *msk);
975 void __mptcp_fastopen_gen_msk_ackseq(struct mptcp_sock *msk, struct mptcp_subflow_context *subflow,
980 static inline bool mptcp_pm_should_add_signal(struct mptcp_sock *msk)
982 return READ_ONCE(msk->pm.addr_signal) &
986 static inline bool mptcp_pm_should_add_signal_addr(struct mptcp_sock *msk)
988 return READ_ONCE(msk->pm.addr_signal) & BIT(MPTCP_ADD_ADDR_SIGNAL);
991 static inline bool mptcp_pm_should_add_signal_echo(struct mptcp_sock *msk)
993 return READ_ONCE(msk->pm.addr_signal) & BIT(MPTCP_ADD_ADDR_ECHO);
996 static inline bool mptcp_pm_should_rm_signal(struct mptcp_sock *msk)
998 return READ_ONCE(msk->pm.addr_signal) & BIT(MPTCP_RM_ADDR_SIGNAL);
1001 static inline bool mptcp_pm_is_userspace(const struct mptcp_sock *msk)
1003 return READ_ONCE(msk->pm.pm_type) == MPTCP_PM_TYPE_USERSPACE;
1006 static inline bool mptcp_pm_is_kernel(const struct mptcp_sock *msk)
1008 return READ_ONCE(msk->pm.pm_type) == MPTCP_PM_TYPE_KERNEL;
1034 bool mptcp_pm_add_addr_signal(struct mptcp_sock *msk, const struct sk_buff *skb,
1038 bool mptcp_pm_rm_addr_signal(struct mptcp_sock *msk, unsigned int remaining,
1040 int mptcp_pm_get_local_id(struct mptcp_sock *msk, struct sock_common *skc);
1041 int mptcp_pm_nl_get_local_id(struct mptcp_sock *msk, struct mptcp_addr_info *skc);
1042 int mptcp_userspace_pm_get_local_id(struct mptcp_sock *msk, struct mptcp_addr_info *skc);
1043 bool mptcp_pm_is_backup(struct mptcp_sock *msk, struct sock_common *skc);
1044 bool mptcp_pm_nl_is_backup(struct mptcp_sock *msk, struct mptcp_addr_info *skc);
1045 bool mptcp_userspace_pm_is_backup(struct mptcp_sock *msk, struct mptcp_addr_info *skc);
1057 void mptcp_pm_nl_work(struct mptcp_sock *msk);
1058 unsigned int mptcp_pm_get_add_addr_signal_max(const struct mptcp_sock *msk);
1059 unsigned int mptcp_pm_get_add_addr_accept_max(const struct mptcp_sock *msk);
1060 unsigned int mptcp_pm_get_subflows_max(const struct mptcp_sock *msk);
1061 unsigned int mptcp_pm_get_local_addr_max(const struct mptcp_sock *msk);
1064 static inline void __mptcp_pm_close_subflow(struct mptcp_sock *msk)
1066 if (--msk->pm.subflows < mptcp_pm_get_subflows_max(msk))
1067 WRITE_ONCE(msk->pm.accept_subflow, true);
1070 static inline void mptcp_pm_close_subflow(struct mptcp_sock *msk)
1072 spin_lock_bh(&msk->pm.lock);
1073 __mptcp_pm_close_subflow(msk);
1074 spin_unlock_bh(&msk->pm.lock);
1077 void mptcp_sockopt_sync(struct mptcp_sock *msk, struct sock *ssk);
1078 void mptcp_sockopt_sync_locked(struct mptcp_sock *msk, struct sock *ssk);
1087 static inline bool __mptcp_check_fallback(const struct mptcp_sock *msk)
1089 return test_bit(MPTCP_FALLBACK_DONE, &msk->flags);
1095 struct mptcp_sock *msk = mptcp_sk(subflow->conn);
1097 return __mptcp_check_fallback(msk);
1100 static inline void __mptcp_do_fallback(struct mptcp_sock *msk)
1102 if (test_bit(MPTCP_FALLBACK_DONE, &msk->flags)) {
1103 pr_debug("TCP fallback already done (msk=%p)\n", msk);
1106 if (WARN_ON_ONCE(!READ_ONCE(msk->allow_infinite_fallback)))
1108 set_bit(MPTCP_FALLBACK_DONE, &msk->flags);
1115 struct mptcp_sock *msk;
1117 msk = mptcp_sk(sk);
1118 __mptcp_do_fallback(msk);
1119 if (READ_ONCE(msk->snd_data_fin_enable) && !(ssk->sk_shutdown & SEND_SHUTDOWN)) {
1132 #define pr_fallback(a) pr_debug("%s:fallback to TCP (msk=%p)\n", __func__, a)