90c51f43fc
M5: queue gate 15 green (hfsc in the data path, pfctl -s queue works); vendor OpenBSD net/hfsc.h + net/fq_codel.h so kernel and pfctl share the ABI; pflog payload anchored; splassert no longer BUGs
main
v0.8.0
lgcosta2026-11-12 03:10:46 -03:00
4bade69cf9
docs: queue status honest - attach path reached, purge lock assert documented as the blocker (caveats #9)
v0.7.0
lgcosta2026-11-12 01:42:51 -03:00
ccad35b247
hfsc: fix class-handle collision (root class used bit 0x1, colliding with odd pf qids -> pfq_addqueue EBUSY); guard against NULL discipline; drop debug prints
lgcosta2026-11-12 01:40:49 -03:00
14ff7d1c39
ifq: real ifq_start (drain+transmit), dequeue cookie fix, pf_kifq_input hook in the data path; 14/14 suite unchanged
lgcosta2026-11-12 01:15:26 -03:00
f34c4f92a9
M5 step 1: build OpenBSD hfsc/fq_codel back ends into pf.ko (ml_* API, ifq_q handshake, scheduler types); priq still attached, 14/14 suite unchanged
lgcosta2026-11-12 00:48:56 -03:00
ca75fc49cc
docs: guide milestone tables synced with the verified state (EN+PT-BR)
v0.6.0
lgcosta2026-11-11 23:59:03 -03:00
12e9c1a2f3
reply-to: gate 13 green (reply forced onto the gateway link); docs/README/CHANGELOG for 14 gates
lgcosta2026-11-11 23:56:01 -03:00
c2d1fc4c53
docs: fail-to is not an OpenBSD 8.0 keyword (removed upstream) - correct all references; reply-to gate added
lgcosta2026-11-11 23:52:11 -03:00
3235af7f0b
pools: gate 10 green (round-robin vs source-hash); docs/README/CHANGELOG for 13 gates
lgcosta2026-11-11 23:45:24 -03:00
422a325a56
docs: drop leftover line in pt-BR patches note
lgcosta2026-11-11 23:37:38 -03:00
80396e0b36
docs: patches helpers are in tree (verified PATCHES_APPLIED=0 / UNPATCH_DONE); route pool gate 10 written
lgcosta2026-11-11 23:37:02 -03:00
b3e7358868
scrub: gate 09 green (min-ttl/max-mss measured on egress); matrix + guides updated EN+PT-BR
lgcosta2026-11-11 23:32:32 -03:00
251e5c09e0
demo+docs: 11-step recording (adds route-to), README status for 11/11 gates
v0.5.0
lgcosta2026-11-11 23:18:48 -03:00
1bda8b4fa2
route-to: forced nexthop via rt_gw4/rt_gw_family (Linux resolves neighbours from the gateway only when the route says so); cleanup of debug instrumentation
lgcosta2026-11-11 23:08:11 -03:00
dc73274b19
route-to: fix skb reference imbalance in if_output_tso (stack output consumed the queue's ref -> double kfree_skb, wedging the box); look up the forced route by destination only
lgcosta2026-11-11 22:35:05 -03:00
ecab31d704
docs: caveats EN+PT-BR updated to the verified state (hook order, soak, states, divert/pflog consumers)
lgcosta2026-11-11 22:21:25 -03:00
2668d99d5a
binat: gate 07 green (pfctl's nat-to+rdr-to expansion verified both directions); docs updated
lgcosta2026-11-11 22:14:44 -03:00
bc5b8a4a1e
demo: pflog step in the asciinema recording (pflogd: 2 records, DLT_PFLOG pcap); re-recorded cast
v0.4.0
lgcosta2026-11-11 22:07:45 -03:00
0eb040fcc8
docs: rdr-to verified; porting notes on checksum strategy across translation paths (GSO regression)
lgcosta2026-11-11 21:27:32 -03:00
5af7adb08e
checksums: GSO-aware recompute after translation (software for plain skbs, CHECKSUM_PARTIAL for GSO); 06 gate asserts 2MB integrity through rdr
lgcosta2026-11-11 21:24:41 -03:00
d9fc3a7e3f
checksums: materialize CHECKSUM_PARTIAL before pf so address-rewrite fixups operate on real values; new 06-rdr gate
lgcosta2026-11-11 20:53:03 -03:00
b554c9a6ef
demo: ship the asciinema recording in the repo (out/demo-pf-linux.cast)
lgcosta2026-11-11 20:33:57 -03:00
6cc4e21ae2
docs+demo: asciinema recording of the lab (stateful filtering, tables, drop, NAT, divert); README/matrix reflect the verified state
lgcosta2026-11-11 20:33:27 -03:00
2cd13eb806
tests: soak helper ignores the CPU SRSO advisory
lgcosta2026-11-11 20:29:33 -03:00
e03df9adc8
docs: data-path semantics and NAT checklist
lgcosta2026-11-11 20:25:57 -03:00
7d1e4b81e9
cleanup: drop debug instrumentation
lgcosta2026-11-11 20:24:53 -03:00
f3143a54a8
nat: route the reverse-translated packet with an empty source (kernel rejects non-local saddr)
lgcosta2026-11-11 20:23:44 -03:00
917d3e3fe0
nat: recompute IPv4 header checksum after pf rewrote the addresses (OpenBSD ip_output does this)
lgcosta2026-11-11 20:20:52 -03:00
d520172753
nat: re-route inbound packets whose destination pf rewrote (reverse NAT) instead of delivering them locally
lgcosta2026-11-11 20:17:27 -03:00
9c3c4b6bbc
fix: skb->mark masks were multi-bit (IN mark matched OUT test) - transit traffic never reached the out ruleset; ingress/egress interface groups; pfctl resolves (egress) pool locally
lgcosta2026-11-11 20:15:35 -03:00
c449e01b9a
pf: emulate OpenBSD ingress/egress interface groups as any-interface (Linux has no ifgroups)
lgcosta2026-11-11 20:07:17 -03:00
525fe7ee28
tests: gate assertions corrected (pfctl state format, transit egress device, CPU SRSO advisory excluded); Makefile demo target
lgcosta2026-11-11 20:04:16 -03:00
18c0a69f74
tests: soak gate via uploaded helper (quoting), 04/05 assertions fixed (pf interface name vs OS device)
lgcosta2026-11-11 19:59:27 -03:00