34 lines
1.3 KiB
Markdown
34 lines
1.3 KiB
Markdown
# Kernel core patches — PF-on-Linux
|
|
|
|
**Current state: the patch set is EMPTY by design.**
|
|
|
|
The port is an out-of-tree module (`module/pf.ko`). The only kernel-tree
|
|
prerequisite is a *configured build* of Linux 7.3.4 (`scripts/build-kernel.sh`:
|
|
defconfig + virtio/EXT4 built-in + `modules_prepare`), which touches **no
|
|
source file**.
|
|
|
|
## Verification that nothing is exported-missing
|
|
|
|
`modpost` reports **zero undefined symbols** for pf.ko against stock 7.3.4
|
|
(M1, 2026-11-11; tracked in docs/porting-notes.md). When future milestones
|
|
(M4 divert, M5 pfq qdisc, M6 hardening) hit a non-exported helper, the
|
|
requirement is recorded here as `p1-needs.txt` entries and materialized as:
|
|
|
|
```
|
|
patches/kernel/0001-<slug>.patch
|
|
patches/kernel/0002-<slug>.patch
|
|
...
|
|
patches/kernel/series # ordered list consumed by apply-patches.sh
|
|
```
|
|
|
|
## Rules every patch must satisfy
|
|
|
|
1. Additive only: `EXPORT_SYMBOL*()` lines or Kconfig/Makefile hooks — never
|
|
behavior changes to existing code paths.
|
|
2. One logical change per patch; subject lines prefixed `net: export ...` /
|
|
`pf_port: ...`.
|
|
3. Each patch gets a matching section in `docs/en/patches.md` and
|
|
`docs/pt-BR/patches.md`: what / why / where / impact / revert.
|
|
4. `scripts/apply-patches.sh <kerneldir>` and `scripts/unpatch.sh <kerneldir>`
|
|
apply/remove the whole series idempotently.
|