nl80211: Add LC placeholder band definition to nl80211_band
authorSrinivasan Raju <srini.raju@purelifi.com>
Mon, 18 Oct 2021 10:00:54 +0000 (11:00 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 21 Oct 2021 15:25:17 +0000 (17:25 +0200)
Define LC band which is a draft under IEEE 802.11bb.
Current NL80211_BAND_LC is a placeholder band and
will be more defined IEEE 802.11bb progresses.

Signed-off-by: Srinivasan Raju <srini.raju@purelifi.com>
Link: https://lore.kernel.org/r/20211018100143.7565-2-srini.raju@purelifi.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
include/uapi/linux/nl80211.h
net/mac80211/mlme.c
net/mac80211/sta_info.c
net/mac80211/tx.c
net/wireless/nl80211.c
net/wireless/util.c

index eda608b..6b816ef 100644 (file)
@@ -4978,6 +4978,7 @@ enum nl80211_txrate_gi {
  * @NL80211_BAND_60GHZ: around 60 GHz band (58.32 - 69.12 GHz)
  * @NL80211_BAND_6GHZ: around 6 GHz band (5.9 - 7.2 GHz)
  * @NL80211_BAND_S1GHZ: around 900MHz, supported by S1G PHYs
+ * @NL80211_BAND_LC: light communication band (placeholder)
  * @NUM_NL80211_BANDS: number of bands, avoid using this in userspace
  *     since newer kernel versions may support more bands
  */
@@ -4987,6 +4988,7 @@ enum nl80211_band {
        NL80211_BAND_60GHZ,
        NL80211_BAND_6GHZ,
        NL80211_BAND_S1GHZ,
+       NL80211_BAND_LC,
 
        NUM_NL80211_BANDS,
 };
index ac32a19..16ef739 100644 (file)
@@ -1490,6 +1490,7 @@ ieee80211_find_80211h_pwr_constr(struct ieee80211_sub_if_data *sdata,
                fallthrough;
        case NL80211_BAND_2GHZ:
        case NL80211_BAND_60GHZ:
+       case NL80211_BAND_LC:
                chan_increment = 1;
                break;
        case NL80211_BAND_5GHZ:
index 2b5acb3..3652410 100644 (file)
@@ -444,6 +444,7 @@ struct sta_info *sta_info_alloc(struct ieee80211_sub_if_data *sdata,
 
                switch (i) {
                case NL80211_BAND_2GHZ:
+               case NL80211_BAND_LC:
                        /*
                         * We use both here, even if we cannot really know for
                         * sure the station will support both, but the only use
index ac9ab00..5c426b0 100644 (file)
@@ -146,7 +146,8 @@ static __le16 ieee80211_duration(struct ieee80211_tx_data *tx,
                        rate = DIV_ROUND_UP(r->bitrate, 1 << shift);
 
                switch (sband->band) {
-               case NL80211_BAND_2GHZ: {
+               case NL80211_BAND_2GHZ:
+               case NL80211_BAND_LC: {
                        u32 flag;
                        if (tx->sdata->flags & IEEE80211_SDATA_OPERATING_GMODE)
                                flag = IEEE80211_RATE_MANDATORY_G;
index e72efe1..81232b7 100644 (file)
@@ -866,6 +866,7 @@ nl80211_match_band_rssi_policy[NUM_NL80211_BANDS] = {
        [NL80211_BAND_5GHZ] = { .type = NLA_S32 },
        [NL80211_BAND_6GHZ] = { .type = NLA_S32 },
        [NL80211_BAND_60GHZ] = { .type = NLA_S32 },
+       [NL80211_BAND_LC]    = { .type = NLA_S32 },
 };
 
 static const struct nla_policy
index 18dba3d..2991f71 100644 (file)
@@ -80,6 +80,7 @@ u32 ieee80211_channel_to_freq_khz(int chan, enum nl80211_band band)
                return 0; /* not supported */
        switch (band) {
        case NL80211_BAND_2GHZ:
+       case NL80211_BAND_LC:
                if (chan == 14)
                        return MHZ_TO_KHZ(2484);
                else if (chan < 14)
@@ -209,6 +210,7 @@ static void set_mandatory_flags_band(struct ieee80211_supported_band *sband)
                WARN_ON(want);
                break;
        case NL80211_BAND_2GHZ:
+       case NL80211_BAND_LC:
                want = 7;
                for (i = 0; i < sband->n_bitrates; i++) {
                        switch (sband->bitrates[i].bitrate) {