Skip to content

Commit a3c6ec0

Browse files
authored
Merge pull request #1484 from kernelkit/releng
Release preparations
2 parents 413d8e4 + 25fcfba commit a3c6ec0

36 files changed

Lines changed: 645 additions & 459 deletions

board/aarch64/bananapi-bpi-r64/README.md

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ The Banana Pi BPI-R64 is a networking board based on the MediaTek MT7622
1414
- 8 GB eMMC storage
1515
- microSD card slot
1616
- MT7531 Gigabit Ethernet switch (4x LAN + 1x WAN)
17-
- MT7603E built-in 2.4 GHz WiFi
17+
- MT7622 WMAC built-in 2.4 GHz 802.11ac WiFi
1818
- USB 3.0 port
1919
- 2x Mini PCIe slots
2020

@@ -24,7 +24,7 @@ Infix comes preconfigured with:
2424

2525
- **LAN ports** (lan0-lan3): Bridged for internal networking
2626
- **WAN port**: DHCP client enabled for internet connectivity
27-
- **WiFi** (wifi0-ap): Bridged to LAN (MT7615 PCIe card if fitted, otherwise MT7603E)
27+
- **WiFi** (wifi0-ap): Bridged to LAN (MT7622 WMAC, 2.4 GHz; or MT7615 PCIe card if fitted)
2828

2929
## Boot Switch Reference
3030

@@ -113,6 +113,19 @@ mmc partconf 0 1 1 0
113113

114114
## Platform Notes
115115

116+
### WiFi
117+
118+
The MT7622 SoC includes a built-in WMAC that provides 2.4 GHz 802.11b/g/n/ac
119+
(2×2) — there is no 5 GHz capability from the onboard radio.
120+
121+
For dual-band operation, a PCIe card can be fitted in one of the two Mini PCIe
122+
slots. The [Banana Pi BPI-MT7615][bpi-mt7615] is a purpose-built dual-band
123+
(2.4 + 5 GHz, 802.11ac 4×4) module designed for BPI router boards and is a
124+
natural fit. With it installed, Infix will use it in preference to the onboard
125+
WMAC for the `wifi0-ap` interface.
126+
127+
[bpi-mt7615]: https://docs.banana-pi.org/en/BPI-MT7615/BananaPi_MT7615
128+
116129
### mmc0 = eMMC, mmc1 = SD
117130

118131
On MT7622, MSDC0 (mmc0) is the 8-bit eMMC controller and MSDC1 (mmc1) is the

buildroot

doc/ChangeLog.md

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,55 @@ Change Log
33

44
All notable changes to the project are documented in this file.
55

6-
[v26.04.0][UNRELEASED] -
6+
[v26.04.0][] - 2026-04-30
77
-------------------------
88

99
### Changes
1010

1111
- Upgrade Linux kernel to 6.18.25 (LTS)
1212
- Upgrade Buildroot to 2025.02.13 (LTS)
13+
- Add support for per-bridge multicast router port in operational, issue #395
14+
- Add support for static ARP (IPv4) and neighbor cache (IPv6) entries per
15+
interface, issue #819. Static entries are installed as permanent kernel
16+
neighbor table entries that are never evicted by normal ARP/NDP aging
1317
- Add support for PTP/gPTP (IEEE 1588-2019 / 802.1AS) clock synchronization.
1418
Supported clock types: Ordinary Clock, Boundary Clock, and Transparent Clock.
1519
See the User Guide for configuration details
1620
- Add support for [Banana Pi BPI-R4][BPI-R4], quad-core Cortex-A73 router with
1721
4x 2.5 GbE switching, dual 10 GbE SFP+. Variants BPI-R4-2g5 and BPI-R4P have
1822
one SFP+ replaced by a 2.5 GbE RJ45, with optional PoE on the R4P
23+
- Update [Marvell ESPRESSObin][ESPRESSObin] board support. Allow booting with
24+
stock U-Boot, which only supports ext4 rootfs partitions; to use, apply the
25+
`ext4` developer snippet before building (`make apply-ext4 all`)
26+
- Fix onboard WiFi support on the Banana Pi BPi-R64
1927

2028
### Fixes
2129

