• Johannes Berg's avatar
    wifi: mac80211: support wider bandwidth OFDMA config · 761748f0
    Johannes Berg authored
    EHT requires that stations are able to participate in
    wider bandwidth OFDMA, i.e. parse downlink OFDMA and
    uplink OFDMA triggers when they're not capable of (or
    not connected at) the (wider) bandwidth that the AP
    is using. This requires hardware configuration, since
    the entity responsible for parsing (possibly hardware)
    needs to know the AP bandwidth.
    
    To support this, change the channel request to have
    the AP's bandwidth for clients, and track that in the
    channel context in mac80211. This means that the same
    chandef might need to be split up into two different
    contexts, if the APs are different. Interfaces other
    than client are not participating in OFDMA the same
    way, so they don't request any AP setting.
    
    Note that this doesn't introduce any API to split a
    channel context, so that there are cases where this
    might lead to a disconnect, e.g. if there are two
    client interfaces using the same channel context, e.g.
    both 160 MHz connected to different 320 MHz APs, and
    one of the APs switches to 160 MHz.
    
    Note also there are possible cases where this can be
    optimised, e.g. when using the upper or lower 160 Mhz,
    but I haven't been able to really fully understand the
    spec and/or hardware limitations.
    
    If, for some reason, there are no hardware limits on
    this because the OFDMA (downlink/trigger) parsing is
    done in firmware and can take the transmitter into
    account, then drivers can set the new flag
    IEEE80211_VIF_IGNORE_OFDMA_WIDER_BW on interfaces to
    not have them request any AP bandwidth in the channel
    context and ignore this issue entirely. The bss_conf
    still contains the AP configuration (if any, i.e. EHT)
    in the chanreq.
    
    Link: https://msgid.link/20240129194108.d3d5b35dd783.I939d04674f4ff06f39934b1591c8d36a30ce74c2@changeidSigned-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    761748f0
chan.c 51 KB