Files
lgcosta fe324259c0 Screencasts: seis videos silenciosos 1080p30 da demonstracao
Novo pipeline de video: scripts/screencast/render.py roda uma fase em um pty,
emula o terminal com pyte, gera frames PNG e mux com ffmpeg (H.264,
yuv420p, +faststart, sem trilha de audio). Fallback de encoder: libx264 ->
libopenh264 -> VP9.

Fases (scripts/screencast/phases/, uma sessao real contra o lab por video):
  1. implementacao no kernel - fontes OpenBSD + compat + build limpo do pf.ko
  2. ativacao - insmod, /dev/pf, pfctl -e, pfctl -s info
  3. regras basicas - tabela, anchor, keep state, block drop
  4. roteamento - route-to e reply-to (provado com tcpdump nas 2 interfaces)
  5. balanceamento - pool round-robin, pool source-hash, dup-to
  6. QOS - filas hfsc, pfctl -s queue -v, transferencia de 2 MB pela fila

Os videos ficam versionados em out/screencast/ (.gitignore ajustado para
nao ignorar *.mp4) e o indice/texto de descricao do YouTube em
docs/{en,pt-BR}/screencast.md.

Correcoes na propria demo (encontradas gravando): a acao de uma regra no pf
e pass OU block (nunca os dois); as regras de um anchor vivem em um ruleset
proprio (pfctl -a <anchor> -f); o nc do QOS precisa rodar na VM do servidor,
nao no firewall; o rotulo 'FASE x/6' vem do numero da fase, nao da posicao
na lista de gravacao.
2026-11-12 08:41:41 -03:00
..

PF-on-Linux documentation (English)

Documentação em português: docs/pt-BR/README.md.

This is the user documentation set for the port of the OpenBSD 8.0 PF packet filter to Linux 7.3.4 — the real PF engine (pf.c, pf_norm.c, pf_table.c, pf_lb.c, …) running as the out-of-tree module pf.ko, driven by the real OpenBSD pfctl over the /dev/pf ioctl ABI.

Index

Doc What it covers
guide.md One-page architecture: components, data path, control plane, milestones
install.md Apply/build/install recipe (kernel, module, tools)
build.md Build pipeline in detail: fetch → vendorize → kernel → module → pfctl
vm-lab.md The libvirt validation lab: topology, recreate/run, what each gate proves
feature-matrix.md Per-feature status: VERIFIED-in-VM / COMPILES-untested / PENDING-Mx
pf-guide.md Daily use: what works today in /etc/pf.conf, what to avoid until M3/M4
patches.md Linux core patch set (currently empty) + rules and template for future 000N-*.patch
caveats.md Known divergences from OpenBSD behavior and current limitations

Sources of truth

The docs describe the code as it exists in this tree. When in doubt, the authoritative references are:

  • docs/superpowers/specs/2026-11-11-pf-linux-port-design.md — design
  • docs/superpowers/plans/2026-11-11-pf-linux-port.md — milestone plan (tasks T1–T19)
  • docs/porting-notes.md — staging log + M1 deviation record (the truth about compat-layer divergences)

Feature-status vocabulary used across these docs:

  • VERIFIED-in-VM — exercised end-to-end in the libvirt lab (see vm-lab.md).
  • COMPILES-untested — the code is built into pf.ko but no gate has proven the behavior yet.
  • PENDING-Mx — lands (or lands fully) in milestone Mx; current observable behavior is documented.