• Janusz Dziedzic's avatar
    cfg80211: regulatory introduce maximum bandwidth calculation · 97524820
    Janusz Dziedzic authored
    In case we will get regulatory request with rule
    where max_bandwidth_khz is set to 0 handle this
    case as a special one.
    
    If max_bandwidth_khz == 0 we should calculate maximum
    available bandwidth base on all frequency contiguous rules.
    In case we need auto calculation we just have to set:
    
    country PL: DFS-ETSI
            (2402 - 2482 @ 40), (N/A, 20)
            (5170 - 5250 @ AUTO), (N/A, 20)
            (5250 - 5330 @ AUTO), (N/A, 20), DFS
            (5490 - 5710 @ 80), (N/A, 27), DFS
    
    This mean we will calculate maximum bw for rules where
    AUTO (N/A) were set, 160MHz (5330 - 5170) in example above.
    So we will get:
            (5170 - 5250 @ 160), (N/A, 20)
            (5250 - 5330 @ 160), (N/A, 20), DFS
    
    In other case:
    country FR: DFS-ETSI
            (2402 - 2482 @ 40), (N/A, 20)
            (5170 - 5250 @ AUTO), (N/A, 20)
            (5250 - 5330 @ 80), (N/A, 20), DFS
            (5490 - 5710 @ 80), (N/A, 27), DFS
    
    We will get 80MHz (5250 - 5170):
            (5170 - 5250 @ 80), (N/A, 20)
            (5250 - 5330 @ 80), (N/A, 20), DFS
    
    Base on this calculations we will set correct channel
    bandwidth flags (eg. IEEE80211_CHAN_NO_80MHZ).
    
    We don't need any changes in CRDA or internal regulatory.
    Signed-off-by: default avatarJanusz Dziedzic <janusz.dziedzic@tieto.com>
    [extend nl80211 description a bit, fix typo]
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    97524820
nl80211.c 311 KB