Commit Graph

4519 Commits

Author SHA1 Message Date
Benjamin Berg
168de5cafe wifi-scripts: add missing entries for mesh_nolearn
The plumbing is there in the ucode files to set the parameter using
nl80211. However, the option is never forwarded because it was missing
in mac80211.sh. Add it there and in the schema file.

Signed-off-by: Benjamin Berg <benjamin@sipsolutions.net>
Link: https://github.com/openwrt/openwrt/pull/19030
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-07 12:54:50 +02:00
Robert Marko
15c2ca0a83 netifd: update to Git HEAD (2025-05-23)
61ae5732adea iprule: amend ipproto netlink nla_put_u32 to nla_put_u8
d610d68c71b8 device: add support for configuring vrf
a1b6386a20a6 device: fix bonding primary port selection
e8bbf246ce2e system-linux: fix sysfs name for all_ports_active flag
723c699e84f4 Restore disable_ipv6 sysctl after removing a device from bridge or bond
d476e18e8d43 iprule: resolve ipproto by name
7901e66c5f27 netifd: iprule add sport and dport

Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-07 11:58:24 +02:00
Mantas Pucka
bb17f5756a wifi-scripts: fix calculation for eht_oper_centr_freq_seg0_idx
Inverted condition caused wrong value for eht_oper_centr_freq_seg0_idx
get selected in ETH320 mode, causing AP fail to start.

Signed-off-by: Mantas Pucka <mantas@8devices.com>
Link: https://github.com/openwrt/openwrt/pull/18998
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-07 11:44:45 +02:00
John Audia
c374deca7e wireguard-tools: update to v1.0.20250521
Update to latest version.

Release notes: https://lists.zx2c4.com/pipermail/wireguard/2025-May/008789.html

% wg -v
wireguard-tools v1.0.20250521 - https://git.zx2c4.com/wireguard-tools/

Build system: x86/64
Build-tested: x86/64
Run-tested: x86/64

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19023
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-06-04 20:14:19 +02:00
Shengyu Qu
4bd7daced1 odhcp6c: Conditionally request S46 OROs
Request Softwire46 (S46) [RFC 7598] options when the map and/or ds-lite
packages are installed. This is required as the behaviour of odhcp6c has
changed to not include these OROs by default.

See openwrt/odhcp6c#89

Signed-off-by: Richard Patterson <richard@helix.net.nz>
Signed-off-by: Shengyu Qu <wiagn233@outlook.com>
2025-06-03 17:30:57 +01:00
Shengyu Qu
9c405cb725 odhcp6c: update to Git HEAD (2025-02-06)
ffbb2d559af4 odhcp6c: Do not request S46 OROs by default
8aa8b706727a Use GNUInstallDirs macros

Signed-off-by: Shengyu Qu <wiagn233@outlook.com>
2025-06-03 17:30:57 +01:00
Felix Fietkau
ed26185bf6 hostapd: tweak ACS retry behavior
When running ACS on multi-radio devices, ACS on one band can block another.
Increase the number of retries and prevent bouncing interfaces between AP
and STA mode during attempts.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-31 16:22:48 +02:00
Felix Fietkau
e29669dae1 unetmsg: set TCP timeout for outgoing connections
Avoid running into long timeouts

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-31 16:22:39 +02:00
Antti Seppälä
d63663601d qmi: increase SIM power-cycle timeouts
Some modems and SIM cards take a bit longer to initialize after UIM has been
powered off. Waiting too little time can cause the qmi protocol to end up
in a loop repeatedly power-cycling the SIM card.

Avoid that by
 a) increasing the time we unconditionally sleep after --uim-power-on
 b) increasing the time we allow uqmi to wait for response for --uim-get-sim-state

Signed-off-by: Antti Seppälä <a.seppala@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18772
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-30 00:16:48 +02:00
Florian Eckert
ae198c6ba0 dnsmasq: fix start if dhcp-range is not correct
If the uci 'dhcp' configuration for the dhcp leases is incorrect then
the call to 'ipclac' fails. However, the problem is that the dnsmasq
configuration option 'dhcp-range' is still written for this uci section
even though the information generated by ipcalc is incorrect or not set.

Due to the incorrectly generated configuration for dnsmasq, the service
cannot start.

