#include "protocol.h"
#include "mib.h"
#include "mptcp_pm_gen.h"
void mptcp_free_local_addr_list(struct mptcp_sock *msk)
{ … }
static int mptcp_userspace_pm_append_new_local_addr(struct mptcp_sock *msk,
struct mptcp_pm_addr_entry *entry,
bool needs_id)
{ … }
static int mptcp_userspace_pm_delete_local_addr(struct mptcp_sock *msk,
struct mptcp_pm_addr_entry *addr)
{ … }
static struct mptcp_pm_addr_entry *
mptcp_userspace_pm_lookup_addr_by_id(struct mptcp_sock *msk, unsigned int id)
{ … }
int mptcp_userspace_pm_get_flags_and_ifindex_by_id(struct mptcp_sock *msk,
unsigned int id,
u8 *flags, int *ifindex)
{ … }
int mptcp_userspace_pm_get_local_id(struct mptcp_sock *msk,
struct mptcp_addr_info *skc)
{ … }
bool mptcp_userspace_pm_is_backup(struct mptcp_sock *msk,
struct mptcp_addr_info *skc)
{ … }
int mptcp_pm_nl_announce_doit(struct sk_buff *skb, struct genl_info *info)
{ … }
static int mptcp_userspace_pm_remove_id_zero_address(struct mptcp_sock *msk,
struct genl_info *info)
{ … }
int mptcp_pm_nl_remove_doit(struct sk_buff *skb, struct genl_info *info)
{ … }
int mptcp_pm_nl_subflow_create_doit(struct sk_buff *skb, struct genl_info *info)
{ … }
static struct sock *mptcp_nl_find_ssk(struct mptcp_sock *msk,
const struct mptcp_addr_info *local,
const struct mptcp_addr_info *remote)
{ … }
int mptcp_pm_nl_subflow_destroy_doit(struct sk_buff *skb, struct genl_info *info)
{ … }
int mptcp_userspace_pm_set_flags(struct sk_buff *skb, struct genl_info *info)
{ … }
int mptcp_userspace_pm_dump_addr(struct sk_buff *msg,
struct netlink_callback *cb)
{ … }
int mptcp_userspace_pm_get_addr(struct sk_buff *skb,
struct genl_info *info)
{ … }