Commit Graph

  • 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 lgcosta 2026-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 lgcosta 2026-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 lgcosta 2026-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 lgcosta 2026-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 lgcosta 2026-11-12 00:48:56 -03:00
  • ca75fc49cc docs: guide milestone tables synced with the verified state (EN+PT-BR) v0.6.0 lgcosta 2026-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 lgcosta 2026-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 lgcosta 2026-11-11 23:52:11 -03:00
  • 3235af7f0b pools: gate 10 green (round-robin vs source-hash); docs/README/CHANGELOG for 13 gates lgcosta 2026-11-11 23:45:24 -03:00
  • 422a325a56 docs: drop leftover line in pt-BR patches note lgcosta 2026-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 lgcosta 2026-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 lgcosta 2026-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 lgcosta 2026-11-11 23:18:48 -03:00
  • e26c6d4a36 changelog: v0.5.0 (binat, route-to/dup-to, checksum correctness) lgcosta 2026-11-11 23:13:07 -03:00
  • e7e941047f docs: route-to/dup-to verified (matrix EN+PT-BR, guides) lgcosta 2026-11-11 23:11:56 -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 lgcosta 2026-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 lgcosta 2026-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) lgcosta 2026-11-11 22:21:25 -03:00
  • 2668d99d5a binat: gate 07 green (pfctl's nat-to+rdr-to expansion verified both directions); docs updated lgcosta 2026-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 lgcosta 2026-11-11 22:07:45 -03:00
  • 06ad1baa3a runner: deploy pdivert/pflogd alongside pf.ko and pfctl lgcosta 2026-11-11 22:00:15 -03:00
  • f263b63b8e docs: guides reflect verified NAT/redirect/divert/pflog and the fixed state listing; CHANGELOG for v0.4.0 lgcosta 2026-11-11 21:58:57 -03:00
  • 92c015b97b docs: pflog verified (matrix EN+PT-BR, porting notes, README status) lgcosta 2026-11-11 21:53:55 -03:00
  • 7a81076c6a pflog: /dev/pflog chardev backend (BSD pflog_hdr layout, DLT_PFLOG) + tools/pflogd + gate 12 lgcosta 2026-11-11 21:52:36 -03:00
  • dbb21048e4 tests: 06 gate self-sufficient (bracketed pkill patterns, srv cleanup) - avoids cross-run listener contamination lgcosta 2026-11-11 21:35:50 -03:00
  • 0eb040fcc8 docs: rdr-to verified; porting notes on checksum strategy across translation paths (GSO regression) lgcosta 2026-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 lgcosta 2026-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 lgcosta 2026-11-11 20:53:03 -03:00
  • b554c9a6ef demo: ship the asciinema recording in the repo (out/demo-pf-linux.cast) lgcosta 2026-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 lgcosta 2026-11-11 20:33:27 -03:00
  • 2cd13eb806 tests: soak helper ignores the CPU SRSO advisory lgcosta 2026-11-11 20:29:33 -03:00
  • e03df9adc8 docs: data-path semantics and NAT checklist lgcosta 2026-11-11 20:25:57 -03:00
  • 7d1e4b81e9 cleanup: drop debug instrumentation lgcosta 2026-11-11 20:24:53 -03:00
  • f3143a54a8 nat: route the reverse-translated packet with an empty source (kernel rejects non-local saddr) lgcosta 2026-11-11 20:23:44 -03:00
  • 917d3e3fe0 nat: recompute IPv4 header checksum after pf rewrote the addresses (OpenBSD ip_output does this) lgcosta 2026-11-11 20:20:52 -03:00
  • d520172753 nat: re-route inbound packets whose destination pf rewrote (reverse NAT) instead of delivering them locally lgcosta 2026-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 lgcosta 2026-11-11 20:15:35 -03:00
  • c449e01b9a pf: emulate OpenBSD ingress/egress interface groups as any-interface (Linux has no ifgroups) lgcosta 2026-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 lgcosta 2026-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) lgcosta 2026-11-11 19:59:27 -03:00
  • 3aa0c2d0d0 docs: demo guide (asciinema recording/playback/upload) EN+PT-BR lgcosta 2026-11-11 19:56:24 -03:00
  • 66939c839a tests: 04 gate rewritten to OpenBSD-correct anchor semantics (reply is evaluated by the in ruleset); 05 gate uses 8.0 nat-to syntax; 14 quoting fixed; demo session + asciinema recorder lgcosta 2026-11-11 19:54:29 -03:00
  • 444a0555c6 docs: divert verified (matrix + porting notes); FORWARD hook evaluates the out ruleset for transit traffic lgcosta 2026-11-11 19:50:14 -03:00
  • bdf9db7a21 fix: remove leftover debug fragment in pfk_hooks lgcosta 2026-11-11 19:45:43 -03:00
  • 57ecc15606 divert: end-to-end working (network-order port, direct IN-verdict handoff, L2-synth reinjection, skip-mark anti-loop, pdivert ICMP checksum fix) lgcosta 2026-11-11 19:45:29 -03:00
  • 4728648a0c divert: consume PF_TAG_DIVERTED after passthrough (BSD ip_input role); divert layer owns its own skb ref; gate uses pfput path lgcosta 2026-11-11 19:19:53 -03:00
  • da1f678125 divert: fix NULL-deref on empty listener list (wedged pf0 in gate 11); gate 11 pdivert path; runner accepts gate filter arg lgcosta 2026-11-11 19:15:48 -03:00
  • fd0be917fe tests: 14-soak gate (state/traffic soak, dmesg clean, unload/reload cycles, slab delta) lgcosta 2026-11-11 19:14:27 -03:00
  • 4994c577cd tests: divert gate syntax fixed (divert-to <host> port <n>), pdivert deploy; new 05-nat gate (nat-to egress, tcpdump proof) lgcosta 2026-11-11 19:13:00 -03:00
  • 7014628e8d M2: refcnt_rele polarity, radix SALEN by family, LIST_HEAD dispatch + harness scp-failure hardening (gates 01-03 green) lgcosta 2026-11-11 19:11:25 -03:00
  • 493ec25fb3 tests: 11-divert gate design (noport drop + pdivert rewrite proof) lgcosta 2026-11-11 18:52:57 -03:00
  • 1ec52e890d tools: build pdivert (static), single 'all' target lgcosta 2026-11-11 18:50:56 -03:00
  • 0fe4d83b93 docs: divert status corrected after AF_DIVERT restore (COMPILES untested, M4 e2e gate defined) lgcosta 2026-11-11 18:50:29 -03:00
  • ac56534c3b AF_DIVERT family restored & compiling: full socket family (PF_DIVERT=32, sock_register), blocking recv/poll, divert_output-compatible sendmsg reinject, mtag type passthrough; pfk_api decls lgcosta 2026-11-11 18:47:04 -03:00
  • fe6f767561 queue.h: arg-count dispatch so BSD LIST_HEAD(name,type) and Linux LIST_HEAD(name) coexist lgcosta 2026-11-11 18:44:22 -03:00
  • f121f496b4 patches infra: empty-by-design series + apply/unpatch mechanism (verified: zero missing exports via modpost) lgcosta 2026-11-11 18:26:07 -03:00
  • 50389d0d39 tools: pdivert — userspace relay for in-module AF_DIVERT family (M4 pending e2e) lgcosta 2026-11-11 18:25:05 -03:00
  • 2690d6145c tests: deterministic runner (per-gate VM reset), hardened unload path lgcosta 2026-11-11 18:03:57 -03:00
  • a0941b77fe M2 data path: BSD netisr workqueue + lock reentrancy fixes + diagnostics lgcosta 2026-11-11 17:05:53 -03:00
  • 5323ee2c71 M2: live netfilter data path (pf_test per direction), pfattach bring-up, NET_LOCK reentrancy fix, static pfctl lgcosta 2026-11-11 15:20:01 -03:00
  • 0119e70960 M1: pf.c compiles into pf.ko lgcosta 2026-11-11 14:55:20 -03:00
  • 1fcd7b3046 M1 progress: engine port compiles except pf.c; AF_DIVERT socket family; ifq framework lgcosta 2026-11-11 13:35:53 -03:00
  • a84b2c91f3 M1: vendored sha2/md5 (OpenBSD 8.0) + endian/swap compat; module builds green lgcosta 2026-11-11 12:20:27 -03:00
  • da2e9b679a M1: compat layer + pf.ko skeleton builds against Linux 7.3.4 lgcosta 2026-11-11 12:09:34 -03:00
  • ba81284bd3 chore: repo scaffold, READMEs (EN/pt-BR), version pins, source fetch+vendorize scripts lgcosta 2026-11-11 11:26:43 -03:00