To prevent an incorrect configuration from being written to the configuration,
a check is now made beforehand to ensure that the required variables are
present and valid. If the configuration is incorrect, a message is emitted
to the log that this configuration section is incorrect and this uci
configuration section is omitted.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
Link: https://github.com/openwrt/openwrt/pull/18641
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-29 23:54:18 +02:00
Sean Khan
b90feed6ba wifi-scripts: add missing 'network' property to wifi-iface schema
The ucode-based wifi interface validation is based on `hostapd.conf`
specific options, which means it's missing the OpenWrt-specific
'network' property.

This causes schema validation warnings like:
```
daemon.notice netifd: radio1 (1340): wifi-scripts: network is not present in the schema
```

The description is taken from the OpenWrt wiki:
https://openwrt.org/docs/guide-user/network/wifi/basic#common_options1

Signed-off-by: Sean Khan <datapronix@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/18946
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-29 23:48:16 +02:00
Felix Fietkau
0937098512 umdns: update to Git HEAD (2025-05-29)
263a0cb87b50 udebug: use proper libudebug API
ca9b8765aea3 dns: rework packet API
ea40cfdf7eb0 cache: send multiple queries in a single packet
d62813727e53 cache: add explicit lookup for host addresses
0ce73d80dc0c dns: add cache/queue for outgoing queries
083be33749b1 cache: improve service refresh behavior
55d0c1bc1ac5 interface: ask for unicast responses by default
ce508467a533 service: add support for setting service specific hostname
632953a1582d interface: when interface properties change, reinitialise
695ac3708aa0 ubus: fix ubus announcements txt fields
cecbe1c0caae Make mdns responder case-insensitive.
2b28094d31ca dns: add support for reverse address mapping queries

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-29 13:32:16 +02:00
Felix Fietkau
3174182366 umdns: fix udebug with jail
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-29 13:32:06 +02:00
Agustin Lorenzo
93e944648b hostapd: revert "ACS: Validate 6 GHz AP criteria before ACS"
By OpenWrt's design, hostapd runs in a single global instance for all radios supported by the device, rather than one instance per radio like hostapd usually does.

Signed-off-by: Agustin Lorenzo <agustin.lorenzo@thinco.es>
Link: https://github.com/openwrt/openwrt/pull/18426
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-29 11:34:48 +02:00
Agustin Lorenzo
70505e0e51 hostapd: update to version 2025-05-23
Manually refreshed:

301-mesh-noscan.patch
601-ucode_support.patch
770-radius_server.patch

Automatically rebased all other patches.

Signed-off-by: Agustin Lorenzo <agustin.lorenzo@thinco.es>
Link: https://github.com/openwrt/openwrt/pull/18426
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-29 11:34:48 +02:00
Antti Seppälä
9f76070e2d umbim: add support for wwan device class
Some MBIM devices can exist on an MHI bus (over PCIe) instead of being presented as USB devices.

In such cases the interface name lookup needs to be done from /sys/class/wwan/ instead of /sys/class/usbmisc/

Add another readlink call in case the first lookup fails.

This allows the MBIM protocol to find the interface name and then work with both type of devices provided that /etc/config/network has the right device for MBIM interface (such as /dev/wwan0mbim0 in case of MHI)

Signed-off-by: Antti Seppälä <a.seppala@gmail.com>
2025-05-27 11:31:07 +02:00
Sean Khan
36b9a699a2 wifi-scripts: use consistent names for Qualcomm devices
The device manufacturer name for Qualcomm Atheros is listed
as "Qualcomm, Atheros" for PCI devices but "Qualcomm Atheros" under
"compatible". This gives inconsistent results in `iwinfo` and

```
Hardware: 0x168c:0x0046 0x168c:0xcafe [Qualcomm, Atheros QCA9984]
Hardware: embedded [Qualcomm Atheros IPQ8074]
```

Signed-off-by: Sean Khan <datapronix@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/18039
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-27 11:27:24 +02:00
Sean Khan
f26bdea981 wifi-scripts: ucode: iwinfo: fix 'unknown' typo
The 'unknown' string was misspelled as 'unknonw'.

