-
Notifications
You must be signed in to change notification settings - Fork 953
Comparing changes
Open a pull request
base repository: F-Stack/f-stack
base: dev
head repository: F-Stack/f-stack
compare: feature/1.26
- 15 commits
- 38 files changed
- 1 contributor
Commits on Jun 18, 2026
-
docs: add ff_rss_check optimization spec (zh, spec stage)
Spec for three ff_rss_check optimizations: port-range kernel hook migration to FreeBSD 15.0, IPv6 hash support, and rte_thash_adjust_tuple dynamic-path optimization. Spec stage only (Chinese), no code changes.
Configuration menu - View commit details
-
Copy full SHA for e5389cb - Browse repository at this point
Copy the full SHA e5389cbView commit details -
feat(rss): migrate IPv4 RSS port-range selection hooks to FreeBSD 15.0
Restore the FSTACK RSS local-port selection logic in in_pcb_lport_dest and the ff_in_pcbladdr hook in in_pcbconnect (dropped during the 13.0->15.0 upgrade), adapted to 15.0 (const inpcb, merged in_pcbconnect, RT_ALL_FIBS lookups). INPLOOKUP_LPORT_RSS_CHECK is cleared at entry. Adds 0.1 unit tests and fixes a pre-existing test_ff_dpdk_if link gap (no-op ff_tcp_hpts_softclock stub).
Configuration menu - View commit details
-
Copy full SHA for 22462f5 - Browse repository at this point
Copy the full SHA 22462f5View commit details -
feat(rss): optimize dynamic ff_rss_check via rte_thash_adjust_tuple (…
…IPv4) Add per-port thash ctx (ff_rss_thash_ctx_init) and ff_rss_adjust_sport that reverse-calcs a source port landing on the local queue, with a mandatory ff_rss_check re-verification (zero tolerance for wrong queue) and soft-scan fallback. Wire it as a fast path in in_pcb_lport_dest's table-miss branch, keeping the static-table hit path and macro-off native path byte-identical. Adds 0.3 unit tests incl. an EAL-backed toeplitz/softrss equivalence hit-rate probe (full-loop 100% landing).
Configuration menu - View commit details
-
Copy full SHA for 39f61e0 - Browse repository at this point
Copy the full SHA 39f61e0View commit details -
feat(rss): add IPv6 RSS hash/port-range support (scheme A, independen…
…t v6 path) Add ff_rss_check6/ff_rss_tbl6_*/ff_rss_adjust_sport6 with an independent v6 static table and thash ctx (36B tuple, sport@256bit), plus IPv6 rule parsing in rss_tbl config. Wire v6 into in_pcb_lport_dest as a parallel sa_family branch and into in6_pcbconnect/in6_pcbladdr, keeping the v4 RSS path byte-identical (diff +98/-0). Mandatory ff_rss_check6 re-verification; adds v6 unit tests + hit-rate probe (full-loop 100% landing).
Configuration menu - View commit details
-
Copy full SHA for fe7d190 - Browse repository at this point
Copy the full SHA fe7d190View commit details -
test(rss): add rss_ct connect harness + ff_rss_self_queue_info for on…
…-machine queue verification rss_ct issues N connects and prints the kernel-selected source ports per process/queue; ff_rss_self_queue_info exposes proc/queueid/nb_queues/reta_size (read-only). Used to verify on real NIC that selected sports land on the owning RSS queue.
Configuration menu - View commit details
-
Copy full SHA for 80f6391 - Browse repository at this point
Copy the full SHA 80f6391View commit details -
docs(rss): add ff_rss_check optimization impl/verification report; up…
…date layer3 RSS notes Records R-A/R-B/R-C implementation (commits, functions, line numbers), 31 unit tests with v4/v6 full-loop 100% queue landing, and on-machine verification (q0/q1 200/200 land on owning queue). Notes virtio reta_size=0 thash soft-fallback and no-IPv6-net real-machine limits, both covered by unit tests.
Configuration menu - View commit details
-
Copy full SHA for 9fe2cc2 - Browse repository at this point
Copy the full SHA 9fe2cc2View commit details
Commits on Jun 22, 2026
-
feat(rss): make ff_rss_check re-verify in adjust_sport[6] runtime-gat…
…ed, off by default Add config.ini [rss_check] recheck=0/1 switch. recheck=0 (default) skips the secondary ff_rss_check after rte_thash_adjust_tuple success, realizing ~100 ns/call saving (3 runs: 0.30 vs 99.4 ns/call, ~300x ratio). recheck=1 keeps R-B/R-C zero-tolerance re-verify for debug. Unit tests: 5 new cases + 04-06 enforce recheck=1 on existing hitrate; 36 run, 35 PASSED, 1 SKIPPED (microbench, ctx-unready). Spec: docs/ff_rss_check_opt_spec/zh_cn/ 01-08 R-D sections + 10 §5-bis report. Layer3 §2.4 updated.
Configuration menu - View commit details
-
Copy full SHA for f7fd3b6 - Browse repository at this point
Copy the full SHA f7fd3b6View commit details -
docs: add R-E (IP_BIND_ADDRESS_NO_PORT) spec and gap-scan checklist
Two spec deliverables (docs only, no code changes): 1. ff_rss_check_opt_spec: add requirement 0.5 / milestone R-E for porting upstream commit cb9b4d4 (IP_BIND_ADDRESS_NO_PORT) to FreeBSD 15.0. 15.0 already has the connect-time RSS path (in_pcb_lport_dest with INPLOOKUP_LPORT_RSS_CHECK), so only the bind-side gates are needed: hunk1 in in_pcbbind to skip in_pcbinshash when inp_lport==0, hunk2 in in_pcbbind_setup to skip the early in_pcb_lport call. IPv6 sync is added as recommended (in6_pcbbind delayed allocation + in6_pcbconnect L515 condition relaxation). Covers 10 chapters: overview, requirement, current-state-gap, external-research, design, interface, milestone, test, baseline, review-gate. 2. freebsd_13_to_15_upgrade_spec/04 §11: add gap-scan checklist of 13.0 FSTACK customizations vs current 15.0 tree (10 items, evidence-based with file:line). Final classification: (a) port: #1 IP_BIND v4, #2 v6 sync, #6 ng_socket kldload; (b) already ported via stub: #7/#8 ipfw; (c) not applicable: #3/#4 mcast (15.0 two trees strictly layered, no out-of-bound), #5 require_unique_port (path removed), #9 if_spppsubr.c (file does not exist), #10 namei.h NDFREE (macros refactored). All line numbers verified by grep/read_file.
Configuration menu - View commit details
-
Copy full SHA for 35aa958 - Browse repository at this point
Copy the full SHA 35aa958View commit details -
feat(rss): port IP_BIND_ADDRESS_NO_PORT (bind-then-connect) from upst…
…ream cb9b4d4 to FreeBSD 15.0 Defer source port allocation in in_pcbbind/in6_pcbbind when port==0 so connect() can pick an RSS-aware source port via the R-A INPLOOKUP_LPORT_RSS_CHECK path. v6 connect outer condition is relaxed under FSTACK to (in6p_laddr unspec || inp_lport==0) so bind-then-connect actually enters the RSS branch; the inner in6p_laddr overwrite is now guarded by IN6_IS_ADDR_UNSPECIFIED to preserve a user-bound v6 address. All hunks gated by #ifdef/#ifndef FSTACK; FSTACK off retains native FreeBSD 15.0 semantics (REUSEPORT_LB MPASS at L740 unaffected). Baseline 13.0 contains none of these three hunks; this is a fresh addition rather than a missed-port migration.
Configuration menu - View commit details
-
Copy full SHA for ff9e3c4 - Browse repository at this point
Copy the full SHA ff9e3c4View commit details -
docs(rss): backfill R-E (IP_BIND_ADDRESS_NO_PORT) impl/verification r…
…eport; update layer3 RSS notes Add §6 R-E to ff_rss_check_opt_spec/zh_cn/10-实施与验证报告.md with landing points, build/lint, unit-test zero-regression, static call-chain trace (v4 8 steps + v6 7 steps), on-machine limitations, and 8-gate audit. Rename existing §6 conclusion to §7 and extend it to cover all five optimizations (0.1/0.3/0.2/0.4/0.5). Append one-liner R-E note to docs/03-LAYER3-FUNCTIONS.md RSS section.
Configuration menu - View commit details
-
Copy full SHA for 23e5459 - Browse repository at this point
Copy the full SHA 23e5459View commit details
Commits on Jun 23, 2026
-
Configuration menu - View commit details
-
Copy full SHA for ae5a9f6 - Browse repository at this point
Copy the full SHA ae5a9f6View commit details -
fix(rack): use static inline for tcp_hw_highest_rate to fix -O0 link …
…failure Upstream FreeBSD 15.0 declares tcp_hw_highest_rate with GNU89 `inline` (no `static`); under -O2 it is inlined away, but under -O0 (DEBUG) it emits external references with no out-of-line definition in libfstack.a, breaking example/ and app/nginx linking. Align with the same header's other inline helpers which all use `static inline`.
Configuration menu - View commit details
-
Copy full SHA for 1f29590 - Browse repository at this point
Copy the full SHA 1f29590View commit details
Commits on Jun 24, 2026
-
Configuration menu - View commit details
-
Copy full SHA for c42340d - Browse repository at this point
Copy the full SHA c42340dView commit details
Commits on Jun 25, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 8feb4a9 - Browse repository at this point
Copy the full SHA 8feb4a9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 183054d - Browse repository at this point
Copy the full SHA 183054dView commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff dev...feature/1.26