<feed xmlns='http://www.w3.org/2005/Atom'>
<title>packages/net/shunt/test-version.sh, branch master</title>
<subtitle>Mirror of packages feed</subtitle>
<id>https://git.openwrt.org/feed/packages/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/feed/packages/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/'/>
<updated>2026-08-25T19:24:47Z</updated>
<entry>
<title>shunt: add new package</title>
<updated>2026-08-25T19:24:47Z</updated>
<author>
<name>Dirk Brenken</name>
</author>
<published>2026-08-23T17:05:33Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=928797a9914e8db8dfd615c5d2f29017d320926c'/>
<id>urn:sha1:928797a9914e8db8dfd615c5d2f29017d320926c</id>
<content type='text'>
shunt is a policy-based routing daemon for OpenWrt. Policies select
traffic by client address or MAC, destination address, domain, port and
protocol, and route it into any netifd interface or device via fwmark
and per-policy routing tables in nftables/fw4.

Domains are covered by a passive DNS observer (AF_PACKET + BPF) that
works with any resolver - dnsmasq, unbound, AGH, a remote DoH client -
because it reads answers on the LAN bridges instead of integrating with
a specific DNS backend. An optional poller pre-warms configured names.
Learned addresses are written in adaptive batches to stay usable beside
packages that keep very large nft sets (e.g. banIP).

Written in ucode, no dependencies beyond ucode modules, nft and ip.
Companion LuCI app is submitted separately to openwrt/luci.

Signed-off-by: Dirk Brenken &lt;dev@brenken.org&gt;
Co-authored-by: Claude &lt;noreply@anthropic.com&gt;
Signed-off-by: Dirk Brenken &lt;dev@brenken.org&gt;
</content>
</entry>
</feed>