Signed-off-by: Sean Khan <datapronix@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/18039
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-27 11:27:24 +02:00
Sean Khan
0088a5a179 wifi-scripts: iwinfo: show units for signal and noise
Add 'dBm' units to 'Signal' and 'Noise' to match what non-ucode iwinfo shows.

Before:
  Signal: -49  Noise: -103

After:
  Signal: -49 dBm  Noise: -103 dBm

Signed-off-by: Sean Khan <datapronix@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/18039
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-27 11:27:24 +02:00
Sean Khan
9bcc287414 wifi-scripts: iwinfo: don't show bitrate unit when unknown
When bitrate is unknown, the units shouldn't be displayed. This is
consistent with other "unknown" fields and non-ucode iwinfo.

Signed-off-by: Sean Khan <datapronix@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/18039
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-27 11:27:24 +02:00
Felix Fietkau
82cc7f56e3 unetmsg: fix host name in response messages
Avoid using loop iterator variable when generating the closure

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-20 18:38:39 +02:00
Felix Fietkau
12f4814c41 unetmsg: add support for sending requests/messages to specific hosts
Makes it possible to implement unetmsg APIs for host control

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-20 18:38:39 +02:00
Mieczyslaw Nalewaj
a238170e57 treewide: strip trailing whitespace
Strip trailing whitespace in all code:
find . -type f | grep "\.c$" | xargs sed -i 's/[ \t]\+$//'
find . -type f | grep "\.h$" | xargs sed -i 's/[ \t]\+$//'
find . -type f | grep "\.dts$" | xargs sed -i 's/[ \t]\+$//'
find . -type f | grep "\.dtsi$" | xargs sed -i 's/[ \t]\+$//'

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18626
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-20 00:47:37 +02:00
Felix Fietkau
f60bbfa23f unetmsg: list remotely published ids via ubus call
Before this change, only locally published ids were listed

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-16 13:01:41 +02:00
Felix Fietkau
a242cfb4e1 unetmsg: return the request data when issuing async requests
Makes it possible to track and cancel requests

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-16 13:01:41 +02:00
Piotr Kubik
08179b367b ethtool: update to 6.14
Version 6.14 - April 7, 2025
	* Feature: list PHYs (--show-phys)
	* Feature: target a specific PHY with some commands (--phy)
	* Feature: more attributes for C33 PSE (--show-pse, --set-pse)
	* Feature: source information for cable tests (--cable-test[-tdr])
	* Feature: JSON output for module info (-m)
	* Feature: misc RSS hash info improvements (-x)
	* Feature: tsinfo hwtstamp provider (--{get,set}-hwtimestamp-cfg)
	* Fix: fix wrong auto-negotiation state (no option)
	* Fix: more explicit RSS context action (-n)
	* Fix: print PHY address as decimal (no option)
	* Fix: fix return value on flow hashing error (-N)
	* Fix: fix JSON output for IRQ coalescing
	* Fix: fix MDI-X info output (no option)
	* Misc: code cleanup in module parsers
	* Misc: provide module_info JSON schema
	* Misc: add '-j' alias for --json
	* Misc: provide AppStream metainfo XML
	* Misc: update message descriptions for debugging output

Signed-off-by: Piotr Kubik <piotr.kubik@adtran.com>
Signed-off-by: Chad Monroe <chad@monroe.io>
Link: https://github.com/openwrt/openwrt/pull/18803
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-15 21:57:52 +02:00
Felix Fietkau
7f1b9a4209 unetd: cli: add hook calls for invite/join status changes
Allows different frontends to interact without parsing human readable
messages

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-14 11:23:09 +02:00
Felix Fietkau
6e60ce007b unetmsg: clean up remote data when replacing the incoming connection
Ensure that pub/sub state is in sync

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-12 12:47:20 +02:00
Felix Fietkau
9bdbe24176 unetmsg: ping on tx channel after new incoming connection
Ensure that stale connections are timed out faster

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-12 12:47:20 +02:00
Felix Fietkau
929702fdc5 unetmsg: reconnect on loss of tx connection
Avoids half-connected broken state

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-12 12:47:20 +02:00
Aleksander Jan Bajkowski
3d9236d451 iw: backport WiFi 7 (EHT) scan support
Backport patches to support scans of WiFi 7 APs.

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/18741
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-11 13:09:31 +02:00
Gustavo Bertoli
ba6aacd2b8 hostapd: Enable DPPv2 support for OpenSSL and mbedtls
Enable Device Provisioning Protocol (DPPv2) in hostapd
for the "full" build-variants.

