mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
mptcp: get addr in userspace pm list
This patch renames mptcp_pm_nl_get_addr_doit() as a dedicated in-kernel netlink PM get addr function mptcp_pm_nl_get_addr(). and invoke a new wrapper mptcp_pm_get_addr() in mptcp_pm_nl_get_addr_doit. If a token is gotten in the wrapper, that means a userspace PM is used. So invoke mptcp_userspace_pm_get_addr() to get addr in userspace PM list. Otherwise, invoke mptcp_pm_nl_get_addr(). Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn> Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org> Reviewed-by: Mat Martineau <martineau@kernel.org> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d32c8fb1c8
commit
564ae6794e
3 changed files with 15 additions and 1 deletions
|
@ -441,6 +441,13 @@ int mptcp_pm_get_flags_and_ifindex_by_id(struct mptcp_sock *msk, unsigned int id
|
||||||
return mptcp_pm_nl_get_flags_and_ifindex_by_id(msk, id, flags, ifindex);
|
return mptcp_pm_nl_get_flags_and_ifindex_by_id(msk, id, flags, ifindex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int mptcp_pm_get_addr(struct sk_buff *skb, struct genl_info *info)
|
||||||
|
{
|
||||||
|
if (info->attrs[MPTCP_PM_ATTR_TOKEN])
|
||||||
|
return mptcp_userspace_pm_get_addr(skb, info);
|
||||||
|
return mptcp_pm_nl_get_addr(skb, info);
|
||||||
|
}
|
||||||
|
|
||||||
int mptcp_pm_dump_addr(struct sk_buff *msg, struct netlink_callback *cb)
|
int mptcp_pm_dump_addr(struct sk_buff *msg, struct netlink_callback *cb)
|
||||||
{
|
{
|
||||||
const struct genl_info *info = genl_info_dump(cb);
|
const struct genl_info *info = genl_info_dump(cb);
|
||||||
|
|
|
@ -1672,7 +1672,7 @@ nla_put_failure:
|
||||||
return -EMSGSIZE;
|
return -EMSGSIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
int mptcp_pm_nl_get_addr_doit(struct sk_buff *skb, struct genl_info *info)
|
int mptcp_pm_nl_get_addr(struct sk_buff *skb, struct genl_info *info)
|
||||||
{
|
{
|
||||||
struct nlattr *attr = info->attrs[MPTCP_PM_ENDPOINT_ADDR];
|
struct nlattr *attr = info->attrs[MPTCP_PM_ENDPOINT_ADDR];
|
||||||
struct pm_nl_pernet *pernet = genl_info_pm_nl(info);
|
struct pm_nl_pernet *pernet = genl_info_pm_nl(info);
|
||||||
|
@ -1722,6 +1722,11 @@ fail:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int mptcp_pm_nl_get_addr_doit(struct sk_buff *skb, struct genl_info *info)
|
||||||
|
{
|
||||||
|
return mptcp_pm_get_addr(skb, info);
|
||||||
|
}
|
||||||
|
|
||||||
int mptcp_pm_nl_dump_addr(struct sk_buff *msg,
|
int mptcp_pm_nl_dump_addr(struct sk_buff *msg,
|
||||||
struct netlink_callback *cb)
|
struct netlink_callback *cb)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1069,6 +1069,8 @@ int mptcp_pm_nl_dump_addr(struct sk_buff *msg,
|
||||||
struct netlink_callback *cb);
|
struct netlink_callback *cb);
|
||||||
int mptcp_userspace_pm_dump_addr(struct sk_buff *msg,
|
int mptcp_userspace_pm_dump_addr(struct sk_buff *msg,
|
||||||
struct netlink_callback *cb);
|
struct netlink_callback *cb);
|
||||||
|
int mptcp_pm_get_addr(struct sk_buff *skb, struct genl_info *info);
|
||||||
|
int mptcp_pm_nl_get_addr(struct sk_buff *skb, struct genl_info *info);
|
||||||
int mptcp_userspace_pm_get_addr(struct sk_buff *skb,
|
int mptcp_userspace_pm_get_addr(struct sk_buff *skb,
|
||||||
struct genl_info *info);
|
struct genl_info *info);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue