Commit graph

199 commits

Author SHA1 Message Date
Andre Heider
ccaabb4ea4 fix -Wformat-truncation warnings
Increase buffer sizes to get rid of e.g.:
iwinfo_nl80211.c:797:41: note: 'snprintf' output between 24 and 279 bytes into a destination of size 64

Signed-off-by: Andre Heider <a.heider@gmail.com>
2022-12-15 20:07:49 +01:00
Andre Heider
50380db79b enable useful compiler warnings via -Wall
There's no reason not to.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2022-12-15 20:07:27 +01:00
Joerg Werner
00aab871c5 Correctly identify key management algorithms starting with "FT-"
Correctly categorize FT-EAP-SHA384 as WPA3

Signed-off-by: Joerg Werner <schreibubi@gmail.com>
2022-11-01 17:11:32 +01:00
Felix Fietkau
0496c722f1 nl80211: fix issues with renamed wiphy and multiple phy per device
Remove the assumption that phy names follow the format phy%d and instead look
up the phy index from sysfs properly

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-10-14 10:59:08 +02:00
Felix Fietkau
4a43b0d40b nl80211: look up the phy name instead of assuming name == phy<idx>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-09-22 14:42:45 +02:00
Felix Fietkau
b7f9f06e15 nl80211: fix phy/netdev index lookup
Don't assume a fixed naming pattern. Check all options in this order:

- netdev
- phy name
- wifi device in uci

Use the first one that matches

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-09-22 14:42:45 +02:00
Felix Fietkau
1f695d9c7f nl80211: allow phy names that don't start with 'phy'
This is needed for dealing with wiphy renaming

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-09-22 13:28:59 +02:00
Felix Fietkau
b3e08c8b5a ops: make support for wireless extensions optional
It is usually not needed anymore and only wastes space

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-09-22 13:20:17 +02:00
Daniel Golle
46f04f3808 devices: add MediaTek MT7986 WiSoC
Add detection of the MediaTek MT7986 WiSoC using the compatible string
from device tree.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-08-31 14:08:39 +01:00
Joerg Werner
0dad3e6660 Add support for CCMP-256 and GCMP-256 ciphers
Signed-off-by: Joerg Werner <schreibubi@gmail.com>
2022-08-20 17:59:11 +02:00
Tjeu Kayim
705d3b5cc3 iwinfo: Add missing auth_suites mappings for WPA3
`iwinfo.h` says:
    #define IWINFO_KMGMT_COUNT   5
    ...
    extern const char *IWINFO_KMGMT_NAMES[IWINFO_KMGMT_COUNT];

Though only only 3 items are defined. The other two were forgotten
when adding WPA3 support. The `auth_suites` table exposed via Lua
never included the items "SAE" and "OWE" until this commit.

Fixes: f8ef450652 ("iwinfo: Add support for WPA3")
Signed-off-by: Tjeu Kayim <15987676+TjeuKayim@users.noreply.github.com>
2022-08-13 16:54:41 +02:00
David Bauer
dc6847eb5e iwinfo: nl80211: omit A-hwmode on non-5GHz hardware
Don't add the hwmode A for radios which do not support 5GHz operation.
Before, this hwmode was added to all non-VHT radios regardless of their
supported bands.

Fixes commit 562d015326 ("iwinfo: nl80211: fix hwmode parsing for multi-band NICs")

Signed-off-by: David Bauer <mail@david-bauer.net>
2022-04-27 00:51:14 +02:00
David Bauer
a479b9b08a devices: remove whitespace
Signed-off-by: David Bauer <mail@david-bauer.net>
2022-04-24 23:04:57 +02:00
David Bauer
562d015326 iwinfo: nl80211: fix hwmode parsing for multi-band NICs
In case a NIC supports multiple frequency bands, the supported
hw-modelist might not contain all valid hwmodes, as B/G/AD hwmodes are
only included based on the last parsed supported frequency.

In case a radio supports multiple bands, this might result in these
hwmodes not being flagged as supported.

Circumvent this by tracking all seen frequency bands using a bitmask
which later determined which HW modes are listed as supported.

Signed-off-by: David Bauer <mail@david-bauer.net>
2022-04-23 11:59:29 +02:00
Hauke Mehrtens
90bfbb9a3a devices: Add Cypress CYW43455
This adds the Cypress CYW43455. This device was found on the Raspberry Pi 4.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2022-03-01 20:54:37 +01:00
David Bauer
234075bf15 devices: fix AMD RZ608 format
Signed-off-by: David Bauer <mail@david-bauer.net>
2022-01-06 02:13:45 +01:00
David Bauer
0e2a318824 devices: add AMD RZ608 device-id
Signed-off-by: David Bauer <mail@david-bauer.net>
2022-01-02 02:33:25 +01:00
Jo-Philipp Wich
a0a0e02dd9 iwinfo: rename hardware.txt to devices.txt
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-07-11 15:56:35 +02:00
Felix Fietkau
c9b1672f5a nl80211: fix path compatibility issue
The previous shell script implementation accepted shorter path values
that omitted initial parts before the pcie bus node by only checking if
the configured path is included in the determined path
Add support for doing the same thing here

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-28 15:39:22 +02:00
Felix Fietkau
c0414642fe iwinfo: nl80211: fix typo
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-09 22:12:08 +02:00
Felix Fietkau
268bb26d2e iwinfo: nl80211: support looking up phy by path=.. and macaddr=...
Can be used from within mac80211.sh without the need to reference the uci
config directly

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-09 14:21:55 +02:00
Felix Fietkau
dd6d6d2dec iwinfo: nl80211: use new path lookup function for nl80211_phy_idx_from_uci_path
Fixes issues with multiple phy instances of one device

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-09 14:05:05 +02:00
Felix Fietkau
aa0e3c4bbe iwinfo: nl80211: add support for printing the device path for a phy
Will be used to replace the shell code from mac80211.sh

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-09 13:57:26 +02:00
David Bauer
c45f0b584b iwinfo: add 802.11ax HE rate information
This adds 802.11ax HE specific rate information to iwinfo.

Add fields for HE status of a STA as well as DCM and guard interval
fields specific to HE operation.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-05-02 00:20:54 +02:00
David Bauer
cd23727f72 iwinfo: cli: fix hwmode formatting
The placeholder for the 802.11ax hwmode was missing.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-04-20 18:04:31 +02:00
David Bauer
70d2136069 iwinfo: nl80211: perform split wiphy dump
Perform a split wiphy dump when acquiring the hw modelist of a mac80211
device. Otherwise HE capabilities are missing from the message.