DPPv2 currently does not compile with WolfSSL due to
missing PKCS7 and certificate support.

Link: https://github.com/openwrt/openwrt/pull/18485

Signed-off-by: Gustavo Bertoli <gubertoli@gmail.com>
2025-05-10 21:42:38 +02:00
Felix Fietkau
41728acc77 unetmsg: fix reconnecting outgoing socket
Due to a typo, the rx channel was deleted after disconnect instead of tx.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-09 10:12:03 +02:00
Aleksander Jan Bajkowski
b1215758e1 iw: fix WiFi 6 (HE) Scan on big endian platforms
On big endian platforms, scans show invalid info for WiFi 6 APs.
This commit backports patches to fix this issue.

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/18717
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-06 19:30:18 +02:00
Felix Fietkau
06f44f69b6 unetmsg: add subscriber update callback to notify about publish events
When services start publishing on a topic, this can be used to allow
subscribers to query them.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-05 13:57:08 +02:00
Felix Fietkau
6fcaf3d589 unetmsg: fix issuing requests without previously subscribing
Perform ACL check if not subscribed. Helps with one-shot requests.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-05 13:57:08 +02:00
Hauke Mehrtens
09b89c96ce ltq-adsl-app: Fix compilation with GCC 14
This fixes the following compile problem:
```
checking for asm/types.h... dsl_cpe_linux.c: In function 'DSL_CPE_ThreadInit':
dsl_cpe_linux.c:779:25: error: assignment to 'DSL_CPE_Thread_t' {aka 'int'} from 'pthread_t' {aka 'struct __pthread *'} makes integer from pointer without a cast [-Wint-conversion]
  779 |          pThrCntrl->tid = tid;
      |                         ^
dsl_cpe_linux.c: In function 'DSL_CPE_ThreadDelete':
dsl_cpe_linux.c:862:44: error: passing argument 1 of 'pthread_cancel' makes pointer from integer without a cast [-Wint-conversion]
  862 |             switch(pthread_cancel(pThrCntrl->tid))
      |                                   ~~~~~~~~~^~~~~
      |                                            |
      |                                            DSL_CPE_Thread_t {aka int}
In file included from dsl_cpe_linux.h:35:
/builder/shared-workdir/build/staging_dir/toolchain-mips_mips32_gcc-14.2.0_musl/include/pthread.h:98:20: note: expected 'pthread_t' {aka 'struct __pthread *'} but argument is of type 'DSL_CPE_Thread_t' {aka 'int'}
   98 | int pthread_cancel(pthread_t);
      |                    ^~~~~~~~~
dsl_cpe_linux.c: In function 'DSL_CPE_ThreadIdGet':
dsl_cpe_linux.c:1123:11: error: returning 'pthread_t' {aka 'struct __pthread *'} from a function with return type 'DSL_CPE_Thread_t' {aka 'int'} makes integer from pointer without a cast [-Wint-conversion]
 1123 |    return pthread_self();
      |           ^~~~~~~~~~~~~~
```

While at it, fix also some additional build warnings.

Link: https://github.com/openwrt/openwrt/pull/18688
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-03 22:04:13 +02:00
Robert Marko
9acd6e5e98 ead: fix compilation with GCC14
Trying to compile EAD with now default GCC14 will fail due to now erroring
out on implicit int type as well as implicit function declarations.

Due to this, the packaged configure script will fail on the simple compiler
test as the generated test uses main loop with an implicit int type.

So, instead of patching multiple test cases in the shipped configure script
for tinysrp lets run autoreconf on it so its regenerated.

We also need to pass -Wno-error=implicit-function-declaration as there are
multiple instances of tinysrp code relying on implicit function declarations.

Link: https://github.com/openwrt/openwrt/pull/18645
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-04-30 15:25:53 +02:00
Felix Fietkau
1b7c63beaf unetd: cli: allow skipping pretty printing of status data
Makes it more useful for services built around the CLI API

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-04-30 11:04:14 +02:00
David Bauer
9099721fb4 uqmi: update to latest HEAD
a933061 uqmi nas: fix incorrect parameter order

