Skip to content

Commit 49101ac

Browse files
matttbeintel-lab-lkp
authored andcommitted
mptcp: pm: improve error messages
Some error messages were: - too generic: "missing input", "invalid request" - not precise enough: "limit greater than maximum" but what's the max? - missing: subflow not found, or connect error. This can be easily improved by being more precise, or adding new error messages. Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
1 parent 134728e commit 49101ac

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

net/mptcp/pm_netlink.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1878,8 +1878,9 @@ static int parse_limit(struct genl_info *info, int id, unsigned int *limit)
18781878

18791879
*limit = nla_get_u32(attr);
18801880
if (*limit > MPTCP_PM_ADDR_MAX) {
1881-
NL_SET_ERR_MSG_ATTR(info->extack, attr,
1882-
"limit greater than maximum");
1881+
NL_SET_ERR_MSG_ATTR_FMT(info->extack, attr,
1882+
"limit greater than maximum (%u)",
1883+
MPTCP_PM_ADDR_MAX);
18831884
return -EINVAL;
18841885
}
18851886
return 0;
@@ -2008,7 +2009,7 @@ int mptcp_pm_nl_set_flags(struct sk_buff *skb, struct genl_info *info)
20082009
lookup_by_id = 1;
20092010
if (!addr.addr.id) {
20102011
NL_SET_ERR_MSG_ATTR(info->extack, attr,
2011-
"missing required inputs");
2012+
"missing address ID");
20122013
return -EOPNOTSUPP;
20132014
}
20142015
}

net/mptcp/pm_userspace.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ static struct mptcp_sock *mptcp_userspace_pm_get_sock(const struct genl_info *in
191191

192192
if (!mptcp_pm_is_userspace(msk)) {
193193
NL_SET_ERR_MSG_ATTR(info->extack, token,
194-
"invalid request; userspace PM not selected");
194+
"userspace PM not selected");
195195
sock_put((struct sock *)msk);
196196
return NULL;
197197
}
@@ -433,6 +433,9 @@ int mptcp_pm_nl_subflow_create_doit(struct sk_buff *skb, struct genl_info *info)
433433
err = __mptcp_subflow_connect(sk, &local, &addr_r);
434434
release_sock(sk);
435435

436+
if (err)
437+
GENL_SET_ERR_MSG_FMT(info, "connect error: %d", err);
438+
436439
spin_lock_bh(&msk->pm.lock);
437440
if (err)
438441
mptcp_userspace_pm_delete_local_addr(msk, &entry);
@@ -557,6 +560,7 @@ int mptcp_pm_nl_subflow_destroy_doit(struct sk_buff *skb, struct genl_info *info
557560
lock_sock(sk);
558561
ssk = mptcp_nl_find_ssk(msk, &addr_l.addr, &addr_r);
559562
if (!ssk) {
563+
GENL_SET_ERR_MSG(info, "subflow not found");
560564
err = -ESRCH;
561565
goto release_sock;
562566
}
@@ -634,6 +638,9 @@ int mptcp_userspace_pm_set_flags(struct sk_buff *skb, struct genl_info *info)
634638
ret = mptcp_pm_nl_mp_prio_send_ack(msk, &loc.addr, &rem.addr, bkup);
635639
release_sock(sk);
636640

641+
if (ret)
642+
GENL_SET_ERR_MSG(info, "subflow not found");
643+
637644
set_flags_err:
638645
sock_put(sk);
639646
return ret;

0 commit comments

Comments
 (0)