aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
Commit message (Collapse)AuthorAgeFilesLines
* 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-051-5/+6
| | | | | | | | | | 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>
* 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>
* mac80211: pass hostapd control socket to mesh-mode supplicantDaniel Golle2018-04-131-1/+1
| | | | | | | | | | | Unlike when operating in Ad-Hoc mode, we apparently need to pass the hostapd control socket interface to wpa_supplicant when using 802.11s mesh mode. There also seems to still be something wrong with the logic setting channel and (v)htmode parameters... Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mac80211: remove support code for authsaeFelix Fietkau2018-01-171-9/+3
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* hostapd: rework frequency/ht/vht selection for ibss/meshFelix Fietkau2017-11-151-1/+3
| | | | | | | | | | - Remove obsolete patch chunks regarding fixed_freq - Instead of patching in custom HT40+/- parameters, use the standard config syntax as much as possible. - Use fixed_freq for mesh - Fix issues with disabling obss scan when using fixed_freq on mesh Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mac80211: don't pass the hostapd ctrl iface in adhocAntonio Quartulli2017-11-151-2/+8
| | | | | | | Passing the ctrl iface to wpa_supplicant will automatically cause wpa_supplicant to send "STOP_AP" messages to the hostapd. This breaks the AP interfaces. Signed-off-by: Antonio Quartulli <ordex@autistici.org>
* mac80211: gracefully handle preexisting VIFJo-Philipp Wich2017-05-141-0/+6
| | | | | | | | | | | | | | | | | | | | Gracefully handle cases where the to-be-created wireless interface already exists on the system which might commonly happen with non-multi-SSID capable wireless drivers. This fixes commit 8301e613655c2d95fa5430a1a57d92d966fdc70b which caused previously ignored "Too many open files in system (-23)" errors to fail the wireless setup procedure. With the updated approach we'll still try recreating the vif after one second if the first attempt to do so failed with ENFILE but we will now consider the operation successfull if a second attempt still yields ENFILE with the requested ifname already existing on the system. Fixes FS#664, FS#704. Suggested-by: Vittorio Gambaletta <openwrt@vittgam.net> Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* mac80211, hostapd: always explicitly set beacon intervalMatthias Schiffer2017-05-131-4/+6
| | | | | | | | | | | | | | | | One of the latest mac80211 updates added sanity checks, requiring the beacon intervals of all VIFs of the same radio to match. This often broke AP+11s setups, as these modes use different default intervals, at least in some configurations (observed on ath9k). Instead of relying on driver or hostapd defaults, change the scripts to always explicitly set the beacon interval, defaulting to 100. This also applies the beacon interval to 11s interfaces, which had been forgotten before. VIF-specific beacon_int setting is removed from hostapd.sh. Fixes FS#619. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
* mac80211: Fix race condition leading to wifi interfaces not coming up at ↵Vittorio Gambaletta2017-03-221-5/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | boot sometimes. In the drv_mac80211_setup function, mac80211_interface_cleanup is called to ask the kernel to delete all existing interfaces for the phy that is being configured via netlink. Later in the first function, mac80211_prepare_vif is called to set up the new interfaces as required. But sometimes, when mac80211_prepare_vif (and so the relevant `iw phy x interface add y` command) runs, the kernel might still be cleaning up the old interface with the same ifname. It usually takes very few time to do that; possibly a few milliseconds of sleep in the script after detecting this error condition could be enough, but the busybox sh does not support sub-second sleep intervals. When this happens, iw obviously fails to create the new interface; and the following message is printed in the system log, followed by subsequent failure messages from hostapd in case this would have been an AP interface. Tue Mar 14 04:21:57 2017 daemon.notice netifd: radio1 (2767): command failed: Too many open files in system (-23) This was a long-standing issue existing since at least OpenWrt Backfire, and today I finally managed to debug and (hopefully) solve it. It was happening very few times on most devices; but it was happening a lot more frequently on fast platforms with multiple radios, such as the powerpc-based dual-ath9k-radio tl-wdr4900-v1. Signed-off-by: Vittorio Gambaletta <openwrt@vittgam.net>
* mac80211: start hostapd with logging wpa_printf messages to syslogRafał Miłecki2017-01-311-1/+1
| | | | | | | Some debugging/error messages are printed using wpa_printf and this change allows finally reading them out of the syslog. Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* mac80211: Allow HT/VHT rates when running unencrypted mesh.Alexis Green2017-01-021-1/+36
| | | | Signed-off-by: Alexis Green <agreen@cococorp.com>
* mac80211: fix calculation of VHT capability valuesScott Shambarger2016-06-101-7/+6
| | | | | | | | | | - Fix calculation of `$vht_cap` bit field - Replace wrong reference to `$tx_stbc` variable with proper `$tx_stbc_2by1` one - Emit proper `RX-STBC-{1,12,123,1234}` tokens for the VHT capability list See https://dev.openwrt.org/ticket/22535 for reference. Signed-off-by: Scott Shambarger <devel@shambarger.net>
* mac80211: make the path phy lookup more robust regarding config upgrades, ↵Felix Fietkau2016-01-211-5/+4
| | | | | | | | allow partial path matching Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 48425
* mac80211: fix passing of VHT80 in IBSS modeJo-Philipp Wich2015-12-091-1/+1
| | | | | | | | | The "iw" utility expects the VHT80 to be specified as uppercase "80MHZ", change the script to reflect that. Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> SVN-Revision: 47814
* mac80211: fix disabling HT in IBSS mode (#21340)Jo-Philipp Wich2015-12-091-0/+3
| | | | | | Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> SVN-Revision: 47813
* mac80211: Allow to select VHT80 in IBSS modeFelix Fietkau2015-12-051-1/+4
| | | | | | Signed-off-by: Sven Eckelmann <sven@open-mesh.com> SVN-Revision: 47781
* mac80211: restricted automatic channel selectionFelix Fietkau2015-11-081-0/+3
| | | | | | | | | | | | | | | Add a new config option "channels" for mac80211 wifi devices. It's only valid if automatic channel selection is used and restricts the channel selection to one of the given channels. config wifi-device list channels 1 list channels 6 list channels 11 Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> SVN-Revision: 47427
* mac80211: set mcast-rate for mesh point interfacesFelix Fietkau2015-11-071-6/+8
| | | | | | | | | | | | | | | In order to set the multicast rate for mesh point interfaces the "mesh join" was made explicit and moved to mac80211_setup_vif(), similar to how it is done for IBSS interfaces. Previously, the mesh join was made implicit in case authentication (i.e. $key) was not used when creating the interface in mac80211_prepare_vif(), while using authentication would create the interface first, then join later in mac80211_setup_vif() by starting authsae. Signed-off-by: Nils Schneider <nils@nilsschneider.net> SVN-Revision: 47408
* package: replace ifconfig-usage with ipSteven Barth2015-09-081-3/+3
| | | | | | Signed-off-by: Steven Barth <steven@midlink.org> SVN-Revision: 46832
* hostapd: move ht_coex variable to mac80211.sh, guarded by 802.11n supportFelix Fietkau2015-06-061-2/+5
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 45917
* mac80211: make netifd script create AP interface directlyFelix Fietkau2015-05-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Before starting hostapd we create interface for it. The problem is we try to create STA interface just to let hostapd change it to AP later. It may fail if device doesn't support STA interfaces or if we already hit a limit. Consider following phy (it's from BCM43602 and brcmfmac): $ iw phy phy0 info | tail valid interface combinations: * #{ IBSS, managed } <= 1, #{ AP } <= 4, #{ P2P-client, P2P-GO } <= 1, #{ P2P-device } <= 1, total <= 3, #channels <= 1 Trying to setup 2 interfaces: STA + AP results in: radio0 (1101): command failed: Operation not supported (-95) radio0 (1101): command failed: Operation not supported (-95) radio0 (1101): command failed: Operation not supported (-95) radio0 (1101): command failed: Operation not supported (-95) radio0 (1101): Configuration file: /var/run/hostapd-phy0.conf radio0 (1101): Could not read interface wlan0-1 flags: No such device Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 45856
* mac80211: apply mesh parameters after starting authsae/wpa_supplicant (#16697)Felix Fietkau2015-05-091-5/+5
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 45651
* mac80211: fallback to wpa_supplicant to setup encrypted meshFelix Fietkau2015-04-201-4/+3
| | | | | | | | | | instead of failing when authsae is not installed, also try using wpa_supplicant as the newly added -mesh variants support mesh mode and SAE encryption. Signed-off-by: Daniel Golle <daniel@makrotopia.org> SVN-Revision: 45520
* netifd: fix start_disabled 'sh: bad number' in mac80211 setup (bug #19345)Felix Fietkau2015-04-111-0/+1
| | | | | | | | | | | | | | | | | | | Two errors "netifd: radio0: sh: bad number" have recently surfaced in system log in trunk when wifi interfaces come up. I tracked the errors to checking numerical values of some config options without ensuring that the option has any value. The errors I see have apparently been introduced by r45051 (ieee80211r in hostapd) and r45326 (start_disabled in mac80211). My patches fix two instances of "bad number", but there may be a third one, as the original report in bug 19345 pre-dates r45326 and already has two "bad number" errors for radio0. https://dev.openwrt.org/ticket/19345 Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi> SVN-Revision: 45379
* mac80211: add start_disabled optionJohn Crispin2015-04-091-2/+3
| | | | | | Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 45326
* mac80211: Revert adding SM Power Save capability to hostapd configurationJohn Crispin2015-02-021-8/+0
| | | | | | | | | | | | | | | Part of rev 44173 added setting the SM Power Save capability in the hostapd.conf file if the driver indicated that it was supported. It appears this was incorrect, because the field in the actual HT Capabilities field in the AP configuration is really a state indication. Just copying the state from the capability resulted in the AP indicating that it had SMPS enabled all the time if it supported SMPS. This effectively just disables all clients from sending packets to the AP with more than one spatial stream, for no good reason. So remove this part of the change. Signed-off-by: Robert Hancock <hancockrwd@gmail.com> SVN-Revision: 44239
* mac80211: Add some missing 802.11n capabilities to hostapd configurationJohn Crispin2015-01-281-0/+11
| | | | | | | | | Add some missing 802.11n capabilities to the hostapd ht_capab string when supported by the hardware: Spatial Multiplexing Power-Save and 7935-byte AMSDUs. Signed-off-by: Robert Hancock <hancockrwd@gmail.com> SVN-Revision: 44173
* mac80211/hostapd: fix HT mode setup for RSN ad-hoc networksFelix Fietkau2015-01-241-29/+33
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 44100
* mac80211: fix ad-hoc basic/multicast rate regression from r43782Felix Fietkau2015-01-051-2/+2
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 43853
* mac80211: fix HT mode selection for ad-hocFelix Fietkau2014-12-221-3/+32
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 43769
* mac80211: try to get interface addresses from wiphy sysfs 'addresses' if no ↵Felix Fietkau2014-11-191-1/+19
| | | | | | | | mask is set Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 43326