Signed-off-by: David Bauer <mail@david-bauer.net>
2025-04-20 17:04:19 +02:00
David Bauer
387b49d89a netifd dhcp: send DHCP client ID by default
Some ISPs require the client ID to be set in the DHCP and DHCPv6
requests. OpenWrt sets the client id for IPv6 but not for IPv4 by
default.

Align this behavior between DHCPv4 and DHCPv6.

ISPs that require this measure are Deutsche Glasfaser as well as some
Entega connections.

Signed-off-by: David Bauer <mail@david-bauer.net>
2025-04-20 17:04:08 +02:00
Jakub Łabuz
2eb7e4bf61 comgt-ncm: fix modem manufacturer detection
Fix an issue where NCM interface initialization fails because of wrong
modem manufacturer detection.

gcom call returns an output with Windows-style line breaks (containing \r)
what makes awk call return empty or malformed manufacturer name. Changing
awk RS variable to handle both \n and \r\n as line break fixes this issue.

Fixes #17448 and #17998 GitHub issues.

Signed-off-by: Jakub Łabuz <jakub@labuz.dev>
Link: https://github.com/openwrt/openwrt/pull/18460
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-04-18 01:37:48 +02:00
Rudy Andram
b0d43be2f3 dnsmasq: bump release to 2.91
updated 200-ubus_dns.patch
all remaining patches not required

Changelog for version 2.91 - https://thekelleys.org.uk/dnsmasq/CHANGELOG

