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

Karl Palsson karlp at tweak.net.au
Thu Nov 18 09:10:15 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) ?

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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP-digital-signature.html
Type: application/pgp-signature
Size: 1175 bytes
Desc: OpenPGP Digital Signature
URL: <http://lists.openwrt.org/pipermail/openwrt-devel/attachments/20211118/30359f90/attachment.sig>


More information about the openwrt-devel mailing list