|
| 1 | +# F-Stack FreeBSD 13.0 → 15.0 Upgrade Project — English Brief |
| 2 | + |
| 3 | +> **Note**: The detailed spec markdown collection (47 documents) is maintained in Chinese under `zh_cn/`, by project design — see `zh_cn/plan.md:4` ("English version deferred until after human audit"). The top-tier 3-layer architecture documentation under `docs/01-LAYER1-ARCHITECTURE.md`, `docs/02-LAYER2-INTERFACES.md`, and `docs/03-LAYER3-FUNCTIONS.md` is **fully bilingual** and already contains anchors to every phase below. |
| 4 | +> |
| 5 | +> **Authoritative project-level closure (Chinese)**: `zh_cn/00-project-closure.md` |
| 6 | +
|
| 7 | +## Status |
| 8 | + |
| 9 | +✅ **CLOSED — temporarily wrapped up on 2026-06-09** |
| 10 | + |
| 11 | +## Scope |
| 12 | + |
| 13 | +Port F-Stack from FreeBSD 13.0-RELEASE to FreeBSD 15.0-RELEASE, retaining the full TCP/IP stack with all DPDK / netinet / netinet6 / net/route + FIB rework / netgraph / ipfw / vlan / KTLS-stub coverage, on the v1.26 branch. |
| 14 | + |
| 15 | +## Phases delivered (26 ahead commits, 47 spec markdowns) |
| 16 | + |
| 17 | +| Phase | Outcome | |
| 18 | +|---|---| |
| 19 | +| **M0–M1** spec writing | 9-document spec set + reviewer audit (`99-review-report.md`) | |
| 20 | +| **M2** kern subsystem application | 10 kern files via 5-step procedure (DP-M2-5 option-B remainder closed in Phase-5b) | |
| 21 | +| **M3** netinet/netinet6 application | 4-gradient parallel agent execution; 4×3 build matrix all green | |
| 22 | +| **M4** lib/ff_*.c R-013/R-004 ABI adaptation | Edge subsystem upgrade (spec 05 §2.4); ABI compat audited | |
| 23 | +| **M5** build + runtime + perf baseline | 9 testcases runtime PASS; 6-cell build matrix all green | |
| 24 | +| **runtime-fix** | helloworld primary startup hang root-caused and fixed | |
| 25 | +| **rib-fix** | Phase-5b prerequisite fib_algo regression patched | |
| 26 | +| **independent audit + dual baselines** | CVM + physical-machine 13.0 baselines for cross-validation | |
| 27 | +| **Phase-2 M6** | `FF_NETGRAPH=1` + `FF_IPFW=1` enabled by default; 41 netgraph nodes + 14 ipfw kernel objects in `libfstack.a` (5.4→6.5 MB); 25 MB `tools/sbin/ipfw` user-space binary first produced | |
| 28 | +| **Phase-2 M7** | `FF_USE_PAGE_ARRAY=1`; 481-line `lib/ff_memory.c`; 256 MB one-shot mmap at startup | |
| 29 | +| **Phase-2 M8** | `FF_ZC_SEND=1` with `FSTACK_ZC_MAGIC` sentinel protocol + new `ff_zc_send` API; also fixes a pre-existing 13.0-baseline ZC fast-path mis-predicate bug | |
| 30 | +| **Phase-2 M9** | PA + ZC combo (1-line Makefile change); HTTP 200 + 100/100 short-conn PASS | |
| 31 | +| **Phase-2 M10** | `FF_FLOW_IPIP=1` with software GIF tunnel fallback; ping 3/3 0% loss end-to-end | |
| 32 | +| **Phase-2 M11/M12/M13** | P2 smoke trio: `FF_FLOW_ISOLATE` / `FF_FDIR` / `FF_LOOPBACK_SUPPORT` each enabled with clean lib build + primary alive | |
| 33 | +| **Phase-2 M-Final** | docs sync + KG full re-index (58 171 nodes / 110 704 edges) | |
| 34 | +| **Phase-5b** | 5-config × 2-3 testcase × 3-trial perf baseline matrix; closes M9-F1 + M10-F2; finds F-A1 (HIGH) | |
| 35 | +| **F-A1 fix** | `lib/ff_memory.c:ff_if_send_onepkt` `rte_panic` demoted to non-fatal soft drop; PA-only 1000/1000 curl PASS; **all four configs (C0/C7/C8/C9) production-ready** | |
| 36 | +| **VLAN + vip_addr + ipfw_pr config-layer test (2026-06-09)** | Dual-vlan multi-tenant config-layer acceptance via 4-sub-agent harness; G1/G2/G3/G4 all PASS, BOUNCE 0/3, hard evidence `00010 setfib 0 ip from 192.169.0.0/24 out` + `00020 setfib 1 ip from 192.169.1.0/24 out` from `tools/sbin/ipfw show` matches `ff_veth.c:949 fib_num = vlan_cfg->vlan_idx` exactly | |
| 37 | + |
| 38 | +## Build / runtime / perf acceptance summary |
| 39 | + |
| 40 | +- **Build**: 6 configs all green (C0/C7/C8/C9 + 13.0-baseline + Phase-2 M11/M12/M13 smokes) |
| 41 | +- **Runtime**: helloworld primary stack-up + HTTP 200 + 100/100 short-conn PASS on every config; ipfw / ngctl / GIF tunnel / VLAN+vip+ipfw_pr all functional |
| 42 | +- **Performance**: cross-config baseline matrix in Phase-5b shows 13.0-baseline parity or slight gain; ssh round-trip caps absolute throughput at ~137 conn/s (relative cross-config delta is the meaningful signal) |
| 43 | + |
| 44 | +## Outstanding follow-ups (13 items, none blocking) |
| 45 | + |
| 46 | +- **vlan-test (P3)**: F-V1 loopback ping vip / F-V2 client 802.1Q e2e / F-V3 ifname buffer bug / F-V4 vlan_filter HW filter pushdown / F-V5 G1 reproducibility CI |
| 47 | +- **Phase-2 (P3)**: M11-followup-A multi-queue NIC isolate fallback / M12-followup-B FDIR rule capacity / M13-followup-C FF_LOOPBACK + vlan compat |
| 48 | +- **Audit (P3)**: 4 medium + 12 low severity comments backfill |
| 49 | +- **ABI (P3)**: forward-compat doc for v1.27 sticking |
| 50 | +- **EN-trans (P4)**: zh_cn → en spec full translation, deferred to post-audit per project design |
| 51 | + |
| 52 | +## Compliance |
| 53 | + |
| 54 | +- **Workspace mandates** (DP-10 `rm_tmp_file.sh` / `kill_process.sh` / `chmod_modify.sh`): **0 violations across the entire project lifecycle** |
| 55 | +- **Commit policy**: all 26 ahead commits are local-only; user decides push timing |
| 56 | +- **Cross-source verification**: code ↔ KG ↔ spec ↔ runtime, no inconsistency left unresolved |
| 57 | + |
| 58 | +## Knowledge graph |
| 59 | + |
| 60 | +- `.gitnexus/lbug` synced to HEAD `ba477ac38a3b19d739a18bc8cf98e1c436e13ab4` at 2026-06-09T03:51:35Z |
| 61 | +- 58 171 nodes / 110 704 edges / 1 778 communities / 300 processes |
| 62 | +- Sub-agents may query KG directly to retrieve any phase's code/doc anchors |
| 63 | + |
| 64 | +## Re-entry guide |
| 65 | + |
| 66 | +For anyone (human or AI) picking the project up later: |
| 67 | + |
| 68 | +1. **Top-level overview** — read `docs/freebsd_13_to_15_upgrade_spec/zh_cn/00-project-closure.md` (Chinese, definitive) |
| 69 | +2. **English brief** — this file |
| 70 | +3. **Detailed phase logs** — `zh_cn/<phase>-execution-log.md` for any phase listed above |
| 71 | +4. **Code structure** — `docs/01-LAYER1-ARCHITECTURE.md` (English) / `docs/zh_cn/01-LAYER1-ARCHITECTURE.md` (Chinese), both already updated through vlan-test |
| 72 | +5. **Code-level queries** — query the knowledge graph (`.gitnexus/lbug`) directly |
| 73 | +6. **Commit range** — `cb1fe9950..ba477ac38` covers the entirety of Phase-2 M-Final → vlan-test |
0 commit comments