version 2.91
	Fix spurious "resource limit exceeded messages". Thanks to
	Dominik Derigs for the bug report.

	Fix out-of-bounds heap read in order_qsort().
	We only need to order two server records on the ->serial field.
	Literal address records are smaller and don't have
	this field and don't need to be ordered on it.
	To actually provoke this bug seems to need the same server-literal
	to be repeated twice, e.g., --address=/a/1.1.1.1 --address-/a/1.1.1.1
	which is clearly rare in the wild, but if it did exist it could
	provoke a SIGSEGV. Thanks to Daniel Rhea for fuzzing this one.

	Fix buffer overflow when configured lease-change script name
	is too long.
	Thanks to Daniel Rhea for finding this one.

	Improve behaviour in the face of non-responsive upstream TCP DNS
	servers. Without shorter timeouts, clients are blocked for too long
	and fail with their own timeouts.

	Set --fast-dns-retries by default when doing DNSSEC. A single
	downstream query can trigger many upstream queries. On an
	unreliable network, there may not be enough downstream retries
	to ensure that all these queries complete.

	Improve behaviour in the face of truncated answers to queries
	for DNSSEC records. Getting these answers by TCP doesn't now
	involve a faked truncated answer to the downstream client to
	force it to move to TCP. This improves performance and robustness
	in the face of broken clients which can't fall back to TCP.

	No longer remove data from truncated upstream answers. If an
	upstream replies with a truncated answer, but the answer has some
	RRs included, return those RRs, rather than returning and
	empty answer.

	Fix handling of EDNS0 UDP packet sizes.
	When talking upstream we always add a pseudo header, and set the
        UDP packet size to --edns-packet-max. Answering queries from
	downstream, we get the answer (either from upstream or local
	data) If local data won't fit the advertised size (or 512 if
	there's not an EDNS0 header) return truncated. If upstream
        returns truncated, do likewise. If upstream is OK, but the
	answer is too big for downstream, truncate the answer.

	Modify the behaviour of --synth-domain for IPv6.
	When deriving a domain name from an IPv6 address, an address
	such as 1234:: would become 1234--.example.com, which is
	not legal in IDNA2008. Stop using the :: compression method,
	so 1234:: becomes
	1234-0000-0000-0000-0000-0000-0000-0000.example.com

	Fix broken dhcp-relay on *BSD. Thanks to Harold for finding
	this problem.

	Add --dhcp-option-pxe config. This acts almost exactly like
	--dhcp-option except that the defined option is only sent when
	replying to PXE clients. More importantly, these options are sent
	in reply PXE clients when dnsmasq in acting in PXE proxy mode. In
	PXE proxy mode, the set of options sent is defined by the PXE standard
	and the normal set of options is not sent. This config allows arbitrary
	options in PXE-proxy replies. A typical use-case is to send option
	175 to iPXE. Thanks to Jason Berry for finding the requirement for
	this.

	Support PXE proxy-DHCP and DHCP-relay at the same time.
        When using PXE proxy-DHCP, dnsmasq supplies PXE information to
        the client, which also talks to another "normal" DHCP server
        for address allocation and similar. The normal DHCP server may
        be on the local network, but it may also be remote, and accessed via
        a DHCP relay. This change allows dnsmasq to act as both a
        PXE proxy-DHCP server AND a DHCP relay for the same network.

	Fix erroneous "DNSSEC validated" state with non-DNSSEC
	upstream servers.  Thanks to Dominik Derigs for the bug report.

	Handle queries with EDNS client subnet fields better. If dnsmasq
	is configured to add an EDNS client subnet to a query, it is careful
	to suppress use of the cache, since a cached answer may not be valid
	for a query with a different client subnet. Extend this behaviour
	to queries which arrive a dnsmasq already carrying an EDNS client
	subnet.

	Handle DS queries to auth zones. When dnsmasq is configured to
	act as an authoritative server and has an authoritative zone
	configured, and receives a query for that zone _as_forwarder_
	it answers the query directly rather than forwarding it. This
	doesn't affect the answer, but it saves dnsmasq forwarding the
	query to the recursor upstream, which then bounces it back to dnsmasq
	in auth mode. The exception should be when the query is for the root
	of zone, for a DS RR. The answer to that has to come from the parent,
	via the recursor, and will typically be a proof-of-non-existence
	since dnsmasq doesn't support signed zones. This patch suppresses
	local answers and forces forwarding to the upstream recursor for such
	queries. It stops breakage when a DNSSEC validating client makes
	queries to dnsmasq acting as forwarder for a zone for which it is
	authoritative.

	Implement "DNS-0x20 encoding", for extra protection against
	reply-spoof attacks. Since DNS queries are case-insensitive,
	it's possible to randomly flip the case of letters in a query
	and still get the correct answer back.
	This adds an extra dimension for a cache-poisoning attacker
	to guess when sending replies in-the-blind since it's expected
	that the legitimate answer will have the same  pattern of upper
	and lower case as the query, so any replies which don't can be
	ignored as malicious. The amount of extra entropy clearly depends
	on the number of a-z and A-Z characters in the query, and this
	implementation puts a hard limit of 32 bits to make resource
	allocation easy. This about doubles entropy over the standard
	random ID and random port combination. This technique can interact
	badly with rare broken DNS servers which don't preserve the case
	of the query in their reply. The first time a reply is returned
	which matches the query in all respects except case, a warning
	will be logged. In this release, 0x020-encoding is default-off
	and must be explicitly enabled with --do-0x20-encoding. In future
	releases it may default on. You can avoid a future release
	changing the behaviour of an installation with --no-x20-encode.

	Fix a long-standing problem when two queries which are identical
	in every repect _except_ case, get combined by dnsmasq. If
	dnsmasq gets eg, two queries for example.com and Example.com
	in quick succession it will get the answer for example.com from
	upstream and send that answer to both requestors. This means that
	the query for Example.com will get an answer for example.com, and
	in the modern DNS, that answer may not be accepted.

Signed-off-by: Rudy Andram <rmandrad@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18357
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-04-13 21:29:46 +02:00
Mantas Pucka
6bbf4a540d
wifi-scripts: add hotplug handler for slow-to-initialize ath12k radios
Some ath12k radios can take long time to initialize and register a
phy. This can cause netifd to fail to detect them during initial scan.
To address this issue, a hotplug script has been added to retry
configuration once they have registered their phy.

Signed-off-by: Mantas Pucka <mantas@8devices.com>
Link: https://github.com/openwrt/openwrt/pull/18459
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-04-12 10:38:54 +02:00
Paul Donald
412c850f07 lldpd: enable hardware inventory information (TLV) management
lldpd can send several hardware inventory TLV fields. Extend the init
script to provide these when the existing flag 'lldpmed_no_inventory' is
disabled. Five new methods provide default values for some of them,
taken from /etc/os-release and /etc/board.json.

