1. 20 Jun, 2022 5 commits
    • Johannes Berg's avatar
      wifi: mac80211: reorg some iface data structs for MLD · bfd8403a
      Johannes Berg authored
      Start reorganizing interface related data structures toward
      MLD. The most complex part here is for the keys, since we
      have to split the various kinds of GTKs off to the link but
      still need to use (for WEP) the other keys as a fallback
      even for multicast frames.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      bfd8403a
    • Johannes Berg's avatar
      wifi: mac80211: move interface config to new struct · f276e20b
      Johannes Berg authored
      We'll use bss_conf for per-link configuration later, so
      move out all the non-link-specific data out into a new
      struct ieee80211_vif_cfg used in the vif.
      
      Some adjustments were done with the following spatch:
      
          @@
          expression sdata;
          struct ieee80211_vif *vifp;
          identifier var = { assoc, ibss_joined, aid, arp_addr_list, arp_addr_cnt, ssid, ssid_len, s1g, ibss_creator };
          @@
          (
          -sdata->vif.bss_conf.var
          +sdata->vif.cfg.var
          |
          -vifp->bss_conf.var
          +vifp->cfg.var
          )
      
          @bss_conf@
          struct ieee80211_bss_conf *bss_conf;
          identifier var = { assoc, ibss_joined, aid, arp_addr_list, arp_addr_cnt, ssid, ssid_len, s1g, ibss_creator };
          @@
          -bss_conf->var
          +vif_cfg->var
      
      (though more manual fixups were needed, e.g. replacing
      "vif_cfg->" by "vif->cfg." in many files.)
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      f276e20b
    • Johannes Berg's avatar
      wifi: mac80211: move some future per-link data to bss_conf · d0a9123e
      Johannes Berg authored
      To add MLD, reuse the bss_conf structure later for per-link
      information, so move some things into it that are per link.
      
      Most transformations were done with the following spatch:
      
          @@
          expression sdata;
          identifier var = { chanctx_conf, mu_mimo_owner, csa_active, color_change_active, color_change_color };
          @@
          -sdata->vif.var
          +sdata->vif.bss_conf.var
      
          @@
          struct ieee80211_vif *vif;
          identifier var = { chanctx_conf, mu_mimo_owner, csa_active, color_change_active, color_change_color };
          @@
          -vif->var
          +vif->bss_conf.var
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      d0a9123e
    • Johannes Berg's avatar
      wifi: cfg80211: do some rework towards MLO link APIs · 7b0a0e3c
      Johannes Berg authored
      In order to support multi-link operation with multiple links,
      start adding some APIs. The notable addition here is to have
      the link ID in a new nl80211 attribute, that will be used to
      differentiate the links in many nl80211 operations.
      
      So far, this patch adds the netlink NL80211_ATTR_MLO_LINK_ID
      attribute (as well as the NL80211_ATTR_MLO_LINKS attribute)
      and plugs it through the system in some places, checking the
      validity etc. along with other infrastructure needed for it.
      
      For now, I've decided to include only the over-the-air link
      ID in the API. I know we discussed that we eventually need to
      have to have other ways of identifying a link, but for local
      AP mode and auth/assoc commands as well as set_key etc. we'll
      use the OTA ID.
      
      Also included in this patch is some refactoring of the data
      structures in struct wireless_dev, splitting for the first
      time the data into type dependent pieces, to make reasoning
      about these things easier.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      7b0a0e3c
    • Johannes Berg's avatar
      wifi: mac80211: reject WEP or pairwise keys with key ID > 3 · 92ea8df1
      Johannes Berg authored
      We don't really care too much right now since our data
      structures are set up to not have a problem with this,
      but clearly it's wrong to accept WEP and pairwise keys
      with key ID > 3.
      
      However, with MLD we need to split into per-link (GTK,
      IGTK, BIGTK) and per interface/MLD (including WEP) keys
      so make sure this is not a problem.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      92ea8df1
  2. 15 Jun, 2022 27 commits
  3. 14 Jun, 2022 3 commits
  4. 13 Jun, 2022 5 commits