mirror of
https://github.com/lgcosta/pf-linux-port.git
synced 2026-11-12 22:48:03 -03:00
The manual is the from-zero path on Debian 13 (trixie): packages, the 7.3.4 kernel tree, pf.ko, the userland, the libvirt lab, the gate suite, the stress test and running PF on the host itself. Every command in it was executed on the lab's Debian 13.7 host, including the toolchain report and the kernel.org checksum. Trixie ships gcc 14 and no gcc-15; the kernel and pf.ko build with gcc 14 unpatched, so the manual documents that instead of the gcc >= 15 the generic install guide asks for.
Documentação do PF-on-Linux (português)
English documentation: docs/en/README.md.
Este é o conjunto de documentação de usuário do port do packet filter do
OpenBSD 8.0 (PF) para o Linux 7.3.4 — o engine PF real (pf.c,
pf_norm.c, pf_table.c, pf_lb.c, hfsc.c, …) rodando como o módulo
out-of-tree pf.ko, controlado pelo pfctl real do OpenBSD sobre a ABI ioctl
de /dev/pf.
Índice
| Doc | O que cobre |
|---|---|
| guide.md | Arquitetura em uma página: componentes, caminho de dados, plano de controle, milestones |
| install.md | Receita de apply/build/install (kernel, módulo, ferramentas) |
| build.md | Pipeline de build em detalhe: fetch → vendorize → kernel → módulo → pfctl |
| vm-lab.md | O lab de validação em libvirt: topologia, recriar/rodar, o que cada um dos 15 gates prova |
| feature-matrix.md | Status por feature: VERIFIED-in-VM / VERIFIED-offline / COMPILES-untested / NOT-ENABLED |
| pf-guide.md | Uso diário: o que funciona hoje em /etc/pf.conf e as divergências a conhecer |
| screencast.md | Os vídeos narrados (inglês e português): fases, pipeline, como regravar |
| patches.md | Conjunto de patches de core do Linux (hoje vazio) + regras e template para futuros 000N-*.patch |
| caveats.md | Divergências conhecidas em relação ao OpenBSD e limitações atuais |
Fontes da verdade
Os docs descrevem o código como ele existe nesta árvore. Na dúvida, as referências autoritativas são:
docs/superpowers/specs/2026-11-11-pf-linux-port-design.md— designdocs/superpowers/plans/2026-11-11-pf-linux-port.md— plano dos milestones (tarefas T1–T19)docs/porting-notes.md— log de staging + registro das divergências (a verdade sobre as divergências da camada de compat)
Vocabulário de status usado nestes docs:
- VERIFIED-in-VM — exercitado de ponta a ponta no lab libvirt; o gate que prova está nomeado (veja vm-lab.md).
- VERIFIED-offline — provado por um teste de fixture ou de ABI, não por tráfego.
- COMPILES-untested — o código é compilado dentro do
pf.ko/pfctlmas nenhum gate o exercitou. - NOT-ENABLED — o código existe mas a feature está desligada neste build.
- OUT-OF-SCOPE — fora de escopo por desenho (spec §3).
A suíte do lab está 15/15 verde (./scripts/vm-run-tests.sh).