There is no homogeneous method to determine the hardware serial number,
so it can be provided manually, as can asset ID.

Note: properties >= 32 characters are truncated at send time (by lldpd),
and some (Cisco) equipment displays junk after strings >= 32 characters.
So truncate to 31.

Tested on: 24.10.0 (known compatible with 22 and 23 also)

===
Example
===

The following lldpd config lines:

 configure inventory hardware-revision "v0"
 configure inventory software-revision "r28427-6df0e3d02a"
 configure inventory firmware-revision "OpenWrt 24.10.0"
 configure inventory serial-number "ABCDEF-123456"
 configure inventory manufacturer "glinet"
 configure inventory model "GL.iNet GL-MT6000"
 # 32 characters:
 configure inventory asset "abcdefghijklmnopqrstuvwxyz 12345"

Produce the following TLV (decoded by Wireshark):

Telecommunications Industry Association TR-41 Committee - Inventory - Hardware Revision
    1111 111. .... .... = TLV Type: Organization Specific (127)
    .... ...0 0000 0110 = TLV Length: 6
    Organization Unique Code: 00:12:bb (Telecommunications Industry Association TR-41 Committee)
    Media Subtype: Inventory - Hardware Revision (0x05)
    Hardware Revision: v0
Telecommunications Industry Association TR-41 Committee - Inventory - Firmware Revision
    1111 111. .... .... = TLV Type: Organization Specific (127)
    .... ...0 0001 0011 = TLV Length: 19
    Organization Unique Code: 00:12:bb (Telecommunications Industry Association TR-41 Committee)
    Media Subtype: Inventory - Firmware Revision (0x06)
    Firmware Revision: OpenWrt 24.10.0
Telecommunications Industry Association TR-41 Committee - Inventory - Software Revision
    1111 111. .... .... = TLV Type: Organization Specific (127)
    .... ...0 0001 0101 = TLV Length: 21
    Organization Unique Code: 00:12:bb (Telecommunications Industry Association TR-41 Committee)
    Media Subtype: Inventory - Software Revision (0x07)
    Software Revision: r28427-6df0e3d02a
Telecommunications Industry Association TR-41 Committee - Inventory - Serial Number
    1111 111. .... .... = TLV Type: Organization Specific (127)
    .... ...0 0001 0100 = TLV Length: 20
    Organization Unique Code: 00:12:bb (Telecommunications Industry Association TR-41 Committee)
    Media Subtype: Inventory - Serial Number (0x08)
    Serial Number: ABCDEF-123456
Telecommunications Industry Association TR-41 Committee - Inventory - Manufacturer Name
    1111 111. .... .... = TLV Type: Organization Specific (127)
    .... ...0 0000 1010 = TLV Length: 10
    Organization Unique Code: 00:12:bb (Telecommunications Industry Association TR-41 Committee)
    Media Subtype: Inventory - Manufacturer Name (0x09)
    Manufacturer Name: glinet
Telecommunications Industry Association TR-41 Committee - Inventory - Model Name
    1111 111. .... .... = TLV Type: Organization Specific (127)
    .... ...0 0001 0101 = TLV Length: 21
    Organization Unique Code: 00:12:bb (Telecommunications Industry Association TR-41 Committee)
    Media Subtype: Inventory - Model Name (0x0a)
    Model Name: GL.iNet GL-MT6000
Telecommunications Industry Association TR-41 Committee - Inventory - Asset ID
    1111 111. .... .... = TLV Type: Organization Specific (127)
    .... ...0 0010 0011 = TLV Length: 35
    Organization Unique Code: 00:12:bb (Telecommunications Industry Association TR-41 Committee)
    Media Subtype: Inventory - Asset ID (0x0b)
    Asset ID: abcdefghijklmnopqrstuvwxyz 1234

The Cisco DUT displays:

Hardware Revision: 	v0
Firmware Revision: 	OpenWrt 24.10.0
Software Revision: 	r28427-6df0e3d02a
Serial Number:  ABCDEF-123456
Manufacturer Name: 	glinet
Model Name: 	GL.iNet GL-MT6000
Asset ID: 	abcdefghijklmnopqrstuvwxyz 1234

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18354
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-04-11 22:51:06 +02:00
Felix Fietkau
f8ed36f0d7 unetmsg: allow communication between hosts if no service is defined
Simplifies unet setup

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-04-11 13:02:31 +02:00
Ming Kuang
86eb1c0b5a wifi-scripts: mac80211.sh: add EHT and HE160 support to iw_htmode
For WIFI7 devices (such as mt7925e), the dev width is currently
always "20 MHz (no HT)" in monitor mode.