30+
- Fix #520: warn in syslog if multicast flooding is disabled
31+
- Fix #769: document dummy interfaces in user guide
32+
- Fix #790: document static multicast filters in user guide
33+
- Fix #1439: changing hostname does not regenerate DHCP client conf until restart
2234
- Fix #1458: `show ntp tracking` displaying a truncated Reference ID, e.g.,
2335
`92.2` instead of `92.246.137.39`
2436
- Fix #1466: `show container` showing no output for containers whose command
2537
line includes environment variables
26-
- Fix #1439: changing hostname does not regenerate DHCP client conf until restart
38+
- Fix issue with IGMP queries sent with all-zeroes source MAC address
39+
- Fix missing IGMP query startup burst when assuming IGMP querier role, as
40+
defined in RFC3376 §8.6/§8.7
41+
- Fix Raspberry Pi 4 and Pi 400 display instability after soft reboot.
42+
Previously the touchscreen/DSI display required a full power cycle to
43+
reinitialise correctly; it now works reliably after `reboot`. Please note,
44+
you need a fairly up-to-date EEPROM version as well
45+
- Fix [BPI-R4][] board README showing inverted DIP switch values for eMMC and
46+
SPI NAND boot modes, which would prevent the board from booting correctly
47+
- Fix [SAMA7G54][] U-Boot build system selection that caused build failures
48+
- Fix [BPI-R3][] PCIe devices failing to initialize on boot due to a missing
49+
clock definition in the device tree
2750

51+
[BPI-R3]: https://wiki.banana-pi.org/Banana_Pi_BPI-R3
2852
[BPI-R4]: https://docs.banana-pi.org/en/BPI-R4/BananaPi_BPI-R4
53+
[ESPRESSObin]: https://espressobin.net/
54+
[SAMA7G54]: https://www.microchip.com/en-us/development-tool/ev21h18a
2955

3056
[v26.03.0][] - 2026-03-31
3157
-------------------------

doc/bridging.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,48 @@ In this setup we have a lot more going on. Multiple multicast router
183183
ports have been detected, and behind the scenes someone has also added
184184
an IGMP/MLD fast-leave port.
185185

186+
### Static Multicast Filters
187+
188+
When IGMP/MLD snooping is in use, traffic for an unregistered group is
189+
flooded to all ports until a receiver joins. For MAC multicast groups,
190+
or for groups where snooping cannot learn membership automatically, you
191+
can add static entries to the MDB that immediately restrict forwarding
192+
to a given set of ports.
193+
194+
> [!NOTE]
195+
> Snooping must be enabled on the bridge (or per VLAN) before static
196+
> multicast filters can be configured.
197+
198+
On a plain (non-VLAN) bridge, add a static IPv4 or MAC multicast filter
199+
like this:
200+
201+
<pre class="cli"><code>admin@example:/> <b>configure</b>
202+
admin@example:/config/> <b>edit interface br0</b>
203+
admin@example:/config/interface/br0/> <b>set bridge multicast-filters multicast-filter 224.1.1.1 ports e2</b>
204+
admin@example:/config/interface/br0/> <b>set bridge multicast-filters multicast-filter 224.1.1.1 ports e3</b>
205+
admin@example:/config/interface/br0/> <b>set bridge multicast-filters multicast-filter 01:00:5e:01:01:01 ports e2</b>
206+
admin@example:/config/interface/br0/> <b>leave</b>
207+
admin@example:/> <b>copy running-config startup-config</b>
208+
</code></pre>
209+
210+
Each `ports` entry for the same group adds one port to the filter.
211+
Receivers on all other ports will not see traffic for that group.
212+
213+
On a VLAN-filtering bridge the filter is scoped per VLAN:
214+
215+
<pre class="cli"><code>admin@example:/config/interface/br1/> <b>set bridge vlans vlan 10 multicast-filters multicast-filter 224.2.2.2 ports e5</b>
216+
admin@example:/config/interface/br1/> <b>set bridge vlans vlan 10 multicast-filters multicast-filter 224.2.2.2 ports e6</b>
217+
</code></pre>
218+
219+
To verify the MDB — both statically configured and dynamically learned
220+
entries — use:
221+
222+
<pre class="cli"><code>admin@example:/> <b>show bridge mdb</b>
223+
<span class="header">BRIDGE VID GROUP PORTS </span>
224+
br0 224.1.1.1 e2, e3
225+
br0 01:00:5e:01:01:01 e2
226+
</code></pre>
227+
186228
### Terminology & Abbreviations
187229

188230
- **IGMP**: Internet Group Membership Protocol, multicast subscription

doc/iface.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,49 @@ admin@example:/config/interface/veth0a/> <b>set custom-phys-address chassis offs
138138
</code></pre>
139139

140140

