Changeset 40694


Ignore:
Timestamp:
2014-05-03T23:18:53+02:00 (4 years ago)
Author:
nbd
Message:

mac80211: remove obsolete check for enable_ht

Signed-off-by: Felix Fietkau <nbd@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh

    r40686 r40694  
    8383        [ "$auto_channel" -gt 0 ] && channel=acs_survey 
    8484 
    85         [ "$enable_ht" -gt 0 ] && { 
    86                 json_get_vars noscan htmode 
    87                 json_get_values ht_capab_list ht_capab 
    88  
    89                 ieee80211n=1 
    90                 ht_capab= 
    91                 case "$htmode" in 
    92                         VHT20|HT20) ;; 
    93                         HT40*|VHT40|VHT80|VHT160) 
    94                                 case "$hwmode" in 
    95                                         a) 
    96                                                 case "$(( ($channel / 4) % 2 ))" in 
    97                                                         1) ht_capab="[HT40+]";; 
    98                                                         0) ht_capab="[HT40-]";; 
    99                                                 esac 
    100                                         ;; 
    101                                         *) 
    102                                                 case "$htmode" in 
    103                                                         HT40+) ht_capab="[HT40+]";; 
    104                                                         HT40-) ht_capab="[HT40-]";; 
    105                                                         *) 
    106                                                                 if [ "$channel" -lt 7 ]; then 
    107                                                                         ht_capab="[HT40+]" 
    108                                                                 else 
    109                                                                         ht_capab="[HT40-]" 
    110                                                                 fi 
    111                                                         ;; 
    112                                                 esac 
    113                                         ;; 
    114                                 esac 
    115                                 [ "$auto_channel" -gt 0 ] && ht_capab="[HT40+]" 
    116                         ;; 
    117                         *) ieee80211n= ;; 
    118                 esac 
    119  
    120                 [ -n "$ieee80211n" ] && { 
    121                         append base_cfg "ieee80211n=1" "$N" 
    122  
    123                         json_get_vars \ 
    124                                 ldpc:1 \ 
    125                                 greenfield:1 \ 
    126                                 short_gi_20:1 \ 
    127                                 short_gi_40:1 \ 
    128                                 tx_stbc:1 \ 
    129                                 rx_stbc:3 \ 
    130                                 dsss_cck_40:1 
    131  
    132                         ht_cap_mask=0 
    133                         for cap in $(iw phy "$phy" info | grep 'Capabilities:' | cut -d: -f2); do 
    134                                 ht_cap_mask="$(($ht_cap_mask | $cap))" 
    135                         done 
    136  
    137                         cap_rx_stbc=$((($ht_cap_mask >> 8) & 3)) 
    138                         [ "$rx_stbc" -lt "$cap_rx_stbc" ] && cap_rx_stbc="$rx_stbc" 
    139                         ht_cap_mask="$(( ($ht_cap_mask & ~(0x300)) | ($cap_rx_stbc << 8) ))" 
    140  
    141                         mac80211_add_capabilities ht_capab_flags $ht_cap_mask \ 
    142                                 LDPC:0x1::$ldpc \ 
    143                                 GF:0x10::$greenfield \ 
    144                                 SHORT-GI-20:0x20::$short_gi_20 \ 
    145                                 SHORT-GI-40:0x40::$short_gi_40 \ 
    146                                 TX-STBC:0x80::$max_tx_stbc \ 
    147                                 RX-STBC1:0x300:0x100:1 \ 
    148                                 RX-STBC12:0x300:0x200:1 \ 
    149                                 RX-STBC123:0x300:0x300:1 \ 
    150                                 DSSS_CCK-40:0x1000::$dsss_cck_40 
    151  
    152                         [ -n "$ht_capab" ] && append base_cfg "ht_capab=$ht_capab$ht_capab_flags" "$N" 
    153                 } 
    154  
    155                 # 802.11ac 
    156                 enable_ac=0 
    157                 idx="$channel" 
    158                 case "$htmode" in 
    159                         VHT20) enable_ac=1;; 
    160                         VHT40) 
    161                                 case "$(( ($channel / 4) % 2 ))" in 
    162                                         1) idx=$(($channel + 2));; 
    163                                         0) idx=$(($channel - 2));; 
    164                                 esac 
    165                                 enable_ac=1 
    166                                 append base_cfg "vht_oper_chwidth=0" "$N" 
    167                                 append base_cfg "vht_oper_centr_freq_seg0_idx=$idx" "$N" 
    168                         ;; 
    169                         VHT80) 
    170                                 case "$(( ($channel / 4) % 2 ))" in 
    171                                         1) idx=$(($channel + 6));; 
    172                                         2) idx=$(($channel + 2));; 
    173                                         3) idx=$(($channel - 2));; 
    174                                         0) idx=$(($channel - 6));; 
    175                                 esac 
    176                                 enable_ac=1 
    177                                 append base_cfg "vht_oper_chwidth=1" "$N" 
    178                                 append base_cfg "vht_oper_centr_freq_seg0_idx=$idx" "$N" 
    179                         ;; 
    180                         VHT160) 
    181                                 case "$channel" in 
    182                                         36|40|44|48|52|56|60|64) idx=50;; 
    183                                         100|104|108|112|116|120|124|128) idx=114;; 
    184                                 esac 
    185                                 enable_ac=1 
    186                                 append base_cfg "vht_oper_chwidth=2" "$N" 
    187                                 append base_cfg "vht_oper_centr_freq_seg0_idx=$idx" "$N" 
    188                         ;; 
    189                 esac 
    190  
    191                 if [ "$enable_ac" != "0" ]; then 
    192                         json_get_vars \ 
    193                                 rxldpc:1 \ 
    194                                 short_gi_80:1 \ 
    195                                 short_gi_160:1 \ 
    196                                 tx_stbc_2by1:1 \ 
    197                                 su_beamformer:1 \ 
    198                                 su_beamformee:1 \ 
    199                                 mu_beamformer:1 \ 
    200                                 mu_beamformee:1 \ 
    201                                 vht_txop_ps:1 \ 
    202                                 htc_vht:1 \ 
    203                                 rx_antenna_pattern:1 \ 
    204                                 tx_antenna_pattern:1 \ 
    205                                 vht_max_mpdu:11454 \ 
    206                                 rx_stbc:4 \ 
    207                                 vht_link_adapt:3 \ 
    208                                 vht160:2 
    209  
    210                         append base_cfg "ieee80211ac=1" "$N" 
    211                         vht_cap=0 
    212                         for cap in $(iw phy "$phy" info | awk -F "[()]" '/VHT Capabilities/ { print $2 }'); do 
    213                                 vht_cap="$(($vht_cap | $cap))" 
    214                         done 
    215  
    216                         cap_rx_stbc=$((($vht_cap >> 8) & 7)) 
    217                         [ "$rx_stbc" -lt "$cap_rx_stbc" ] && cap_rx_stbc="$rx_stbc" 
    218                         ht_cap_mask="$(( ($vht_cap & ~(0x700)) | ($cap_rx_stbc << 8) ))" 
    219  
    220                         mac80211_add_capabilities vht_capab $vht_cap \ 
    221                                 RXLDPC:0x10::$rxldpc \ 
    222                                 SHORT-GI-80:0x20::$short_gi_80 \ 
    223                                 SHORT-GI-160:0x40::$short_gi_160 \ 
    224                                 TX-STBC-2BY1:0x80::$tx_stbc \ 
    225                                 SU-BEAMFORMER:0x800::$su_beamformer \ 
    226                                 SU-BEAMFORMEE:0x1000::$su_beamformee \ 
    227                                 MU-BEAMFORMER:0x80000::$mu_beamformer \ 
    228                                 MU-BEAMFORMEE:0x100000::$mu_beamformee \ 
    229                                 VHT-TXOP-PS:0x200000::$vht_txop_ps \ 
    230                                 HTC-VHT:0x400000::$htc_vht \ 
    231                                 RX-ANTENNA-PATTERN:0x10000000::$rx_antenna_pattern \ 
    232                                 TX-ANTENNA-PATTERN:0x20000000::$tx_antenna_pattern \ 
    233                                 RX-STBC1:0x700:0x100:1 \ 
    234                                 RX-STBC12:0x700:0x200:1 \ 
    235                                 RX-STBC123:0x700:0x300:1 \ 
    236                                 RX-STBC1234:0x700:0x400:1 \ 
    237  
    238                         # supported Channel widths 
    239                         vht160_hw=0 
    240                         [ "$(($vht_cap & 12))" -eq 4 -a 1 -le "$vht160" ] && \ 
    241                                 vht160_hw=1 
    242                         [ "$(($vht_cap & 12))" -eq 8 -a 2 -le "$vht160" ] && \ 
    243                                 vht160_hw=2 
    244                         [ "$vht160_hw" = 1 ] && vht_capab="$vht_capab[VHT160]" 
    245                         [ "$vht160_hw" = 2 ] && vht_capab="$vht_capab[VHT160-80PLUS80]" 
    246  
    247                         # maximum MPDU length 
    248                         vht_max_mpdu_hw=3895 
    249                         [ "$(($vht_cap & 3))" -ge 1 -a 7991 -le "$vht_max_mpdu" ] && \ 
    250                                 vht_max_mpdu_hw=7991 
    251                         [ "$(($vht_cap & 3))" -ge 2 -a 11454 -le "$vht_max_mpdu" ] && \ 
    252                                 vht_max_mpdu_hw=11454 
    253                         [ "$vht_max_mpdu_hw" != 3895 ] && \ 
    254                                 vht_capab="$vht_capab[MAX-MPDU-$vht_max_mpdu_hw]" 
    255  
    256                         # whether or not the STA supports link adaptation using VHT variant 
    257                         vht_link_adapt_hw=0 
    258                         [ "$(($vht_cap & 201326592))" -ge 134217728 -a 2 -le "$vht_link_adapt" ] && \ 
    259                                 vht_link_adapt_hw=2 
    260                         [ "$(($vht_cap & 201326592))" -ge 201326592 -a 3 -le "$vht_link_adapt" ] && \ 
    261                                 vht_link_adapt_hw=3 
    262                         [ "$vht_link_adapt_hw" != 0 ] && \ 
    263                                 vht_capab="$vht_capab[VHT-LINK-ADAPT-$vht_link_adapt_hw]" 
    264  
    265                         [ -n "$vht_capab" ] && append base_cfg "vht_capab=$vht_capab" "$N" 
    266                 fi 
    267         } 
     85        json_get_vars noscan htmode 
     86        json_get_values ht_capab_list ht_capab 
     87 
     88        ieee80211n=1 
     89        ht_capab= 
     90        case "$htmode" in 
     91                VHT20|HT20) ;; 
     92                HT40*|VHT40|VHT80|VHT160) 
     93                        case "$hwmode" in 
     94                                a) 
     95                                        case "$(( ($channel / 4) % 2 ))" in 
     96                                                1) ht_capab="[HT40+]";; 
     97                                                0) ht_capab="[HT40-]";; 
     98                                        esac 
     99                                ;; 
     100                                *) 
     101                                        case "$htmode" in 
     102                                                HT40+) ht_capab="[HT40+]";; 
     103                                                HT40-) ht_capab="[HT40-]";; 
     104                                                *) 
     105                                                        if [ "$channel" -lt 7 ]; then 
     106                                                                ht_capab="[HT40+]" 
     107                                                        else 
     108                                                                ht_capab="[HT40-]" 
     109                                                        fi 
     110                                                ;; 
     111                                        esac 
     112                                ;; 
     113                        esac 
     114                        [ "$auto_channel" -gt 0 ] && ht_capab="[HT40+]" 
     115                ;; 
     116                *) ieee80211n= ;; 
     117        esac 
     118 
     119        [ -n "$ieee80211n" ] && { 
     120                append base_cfg "ieee80211n=1" "$N" 
     121 
     122                json_get_vars \ 
     123                        ldpc:1 \ 
     124                        greenfield:1 \ 
     125                        short_gi_20:1 \ 
     126                        short_gi_40:1 \ 
     127                        tx_stbc:1 \ 
     128                        rx_stbc:3 \ 
     129                        dsss_cck_40:1 
     130 
     131                ht_cap_mask=0 
     132                for cap in $(iw phy "$phy" info | grep 'Capabilities:' | cut -d: -f2); do 
     133                        ht_cap_mask="$(($ht_cap_mask | $cap))" 
     134                done 
     135 
     136                cap_rx_stbc=$((($ht_cap_mask >> 8) & 3)) 
     137                [ "$rx_stbc" -lt "$cap_rx_stbc" ] && cap_rx_stbc="$rx_stbc" 
     138                ht_cap_mask="$(( ($ht_cap_mask & ~(0x300)) | ($cap_rx_stbc << 8) ))" 
     139 
     140                mac80211_add_capabilities ht_capab_flags $ht_cap_mask \ 
     141                        LDPC:0x1::$ldpc \ 
     142                        GF:0x10::$greenfield \ 
     143                        SHORT-GI-20:0x20::$short_gi_20 \ 
     144                        SHORT-GI-40:0x40::$short_gi_40 \ 
     145                        TX-STBC:0x80::$max_tx_stbc \ 
     146                        RX-STBC1:0x300:0x100:1 \ 
     147                        RX-STBC12:0x300:0x200:1 \ 
     148                        RX-STBC123:0x300:0x300:1 \ 
     149                        DSSS_CCK-40:0x1000::$dsss_cck_40 
     150 
     151                [ -n "$ht_capab" ] && append base_cfg "ht_capab=$ht_capab$ht_capab_flags" "$N" 
     152        } 
     153 
     154        # 802.11ac 
     155        enable_ac=0 
     156        idx="$channel" 
     157        case "$htmode" in 
     158                VHT20) enable_ac=1;; 
     159                VHT40) 
     160                        case "$(( ($channel / 4) % 2 ))" in 
     161                                1) idx=$(($channel + 2));; 
     162                                0) idx=$(($channel - 2));; 
     163                        esac 
     164                        enable_ac=1 
     165                        append base_cfg "vht_oper_chwidth=0" "$N" 
     166                        append base_cfg "vht_oper_centr_freq_seg0_idx=$idx" "$N" 
     167                ;; 
     168                VHT80) 
     169                        case "$(( ($channel / 4) % 2 ))" in 
     170                                1) idx=$(($channel + 6));; 
     171                                2) idx=$(($channel + 2));; 
     172                                3) idx=$(($channel - 2));; 
     173                                0) idx=$(($channel - 6));; 
     174                        esac 
     175                        enable_ac=1 
     176                        append base_cfg "vht_oper_chwidth=1" "$N" 
     177                        append base_cfg "vht_oper_centr_freq_seg0_idx=$idx" "$N" 
     178                ;; 
     179                VHT160) 
     180                        case "$channel" in 
     181                                36|40|44|48|52|56|60|64) idx=50;; 
     182                                100|104|108|112|116|120|124|128) idx=114;; 
     183                        esac 
     184                        enable_ac=1 
     185                        append base_cfg "vht_oper_chwidth=2" "$N" 
     186                        append base_cfg "vht_oper_centr_freq_seg0_idx=$idx" "$N" 
     187                ;; 
     188        esac 
     189 
     190        if [ "$enable_ac" != "0" ]; then 
     191                json_get_vars \ 
     192                        rxldpc:1 \ 
     193                        short_gi_80:1 \ 
     194                        short_gi_160:1 \ 
     195                        tx_stbc_2by1:1 \ 
     196                        su_beamformer:1 \ 
     197                        su_beamformee:1 \ 
     198                        mu_beamformer:1 \ 
     199                        mu_beamformee:1 \ 
     200                        vht_txop_ps:1 \ 
     201                        htc_vht:1 \ 
     202                        rx_antenna_pattern:1 \ 
     203                        tx_antenna_pattern:1 \ 
     204                        vht_max_mpdu:11454 \ 
     205                        rx_stbc:4 \ 
     206                        vht_link_adapt:3 \ 
     207                        vht160:2 
     208 
     209                append base_cfg "ieee80211ac=1" "$N" 
     210                vht_cap=0 
     211                for cap in $(iw phy "$phy" info | awk -F "[()]" '/VHT Capabilities/ { print $2 }'); do 
     212                        vht_cap="$(($vht_cap | $cap))" 
     213                done 
     214 
     215                cap_rx_stbc=$((($vht_cap >> 8) & 7)) 
     216                [ "$rx_stbc" -lt "$cap_rx_stbc" ] && cap_rx_stbc="$rx_stbc" 
     217                ht_cap_mask="$(( ($vht_cap & ~(0x700)) | ($cap_rx_stbc << 8) ))" 
     218 
     219                mac80211_add_capabilities vht_capab $vht_cap \ 
     220                        RXLDPC:0x10::$rxldpc \ 
     221                        SHORT-GI-80:0x20::$short_gi_80 \ 
     222                        SHORT-GI-160:0x40::$short_gi_160 \ 
     223                        TX-STBC-2BY1:0x80::$tx_stbc \ 
     224                        SU-BEAMFORMER:0x800::$su_beamformer \ 
     225                        SU-BEAMFORMEE:0x1000::$su_beamformee \ 
     226                        MU-BEAMFORMER:0x80000::$mu_beamformer \ 
     227                        MU-BEAMFORMEE:0x100000::$mu_beamformee \ 
     228                        VHT-TXOP-PS:0x200000::$vht_txop_ps \ 
     229                        HTC-VHT:0x400000::$htc_vht \ 
     230                        RX-ANTENNA-PATTERN:0x10000000::$rx_antenna_pattern \ 
     231                        TX-ANTENNA-PATTERN:0x20000000::$tx_antenna_pattern \ 
     232                        RX-STBC1:0x700:0x100:1 \ 
     233                        RX-STBC12:0x700:0x200:1 \ 
     234                        RX-STBC123:0x700:0x300:1 \ 
     235                        RX-STBC1234:0x700:0x400:1 \ 
     236 
     237                # supported Channel widths 
     238                vht160_hw=0 
     239                [ "$(($vht_cap & 12))" -eq 4 -a 1 -le "$vht160" ] && \ 
     240                        vht160_hw=1 
     241                [ "$(($vht_cap & 12))" -eq 8 -a 2 -le "$vht160" ] && \ 
     242                        vht160_hw=2 
     243                [ "$vht160_hw" = 1 ] && vht_capab="$vht_capab[VHT160]" 
     244                [ "$vht160_hw" = 2 ] && vht_capab="$vht_capab[VHT160-80PLUS80]" 
     245 
     246                # maximum MPDU length 
     247                vht_max_mpdu_hw=3895 
     248                [ "$(($vht_cap & 3))" -ge 1 -a 7991 -le "$vht_max_mpdu" ] && \ 
     249                        vht_max_mpdu_hw=7991 
     250                [ "$(($vht_cap & 3))" -ge 2 -a 11454 -le "$vht_max_mpdu" ] && \ 
     251                        vht_max_mpdu_hw=11454 
     252                [ "$vht_max_mpdu_hw" != 3895 ] && \ 
     253                        vht_capab="$vht_capab[MAX-MPDU-$vht_max_mpdu_hw]" 
     254 
     255                # whether or not the STA supports link adaptation using VHT variant 
     256                vht_link_adapt_hw=0 
     257                [ "$(($vht_cap & 201326592))" -ge 134217728 -a 2 -le "$vht_link_adapt" ] && \ 
     258                        vht_link_adapt_hw=2 
     259                [ "$(($vht_cap & 201326592))" -ge 201326592 -a 3 -le "$vht_link_adapt" ] && \ 
     260                        vht_link_adapt_hw=3 
     261                [ "$vht_link_adapt_hw" != 0 ] && \ 
     262                        vht_capab="$vht_capab[VHT-LINK-ADAPT-$vht_link_adapt_hw]" 
     263 
     264                [ -n "$vht_capab" ] && append base_cfg "vht_capab=$vht_capab" "$N" 
     265        fi 
    268266 
    269267        hostapd_prepare_device_config "$hostapd_conf_file" nl80211 
Note: See TracChangeset for help on using the changeset viewer.