[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1491849526.28432.10.camel@sipsolutions.net>
Date: Mon, 10 Apr 2017 20:38:46 +0200
From: Johannes Berg <johannes@...solutions.net>
To: David Ahern <dsa@...ulusnetworks.com>,
linux-wireless@...r.kernel.org, netdev@...r.kernel.org
Cc: pablo@...filter.org, Jamal Hadi Salim <jhs@...atatu.com>,
Jiri Benc <jbenc@...hat.com>, jiri@...nulli.us
Subject: Re: [PATCH v3 1/5] netlink: extended ACK reporting
On Mon, 2017-04-10 at 17:40 +0200, Johannes Berg wrote:
>
> Another thought: if we add a new flag that indicates "message has
> been capped", which we introduce in this same patch, then we can
> disentangle this more easily, right?
>
> Adding a new flag for "TLVs present" won't really help, but if you
> know the message was capped then you know the TLVs start after the
> inner nlmsghdr and you ignore that header's nlmsg_len.
Actually, the flag should be set if (and only if) the message was
capped *and* TLVs were requested (or present, doesn't matter.)
That way it becomes completely backward compatible and stateless:
* on kernels that don't have extack you can ignore the setsockopt
failure
* checking if TLVs are present becomes
flag set ||
nlh->nlmsg_len > sizeof(*nlh) + sizeof(int) +
sizeof(*inner_nlh) + inner_nlh->nlmsg_len
* TLV start offset is
tlv_start_offs = sizeof(*nlh) + sizeof(int) + sizeof(inner_nlh)
if (flag set)
tlv_start_offs += inner_nlh->nlmsg_len
I need to resend anyway so I'll add that tomorrow.
johannes
Powered by blists - more mailing lists