• Johannes Berg's avatar
    wifi: mac80211: fix control port frame addressing · a6ba64d0
    Johannes Berg authored
    For an AP interface, when userspace specifieds the link ID to
    transmit the control port frame on (in particular for the
    initial 4-way-HS), due to the logic in ieee80211_build_hdr()
    for a frame transmitted from/to an MLD, we currently build a
    header with
    
     A1 = DA = MLD address of the peer MLD
     A2 = local link address (!)
     A3 = SA = local MLD address
    
    This clearly makes no sense, and leads to two problems:
     - if the frame were encrypted (not true for the initial
       4-way-HS) the AAD would be calculated incorrectly
     - if iTXQs are used, the frame is dropped by logic in
       ieee80211_tx_dequeue()
    
    Fix the addressing, which fixes the first bullet, and the
    second bullet for peer MLDs, I'll fix the second one for
    non-MLD peers separately.
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    a6ba64d0
tx.c 159 KB