aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/files/lib
Commit message (Collapse)AuthorAgeFilesLines
* hostapd: do not restart hostapd instance on wireless restartsFelix Fietkau2020-12-311-1/+1
| | | | | | Add the flag that prevents netifd from killing hostapd/wpa_supplicant Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mac80211: fix MAC address allocations when local bit set on base addrPaul Fertser2020-12-221-2/+2
| | | | | | | | | | | | | | | Testing with hwsim reveals two problems: 1. phyX/addresses has two addresses and mac80211_get_addr keeps returning the last one when asked for more; 2. The base address has the local bit set and the operation unsets it. Fix both. Fixes: 866790fd827cb0187353cdf484eb46a9b38fb6ba Reported-by: Zero_Chaos Signed-off-by: Paul Fertser <fercerpav@gmail.com>
* mac80211: Fix wpa_supplicant config removal ubus callSven Eckelmann2020-10-281-1/+1
| | | | | | | | | | | | | | | If mac80211_setup_supplicant() is called with enabled=0 then it should just destroy the interface and remove the configuration from wpa_supplicant. But the ubus method call always returned Command failed: Method not found because the actual name of the method is "config_remove". Fixes: b5516603dd90 ("mac80211: more wifi reconf related fixes") Signed-off-by: Sven Eckelmann <sven@narfation.org> [bump PKG_RELEASE] Signed-off-by: David Bauer <mail@david-bauer.net>
* mac80211: pass phy name to hostapd_set_bss_optionsDavid Bauer2020-10-281-1/+1
| | | | | | | | | | | | hostapd_set_bss_options expects the PHY as second and the VIF as third argument. However, only the VIF was passed as second argument without a third argument at all. This was never a problem, as both PHY and VIF were never accessed. However, with FTM support the PHY is needed to determine the HW support when configuring the BSS. Signed-off-by: David Bauer <mail@david-bauer.net>
* mac80211: add support for specifying a per-device scan listFelix Fietkau2020-09-291-0/+2
| | | | | | | This is useful to bring up multiple client mode interfaces on a single channel much faster without having to scan through a lot of channels Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mac80211: select the first available channel for 5GHz interfacesDavide Fioravanti2020-09-201-2/+2
| | | | | | | | | | Some 5GHz wifi interfaces, especially in Tri-band routers, can't use channel 36. In these cases, the default configuration for 5GHz interfaces, once enabled, doesn't work. This patch selects the first non-disabled channel for 5GHz interfaces. Signed-off-by: Davide Fioravanti <pantanastyle@gmail.com>
* mac80211: add preliminary support for enabling 802.11ax in configFelix Fietkau2020-09-041-12/+37
| | | | | | No advanced features are configurable yet, just basic enabling of HE modes Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mac80211: don't kill wireless daemon on teardownDavid Bauer2020-07-311-2/+0
| | | | | | | | Don't kill the wireless daemon on teardown. hostapd as well as wpa_supplicant are managed by procd which would detect the shutdown of either process as a crash loop. Signed-off-by: David Bauer <mail@david-bauer.net>
* hostapd: fix incorrect service nameDavid Bauer2020-07-311-1/+1
| | | | | | | | | | | | | | When retrieving the PID for hostapd and wpa_supplicant via ubus the wrong service name is currently used. This leads to the following error in the log: netifd: radio0 (1409): WARNING (wireless_add_process): executable path /usr/sbin/wpad does not match process path (/proc/exe) Fixing the service name retrieves the correct PID and therefore the warning won't occur. Signed-off-by: David Bauer <mail@david-bauer.net>
* mac80211: create channel list for fixed channel operationDavid Bauer2020-07-201-0/+3
| | | | | | | | | | | | Currently a device which has a DFS channel selected using the UCI channel setting might switch to a non-DFS channel in case no chanlist is provided (UCI setting "channels") when the radio detects a DFS event. Automatically add a chanlist consisting of the configured channel when the device does not operate in auto-channel mode and no chanlist set to circumvent this issue. Signed-off-by: David Bauer <mail@david-bauer.net>
* mac80211: allow ACS restriction with fixed channelJan Hoffmann2020-07-061-1/+1
| | | | | | | | | | | This can be useful when a DFS channel is configured, as the ACS channel list is taken into account when switching channels after a radar event. For example, this allows to prevent the SRD channels from being used in that case. Signed-off-by: Jan Hoffmann <jan@3e8.eu> [reorder structure] Signed-off-by: David Bauer <mail@david-bauer.net>
* mac80211: fix use of local variableLeon M. George2020-06-241-1/+1
| | | | | | | | | | mac80211_get_addr is called from mac80211_generate_mac, where the local variable initialisation id="${macidx:-0}" suggests that macidx is not always defined. Probably, idx was supposed to be used instead of $(($macidx + 1)). Fixes: 4d99db168cf7 ("mac80211: try to get interface addresses from wiphy sysfs 'addresses' if no mask is set") Signed-off-by: Leon M. George <leon@georgemail.eu>
* hostapd: add support for wifi-station and wifi-vlan sectionsJohn Crispin2020-06-041-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for 2 new uci sections. config wifi-vlan # iface is optional. if it is not defined the vlan will apply # to all interfaces option iface default_radio0 option name guest option vid 100 option network guest config wifi-station # iface is optional. if it is not defined the station will apply # to all interfaces option iface default_radio0 # mac is optional. if it is not defined it will be a catch all # for any sta using this key option mac '00:11:22:33:44:55' # vid is optional. if it is not defined, the sta will be part of # the primary iface. option vid 100 option key testtest With this patch applied it is possible to use multiple PSKs on a single BSS. Signed-off-by: John Crispin <john@phrozen.org>
* mac80211: fix wifi teardownJohn Crispin2020-05-301-4/+6
| | | | | | reverts part of the recent wifi reconf patch. Signed-off-by: John Crispin <john@phrozen.org>
* mac80211: Fix setting radio htmode when using mesh modeEnrique Rodríguez Valencia2020-05-281-0/+1
| | | | | | | When configuring the radio in legacy mode from luci, the htmode is not set correctly to NOHT, causing the radio in mesh mode to be set to HT40. Signed-off-by: Enrique Rodríguez Valencia <enrique.rodriguez@galgus.net>
* mac80211: replace backticks by $(...)Adrian Schmutzler2020-05-131-1/+1
| | | | | | This replaces deprecated backticks by more versatile $(...) syntax. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* mac80211: distance config: allow "auto" as a valueAli MJ Al-Nasrawy2020-05-091-1/+2
| | | | | | | | | The user can now enable the ACK timeout estimation algorithm (dynack) for drivers that support it. It is also expected that the distance config accepts the same values as: $ iw phyX set distance XXX Signed-off-by: Ali MJ Al-Nasrawy <alimjalnasrawy@gmail.com>
* mac80211: more wifi reconf related fixesJohn Crispin2020-05-041-18/+24
| | | | | | | | | | | * uci state was not getting reset properly during teardown * AP+STA co-exist state was not flushed properly upon channel switch * remove a debug logger call * properly teardown supplicant instances when they get disabled * add md5 config support for supplicant * don't call wpa_supplicant_prepare_interface twice Signed-off-by: John Crispin <john@phrozen.org>
* mac80211: make sure existing iface belongs to correct (fullmac) phyDaniel Golle2020-04-171-8/+18
| | | | | | | | | | | | | | Some FullMAC cfg80211 wireless devices do not support virtual interfaces, hence there is script logic to keep the existing network device. Improve this to support renaming the interface if needed and make sure the existing interface actually belongs to the right phy. Change calls to 'iw' to avoid outputing warnings and errors to not confuse users of such devices. Also bump PKG_RELEASE which has been forgotten in the previous two mac80211 changes. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mac80211: fix detecting existing interfaceDaniel Golle2020-04-171-1/+1
| | | | | | | | | Instead of using the actual interface name, a hard-coded 'wlan0' has slipped into the script. Replace it. Fixes: ccf2aa9d4b ("mac80211: detect existing interface before adding") Reported-by: John Crispin <john@phrozen.org> Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mac80211: adapt for single-instance wpadDaniel Golle2020-04-141-7/+7
| | | | Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* hostapd: fix no_reload logicJohn Crispin2020-03-271-2/+4
| | | | | | | the code would unconditionally tear down all interfaces upon a reconf. This should only be done when the reconf call fails. Signed-off-by: John Crispin <john@phrozen.org>
* mac80211: do not try to setup hostapd-managed interfaces.Oldřich Jedlička2020-03-201-7/+11
| | | | | | | | | | | | | | | | | | | | | | For virtual access points (when multiple SSIDs are used for one physical AP), there exist one physical network interface and multiple virtual interfaces, which are fully under control of hostapd. When networking is setup, the script `/lib/netifd/wireless/mac80211.sh` is called, which tries to bring the interface up by a call to `ip link set dev <iface> up`. This call might fail for virtual APs, because the virtual interface might not have been created by hostapd yet. There are some artifical delays in the script most probably to handle this, but when DFS channel availability check on 5GHz band is issued, hostapd can delay creating virtual interfaces by a minute. In order to fix this (or work around it), do not try to bring the interface up (this is responsibility of hostapd anyway) and do not try to set txpower on the virtual interface. Fixes FS#2698. Signed-off-by: Oldřich Jedlička <oldium.pro@gmail.com>
* mac80211: enhance wifi reloadJohn Crispin2020-02-251-1/+8
| | | | | | If the reconf call fails force a full restart of the radio. Signed-off-by: John Crispin <john@phrozen.org>
* mac80211: expose chanbw support to debugfs for ath9k_htcTomislav Požega2020-02-131-1/+1
| | | | | | | This will ensure the htc suffixed driver also gets created chanbw debugfs entry. Signed-off-by: Tomislav Požega <pozega.tomislav@gmail.com>
* mac80211: add support for wds_bridge hostapd featureDaniel Golle2020-01-221-2/+6
| | | | | | | | | | | | | hostapd allows putting WDS (4addr mode) clients into a separate bridge other than the bridge regular (3addr mode) clients end up in. This is useful for example giving WDS clients access to several VLANs (trunking) while regular clients will end up inside a specific VLAN. Add 'wds_bridge' config parameter for wifi-iface which contains the name of the bridge. hostapd-mini already supports this feature, so all needed is to add the UCI wrapping in mac80211.sh. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mac80211: fix MAC address allocations if the local bit is set on the base addrFelix Fietkau2020-01-151-1/+1
| | | | | | | If it's set, don't subtract 1 from the interface index encoded into the first byte of the address Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mac80211: fix list_phy_interfaces for multiple wiphys on the same deviceFelix Fietkau2020-01-141-1/+10
| | | | | | | Network interfaces are looked up based on the device behind a phy, so the phy needs to be checked separately Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mac80211: fix txpower when using DFS channelsDavid Bauer2019-12-161-2/+7
| | | | | | | | | | | With this patch, txpower for the PHY is applied when configuring the PHY instead of the VIF. Otherwise, the configured txpower is not applied for the first initialized VIF when using DFS channels, as it is currently applied too early when the CAC hasn't finished. Reported-by: Martin Weinelt <martin@darmstadt.freifunk.net Signed-off-by: David Bauer <mail@david-bauer.net> Tested-by: Martin Weinelt <martin@darmstadt.freifunk.net>
* mac80211: don't call md5sum on non-existing fileDaniel Golle2019-12-081-1/+1
| | | | | | | | | | | | If no AP is configured, hostapd-${phy}.conf is not being created, hence md5sum fails and causes log pollution: netifd: radio1 (3183): md5sum: can't open '/var/run/hostapd-phy1.conf': No such file or directoy Hence make sure the file exists when calling md5sum. Fixes: a5bc9787d4 ("mac80211: add support for dynamically reconfiguring wifi") Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* hostapd: re-introduce process trackingDaniel Golle2019-12-081-0/+3
| | | | | | | | | | | Before commit 60fb4c92b6 ("hostapd: add ubus reload") netifd was tracking hostapd/wpa_supplicant and restarting wifi in case of a process crash. Restore this behaviour by tracking the PIDs of hostapd and wpa_supplicant. Also make sure hostapd and/or wpa_supplicant have been started before emmitting ubus calls to them using ubus wait_for. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mac80211: track unmanaged interfacesDaniel Golle2019-12-081-3/+42
| | | | | | | | | In addition to wpa_supplicant and hostapd managed interfaces, also track unmanaged interfaces. This is used to make sure that running 'wifi' always returns into a clean state regardless of what the user did before. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mac80211: unify setup of iw htmode for mesh and adhocSantiago Piccinini2019-11-291-49/+16
| | | | | | | | | This also fixes mac80211_prepare_vif iw set channel in monitor or mesh mode. Signed-off-by: Santiago Piccinini <spiccinini@altermundi.net> Signed-off-by: Daniel Golle <daniel@makrotopia.org> [daniel@makrotopia.org: fixed commit message]
* mac80211: add default value for noscanSebastian Kemper2019-11-231-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | Commit b3d8b3a introduced a new test: [ -n "$noscan" -a "$noscan" -gt 0 ] && hostapd_noscan=1 But if length of "$noscan" is zero (noscan is not set) this doesn't stop the shell to evaluate the rest of the test. root@hank2:~# [ -n "$noscan" -a "$noscan" -gt 0 ] ash: out of range root@hank2:~# So when radios are brought up this shows in the log: Sat Nov 23 10:51:38 2019 daemon.info procd: - init complete - Sat Nov 23 10:52:24 2019 daemon.notice netifd: radio1 (1243): sh: out of range Sat Nov 23 10:52:25 2019 user.notice firewall: Reloading firewall due to ifup of wan (eth0.2) Sat Nov 23 10:52:25 2019 daemon.notice netifd: radio0 (1242): sh: out of range Sat Nov 23 10:52:26 2019 authpriv.info dropbear[1536]: Not backgrounding This commit sets noscan to 0 if unset and removes the gratuitous length check, preventing the warning. Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
* mac80211: detect existing interface before addingDaniel Golle2019-11-161-4/+35
| | | | | | | | | | | | | | | Keep existing wdev when creating new nl80211 interfaces if phy and type match, delete it otherwise. To make this work, also remove left-over debugging function which prevented the return-value of the 'iw' command to be taken into account in mac80211_iw_interface_add(). As 4addr-mode (WDS) was setup during interface creation for station interfaces, also set it after interface creation to make sure an existing sta interface ends up with the right mode. Fixes: a5bc9787d4 ("mac80211: add support for dynamically reconfiguring wifi") Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* Revert "mac80211: restore mac80211_interface_cleanup()"Daniel Golle2019-11-161-16/+0
| | | | | | This reverts commit 000b7687bc50be5b0f1161f4bf8ceb85c495c395. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mac80211: restore mac80211_interface_cleanup()Daniel Golle2019-11-141-0/+16
| | | | | | | | | | Changes introduced for dynamic wifi reconfiguration left behind unmanaged interface types. Restore parts of the old function to also clean (unencrypted, non-DFS) mesh and ad-hoc interfaces. Fixes: a5bc9787d4 ("mac80211: add support for dynamically reconfiguring wifi") Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mac80211: add support for dynamically reconfiguring wifiJohn Crispin2019-11-121-36/+134
| | | | | | | | | Change scripts to use ubus interface of hostapd/wpa_supplicant to add/remove/modify wireless interfaces instead of (re-)starting the services. Signed-off-by: John Crispin <john@phrozen.org> Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mac80211: add support for multiple wiphys behind a single deviceFelix Fietkau2019-11-053-19/+47
| | | | | | | | | | The device path will be the same for the first phy. For all subsequent phys, the path gets an extra +1, +2, ... Move the code for converting path to phy and vice versa to a separate library script shared by config detection code and the netifd wireless handler script Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mac80211: add new acs_exclude_dfs optionFlorian Eckert2019-10-151-1/+5
| | | | | | | | | | | | The channel can be selected automatically at run time by setting channel=acs_survey or channel=0, both of which will enable the ACS survey based algorithm in hostapd. If the option acs_exclude_dfs is set in the hostpad config DFS channels from ACS are excluded on channel selection. This commit will add the possibilty to exclude the dfs channel on ACS survey. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* mac80211: add config tweak for tx bursting when using VHTFelix Fietkau2019-07-171-1/+5
| | | | | | | | | By default, set BE tx queue TXOP limit to 1.0 in the hostapd config Many vendor drivers are doing similar things to boost throughput. On MT7612 under ideal conditions, it improves tx throughput from 470 Mbit/s to about 570 Mbit/s. Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mac80211: set noscan=1 if sta/adhoc/mesh interfaces are presentFelix Fietkau2019-04-031-1/+10
| | | | | | Fixes channel selection issues and suppresses an unnecessary extra scan Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mac80211: netifd: Use a mask when using `iw set antenna`Alexander Couzens2019-03-161-2/+5
| | | | | | | | The keyword "all" is only supported by `iw set antenna` if it's used as the only argument. Convert "all" into a mask before calling `iw set antenna`. Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
* mac80211: add iw command wrapper with error loggingRafał Miłecki2018-09-101-0/+4
| | | | | | | | | | | | | | | | | | | | | Currently it's close to impossible to tell what part of mac80211 setup went wrong. Errors logged into system log look like this: radio0 (6155): command failed: No error information (-524) radio0 (6155): command failed: Not supported (-95) radio0 (6155): command failed: I/O error (-5) radio0 (6155): command failed: Too many open files in system (-23) With this commit change it's getting clear: command failed: No error information (-524) Failed command: iw dev wlan0 del command failed: Not supported (-95) Failed command: iw phy phy0 set antenna_gain 0 command failed: I/O error (-5) Failed command: iw phy phy0 set distance 0 command failed: Too many open files in system (-23) Failed command: iw phy phy0 interface add wlan0 type __ap Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* mac80211: refactor non-{sae,dfs} mesh initializationDaniel Golle2018-05-151-46/+47
| | | | | | | | | | | | Refactor mesh initialization into a separate function, do some cleaning on the way to make the code more readable. Changes: * Move iw mesh setup to new mac80211_setup_mesh() * fallback on 'ssid' parameter in case 'mesh_id' isn't set * move setting of freq variable to shared code as it is needed for both, the wpa_supplicant and the iw based setup. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mac80211: Re-enable encrypted 11s meshpointSven Eckelmann2018-05-141-1/+1
| | | | | | | | | | The commit 574e4377fad5 ("mac80211: properly setup mesh interface") uses the variable $wpa to decide whether encrypted meshpoint is requested by the user or not. But the variable $wpa will only be set correctly after the function wireless_vif_parse_encryption is called. Fixes: 574e4377fad5 ("mac80211: properly setup mesh interface") Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
* mac80211: properly setup mesh interfaceDaniel Golle2018-05-141-3/+14
| | | | | | | Setup wpa_supplicant for encrypted mesh or when using DFS channels and adjust interface setup to pass fixed frequency for mesh mode. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mac80211: pass down noscan to wpa_supplicantDaniel Golle2018-04-201-1/+1
| | | | Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mac80211: join 5GHz checksLeon M. George2018-04-191-6/+3
| | | | | | | | | | Before this commit, devices supporting both 2.4GHz and 5GHz would be configured for 2.4GHz by default - unless they have VHT capabilities. With this commit, channel 36 is only set when the frequency is supported. VHT isn't checked unless that is the case. Signed-off-by: Leon M. George <leon@georgemail.eu>
* Revert "mac80211: pass hostapd control socket to mesh-mode supplicant"Daniel Golle2018-04-181-1/+1
| | | | | | | | This reverts commit 1356a66f94f31e636fafec514a1c658356ef51b3. The change breaks wpa_supplicant.conf generation, more work is needed to fix mesh+AP. Signed-off-by: Daniel Golle <daniel@makrotopia.org>