#define pr_fmt(fmt) …
#include <linux/kernel.h>
#include <net/mptcp.h>
#include "protocol.h"
#include "mib.h"
int mptcp_pm_announce_addr(struct mptcp_sock *msk,
const struct mptcp_addr_info *addr,
bool echo)
{ … }
int mptcp_pm_remove_addr(struct mptcp_sock *msk, const struct mptcp_rm_list *rm_list)
{ … }
int mptcp_pm_remove_subflow(struct mptcp_sock *msk, const struct mptcp_rm_list *rm_list)
{ … }
void mptcp_pm_new_connection(struct mptcp_sock *msk, const struct sock *ssk, int server_side)
{ … }
bool mptcp_pm_allow_new_subflow(struct mptcp_sock *msk)
{ … }
static bool mptcp_pm_schedule_work(struct mptcp_sock *msk,
enum mptcp_pm_status new_status)
{ … }
void mptcp_pm_fully_established(struct mptcp_sock *msk, const struct sock *ssk)
{ … }
void mptcp_pm_connection_closed(struct mptcp_sock *msk)
{ … }
void mptcp_pm_subflow_established(struct mptcp_sock *msk)
{ … }
void mptcp_pm_subflow_check_next(struct mptcp_sock *msk,
const struct mptcp_subflow_context *subflow)
{ … }
void mptcp_pm_add_addr_received(const struct sock *ssk,
const struct mptcp_addr_info *addr)
{ … }
void mptcp_pm_add_addr_echoed(struct mptcp_sock *msk,
const struct mptcp_addr_info *addr)
{ … }
void mptcp_pm_add_addr_send_ack(struct mptcp_sock *msk)
{ … }
void mptcp_pm_rm_addr_received(struct mptcp_sock *msk,
const struct mptcp_rm_list *rm_list)
{ … }
void mptcp_pm_mp_prio_received(struct sock *ssk, u8 bkup)
{ … }
void mptcp_pm_mp_fail_received(struct sock *sk, u64 fail_seq)
{ … }
bool mptcp_pm_add_addr_signal(struct mptcp_sock *msk, const struct sk_buff *skb,
unsigned int opt_size, unsigned int remaining,
struct mptcp_addr_info *addr, bool *echo,
bool *drop_other_suboptions)
{ … }
bool mptcp_pm_rm_addr_signal(struct mptcp_sock *msk, unsigned int remaining,
struct mptcp_rm_list *rm_list)
{ … }
int mptcp_pm_get_local_id(struct mptcp_sock *msk, struct sock_common *skc)
{ … }
bool mptcp_pm_is_backup(struct mptcp_sock *msk, struct sock_common *skc)
{ … }
int mptcp_pm_get_flags_and_ifindex_by_id(struct mptcp_sock *msk, unsigned int id,
u8 *flags, int *ifindex)
{ … }
int mptcp_pm_get_addr(struct sk_buff *skb, struct genl_info *info)
{ … }
int mptcp_pm_dump_addr(struct sk_buff *msg, struct netlink_callback *cb)
{ … }
int mptcp_pm_set_flags(struct sk_buff *skb, struct genl_info *info)
{ … }
void mptcp_pm_subflow_chk_stale(const struct mptcp_sock *msk, struct sock *ssk)
{ … }
bool mptcp_pm_addr_families_match(const struct sock *sk,
const struct mptcp_addr_info *loc,
const struct mptcp_addr_info *rem)
{ … }
void mptcp_pm_data_reset(struct mptcp_sock *msk)
{ … }
void mptcp_pm_data_init(struct mptcp_sock *msk)
{ … }
void __init mptcp_pm_init(void)
{ … }