[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170411071900.GC1976@nanopsycho>
Date: Tue, 11 Apr 2017 09:19:00 +0200
From: Jiri Pirko <jiri@...nulli.us>
To: Johannes Berg <johannes@...solutions.net>
Cc: linux-wireless@...r.kernel.org, netdev@...r.kernel.org,
pablo@...filter.org, Jamal Hadi Salim <jhs@...atatu.com>,
Jiri Benc <jbenc@...hat.com>,
David Ahern <dsa@...ulusnetworks.com>,
Johannes Berg <johannes.berg@...el.com>
Subject: Re: [PATCH net-next v4 1/5] netlink: extended ACK reporting
Tue, Apr 11, 2017 at 08:56:56AM CEST, johannes@...solutions.net wrote:
>From: Johannes Berg <johannes.berg@...el.com>
>
>Add the base infrastructure and UAPI for netlink
>extended ACK reporting. All "manual" calls to
>netlink_ack() pass NULL for now and thus don't
>get extended ACK reporting.
>
>Big thanks goes to Pablo Neira Ayuso for not only
>bringing up the whole topic at netconf (again) but
>also coming up with the nlattr passing trick and
>various other ideads.
>
>Signed-off-by: Johannes Berg <johannes.berg@...el.com>
>---
[...]
>+/**
>+ * enum nlmsgerr_attrs - nlmsgerr attributes
>+ * @NLMSGERR_ATTR_UNUSED: unused
>+ * @NLMSGERR_ATTR_MSG: error message string (string)
>+ * @NLMSGERR_ATTR_OFFS: offset of the invalid attribute in the original
>+ * message, counting from the beginning of the header (u32)
>+ * @NUM_NLMSGERR_ATTRS: number of attributes
>+ * @NLMSGERR_ATTR_MAX: highest attribute number
>+ */
>+enum nlmsgerr_attrs {
>+ NLMSGERR_ATTR_UNUSED,
>+ NLMSGERR_ATTR_MSG,
>+ NLMSGERR_ATTR_OFFS,
>+
>+ NUM_NLMSGERR_ATTRS,
According to the rest of the uapi, this should be rather named:
__NLMSGERR_ATTR_MAX
>+ NLMSGERR_ATTR_MAX = NUM_NLMSGERR_ATTRS - 1
> };
>
> #define NETLINK_ADD_MEMBERSHIP 1
>@@ -115,6 +146,7 @@ struct nlmsgerr {
> #define NETLINK_LISTEN_ALL_NSID 8
> #define NETLINK_LIST_MEMBERSHIPS 9
> #define NETLINK_CAP_ACK 10
>+#define NETLINK_EXT_ACK 11
>
> struct nl_pktinfo {
> __u32 group;
>diff --git a/kernel/audit.c b/kernel/audit.c
>index 2f4964cfde0b..d54bf5932374 100644
>--- a/kernel/audit.c
>+++ b/kernel/audit.c
>@@ -1402,7 +1402,7 @@ static void audit_receive_skb(struct sk_buff *skb)
> err = audit_receive_msg(skb, nlh);
> /* if err or if this message says it wants a response */
> if (err || (nlh->nlmsg_flags & NLM_F_ACK))
>- netlink_ack(skb, nlh, err);
>+ netlink_ack(skb, nlh, err, NULL);
Wouldn't it make sense to leave netlink_ack as is and add
netlink_ack_ext for those who need to pass non-null?
>
> nlh = nlmsg_next(nlh, &len);
> }
Powered by blists - more mailing lists