# 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-.patch patches/kernel/0002-.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 ` and `scripts/unpatch.sh ` apply/remove the whole series idempotently.