The 3.2 builds, including the latest one, seem to introduce some strange instability. Pages load slowly, and some sites appear broken. For example, YouTube may load normally, show only a gray page, or get stuck halfway through loading. I have IPv6 enabled — could this be related to the new features? My PCs are set to prefer IPv6. This time I used pre-build apk from your repository.
anonimyzed mwan output if it helps
Summary
This text will be hidden
Software-Version
mwan3 - 2.12.0-r3
Output of "ip -4 a show"
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
inet 10.10.100.101/24 brd 10.10.100.255 scope global eth0
valid_lft forever preferred_lft forever
inet 10.10.100.155/24 scope global secondary proto keepalived eth0:vip
valid_lft forever preferred_lft forever
7: eth5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
inet 10.10.88.1/24 brd 10.10.88.255 scope global eth5
valid_lft forever preferred_lft forever
12: bond0.87@bond0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
inet 10.10.87.1/24 brd 10.10.87.255 scope global bond0.87
valid_lft forever preferred_lft forever
inet 10.10.90.136/32 scope global proto keepalived bond0.87:vip
valid_lft forever preferred_lft forever
inet 10.10.87.5/24 scope global secondary proto keepalived bond0.87:vip
valid_lft forever preferred_lft forever
13: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
inet 10.10.77.1/24 brd 10.10.77.255 scope global br-lan
valid_lft forever preferred_lft forever
inet 10.10.90.1/24 brd 10.10.90.255 scope global br-lan
valid_lft forever preferred_lft forever
inet 10.10.77.5/24 scope global secondary proto keepalived br-lan:vip
valid_lft forever preferred_lft forever
inet 10.10.90.5/24 scope global secondary proto keepalived br-lan:vip
valid_lft forever preferred_lft forever
15: wireguard: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
inet 10.10.6.1/24 brd 10.10.6.255 scope global wireguard
valid_lft forever preferred_lft forever
17: pppoe-wan: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc cake state UNKNOWN group default qlen 3
inet 198.51.100.47 peer 203.0.113.248/32 scope global pppoe-wan
valid_lft forever preferred_lft forever
Output of "ip -4 route show"
default via 203.0.113.248 dev pppoe-wan proto static metric 10
default via 10.10.100.1 dev eth0 proto static metric 20
10.10.77.0/24 dev br-lan proto kernel scope link src 10.10.77.1
10.10.87.0/24 dev bond0.87 proto kernel scope link src 10.10.87.1
10.10.88.0/24 dev eth5 proto kernel scope link src 10.10.88.1
10.10.90.0/24 dev br-lan proto kernel scope link src 10.10.90.1
10.10.100.0/24 dev eth0 proto static scope link metric 20
10.10.6.0/24 dev wireguard proto kernel scope link src 10.10.6.1
203.0.113.248 dev pppoe-wan proto kernel scope link src 198.51.100.47
Output of "ip -4 rule show"
0: from all lookup local
1001: from all iif pppoe-wan lookup 1
1002: from all iif eth0 lookup 2
2001: from all fwmark 0x100/0x3f00 lookup 1
2002: from all fwmark 0x200/0x3f00 lookup 2
2061: from all fwmark 0x3d00/0x3f00 blackhole
2062: from all fwmark 0x3e00/0x3f00 unreachable
3001: from all fwmark 0x100/0x3f00 unreachable
3002: from all fwmark 0x200/0x3f00 unreachable
32766: from all lookup main
32767: from all lookup default
Output of "ip -4 route list table 1-250"
Routing table 1:
default via 203.0.113.248 dev pppoe-wan proto static metric 10
10.10.77.0/24 dev br-lan proto kernel scope link src 10.10.77.1
10.10.87.0/24 dev bond0.87 proto kernel scope link src 10.10.87.1
10.10.88.0/24 dev eth5 proto kernel scope link src 10.10.88.1
10.10.90.0/24 dev br-lan proto kernel scope link src 10.10.90.1
10.10.6.0/24 dev wireguard proto kernel scope link src 10.10.6.1
203.0.113.248 dev pppoe-wan proto kernel scope link src 198.51.100.47
Routing table 2:
default via 10.10.100.1 dev eth0 proto static metric 20
10.10.77.0/24 dev br-lan proto kernel scope link src 10.10.77.1
10.10.87.0/24 dev bond0.87 proto kernel scope link src 10.10.87.1
10.10.88.0/24 dev eth5 proto kernel scope link src 10.10.88.1
10.10.90.0/24 dev br-lan proto kernel scope link src 10.10.90.1
10.10.100.0/24 dev eth0 proto static scope link metric 20
10.10.6.0/24 dev wireguard proto kernel scope link src 10.10.6.1
203.0.113.248 dev pppoe-wan proto unspec scope link src 198.51.100.47
Output of "nft list table inet fw4" (mwan3 chains)
chain mwan3_ifaces_in {
meta mark & 0x00003f00 == 0x00000000 jump mwan3_iface_in_wan
meta mark & 0x00003f00 == 0x00000000 jump mwan3_iface_in_wanb
meta mark & 0x00003f00 == 0x00000000 jump mwan3_iface_in_wan_6
meta mark & 0x00003f00 == 0x00000000 jump mwan3_iface_in_wanb_6
}
chain mwan3_rules {
ip daddr 0.0.0.0/0 meta mark & 0x00003f00 == 0x00000000 jump mwan3_policy_wan_wanb
ip6 daddr ::/0 meta mark & 0x00003f00 == 0x00000000 jump mwan3_policy_wan_6_wanb_6
}
chain mwan3_connected {
ip daddr @mwan3_connected_v4 meta mark set meta mark | 0x00003f00 return
ip6 daddr @mwan3_connected_v6 meta mark set meta mark | 0x00003f00 return
}
chain mwan3_custom {
ip daddr @mwan3_custom_v4 meta mark set meta mark | 0x00003f00 return
ip6 daddr @mwan3_custom_v6 meta mark set meta mark | 0x00003f00 return
}
chain mwan3_dynamic {
ip daddr @mwan3_dynamic_v4 meta mark set meta mark | 0x00003f00 return
ip6 daddr @mwan3_dynamic_v6 meta mark set meta mark | 0x00003f00 return
}
chain upnp_forward {
}
chain upnp_prerouting {
}
chain upnp_postrouting {
}
chain mwan3_policy_wan_only {
meta nfproto ipv4 meta mark & 0x00003f00 == 0x00000000 meta mark set meta mark & 0xffffc1ff | 0x00000100
meta nfproto ipv6 meta mark & 0x00003f00 == 0x00000000 meta mark set meta mark & 0xffffc3ff | 0x00000300
meta mark & 0x00003f00 == 0x00000000 meta mark set meta mark & 0xfffffeff | 0x00003e00
}
chain mwan3_policy_wanb_only {
meta nfproto ipv4 meta mark & 0x00003f00 == 0x00000000 meta mark set meta mark & 0xffffc2ff | 0x00000200
meta nfproto ipv6 meta mark & 0x00003f00 == 0x00000000 meta mark set meta mark & 0xffffc4ff | 0x00000400
meta mark & 0x00003f00 == 0x00000000 meta mark set meta mark & 0xfffffeff | 0x00003e00
}
chain mwan3_policy_wan_wanb {
meta mark & 0x00003f00 == 0x00000000 meta mark set meta mark & 0xffffc1ff | 0x00000100
meta mark & 0x00003f00 == 0x00000000 meta mark set meta mark & 0xfffffeff | 0x00003e00
}
chain mwan3_policy_wanb_wan {
meta mark & 0x00003f00 == 0x00000000 meta mark set meta mark & 0xffffc2ff | 0x00000200
meta mark & 0x00003f00 == 0x00000000 meta mark set meta mark & 0xfffffeff | 0x00003e00
}
chain mwan3_policy_wan_6_wanb_6 {
meta mark & 0x00003f00 == 0x00000000 meta mark set meta mark & 0xffffc3ff | 0x00000300
meta mark & 0x00003f00 == 0x00000000 meta mark set meta mark & 0xfffffeff | 0x00003e00
}
chain mwan3_iface_in_wanb {
iifname "eth0" ip saddr @mwan3_connected_v4 meta mark & 0x00003f00 == 0x00000000 meta mark set meta mark | 0x00003f00
iifname "eth0" ip saddr @mwan3_custom_v4 meta mark & 0x00003f00 == 0x00000000 meta mark set meta mark | 0x00003f00
iifname "eth0" ip saddr @mwan3_dynamic_v4 meta mark & 0x00003f00 == 0x00000000 meta mark set meta mark | 0x00003f00
iifname "eth0" meta mark & 0x00003f00 == 0x00000000 meta mark set meta mark & 0xffffc2ff | 0x00000200
}
chain mwan3_iface_in_wan {
iifname "pppoe-wan" ip saddr @mwan3_connected_v4 meta mark & 0x00003f00 == 0x00000000 meta mark set meta mark | 0x00003f00
iifname "pppoe-wan" ip saddr @mwan3_custom_v4 meta mark & 0x00003f00 == 0x00000000 meta mark set meta mark | 0x00003f00
iifname "pppoe-wan" ip saddr @mwan3_dynamic_v4 meta mark & 0x00003f00 == 0x00000000 meta mark set meta mark | 0x00003f00
iifname "pppoe-wan" meta mark & 0x00003f00 == 0x00000000 meta mark set meta mark & 0xffffc1ff | 0x00000100
}
chain mwan3_iface_in_wan_6 {
iifname "pppoe-wan" ip6 saddr @mwan3_connected_v6 meta mark & 0x00003f00 == 0x00000000 meta mark set meta mark | 0x00003f00
iifname "pppoe-wan" ip6 saddr @mwan3_custom_v6 meta mark & 0x00003f00 == 0x00000000 meta mark set meta mark | 0x00003f00
iifname "pppoe-wan" ip6 saddr @mwan3_dynamic_v6 meta mark & 0x00003f00 == 0x00000000 meta mark set meta mark | 0x00003f00
iifname "pppoe-wan" meta mark & 0x00003f00 == 0x00000000 meta mark set meta mark & 0xffffc3ff | 0x00000300
}
chain mwan3_iface_in_wanb_6 {
iifname "eth0" ip6 saddr @mwan3_connected_v6 meta mark & 0x00003f00 == 0x00000000 meta mark set meta mark | 0x00003f00
iifname "eth0" ip6 saddr @mwan3_custom_v6 meta mark & 0x00003f00 == 0x00000000 meta mark set meta mark | 0x00003f00
iifname "eth0" ip6 saddr @mwan3_dynamic_v6 meta mark & 0x00003f00 == 0x00000000 meta mark set meta mark | 0x00003f00
iifname "eth0" meta mark & 0x00003f00 == 0x00000000 meta mark set meta mark & 0xffffc4ff | 0x00000400
}
chain mwan3_prerouting {
type filter hook prerouting priority mangle + 1; policy accept;
icmpv6 type { nd-router-solicit, nd-router-advert, nd-neighbor-solicit, nd-neighbor-advert, nd-redirect } accept
meta mark & 0x00003f00 == 0x00000000 ct mark & 0x00003f00 vmap { 0x00000100 : jump mwan3_or_meta_0x100, 0x00000200 : jump mwan3_or_meta_0x200, 0x00000300 : jump mwan3_or_meta_0x300, 0x00000400 : jump mwan3_or_meta_0x400, 0x00000500 : jump mwan3_or_meta_0x500, 0x00000600 : jump mwan3_or_meta_0x600, 0x00000700 : jump mwan3_or_meta_0x700, 0x00000800 : jump mwan3_or_meta_0x800, 0x00000900 : jump mwan3_or_meta_0x900, 0x00000a00 : jump mwan3_or_meta_0xa00, 0x00000b00 : jump mwan3_or_meta_0xb00, 0x00000c00 : jump mwan3_or_meta_0xc00, 0x00000d00 : jump mwan3_or_meta_0xd00, 0x00000e00 : jump mwan3_or_meta_0xe00, 0x00000f00 : jump mwan3_or_meta_0xf00, 0x00001000 : jump mwan3_or_meta_0x1000, 0x00001100 : jump mwan3_or_meta_0x1100, 0x00001200 : jump mwan3_or_meta_0x1200, 0x00001300 : jump mwan3_or_meta_0x1300, 0x00001400 : jump mwan3_or_meta_0x1400, 0x00001500 : jump mwan3_or_meta_0x1500, 0x00001600 : jump mwan3_or_meta_0x1600, 0x00001700 : jump mwan3_or_meta_0x1700, 0x00001800 : jump mwan3_or_meta_0x1800, 0x00001900 : jump mwan3_or_meta_0x1900, 0x00001a00 : jump mwan3_or_meta_0x1a00, 0x00001b00 : jump mwan3_or_meta_0x1b00, 0x00001c00 : jump mwan3_or_meta_0x1c00, 0x00001d00 : jump mwan3_or_meta_0x1d00, 0x00001e00 : jump mwan3_or_meta_0x1e00, 0x00001f00 : jump mwan3_or_meta_0x1f00, 0x00002000 : jump mwan3_or_meta_0x2000, 0x00002100 : jump mwan3_or_meta_0x2100, 0x00002200 : jump mwan3_or_meta_0x2200, 0x00002300 : jump mwan3_or_meta_0x2300, 0x00002400 : jump mwan3_or_meta_0x2400, 0x00002500 : jump mwan3_or_meta_0x2500, 0x00002600 : jump mwan3_or_meta_0x2600, 0x00002700 : jump mwan3_or_meta_0x2700, 0x00002800 : jump mwan3_or_meta_0x2800, 0x00002900 : jump mwan3_or_meta_0x2900, 0x00002a00 : jump mwan3_or_meta_0x2a00, 0x00002b00 : jump mwan3_or_meta_0x2b00, 0x00002c00 : jump mwan3_or_meta_0x2c00, 0x00002d00 : jump mwan3_or_meta_0x2d00, 0x00002e00 : jump mwan3_or_meta_0x2e00, 0x00002f00 : jump mwan3_or_meta_0x2f00, 0x00003000 : jump mwan3_or_meta_0x3000, 0x00003100 : jump mwan3_or_meta_0x3100, 0x00003200 : jump mwan3_or_meta_0x3200, 0x00003300 : jump mwan3_or_meta_0x3300, 0x00003400 : jump mwan3_or_meta_0x3400, 0x00003500 : jump mwan3_or_meta_0x3500, 0x00003600 : jump mwan3_or_meta_0x3600, 0x00003700 : jump mwan3_or_meta_0x3700, 0x00003800 : jump mwan3_or_meta_0x3800, 0x00003900 : jump mwan3_or_meta_0x3900, 0x00003a00 : jump mwan3_or_meta_0x3a00, 0x00003b00 : jump mwan3_or_meta_0x3b00, 0x00003c00 : jump mwan3_or_meta_0x3c00, 0x00003d00 : jump mwan3_or_meta_0x3d00, 0x00003e00 : jump mwan3_or_meta_0x3e00, 0x00003f00 : jump mwan3_or_meta_0x3f00 }
meta mark & 0x00003f00 == 0x00000000 jump mwan3_ifaces_in
meta mark & 0x00003f00 == 0x00000000 jump mwan3_custom
meta mark & 0x00003f00 == 0x00000000 jump mwan3_connected
meta mark & 0x00003f00 == 0x00000000 jump mwan3_dynamic
meta mark & 0x00003f00 == 0x00000000 jump mwan3_rules
ct mark set ct mark & 0xffffc0ff
meta mark & 0x00003f00 vmap { 0x00000100 : jump mwan3_or_ct_0x100, 0x00000200 : jump mwan3_or_ct_0x200, 0x00000300 : jump mwan3_or_ct_0x300, 0x00000400 : jump mwan3_or_ct_0x400, 0x00000500 : jump mwan3_or_ct_0x500, 0x00000600 : jump mwan3_or_ct_0x600, 0x00000700 : jump mwan3_or_ct_0x700, 0x00000800 : jump mwan3_or_ct_0x800, 0x00000900 : jump mwan3_or_ct_0x900, 0x00000a00 : jump mwan3_or_ct_0xa00, 0x00000b00 : jump mwan3_or_ct_0xb00, 0x00000c00 : jump mwan3_or_ct_0xc00, 0x00000d00 : jump mwan3_or_ct_0xd00, 0x00000e00 : jump mwan3_or_ct_0xe00, 0x00000f00 : jump mwan3_or_ct_0xf00, 0x00001000 : jump mwan3_or_ct_0x1000, 0x00001100 : jump mwan3_or_ct_0x1100, 0x00001200 : jump mwan3_or_ct_0x1200, 0x00001300 : jump mwan3_or_ct_0x1300, 0x00001400 : jump mwan3_or_ct_0x1400, 0x00001500 : jump mwan3_or_ct_0x1500, 0x00001600 : jump mwan3_or_ct_0x1600, 0x00001700 : jump mwan3_or_ct_0x1700, 0x00001800 : jump mwan3_or_ct_0x1800, 0x00001900 : jump mwan3_or_ct_0x1900, 0x00001a00 : jump mwan3_or_ct_0x1a00, 0x00001b00 : jump mwan3_or_ct_0x1b00, 0x00001c00 : jump mwan3_or_ct_0x1c00, 0x00001d00 : jump mwan3_or_ct_0x1d00, 0x00001e00 : jump mwan3_or_ct_0x1e00, 0x00001f00 : jump mwan3_or_ct_0x1f00, 0x00002000 : jump mwan3_or_ct_0x2000, 0x00002100 : jump mwan3_or_ct_0x2100, 0x00002200 : jump mwan3_or_ct_0x2200, 0x00002300 : jump mwan3_or_ct_0x2300, 0x00002400 : jump mwan3_or_ct_0x2400, 0x00002500 : jump mwan3_or_ct_0x2500, 0x00002600 : jump mwan3_or_ct_0x2600, 0x00002700 : jump mwan3_or_ct_0x2700, 0x00002800 : jump mwan3_or_ct_0x2800, 0x00002900 : jump mwan3_or_ct_0x2900, 0x00002a00 : jump mwan3_or_ct_0x2a00, 0x00002b00 : jump mwan3_or_ct_0x2b00, 0x00002c00 : jump mwan3_or_ct_0x2c00, 0x00002d00 : jump mwan3_or_ct_0x2d00, 0x00002e00 : jump mwan3_or_ct_0x2e00, 0x00002f00 : jump mwan3_or_ct_0x2f00, 0x00003000 : jump mwan3_or_ct_0x3000, 0x00003100 : jump mwan3_or_ct_0x3100, 0x00003200 : jump mwan3_or_ct_0x3200, 0x00003300 : jump mwan3_or_ct_0x3300, 0x00003400 : jump mwan3_or_ct_0x3400, 0x00003500 : jump mwan3_or_ct_0x3500, 0x00003600 : jump mwan3_or_ct_0x3600, 0x00003700 : jump mwan3_or_ct_0x3700, 0x00003800 : jump mwan3_or_ct_0x3800, 0x00003900 : jump mwan3_or_ct_0x3900, 0x00003a00 : jump mwan3_or_ct_0x3a00, 0x00003b00 : jump mwan3_or_ct_0x3b00, 0x00003c00 : jump mwan3_or_ct_0x3c00, 0x00003d00 : jump mwan3_or_ct_0x3d00, 0x00003e00 : jump mwan3_or_ct_0x3e00, 0x00003f00 : jump mwan3_or_ct_0x3f00 }
meta mark & 0x00003f00 != 0x00003f00 jump mwan3_custom
meta mark & 0x00003f00 != 0x00003f00 jump mwan3_connected
meta mark & 0x00003f00 != 0x00003f00 jump mwan3_dynamic
}
chain mwan3_output {
type route hook output priority mangle + 1; policy accept;
meta mark & 0x00003f00 == 0x00000000 ct mark & 0x00003f00 vmap { 0x00000100 : jump mwan3_or_meta_0x100, 0x00000200 : jump mwan3_or_meta_0x200, 0x00000300 : jump mwan3_or_meta_0x300, 0x00000400 : jump mwan3_or_meta_0x400, 0x00000500 : jump mwan3_or_meta_0x500, 0x00000600 : jump mwan3_or_meta_0x600, 0x00000700 : jump mwan3_or_meta_0x700, 0x00000800 : jump mwan3_or_meta_0x800, 0x00000900 : jump mwan3_or_meta_0x900, 0x00000a00 : jump mwan3_or_meta_0xa00, 0x00000b00 : jump mwan3_or_meta_0xb00, 0x00000c00 : jump mwan3_or_meta_0xc00, 0x00000d00 : jump mwan3_or_meta_0xd00, 0x00000e00 : jump mwan3_or_meta_0xe00, 0x00000f00 : jump mwan3_or_meta_0xf00, 0x00001000 : jump mwan3_or_meta_0x1000, 0x00001100 : jump mwan3_or_meta_0x1100, 0x00001200 : jump mwan3_or_meta_0x1200, 0x00001300 : jump mwan3_or_meta_0x1300, 0x00001400 : jump mwan3_or_meta_0x1400, 0x00001500 : jump mwan3_or_meta_0x1500, 0x00001600 : jump mwan3_or_meta_0x1600, 0x00001700 : jump mwan3_or_meta_0x1700, 0x00001800 : jump mwan3_or_meta_0x1800, 0x00001900 : jump mwan3_or_meta_0x1900, 0x00001a00 : jump mwan3_or_meta_0x1a00, 0x00001b00 : jump mwan3_or_meta_0x1b00, 0x00001c00 : jump mwan3_or_meta_0x1c00, 0x00001d00 : jump mwan3_or_meta_0x1d00, 0x00001e00 : jump mwan3_or_meta_0x1e00, 0x00001f00 : jump mwan3_or_meta_0x1f00, 0x00002000 : jump mwan3_or_meta_0x2000, 0x00002100 : jump mwan3_or_meta_0x2100, 0x00002200 : jump mwan3_or_meta_0x2200, 0x00002300 : jump mwan3_or_meta_0x2300, 0x00002400 : jump mwan3_or_meta_0x2400, 0x00002500 : jump mwan3_or_meta_0x2500, 0x00002600 : jump mwan3_or_meta_0x2600, 0x00002700 : jump mwan3_or_meta_0x2700, 0x00002800 : jump mwan3_or_meta_0x2800, 0x00002900 : jump mwan3_or_meta_0x2900, 0x00002a00 : jump mwan3_or_meta_0x2a00, 0x00002b00 : jump mwan3_or_meta_0x2b00, 0x00002c00 : jump mwan3_or_meta_0x2c00, 0x00002d00 : jump mwan3_or_meta_0x2d00, 0x00002e00 : jump mwan3_or_meta_0x2e00, 0x00002f00 : jump mwan3_or_meta_0x2f00, 0x00003000 : jump mwan3_or_meta_0x3000, 0x00003100 : jump mwan3_or_meta_0x3100, 0x00003200 : jump mwan3_or_meta_0x3200, 0x00003300 : jump mwan3_or_meta_0x3300, 0x00003400 : jump mwan3_or_meta_0x3400, 0x00003500 : jump mwan3_or_meta_0x3500, 0x00003600 : jump mwan3_or_meta_0x3600, 0x00003700 : jump mwan3_or_meta_0x3700, 0x00003800 : jump mwan3_or_meta_0x3800, 0x00003900 : jump mwan3_or_meta_0x3900, 0x00003a00 : jump mwan3_or_meta_0x3a00, 0x00003b00 : jump mwan3_or_meta_0x3b00, 0x00003c00 : jump mwan3_or_meta_0x3c00, 0x00003d00 : jump mwan3_or_meta_0x3d00, 0x00003e00 : jump mwan3_or_meta_0x3e00, 0x00003f00 : jump mwan3_or_meta_0x3f00 }
meta mark & 0x00003f00 == 0x00000000 jump mwan3_ifaces_in
meta mark & 0x00003f00 == 0x00000000 jump mwan3_custom
meta mark & 0x00003f00 == 0x00000000 jump mwan3_connected
meta mark & 0x00003f00 == 0x00000000 jump mwan3_dynamic
meta mark & 0x00003f00 == 0x00000000 jump mwan3_rules
ct mark set ct mark & 0xffffc0ff
meta mark & 0x00003f00 vmap { 0x00000100 : jump mwan3_or_ct_0x100, 0x00000200 : jump mwan3_or_ct_0x200, 0x00000300 : jump mwan3_or_ct_0x300, 0x00000400 : jump mwan3_or_ct_0x400, 0x00000500 : jump mwan3_or_ct_0x500, 0x00000600 : jump mwan3_or_ct_0x600, 0x00000700 : jump mwan3_or_ct_0x700, 0x00000800 : jump mwan3_or_ct_0x800, 0x00000900 : jump mwan3_or_ct_0x900, 0x00000a00 : jump mwan3_or_ct_0xa00, 0x00000b00 : jump mwan3_or_ct_0xb00, 0x00000c00 : jump mwan3_or_ct_0xc00, 0x00000d00 : jump mwan3_or_ct_0xd00, 0x00000e00 : jump mwan3_or_ct_0xe00, 0x00000f00 : jump mwan3_or_ct_0xf00, 0x00001000 : jump mwan3_or_ct_0x1000, 0x00001100 : jump mwan3_or_ct_0x1100, 0x00001200 : jump mwan3_or_ct_0x1200, 0x00001300 : jump mwan3_or_ct_0x1300, 0x00001400 : jump mwan3_or_ct_0x1400, 0x00001500 : jump mwan3_or_ct_0x1500, 0x00001600 : jump mwan3_or_ct_0x1600, 0x00001700 : jump mwan3_or_ct_0x1700, 0x00001800 : jump mwan3_or_ct_0x1800, 0x00001900 : jump mwan3_or_ct_0x1900, 0x00001a00 : jump mwan3_or_ct_0x1a00, 0x00001b00 : jump mwan3_or_ct_0x1b00, 0x00001c00 : jump mwan3_or_ct_0x1c00, 0x00001d00 : jump mwan3_or_ct_0x1d00, 0x00001e00 : jump mwan3_or_ct_0x1e00, 0x00001f00 : jump mwan3_or_ct_0x1f00, 0x00002000 : jump mwan3_or_ct_0x2000, 0x00002100 : jump mwan3_or_ct_0x2100, 0x00002200 : jump mwan3_or_ct_0x2200, 0x00002300 : jump mwan3_or_ct_0x2300, 0x00002400 : jump mwan3_or_ct_0x2400, 0x00002500 : jump mwan3_or_ct_0x2500, 0x00002600 : jump mwan3_or_ct_0x2600, 0x00002700 : jump mwan3_or_ct_0x2700, 0x00002800 : jump mwan3_or_ct_0x2800, 0x00002900 : jump mwan3_or_ct_0x2900, 0x00002a00 : jump mwan3_or_ct_0x2a00, 0x00002b00 : jump mwan3_or_ct_0x2b00, 0x00002c00 : jump mwan3_or_ct_0x2c00, 0x00002d00 : jump mwan3_or_ct_0x2d00, 0x00002e00 : jump mwan3_or_ct_0x2e00, 0x00002f00 : jump mwan3_or_ct_0x2f00, 0x00003000 : jump mwan3_or_ct_0x3000, 0x00003100 : jump mwan3_or_ct_0x3100, 0x00003200 : jump mwan3_or_ct_0x3200, 0x00003300 : jump mwan3_or_ct_0x3300, 0x00003400 : jump mwan3_or_ct_0x3400, 0x00003500 : jump mwan3_or_ct_0x3500, 0x00003600 : jump mwan3_or_ct_0x3600, 0x00003700 : jump mwan3_or_ct_0x3700, 0x00003800 : jump mwan3_or_ct_0x3800, 0x00003900 : jump mwan3_or_ct_0x3900, 0x00003a00 : jump mwan3_or_ct_0x3a00, 0x00003b00 : jump mwan3_or_ct_0x3b00, 0x00003c00 : jump mwan3_or_ct_0x3c00, 0x00003d00 : jump mwan3_or_ct_0x3d00, 0x00003e00 : jump mwan3_or_ct_0x3e00, 0x00003f00 : jump mwan3_or_ct_0x3f00 }
meta mark & 0x00003f00 != 0x00003f00 jump mwan3_custom
meta mark & 0x00003f00 != 0x00003f00 jump mwan3_connected
meta mark & 0x00003f00 != 0x00003f00 jump mwan3_dynamic
}
chain mwan3_postrouting {
type nat hook postrouting priority srcnat - 1; policy accept;
}
chain mwan3_or_meta_0x100 {
meta mark set meta mark | 0x00000100
}
chain mwan3_or_ct_0x100 {
ct mark set ct mark | 0x00000100
}
chain mwan3_or_meta_0x200 {
meta mark set meta mark | 0x00000200
}
chain mwan3_or_ct_0x200 {
ct mark set ct mark | 0x00000200
}
chain mwan3_or_meta_0x300 {
meta mark set meta mark | 0x00000300
}
chain mwan3_or_ct_0x300 {
ct mark set ct mark | 0x00000300
}
chain mwan3_or_meta_0x400 {
meta mark set meta mark | 0x00000400
}
chain mwan3_or_ct_0x400 {
ct mark set ct mark | 0x00000400
}
chain mwan3_or_meta_0x500 {
meta mark set meta mark | 0x00000500
}
chain mwan3_or_ct_0x500 {
ct mark set ct mark | 0x00000500
}
chain mwan3_or_meta_0x600 {
meta mark set meta mark | 0x00000600
}
chain mwan3_or_ct_0x600 {
ct mark set ct mark | 0x00000600
}
chain mwan3_or_meta_0x700 {
meta mark set meta mark | 0x00000700
}
chain mwan3_or_ct_0x700 {
ct mark set ct mark | 0x00000700
}
chain mwan3_or_meta_0x800 {
meta mark set meta mark | 0x00000800
}
chain mwan3_or_ct_0x800 {
ct mark set ct mark | 0x00000800
}
chain mwan3_or_meta_0x900 {
meta mark set meta mark | 0x00000900
}
chain mwan3_or_ct_0x900 {
ct mark set ct mark | 0x00000900
}
chain mwan3_or_meta_0xa00 {
meta mark set meta mark | 0x00000a00
}
chain mwan3_or_ct_0xa00 {
ct mark set ct mark | 0x00000a00
}
chain mwan3_or_meta_0xb00 {
meta mark set meta mark | 0x00000b00
}
chain mwan3_or_ct_0xb00 {
ct mark set ct mark | 0x00000b00
}
chain mwan3_or_meta_0xc00 {
meta mark set meta mark | 0x00000c00
}
chain mwan3_or_ct_0xc00 {
ct mark set ct mark | 0x00000c00
}
chain mwan3_or_meta_0xd00 {
meta mark set meta mark | 0x00000d00
}
chain mwan3_or_ct_0xd00 {
ct mark set ct mark | 0x00000d00
}
chain mwan3_or_meta_0xe00 {
meta mark set meta mark | 0x00000e00
}
chain mwan3_or_ct_0xe00 {
ct mark set ct mark | 0x00000e00
}
chain mwan3_or_meta_0xf00 {
meta mark set meta mark | 0x00000f00
}
chain mwan3_or_ct_0xf00 {
ct mark set ct mark | 0x00000f00
}
chain mwan3_or_meta_0x1000 {
meta mark set meta mark | 0x00001000
}
chain mwan3_or_ct_0x1000 {
ct mark set ct mark | 0x00001000
}
chain mwan3_or_meta_0x1100 {
meta mark set meta mark | 0x00001100
}
chain mwan3_or_ct_0x1100 {
ct mark set ct mark | 0x00001100
}
chain mwan3_or_meta_0x1200 {
meta mark set meta mark | 0x00001200
}
chain mwan3_or_ct_0x1200 {
ct mark set ct mark | 0x00001200
}
chain mwan3_or_meta_0x1300 {
meta mark set meta mark | 0x00001300
}
chain mwan3_or_ct_0x1300 {
ct mark set ct mark | 0x00001300
}
chain mwan3_or_meta_0x1400 {
meta mark set meta mark | 0x00001400
}
chain mwan3_or_ct_0x1400 {
ct mark set ct mark | 0x00001400
}
chain mwan3_or_meta_0x1500 {
meta mark set meta mark | 0x00001500
}
chain mwan3_or_ct_0x1500 {
ct mark set ct mark | 0x00001500
}
chain mwan3_or_meta_0x1600 {
meta mark set meta mark | 0x00001600
}
chain mwan3_or_ct_0x1600 {
ct mark set ct mark | 0x00001600
}
chain mwan3_or_meta_0x1700 {
meta mark set meta mark | 0x00001700
}
chain mwan3_or_ct_0x1700 {
ct mark set ct mark | 0x00001700
}
chain mwan3_or_meta_0x1800 {
meta mark set meta mark | 0x00001800
}
chain mwan3_or_ct_0x1800 {
ct mark set ct mark | 0x00001800
}
chain mwan3_or_meta_0x1900 {
meta mark set meta mark | 0x00001900
}
chain mwan3_or_ct_0x1900 {
ct mark set ct mark | 0x00001900
}
chain mwan3_or_meta_0x1a00 {
meta mark set meta mark | 0x00001a00
}
chain mwan3_or_ct_0x1a00 {
ct mark set ct mark | 0x00001a00
}
chain mwan3_or_meta_0x1b00 {
meta mark set meta mark | 0x00001b00
}
chain mwan3_or_ct_0x1b00 {
ct mark set ct mark | 0x00001b00
}
chain mwan3_or_meta_0x1c00 {
meta mark set meta mark | 0x00001c00
}
chain mwan3_or_ct_0x1c00 {
ct mark set ct mark | 0x00001c00
}
chain mwan3_or_meta_0x1d00 {
meta mark set meta mark | 0x00001d00
}
chain mwan3_or_ct_0x1d00 {
ct mark set ct mark | 0x00001d00
}
chain mwan3_or_meta_0x1e00 {
meta mark set meta mark | 0x00001e00
}
chain mwan3_or_ct_0x1e00 {
ct mark set ct mark | 0x00001e00
}
chain mwan3_or_meta_0x1f00 {
meta mark set meta mark | 0x00001f00
}
chain mwan3_or_ct_0x1f00 {
ct mark set ct mark | 0x00001f00
}
chain mwan3_or_meta_0x2000 {
meta mark set meta mark | 0x00002000
}
chain mwan3_or_ct_0x2000 {
ct mark set ct mark | 0x00002000
}
chain mwan3_or_meta_0x2100 {
meta mark set meta mark | 0x00002100
}
chain mwan3_or_ct_0x2100 {
ct mark set ct mark | 0x00002100
}
chain mwan3_or_meta_0x2200 {
meta mark set meta mark | 0x00002200
}
chain mwan3_or_ct_0x2200 {
ct mark set ct mark | 0x00002200
}
chain mwan3_or_meta_0x2300 {
meta mark set meta mark | 0x00002300
}
chain mwan3_or_ct_0x2300 {
ct mark set ct mark | 0x00002300
}
chain mwan3_or_meta_0x2400 {
meta mark set meta mark | 0x00002400
}
chain mwan3_or_ct_0x2400 {
ct mark set ct mark | 0x00002400
}
chain mwan3_or_meta_0x2500 {
meta mark set meta mark | 0x00002500
}
chain mwan3_or_ct_0x2500 {
ct mark set ct mark | 0x00002500
}
chain mwan3_or_meta_0x2600 {
meta mark set meta mark | 0x00002600
}
chain mwan3_or_ct_0x2600 {
ct mark set ct mark | 0x00002600
}
chain mwan3_or_meta_0x2700 {
meta mark set meta mark | 0x00002700
}
chain mwan3_or_ct_0x2700 {
ct mark set ct mark | 0x00002700
}
chain mwan3_or_meta_0x2800 {
meta mark set meta mark | 0x00002800
}
chain mwan3_or_ct_0x2800 {
ct mark set ct mark | 0x00002800
}
chain mwan3_or_meta_0x2900 {
meta mark set meta mark | 0x00002900
}
chain mwan3_or_ct_0x2900 {
ct mark set ct mark | 0x00002900
}
chain mwan3_or_meta_0x2a00 {
meta mark set meta mark | 0x00002a00
}
chain mwan3_or_ct_0x2a00 {
ct mark set ct mark | 0x00002a00
}
chain mwan3_or_meta_0x2b00 {
meta mark set meta mark | 0x00002b00
}
chain mwan3_or_ct_0x2b00 {
ct mark set ct mark | 0x00002b00
}
chain mwan3_or_meta_0x2c00 {
meta mark set meta mark | 0x00002c00
}
chain mwan3_or_ct_0x2c00 {
ct mark set ct mark | 0x00002c00
}
chain mwan3_or_meta_0x2d00 {
meta mark set meta mark | 0x00002d00
}
chain mwan3_or_ct_0x2d00 {
ct mark set ct mark | 0x00002d00
}
chain mwan3_or_meta_0x2e00 {
meta mark set meta mark | 0x00002e00
}
chain mwan3_or_ct_0x2e00 {
ct mark set ct mark | 0x00002e00
}
chain mwan3_or_meta_0x2f00 {
meta mark set meta mark | 0x00002f00
}
chain mwan3_or_ct_0x2f00 {
ct mark set ct mark | 0x00002f00
}
chain mwan3_or_meta_0x3000 {
meta mark set meta mark | 0x00003000
}
chain mwan3_or_ct_0x3000 {
ct mark set ct mark | 0x00003000
}
chain mwan3_or_meta_0x3100 {
meta mark set meta mark | 0x00003100
}
chain mwan3_or_ct_0x3100 {
ct mark set ct mark | 0x00003100
}
chain mwan3_or_meta_0x3200 {
meta mark set meta mark | 0x00003200
}
chain mwan3_or_ct_0x3200 {
ct mark set ct mark | 0x00003200
}
chain mwan3_or_meta_0x3300 {
meta mark set meta mark | 0x00003300
}
chain mwan3_or_ct_0x3300 {
ct mark set ct mark | 0x00003300
}
chain mwan3_or_meta_0x3400 {
meta mark set meta mark | 0x00003400
}
chain mwan3_or_ct_0x3400 {
ct mark set ct mark | 0x00003400
}
chain mwan3_or_meta_0x3500 {
meta mark set meta mark | 0x00003500
}
chain mwan3_or_ct_0x3500 {
ct mark set ct mark | 0x00003500
}
chain mwan3_or_meta_0x3600 {
meta mark set meta mark | 0x00003600
}
chain mwan3_or_ct_0x3600 {
ct mark set ct mark | 0x00003600
}
chain mwan3_or_meta_0x3700 {
meta mark set meta mark | 0x00003700
}
chain mwan3_or_ct_0x3700 {
ct mark set ct mark | 0x00003700
}
chain mwan3_or_meta_0x3800 {
meta mark set meta mark | 0x00003800
}
chain mwan3_or_ct_0x3800 {
ct mark set ct mark | 0x00003800
}
chain mwan3_or_meta_0x3900 {
meta mark set meta mark | 0x00003900
}
chain mwan3_or_ct_0x3900 {
ct mark set ct mark | 0x00003900
}
chain mwan3_or_meta_0x3a00 {
meta mark set meta mark | 0x00003a00
}
chain mwan3_or_ct_0x3a00 {
ct mark set ct mark | 0x00003a00
}
chain mwan3_or_meta_0x3b00 {
meta mark set meta mark | 0x00003b00
}
chain mwan3_or_ct_0x3b00 {
ct mark set ct mark | 0x00003b00
}
chain mwan3_or_meta_0x3c00 {
meta mark set meta mark | 0x00003c00
}
chain mwan3_or_ct_0x3c00 {
ct mark set ct mark | 0x00003c00
}
chain mwan3_or_meta_0x3f00 {
meta mark set meta mark | 0x00003f00
}
chain mwan3_or_ct_0x3f00 {
ct mark set ct mark | 0x00003f00
}
chain mwan3_or_meta_0x3d00 {
meta mark set meta mark | 0x00003d00
}
chain mwan3_or_ct_0x3d00 {
ct mark set ct mark | 0x00003d00
}
chain mwan3_or_meta_0x3e00 {
meta mark set meta mark | 0x00003e00
}
chain mwan3_or_ct_0x3e00 {
ct mark set ct mark | 0x00003e00
}
}