<feed xmlns='http://www.w3.org/2005/Atom'>
<title>firewall4, branch master</title>
<subtitle>OpenWrt nftables firewall</subtitle>
<id>https://git.openwrt.org/project/firewall4/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/project/firewall4/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/firewall4/'/>
<updated>2026-10-26T08:37:23Z</updated>
<entry>
<title>Do not emit helper jump without helper modules</title>
<updated>2026-10-26T08:37:23Z</updated>
<author>
<name>Andris PE</name>
</author>
<published>2024-03-22T10:51:07Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/firewall4/commit/?id=bac1d656e09b48e542f860844fe91cbba82abae2'/>
<id>urn:sha1:bac1d656e09b48e542f860844fe91cbba82abae2</id>
<content type='text'>
Do not emit helper jump if no helper modules are present saving
per-every-packet bytecode before ct:
```
inet fw4 prerouting
  [ meta load iifname =&gt; reg 1 ]
  [ cmp eq reg 1 0x6c2d7262 0x00006e61 0x00000000 0x00000000 ]
  [ immediate reg 0 jump -&gt; helper_lan ]
  userdata = { \x00-!fw4: Handle lan IPv4/IPv6 helper assignment\x00 }
```

Signed-off-by: Andris PE &lt;neandris@gmail.com&gt;
Link: https://github.com/openwrt/firewall4/pull/27
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</content>
</entry>
<entry>
<title>ruleset: fix for missing counters handling code for ipsets</title>
<updated>2026-10-26T08:31:17Z</updated>
<author>
<name>XCas13</name>
</author>
<published>2026-02-08T07:38:20Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/firewall4/commit/?id=df0c9021bbe712a984fd2403db1c0c7442de1da9'/>
<id>urn:sha1:df0c9021bbe712a984fd2403db1c0c7442de1da9</id>
<content type='text'>
This commit adds missing code that handles counters for ipsets. Fixes #69

Signed-off-by: XCas13 &lt;xcas13@gmail.com&gt;
Link: https://github.com/openwrt/firewall4/pull/70
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</content>
</entry>
<entry>
<title>fw4: list lower devices for software flow offloading</title>
<updated>2026-10-25T10:19:25Z</updated>
<author>
<name>Julius Bairaktaris</name>
</author>
<published>2026-10-18T13:43:11Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/firewall4/commit/?id=a3296754c154c9a0203a8ab72820da0b381aaddd'/>
<id>urn:sha1:a3296754c154c9a0203a8ab72820da0b381aaddd</id>
<content type='text'>
Since Linux commit 871df5007eda ("netfilter: flowtable: bail out if
forward path cannot be discovered"), a flow is offloaded only if the
ingress device at the bottom of its forward path is a flowtable device.
For a bridge that is the bridge port, such as a DSA user port or a
wireless interface, not the bridge itself. With software offloading,
fw4 lists only the zone devices, so flows through br-lan or a VLAN
under the WAN stay on the classic path.

Resolve the lower devices for software offloading as for hardware
offloading.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Julius Bairaktaris &lt;julius@bairaktaris.de&gt;
Link: https://github.com/openwrt/firewall4/pull/108
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</content>
</entry>
<entry>
<title>fw4: support forwardings in procd and netifd firewall data</title>
<updated>2026-08-27T16:26:56Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-06-04T21:50:38Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/firewall4/commit/?id=c2ae8c8940a89407da32fbd662d4010ee2c9bbe6'/>
<id>urn:sha1:c2ae8c8940a89407da32fbd662d4010ee2c9bbe6</id>
<content type='text'>
Zones synthesised from published firewall data can now also declare
the forwardings between them. All zones are parsed before any
forwarding, so resolution is independent of declaration order.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>fw4: support zones in procd and netifd firewall data</title>
<updated>2026-08-27T16:26:56Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-06-04T21:50:33Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/firewall4/commit/?id=b263f8ccbda7ea103cdfe553b631663438d0725e'/>
<id>urn:sha1:b263f8ccbda7ea103cdfe553b631663438d0725e</id>
<content type='text'>
Zone specs were collected from published firewall data but never
parsed. Accept them from the netifd interface data channel and from
procd service data, keep their declared names, default their policies
to drop to stay fail-closed, and attribute diagnostics for malformed
specs to their publisher.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>fw4: anchor per-interface ubus firewall specs by kind</title>
<updated>2026-08-27T16:26:24Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-06-04T21:50:24Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/firewall4/commit/?id=d92213a9345efc984ff9c191e3b32eaedeac695d'/>
<id>urn:sha1:d92213a9345efc984ff9c191e3b32eaedeac695d</id>
<content type='text'>
Only rule and nat specs pin to the publishing interface device, which
protocol handlers such as 464xlat rely on; zone, forwarding, redirect
and ipset specs resolve through their own references, and an explicit
device on them is kept. An empty device opts a rule or nat out of the
pin and then requires a zone reference.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>fw4: accept a source rewrite range for ICMP</title>
<updated>2026-08-27T16:26:05Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-08-22T12:30:31Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/firewall4/commit/?id=2b55562cdfb294e6baae14fa41f8d2f4b5c30556'/>
<id>urn:sha1:2b55562cdfb294e6baae14fa41f8d2f4b5c30556</id>
<content type='text'>
A snat_port range on proto icmp maps the ICMP identifier rather than
a port. map.sh emits one per MAP-E portset (RFC 7597) and firewall3
accepted it, while fw4 rejects the section, breaking ICMP source NAT
for MAP. Accept the range for ICMP and infer the IPv6 family for
ipv6-icmp; port match options still require UDP or TCP.

Fixes: 59dbb982b7fe ("Initial commit")
Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>fw4: warn about ubus firewall specs of unknown type</title>
<updated>2026-08-27T16:26:05Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-08-22T03:29:33Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/firewall4/commit/?id=500d30940e55a0090a93c6a958df694be5a21340'/>
<id>urn:sha1:500d30940e55a0090a93c6a958df694be5a21340</id>
<content type='text'>
A typo in the type field silently disables the spec. Warn instead;
entries without a type field remain ignored as before.

Fixes: 59dbb982b7fe ("Initial commit")
Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>fw4: skip zones with duplicate names</title>
<updated>2026-08-27T16:12:55Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-08-22T03:29:13Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/firewall4/commit/?id=22afe51bed7cf42015eb2403a84b571c3c670ad8'/>
<id>urn:sha1:22afe51bed7cf42015eb2403a84b571c3c670ad8</id>
<content type='text'>
Same-named zones emit duplicate defines and nft rejects the whole
ruleset. Keep the first zone of a name, skip later ones with a
diagnostic; a zone published over ubus never displaces a uci zone.

Fixes: 59dbb982b7fe ("Initial commit")
Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>fw4: fix reading kernel version</title>
<updated>2025-03-17T17:36:00Z</updated>
<author>
<name>Mieczyslaw Nalewaj</name>
</author>
<published>2024-11-20T17:52:26Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/firewall4/commit/?id=b6e5157527d361f99ad52eaa6da273cb0f2dfd59'/>
<id>urn:sha1:b6e5157527d361f99ad52eaa6da273cb0f2dfd59</id>
<content type='text'>
Fix reading kernel version for kernels with revision 0 e.g. 6.12
Repair incorrect shift of the revision number causing incorrect value for &gt; 255.

Signed-off-by: Mieczyslaw Nalewaj &lt;namiltd@yahoo.com&gt;
</content>
</entry>
</feed>