Add EHT and HE160 support to iw_htmode to fix this issue.
Additionally, the following changes are made:
1. Set iw_htmode to 160MHz for VHT160. The reason for the current
   VHT160 setting is unclear and seems to have been in place for
   over a decade (ibss_htmode [1]). If anyone knows its impact,
   please inform me so I can restore it.
2. Modify MHZ to MHz. The original matching table in the current
   iw tool uses MHz. Although the match is case-insensitive,
   correcting this won't hurt.

[1]: 768d09be87

Signed-off-by: Ming Kuang <ming@imkuang.com>
Link: https://github.com/openwrt/openwrt/pull/18319
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-04-07 00:53:54 +02:00
Russell Senior
9ec997b850 iproute2: update to v6.14.0
$ git log --no-merges --oneline v6.13.0..v6.14.0
fea1086c (tag: v6.14.0) v6.14.0
afbfd2f2 tc: nat: ffs should operation on host byte ordered data
667817b4 tc: nat: Fix mask calculation
e3f9681d ss: mptcp: subflow: display seq counters as decimal
5e113aba man: document tunnel options in ip-route.8.in
48717184 README.devel: clarify patch rules and syntax
99c119a0 ss: Tone down cgroup path resolution
41710ace uapi: update bpf.h
1db4f568 ip: vxlan: Support IFLA_VXLAN_RESERVED_BITS
fe4100df iproute2: add 'ip monitor acaddress' support
d009b68f Update kernel headers
0bd19d46 iprule: Add flow label support
35ae138e ip: route: Add IPv6 flow label support
3f8c7e7c tc: fq: add support for TCA_FQ_OFFLOAD_HORIZON attribute
49b8a727 Update kernel headers
19514606 iproute2: add 'ip monitor maddress' support
93360313 Update kernel headers
1f0f9deb ip: link: rmnet: add support for flag handling

Signed-off-by: Russell Senior <russell@personaltelco.net>
2025-04-05 01:46:47 -07:00
Mieczyslaw Nalewaj
9fb06f2c3c firewall4: update to Git HEAD (2025-03-17)
b6e5157527d3 fw4: fix reading kernel version
42d3b3d4ca21 fw4: allow family any for ipsets not matching IP addresses
edfdfc6df484 Revert "fw4: allow family any for ipsets not matching IP addresses"
97962771aa3c config: drop to-be-forwarded-nowhere packets on wans
00fc6943a297 init: remove unnecessary stop logic
ad3cba79c192 fw4: allow family any for ipsets not matching IP addresses

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
[fix PKG_MIRROR_HASH]
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18283
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-03-30 18:35:22 +02:00
Paul Donald
b180ed413f lldpd: bump to 1.0.19
Changes:
- Support of both Apple Silicon and Intel for macOS package.
- Add cvlan/svlan/tpmr capabilities.
- Disable LLDP in firmware for Intel X7xx cards on FreeBSD.
- Add lldpctl_watch_sync_unblock to liblldpctl.
- Add C++ wrapper for lldpctl.

Fix:
- Fix AppArmor policy for /run/lldpd/lldpd.socket.lock.
- Do not query stats for a down interface on Linux.

```
 # lldpd -vv
lldpd 1.0.19
  Built on 2025-03-24T17:43:44Z

Additional LLDP features:    LLDP-MED, Dot1, Dot3, Custom TLV
Additional protocols:        CDP, FDP, EDP, SONMP
SNMP support:                no
Old kernel support:          no (Linux 2.6.39+)
Privilege separation:        enabled
Privilege separation user:   lldp
Privilege separation group:  lldp
Privilege separation chroot: /var/run/lldp
Configuration directory:     /tmp

C compiler command: C compiler command is not available for reproducible builds
Linker command:     Linker compiler command is not available for reproducible builds
```

Tested on: 24.10.0

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18345
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-03-27 08:12:01 +01:00