Lines Matching defs:msk
315 * protected by the msk data lock
374 static inline void msk_owned_by_me(const struct mptcp_sock *msk)
376 sock_owned_by_me((const struct sock *)msk);
415 const struct mptcp_sock *msk = mptcp_sk(sk);
417 return READ_ONCE(msk->first_pending);
422 struct mptcp_sock *msk = mptcp_sk(sk);
425 cur = msk->first_pending;
426 return list_is_last(&cur->list, &msk->rtx_queue) ? NULL :
432 const struct mptcp_sock *msk = mptcp_sk(sk);
434 if (!msk->first_pending)
437 if (WARN_ON_ONCE(list_empty(&msk->rtx_queue)))
440 return list_last_entry(&msk->rtx_queue, struct mptcp_data_frag, list);
445 struct mptcp_sock *msk = mptcp_sk(sk);
447 if (msk->snd_una == msk->snd_nxt)
450 return list_first_entry_or_null(&msk->rtx_queue, struct mptcp_data_frag, list);
477 struct mptcp_sock *msk;
507 unsigned long avg_pacing_rate; /* protected by msk socket lock */
574 int cached_sndbuf; /* sndbuf size when last synced with the msk sndbuf,
575 * protected by the msk socket lock
724 void __mptcp_subflow_fully_established(struct mptcp_sock *msk,
739 struct sock *__mptcp_nmpc_sk(struct mptcp_sock *msk);
765 int mptcp_init_sched(struct mptcp_sock *msk,
767 void mptcp_release_sched(struct mptcp_sock *msk);
770 struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk);
771 struct sock *mptcp_subflow_get_retrans(struct mptcp_sock *msk);
772 int mptcp_sched_get_send(struct mptcp_sock *msk);
773 int mptcp_sched_get_retrans(struct mptcp_sock *msk);
775 static inline u64 mptcp_data_avail(const struct mptcp_sock *msk)
777 return READ_ONCE(msk->bytes_received) - READ_ONCE(msk->bytes_consumed);
844 void mptcp_reset_tout_timer(struct mptcp_sock *msk, unsigned long fail_tout);
873 void mptcp_rcv_space_init(struct mptcp_sock *msk, const struct sock *ssk);
893 bool mptcp_update_rcv_data_fin(struct mptcp_sock *msk, u64 data_fin_seq, bool use_64bit);
894 static inline bool mptcp_data_fin_enabled(const struct mptcp_sock *msk)
896 return READ_ONCE(msk->snd_data_fin_enable) &&
897 READ_ONCE(msk->write_seq) == READ_ONCE(msk->snd_nxt);
911 const struct mptcp_sock *msk = mptcp_sk(sk);
914 notsent_bytes = READ_ONCE(msk->write_seq) - READ_ONCE(msk->snd_nxt);
948 /* the msk max wmem limit is <nr_subflows> * tcp wmem[2] */
953 /* The called held both the msk socket and the subflow socket locks,
965 * BH context. Additionally this can be called under the msk data lock,
981 void mptcp_destroy_common(struct mptcp_sock *msk, unsigned int flags);
995 struct mptcp_sock *msk);
1000 void mptcp_token_destroy(struct mptcp_sock *msk);
1008 void mptcp_pm_data_init(struct mptcp_sock *msk);
1009 void mptcp_pm_data_reset(struct mptcp_sock *msk);
1010 void mptcp_pm_destroy(struct mptcp_sock *msk);
1019 void mptcp_pm_subflow_chk_stale(const struct mptcp_sock *msk, struct sock *ssk);
1020 void mptcp_pm_new_connection(struct mptcp_sock *msk, const struct sock *ssk, int server_side);
1021 void mptcp_pm_fully_established(struct mptcp_sock *msk, const struct sock *ssk);
1022 bool mptcp_pm_allow_new_subflow(struct mptcp_sock *msk);
1023 void mptcp_pm_connection_closed(struct mptcp_sock *msk);
1024 void mptcp_pm_subflow_established(struct mptcp_sock *msk);
1025 bool mptcp_pm_nl_check_work_pending(struct mptcp_sock *msk);
1026 void mptcp_pm_subflow_check_next(struct mptcp_sock *msk,
1030 void mptcp_pm_add_addr_echoed(struct mptcp_sock *msk,
1032 void mptcp_pm_add_addr_send_ack(struct mptcp_sock *msk);
1033 void mptcp_pm_send_ack(struct mptcp_sock *msk,
1036 void mptcp_pm_addr_send_ack(struct mptcp_sock *msk);
1037 void mptcp_pm_nl_rm_addr(struct mptcp_sock *msk, u8 rm_id);
1038 void mptcp_pm_rm_subflow(struct mptcp_sock *msk,
1040 void mptcp_pm_rm_addr_received(struct mptcp_sock *msk,
1044 int mptcp_pm_mp_prio_send_ack(struct mptcp_sock *msk,
1048 bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk,
1050 bool mptcp_pm_sport_in_anno_list(struct mptcp_sock *msk, const struct sock *sk);
1052 mptcp_pm_del_add_timer(struct mptcp_sock *msk,
1056 bool mptcp_remove_anno_list_by_saddr(struct mptcp_sock *msk,
1062 int mptcp_pm_announce_addr(struct mptcp_sock *msk,
1065 int mptcp_pm_remove_addr(struct mptcp_sock *msk, const struct mptcp_rm_list *rm_list);
1066 void mptcp_pm_remove_addr_entry(struct mptcp_sock *msk,
1078 void mptcp_userspace_pm_free_local_addr_list(struct mptcp_sock *msk);
1080 void mptcp_event(enum mptcp_event_type type, const struct mptcp_sock *msk,
1083 void mptcp_event_addr_removed(const struct mptcp_sock *msk, u8 id);
1086 bool mptcp_userspace_pm_active(const struct mptcp_sock *msk);
1094 static inline bool mptcp_pm_should_add_signal(struct mptcp_sock *msk)
1096 return READ_ONCE(msk->pm.addr_signal) &
1100 static inline bool mptcp_pm_should_add_signal_addr(struct mptcp_sock *msk)
1102 return READ_ONCE(msk->pm.addr_signal) & BIT(MPTCP_ADD_ADDR_SIGNAL);
1105 static inline bool mptcp_pm_should_add_signal_echo(struct mptcp_sock *msk)
1107 return READ_ONCE(msk->pm.addr_signal) & BIT(MPTCP_ADD_ADDR_ECHO);
1110 static inline bool mptcp_pm_should_rm_signal(struct mptcp_sock *msk)
1112 return READ_ONCE(msk->pm.addr_signal) & BIT(MPTCP_RM_ADDR_SIGNAL);
1115 static inline bool mptcp_pm_is_userspace(const struct mptcp_sock *msk)
1117 return READ_ONCE(msk->pm.pm_type) == MPTCP_PM_TYPE_USERSPACE;
1120 static inline bool mptcp_pm_is_kernel(const struct mptcp_sock *msk)
1122 return READ_ONCE(msk->pm.pm_type) == MPTCP_PM_TYPE_KERNEL;
1148 bool mptcp_pm_add_addr_signal(struct mptcp_sock *msk, const struct sk_buff *skb,
1152 bool mptcp_pm_rm_addr_signal(struct mptcp_sock *msk, unsigned int remaining,
1154 int mptcp_pm_get_local_id(struct mptcp_sock *msk, struct sock_common *skc);
1155 int mptcp_pm_nl_get_local_id(struct mptcp_sock *msk,
1157 int mptcp_userspace_pm_get_local_id(struct mptcp_sock *msk,
1159 bool mptcp_pm_is_backup(struct mptcp_sock *msk, struct sock_common *skc);
1160 bool mptcp_pm_nl_is_backup(struct mptcp_sock *msk, struct mptcp_addr_info *skc);
1161 bool mptcp_userspace_pm_is_backup(struct mptcp_sock *msk, struct mptcp_addr_info *skc);
1183 void mptcp_pm_worker(struct mptcp_sock *msk);
1184 void __mptcp_pm_kernel_worker(struct mptcp_sock *msk);
1185 unsigned int mptcp_pm_get_add_addr_signal_max(const struct mptcp_sock *msk);
1186 unsigned int mptcp_pm_get_add_addr_accept_max(const struct mptcp_sock *msk);
1187 unsigned int mptcp_pm_get_subflows_max(const struct mptcp_sock *msk);
1188 unsigned int mptcp_pm_get_local_addr_max(const struct mptcp_sock *msk);
1191 static inline void __mptcp_pm_close_subflow(struct mptcp_sock *msk)
1193 if (--msk->pm.subflows < mptcp_pm_get_subflows_max(msk))
1194 WRITE_ONCE(msk->pm.accept_subflow, true);
1197 static inline void mptcp_pm_close_subflow(struct mptcp_sock *msk)
1199 spin_lock_bh(&msk->pm.lock);
1200 __mptcp_pm_close_subflow(msk);
1201 spin_unlock_bh(&msk->pm.lock);
1204 void mptcp_sockopt_sync_locked(struct mptcp_sock *msk, struct sock *ssk);
1213 static inline bool __mptcp_check_fallback(const struct mptcp_sock *msk)
1215 return test_bit(MPTCP_FALLBACK_DONE, &msk->flags);
1221 struct mptcp_sock *msk = mptcp_sk(subflow->conn);
1223 return __mptcp_check_fallback(msk);
1226 static inline bool __mptcp_has_initial_subflow(const struct mptcp_sock *msk)
1228 struct sock *ssk = READ_ONCE(msk->first);
1235 bool __mptcp_try_fallback(struct mptcp_sock *msk, int fb_mib);
1241 struct mptcp_sock *msk;
1243 msk = mptcp_sk(sk);
1244 if (!__mptcp_try_fallback(msk, fb_mib))
1246 if (READ_ONCE(msk->snd_data_fin_enable) && !(ssk->sk_shutdown & SEND_SHUTDOWN)) {
1260 static inline void mptcp_early_fallback(struct mptcp_sock *msk,
1265 WARN_ON_ONCE(!__mptcp_try_fallback(msk, fb_mib));