141+
## Dummy Interface
142+
143+
A dummy interface is a virtual interface that is always administratively
144+
and operationally UP, regardless of any physical link state. It can
145+
hold IP addresses just like any other interface.
146+
147+
The two most common uses are:
148+
149+
- **Stable OSPF router-ID**: OSPF picks its router-ID from an interface
150+
address. If that interface goes down, adjacencies can flap. Binding
151+
the router-ID to a /32 address on a dummy avoids this.
152+
- **Stable management address**: A /32 on a dummy gives the device a
153+
permanent identity on the network, reachable as long as at least one
154+
uplink is up and the address is redistributed into the routing domain.
155+
156+
> [!TIP]
157+
> WiFi interfaces also use dummies as placeholders when the radio
158+
> hardware is not detected at boot (e.g., a USB dongle that was
159+
> unplugged). See [WiFi](wifi.md) for details.
160+
161+
### Example: Stable OSPF Router-ID
162+
163+
Create a dummy interface with a /32 address and use it as the OSPF
164+
router-ID so that the ID never changes when physical ports bounce:
165+
166+
<pre class="cli"><code>admin@example:/> <b>configure</b>
167+
admin@example:/config/> <b>edit interface lo0</b>
168+
admin@example:/config/interface/lo0/> <b>set type dummy</b>
169+
admin@example:/config/interface/lo0/> <b>set ipv4 address 192.0.2.1 prefix-length 32</b>
170+
admin@example:/config/interface/lo0/> <b>leave</b>
171+
admin@example:/config/> <b>edit routing control-plane-protocol ospfv2 name default ospf</b>
172+
admin@example:/config/routing/…/ospf/> <b>set explicit-router-id 192.0.2.1</b>
173+
admin@example:/config/routing/…/ospf/> <b>leave</b>
174+
admin@example:/> <b>copy running-config startup-config</b>
175+
</code></pre>
176+
177+
To also make the address reachable by other routers, redistribute
178+
connected routes (or add `lo0` as an OSPF interface):
179+
180+
<pre class="cli"><code>admin@example:/config/routing/…/ospf/> <b>set redistribute connected</b>
181+
</code></pre>
182+
183+
141184
[^1]: A YANG deviation was previously used to make it possible to set
142185
`phys-address`, but this has been replaced with the more flexible
143186
`custom-phys-address`.

doc/ip.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -435,6 +435,66 @@ admin@example:/config/interface/eth0/> <b>leave</b>
435435
admin@example:/>
436436
</code></pre>
437437

438+
## ARP and Neighbor Cache
439+
440+
Static ARP entries (IPv4) and neighbor cache entries (IPv6) can be
441+
configured per interface. The most common reasons to do so are:
442+
443+
- **Security** — prevent ARP/NDP spoofing by locking critical hosts
444+
(e.g., a default gateway) to their known MAC addresses
445+
- **Reliability** — ensure reachability of a host even when ARP/NDP
446+
traffic is suppressed or filtered (e.g., across a strict firewall)
447+
448+
Dynamic entries are learned automatically by the kernel using ARP and
449+
Neighbor Discovery Protocol (NDP), and are visible as read-only
450+
operational state alongside the static ones.
451+
452+
### Static IPv4 ARP Entry
453+
454+
<pre class="cli"><code>admin@example:/> <b>configure</b>
455+
admin@example:/config/> <b>edit interface eth0 ipv4</b>
456+
admin@example:/config/interface/eth0/ipv4/> <b>set neighbor 192.168.1.100 link-layer-address 00:11:22:33:44:55</b>
457+
admin@example:/config/interface/eth0/ipv4/> <b>diff</b>
458+
+interfaces {
459+
+ interface eth0 {
460+
+ ipv4 {
461+
+ neighbor 192.168.1.100 {
462+
+ link-layer-address 00:11:22:33:44:55;
463+
+ }
464+
+ }
465+
+ }
466+
+}
467+
admin@example:/config/interface/eth0/ipv4/> <b>leave</b>
468+
admin@example:/>
469+
</code></pre>
470+
471+
### Static IPv6 Neighbor Entry
472+
473+
<pre class="cli"><code>admin@example:/> <b>configure</b>
474+
admin@example:/config/> <b>edit interface eth0 ipv6</b>
475+
admin@example:/config/interface/eth0/ipv6/> <b>set neighbor 2001:db8::100 link-layer-address 00:11:22:33:44:55</b>
476+
admin@example:/config/interface/eth0/ipv6/> <b>diff</b>
477+
+interfaces {
478+
+ interface eth0 {
479+
+ ipv6 {
480+
+ neighbor 2001:db8::100 {
481+
+ link-layer-address 00:11:22:33:44:55;
482+
+ }
483+
+ }
484+
+ }
485+
+}
486+
admin@example:/config/interface/eth0/ipv6/> <b>leave</b>
487+
admin@example:/>
488+
</code></pre>
489+
490+
The full neighbor table — including dynamically learned entries (origin:
491+
*dynamic*) — is available as operational state via NETCONF or RESTCONF.
492+
493+
> [!NOTE]
494+
> Static neighbor entries take effect immediately on `leave` (commit).
495+
> They are installed as *permanent* entries in the kernel neighbor table,
496+
> which means they are never evicted by the normal ARP/NDP aging process.
497+
438498
[1]: https://www.rfc-editor.org/rfc/rfc3442
439499
[2]: https://www.rfc-editor.org/rfc/rfc8344
440500
[3]: https://www.rfc-editor.org/rfc/rfc8981

package/finit/0001-Remove-redundant-global-path-var-and-fix-memory-corr.patch

Lines changed: 0 additions & 54 deletions
This file was deleted.

0 commit comments

Comments
 (0)