M1 progress: engine port compiles except pf.c; AF_DIVERT socket family; ifq framework
- compat layer extended through the full BSD API surface pf_ioctl/pf_lb/ pf_if/pf_norm/pf_table/pf_ruleset/radix/md5/sha2 need (all compile): cpumem/counters model, ifaddr/ifg groups, cred view, endian+in6 names, NAT46/64, SipHash24, mbuf_list, frag6 helpers, ip6 forward/checksum, tcp options/FSM names, taskqueue & sysctl shims (documented in docs/porting-notes.md) - pfsrc/divert_sock.c: real BSD divert(4) as runtime-registered PF_DIVERT=32 socket family inside the module (sock_register; NPROTO=AF_MAX=45 -> zero core patches); divert_packet/divert6_packet wired for pf.c - compat/pfk_ifq.c: OpenBSD 8.0 ifq framework with priq back end; hfsc and fq_codel aliases pending M5 (recorded in feature matrix as pending) - design + plan updated for the divert decision (user-requested) - stage-port.sh: single deterministic rename program for headers and .c
This commit is contained in:
1 parent
a84b2c91f3
commit
1fcd7b3046
77 files changed
+28002
-1114
No files matched your search
+19
-9
@@ -1,17 +1,27 @@
|
||||
# PF-on-Linux kernel module build (out-of-tree)
|
||||
# Build: make -C /path/to/linux-7.3.4 M=$PWD (or scripts/build-module.sh)
|
||||
#
|
||||
# -D_KERNEL=1 selects the kernel-side branches of the staged OpenBSD sources
|
||||
# (the same files also contain userland-only code guarded by #ifndef _KERNEL).
|
||||
ccflags-y := -I$(src)/include -I$(src)/include/compat -DPFLINUX=1 \
|
||||
-Wno-declaration-after-statement
|
||||
-D_KERNEL=1 \
|
||||
-Wno-declaration-after-statement \
|
||||
-Wno-implicit-fallthrough \
|
||||
-Wno-frame-larger-than
|
||||
|
||||
# M1 skeleton set — staged engine files (pf.c, pf_ioctl.c, ...) are added
|
||||
# per plan tasks T7b/T10/T11/T12; keep list explicit (no wildcards).
|
||||
# our glue + compat layer
|
||||
pf-objs := pfsrc/pfk_mod.o pfsrc/pfk_hooks.o \
|
||||
compat/pfk_mbuf.o compat/pfk_kern.o compat/pfk_if.o compat/pfk_xmit.o \
|
||||
compat/siphash.o compat/toeplitz.o compat/md5.o compat/sha2.o
|
||||
# staged BSD sources (uncomment as ported):
|
||||
# pf-objs += compat/sha2.o compat/sha1.o compat/siphash.o compat/toeplitz.o
|
||||
# pf-objs += compat/radix.o compat/rtable.o
|
||||
# pf-objs += pfsrc/pf.o pfsrc/pf_ioctl.o pfsrc/pf_norm.o pfsrc/pf_if.o pfsrc/pf_lb.o
|
||||
# pf-objs += pfsrc/pf_ruleset.o pfsrc/pf_table.o pfsrc/pf_osfp.o pfsrc/pf_syncookies.o
|
||||
compat/siphash.o compat/toeplitz.o compat/md5.o compat/sha2.o \
|
||||
compat/radix.o compat/pfk_rtable.o compat/pfk_ip6.o
|
||||
|
||||
# ported OpenBSD 8.0 engine
|
||||
pf-objs += pfsrc/pf_ruleset.o pfsrc/pf_table.o pfsrc/pf_norm.o pfsrc/pf_if.o \
|
||||
pfsrc/pf_lb.o pfsrc/pf_osfp.o pfsrc/pf_syncookies.o \
|
||||
pfsrc/pf_ioctl.o pfsrc/pf.o pfsrc/divert_sock.o
|
||||
|
||||
# queueing framework (compat/pfk_ifq.c implements the ifq API with priq
|
||||
# semantics; the OpenBSD hfsc/fq_codel back ends land in milestone M5)
|
||||
pf-objs += compat/pfk_ifq.o
|
||||
|
||||
obj-m := pf.o
|
||||
Reference in new issue
Block a user