This is necessary since upstream commit f8d504caa ("nl80211: reduce
non-split wiphy dump size")  (Kernel 5.9).

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-04-20 18:04:06 +02:00
David Bauer
50b64a63e3 iwinfo: add basic IEEE 802.11ax support
This adds basic support for IEEE 802.11ax when requesting HW or HT
Modelist for a PHY from iwinfo. This way, applications using iwinfo can
detect HE phys.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-04-12 23:45:42 +02:00
Stijn Segers
4a32b33e96 iwinfo: add PCI ID for MediaTek MT7613BE
This adds the PCI ID for the MT7613BE series, found in e.g.
the TP-Link EAP235-Wall v1.

Signed-off-by: Stijn Segers <foss@volatilesystems.org>
2021-01-31 14:05:58 +00:00
Daniel Golle
5a2dd180f7 iwinfo: add hardware description for MediaTek MT7622
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-01-28 22:37:45 +00:00
Jo-Philipp Wich
23d2722b12 build: add ability to specify shared object version
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-01-06 23:47:37 +00:00
Ansuel Smith
51c1336e7a iwinfo: set center chan unsupported for not-nl80211 driver
Declare get_center_chan1 and get_center_chan2 not supported for not
nl80211 driver.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-01-06 17:38:07 +00:00
Ansuel Smith
0702f32294 iwinfo: improve center channel handling
- Improve iwinfo center channel struct position
- Prevent read beyond buffer on malformed data

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-01-06 17:38:07 +00:00
Daniel Golle
618c1e86f0 iwinfo: add hardware description for QCA MIPS WiSoCs
Add description strings and detection logic for all 6
types of WiFi NICs integrated in QCA MIPS WiSoCs.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-01-06 17:19:19 +00:00
Daniel Golle
8bfd8d8800 iwinfo: add support for GCMP cipher
Extend support for WPA ciphers by GCMP which is required for 802.11ad.
Breaks ABI as ciphers now needs to be a field of 16 bits instead of 8.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-01-05 22:19:43 +00:00
Daniel Golle
74d13fb987 cli: account for additional digit for frequencies above 10GHz
When using 802.11ad, the frequency string will no longer fit in the
preallocated buffer of 10 bytes. In the best case this leads to the
'z' character being truncated in the CLI output:
  Mode: Client  Channel: 1 (58.320 GH)

Fix that by allocating a large enough buffer.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-01-05 22:19:43 +00:00
Ansuel Smith
4e22953eb1 iwinfo: export center_chan info for local wifi
Iwinfo already export the htmode but there is no way to know where the
channel expan in case a 40Mhz+ channel width is used. Export the center
channels used by the driver to better know the channel utilizzation of
the wifi.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-01-05 22:19:43 +00:00
Ansuel Smith
ea28dfb5f9 iwinfo: export ht and vht operation in scan results
Export ht and vht operation data in scan results. These additional data
can be usefull to check wifi channel utilizzation by neraby stations.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-01-05 22:19:42 +00:00
Daniel Golle
a17f5613c3 iwinfo: detect QCA IPQ4019 WiSoC from FDT
As it's the most reliable and straight forward way on modern platforms,
detect the hardware ID by checking the 'compatible'-string of non-PCI
(ie. built-in) devices.
As this is only relevant for WiSoCs, there won't be that many records,
so it's not worth making any larger structural changes. Hence just
match the compatible string and translate it into fake PCI IDs.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-01-05 22:19:42 +00:00
David Bauer
85bdda510e hardware: add PCI ID for MediaTek MT7915
This adds the PCI-ID for the MT7915 series.

This PCI-ID was found on the Ubiquiti UniFi6 Lite Access Point.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-12-17 19:38:49 +01:00
Johann Neuhauser
2faa20e5e9 iwinfo: add device id for Mikrotik R11e-5HacD miniPCIe card
Lets add device id for Mikrotik R11e-5HacD miniPCIe card.

Signed-off-by: Johann Neuhauser <johann@it-neuhauser.de>
[added missing commit description]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-06-03 14:54:01 +02:00
Pali Rohár
d577a9d38a iwinfo: add device id for Marvell 88W8997 SDIO wifi card
Lets add device id for Marvell 88W8997 SDIO wifi card.

Signed-off-by: Pali Rohár <pali@kernel.org>
[added missing commit description]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-06-03 14:53:49 +02:00
Pali Rohár
f6b7d16d2f iwinfo: add device id for Atheros AR9287 PCIe wifi card
This card is identified by lspci as:

  01:00.0 Network controller [0280]: Qualcomm Atheros AR9287 Wireless Network Adapter (PCI-Express) [168c:002e] (rev 01)
          Subsystem: Qualcomm Atheros Device [168c:30a4]

Signed-off-by: Pali Rohár <pali@kernel.org>
2020-06-03 14:52:00 +02:00
David Bauer
9f5a7c4f9b iwinfo: add missing HT modename for HT-None
Commit bf2c1069a7 ("nl80211: add htmode to iwinfo_ops") increased
IWINFO_HTMODE_COUNT but left the size of the IWINFO_HTMODE_NAMES array
untouched, leading to a segmentation fault when trying to get the HT
modelist from Lua.

Add a dummy NOHT modestring to make the array size fit the size
declaration.

Fixes: bf2c1069a7 ("nl80211: add htmode to iwinfo_ops")

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-03-22 01:13:45 +01:00
David Bauer
06a03c9e3b Revert "iwinfo: add BSS load element to scan result"
This reverts commit a6914dc0dc.

iwinfo currently misses ABI version tracking in OpenWrt, potentially
breaking other packages unintentionally.

Revert this commit for now  until this is implemented.
Otherwise, we are not able to safely bump iwinfo at the moment.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-03-22 01:06:36 +01:00
Robert Marko
9a4bae898f iwinfo: add device id for Qualcomm Atheros QCA9990
Lets add the PCI ID for QCA9990

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2020-03-01 14:50:40 +01:00
David Bauer
eba5a204f7 iwinfo: add device id for BCM43602
Signed-off-by: David Bauer <mail@david-bauer.net>
2020-02-04 14:49:20 +01:00
David Bauer
a6914dc0dc iwinfo: add BSS load element to scan result
This adds support for the BSS load information element. With this patch,
the BSS load information is visible when using the CLI as well as when
accessing scan results using the LUA binding.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-02-04 14:44:14 +01:00
Pawel Dembicki
bb21698295 iwinfo: add device id for Atheros AR9287
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2020-01-29 08:14:10 +02:00
Pawel Dembicki
7483398929 iwinfo: add device id for MediaTek MT7615E
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2020-01-29 08:14:09 +02:00
Daniel Danzberger
bf2c1069a7 nl80211: add htmode to iwinfo_ops
This callback shows the currently active HTMODE of the device.

Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-01-05 17:17:40 +01:00