• Sathishkumar Muruganandam's avatar
    mac80211: add missing WFA Multi-AP backhaul STA Rx requirement · 1ecef20c
    Sathishkumar Muruganandam authored
    The current mac80211 WDS (4-address mode) can be used to cover most of the
    Multi-AP requirements for Data frames per the WFA Multi-AP Specification v1.0.
    When configuring AP/STA interfaces in 4-address mode, they are able to function
    as fronthaul AP/backhaul STA of Multi-AP device complying below
    Tx, Rx requirements except one missing STA Rx requirement added by this patch.
    
    Multi-AP specification section 14.1 describes the following requirements:
    
    Transmitter requirements
    ------------------------
    1. Fronthaul AP
            i) When DA!=RA of backhaul STA, must use 4-address format
            ii) When DA==RA of backhaul STA, shall use either 3-address
                or 4-address format with RA updated with STA MAC
    
                (mac80211 support 4-address format via AP/VLAN interface)
    
    2. Backhaul STA
            i) When SA!=TA of backhaul STA, must use 4-address format
            ii) When SA==TA of backhaul STA, shall use either 3-address
                or 4-address format with RA updated with AP MAC
    
                (mac80211 support 4-address format via use_4addr)
    
    Receiver requirements
    ---------------------
    1. Fronthaul AP
            i) When SA!=TA of backhaul STA, must support receiving 4-address
               format frames
            ii) When SA==TA of backhaul STA, must support receiving both
                3-address and 4-address format frames
    
                (mac80211 support both 3-addr & 4-addr via AP/VLAN interface)
    
    2. Backhaul STA
            i) When DA!=RA of backhaul STA, must support receiving 4-address
               format frames
            ii) When DA==RA of backhaul STA,  must support receiving both
                3-address and 4-address format frames
    
                (mac80211 support only receiving 4-address format via
                 use_4addr)
    
    This patch addresses the above Rx requirement (ii) for backhaul STA to receive
    unicast (DA==RA) 3-address frames in addition to 4-address frames.
    
    The current design doesn't accept 3-address frames when configured in 4-address
    mode (use_4addr). Hence add a check to allow 3-address frames when DA==RA of
    backhaul STA (adhering to Table 9-26 of IEEE Std 802.11-2016).
    
    This case was tested with a bridged station interface when associated with
    a non-mac80211 based vendor AP implementation using 3-address frames for WDS.
    
    STA was able to support the Multi-AP Rx requirement when DA==RA. No issues,
    no loops seen when tested with mac80211 based AP as well.
    
    Verified and confirmed all other Tx and Rx requirements of AP and STA for
    Multi-AP respectively. They all work using the current mac80211-WDS design.
    Signed-off-by: default avatarSathishkumar Muruganandam <murugana@codeaurora.org>
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    1ecef20c
rx.c 126 KB