[iwinfo PATCH 1/2] iwinfo: add support for indoor only chan restriction

Ansuel Smith ansuelsmth at gmail.com
Thu Nov 18 09:12:18 PST 2021


>
>
> Ansuel Smith <ansuelsmth at gmail.com> wrote:
> > Some country permit a specific channel to be used only indoor.
> > Introduce a new restriction_flags entry to declare different
> > restrition of a specific channel.
> >
> > Signed-off-by: Ansuel Smith <ansuelsmth at gmail.com>
> > ---
> >  include/iwinfo.h |  4 ++++
> >  iwinfo_nl80211.c | 14 ++++++++++----
> >  2 files changed, 14 insertions(+), 4 deletions(-)
> >
> > diff --git a/include/iwinfo.h b/include/iwinfo.h
> > index 8469ee7..3543b91 100644
> > --- a/include/iwinfo.h
> > +++ b/include/iwinfo.h
> > @@ -61,6 +61,9 @@
> >  #define IWINFO_FREQ_NO_160MHZ                (1 << 5)
> >  #define IWINFO_FREQ_NO_2160MHZ               (1 << 6)
> >
> > +#define IWINFO_FREQ_NO_IR            (1 << 0)
> > +#define IWINFO_FREQ_NO_OUTDOOR               (2 << 0)
>
> That's a pretty non-standard way of defining bits? Did you really
> mean (1<<0) and (1<<1) ?
>

Yes sorry... Copy paste error and then a microstroke in my brain LOL.
Will fix in v2 with other changes if needed.

> Sincerely,
> Karl Palsson
>
> > +
> >  extern const char *IWINFO_CIPHER_NAMES[IWINFO_CIPHER_COUNT];
> >  extern const char *IWINFO_KMGMT_NAMES[IWINFO_KMGMT_COUNT];
> >  extern const char *IWINFO_AUTH_NAMES[IWINFO_AUTH_COUNT];
> > @@ -168,6 +171,7 @@ struct iwinfo_freqlist_entry {
> >       uint8_t channel;
> >       uint32_t mhz;
> >       uint8_t restricted;
> > +     uint32_t restricted_flags;
> >       uint32_t flags;
> >  };
> >
> > diff --git a/iwinfo_nl80211.c b/iwinfo_nl80211.c
> > index c4b0ee2..57f820a 100644
> > --- a/iwinfo_nl80211.c
> > +++ b/iwinfo_nl80211.c
> > @@ -2911,10 +2911,16 @@ static int nl80211_get_freqlist_cb(struct nl_msg *msg, void *arg)
> >                                       e->mhz = nla_get_u32(freqs[NL80211_FREQUENCY_ATTR_FREQ]);
> >                                       e->channel = nl80211_freq2channel(e->mhz);
> >
> > -                                     e->restricted = (
> > -                                             freqs[NL80211_FREQUENCY_ATTR_NO_IR] &&
> > -                                             !freqs[NL80211_FREQUENCY_ATTR_RADAR]
> > -                                     ) ? 1 : 0;
> > +                                     e->restricted = (freqs[NL80211_FREQUENCY_ATTR_NO_IR] &&
> > +                                                      !freqs[NL80211_FREQUENCY_ATTR_RADAR]) ||
> > +                                                      freqs[NL80211_FREQUENCY_ATTR_INDOOR_ONLY];
> > +
> > +                                     if (freqs[NL80211_FREQUENCY_ATTR_NO_IR] &&
> > +                                         !freqs[NL80211_FREQUENCY_ATTR_RADAR])
> > +                                             e->restricted_flags |= IWINFO_FREQ_NO_IR;
> > +
> > +                                     if (freqs[NL80211_FREQUENCY_ATTR_INDOOR_ONLY])
> > +                                             e->restricted_flags |= IWINFO_FREQ_NO_OUTDOOR;
> >
> >                                       if (freqs[NL80211_FREQUENCY_ATTR_NO_HT40_MINUS])
> >                                               e->flags |= IWINFO_FREQ_NO_HT40MINUS;
> > --
> > 2.32.0
> >
> >
> > _______________________________________________
> > openwrt-devel mailing list
> > openwrt-devel at lists.openwrt.org
> > https://lists.openwrt.org/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list