From: Daniel Borkmann <daniel@iogearbox.net>
To: martin.lau@linux.dev
Cc: razor@blackwall.org, kuba@kernel.org, jrife@google.com,
tangchen.1@bytedance.com, bpf@vger.kernel.org,
netdev@vger.kernel.org
Subject: [PATCH bpf-next v2 2/5] netkit: Simplify netkit mode over to use NLA_POLICY_MAX
Date: Fri, 4 Oct 2024 12:13:32 +0200 [thread overview]
Message-ID: <20241004101335.117711-2-daniel@iogearbox.net> (raw)
In-Reply-To: <20241004101335.117711-1-daniel@iogearbox.net>
Jakub suggested to rely on netlink policy validation via NLA_POLICY_MAX()
instead of open-coding it. netkit_check_mode() is a candidate which can
be simplified through this as well aside from the netkit scrubbing one.
Suggested-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Cc: Nikolay Aleksandrov <razor@blackwall.org>
---
v1 -> v2:
- new patch, also use NLA_POLICY_MAX here (Jakub)
drivers/net/netkit.c | 25 +++----------------------
1 file changed, 3 insertions(+), 22 deletions(-)
diff --git a/drivers/net/netkit.c b/drivers/net/netkit.c
index fba2c734f0ec..cd8360b9bbde 100644
--- a/drivers/net/netkit.c
+++ b/drivers/net/netkit.c
@@ -311,20 +311,6 @@ static int netkit_check_policy(int policy, struct nlattr *tb,
}
}
-static int netkit_check_mode(int mode, struct nlattr *tb,
- struct netlink_ext_ack *extack)
-{
- switch (mode) {
- case NETKIT_L2:
- case NETKIT_L3:
- return 0;
- default:
- NL_SET_ERR_MSG_ATTR(extack, tb,
- "Provided device mode can only be L2 or L3");
- return -EINVAL;
- }
-}
-
static int netkit_validate(struct nlattr *tb[], struct nlattr *data[],
struct netlink_ext_ack *extack)
{
@@ -360,13 +346,8 @@ static int netkit_new_link(struct net *src_net, struct net_device *dev,
int err;
if (data) {
- if (data[IFLA_NETKIT_MODE]) {
- attr = data[IFLA_NETKIT_MODE];
- mode = nla_get_u32(attr);
- err = netkit_check_mode(mode, attr, extack);
- if (err < 0)
- return err;
- }
+ if (data[IFLA_NETKIT_MODE])
+ mode = nla_get_u32(data[IFLA_NETKIT_MODE]);
if (data[IFLA_NETKIT_PEER_INFO]) {
attr = data[IFLA_NETKIT_PEER_INFO];
ifmp = nla_data(attr);
@@ -976,7 +957,7 @@ static int netkit_fill_info(struct sk_buff *skb, const struct net_device *dev)
static const struct nla_policy netkit_policy[IFLA_NETKIT_MAX + 1] = {
[IFLA_NETKIT_PEER_INFO] = { .len = sizeof(struct ifinfomsg) },
- [IFLA_NETKIT_MODE] = { .type = NLA_U32 },
+ [IFLA_NETKIT_MODE] = NLA_POLICY_MAX(NLA_U32, NETKIT_L3),
[IFLA_NETKIT_POLICY] = { .type = NLA_U32 },
[IFLA_NETKIT_PEER_POLICY] = { .type = NLA_U32 },
[IFLA_NETKIT_SCRUB] = NLA_POLICY_MAX(NLA_U32, NETKIT_SCRUB_DEFAULT),
--
2.43.0
next prev parent reply other threads:[~2024-10-04 10:13 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-04 10:13 [PATCH bpf-next v2 1/5] netkit: Add option for scrubbing skb meta data Daniel Borkmann
2024-10-04 10:13 ` Daniel Borkmann [this message]
2024-10-05 13:38 ` [PATCH bpf-next v2 2/5] netkit: Simplify netkit mode over to use NLA_POLICY_MAX Nikolay Aleksandrov
2024-10-04 10:13 ` [PATCH bpf-next v2 3/5] netkit: Add add netkit scrub support to rt_link.yaml Daniel Borkmann
2024-10-05 13:38 ` Nikolay Aleksandrov
2024-10-04 10:13 ` [PATCH bpf-next v2 4/5] tools: Sync if_link.h uapi tooling header Daniel Borkmann
2024-10-05 13:39 ` Nikolay Aleksandrov
2024-10-05 16:02 ` Stephen Hemminger
2024-10-08 1:36 ` Martin KaFai Lau
2024-10-04 10:13 ` [PATCH bpf-next v2 5/5] selftests/bpf: Extend netkit tests to validate skb meta data Daniel Borkmann
2024-10-05 13:39 ` Nikolay Aleksandrov
2024-10-08 1:40 ` Martin KaFai Lau
2024-10-04 23:15 ` [PATCH bpf-next v2 1/5] netkit: Add option for scrubbing " Jakub Kicinski
2024-10-05 13:38 ` Nikolay Aleksandrov
2024-10-08 2:10 ` patchwork-bot+netdevbpf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241004101335.117711-2-daniel@iogearbox.net \
--to=daniel@iogearbox.net \
--cc=bpf@vger.kernel.org \
--cc=jrife@google.com \
--cc=kuba@kernel.org \
--cc=martin.lau@linux.dev \
--cc=netdev@vger.kernel.org \
--cc=razor@blackwall.org \
--cc=tangchen.1@bytedance.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox