dotfiles/role/networking/wireless-access-point.nix

99 lines
2.3 KiB
Nix

{
wleInterface,
wleSSID,
# Generate Encrypted Passphrase with: wpa_passphrase <wleSSID> <passphrase>
wlePassphrase,
# TODO: Type
# TODO: Multi-Band, if available
}:
let pkgs = import<nixpkgs>{};
in
{
boot.extraModprobeConfig = ''
options cfg80211 ieee80211_regdom=US
'';
services.udev.packages = [ pkgs.crda ];
services.hostapd = {
enable = true;
interface = wleInterface;
hwMode = "a";
ssid = wleSSID;
wpaPassphrase = wlePassphrase;
channel = 36;
extraConfig = ''
max_num_sta=255
logger_syslog=-1
logger_syslog_level=0
logger_stdout=-1
logger_stdout_level=0
#Details for Connecting Clients via WPA2 TKIP
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
rsn_pairwise=CCMP
#802.11d Regulatory Restrictions Designations for Which Frequencies and Channels are Legal
ieee80211d=1
# DFS
#ieee80211h=1
country_code=US
#802.11n Configurations
ieee80211n=1
ht_capab=[LDPC][HT40+][SHORT-GI-20][SHORT-GI-40][TX-STBC][DSSS_CCK-40]
#802.11ac Configurations
ieee80211ac=1
vht_capab=[SHORT-GI-80][MAX-MPDU-11454][RXLDPC][TX-STBC-2BY1][MAX-A-MPDU-LEN-EXP3][RX-ANTENNA-PATTERN][TX-ANTENNA-PATTERN]
vht_oper_chwidth=1
vht_oper_centr_freq_seg0_idx=42
#How Many Units of Time Between Beacon Transmissions
#beacon_int=100
#Multiplier of How Many Units of Time Between Beacon Transmissions
#dtim_period=2
#(e.g. 100 milliseconds(ms) * 2 = 200 ms between beacons)
#Something About WMM Clients Needing this
wmm_enabled=1
###To Be Completely Honest-- I'm Not Entirely Certain What the Rest of this file does
#QoS Type of Traffic Management Based on Traffic Type
##Background
#wmm_ac_bk_cwmin=4
#wmm_ac_bk_cwmax=10
#wmm_ac_bk_aifs=7
#wmm_ac_bk_txop_limit=0
#wmm_ac_bk_acm=0
##Best Effort
#wmm_ac_be_aifs=3
#wmm_ac_be_cwmin=4
#wmm_ac_be_cwmax=10
#wmm_ac_be_txop_limit=0
#wmm_ac_be_acm=0
##Video
#wmm_ac_vi_aifs=2
#wmm_ac_vi_cwmin=3
#wmm_ac_vi_cwmax=4
#wmm_ac_vi_txop_limit=94
#wmm_ac_vi_acm=0
##Voice
#wmm_ac_vo_aifs=2
#wmm_ac_vo_cwmin=2
#wmm_ac_vo_cwmax=3
#wmm_ac_vo_txop_limit=47
#wmm_ac_vo_acm=0
'';
};
}