2021-06-25 10:11:41

by Sergey Naumov

[permalink] [raw]
Subject: iw: some stats are missing from nla_policy

Hello.

I'm developing an application that uses libnl to get some wireless
stats and I use iw code as an example.

I noticed that not all parameters are added to nla_policy. For
example, NL80211_STA_INFO_CONNECTED_TIME
(https://git.kernel.org/pub/scm/linux/kernel/git/jberg/iw.git/commit/?id=087d778f6f82346debfd275ddbb8f646f9a1a167)
is parsed, but absent from stats_policy.

The question is whether it is done accidentally or deliberately? Is
there some hidden logic not to add attributes to policy? And then why
to use policy at all if some attributes are not checked anyway?

Thanks in advance,
Sergey.


2021-06-25 17:38:56

by Johannes Berg

[permalink] [raw]
Subject: Re: iw: some stats are missing from nla_policy

Hi Sergey,
>
> I noticed that not all parameters are added to nla_policy. For
> example, NL80211_STA_INFO_CONNECTED_TIME
> (https://git.kernel.org/pub/scm/linux/kernel/git/jberg/iw.git/commit/?id=087d778f6f82346debfd275ddbb8f646f9a1a167)
> is parsed, but absent from stats_policy.
>
> The question is whether it is done accidentally or deliberately? Is
> there some hidden logic not to add attributes to policy? And then why
> to use policy at all if some attributes are not checked anyway?

No, there's no particular reason or policy (pun intended) to this ...

It's kind of just being a bit lazy, and we have to trust the kernel to
not kill the process anyway, in a sense. But I think the right way still
would be to have a policy so we can detect errors.

johannes