|
3 | 3 | F-Stack is an open source network framework based on DPDK. |
4 | 4 |
|
5 | 5 |
|
| 6 | +## 2026.10 F-Stack v2.0 |
| 7 | + |
| 8 | +1. F-Stack lib: |
| 9 | + |
| 10 | +- Support single-process multi-thread mode (`thread_mode=1`). |
| 11 | +- Add `primary_slim` mode, the primary keeps no rx/tx queue. Ref #1078. |
| 12 | +- Add `graceful_reload` for nginx, HUP reload is lossless. |
| 13 | +- Support lossless binary upgrade with USR2 under `graceful_reload=1`. |
| 14 | +- Dispatch UDP flows across graceful reload. |
| 15 | +- Add `drain_ring_size`, `reload_heartbeat_timeout_ms` and `reload_udp_idle_ms` in config.ini. |
| 16 | +- Add `idle_loop_interval` in config.ini. |
| 17 | +- Add `ff_regist_idle_callback()` and `ff_unregist_idle_callback()`. |
| 18 | +- Add LRO offload with software fallback, and improve TSO for IPv6. |
| 19 | +- Support runtime MTU change and jumbo frames. |
| 20 | +- Add mbuf water-level backpressure. Thanks @Sai-Raveendra-Kandregula |
| 21 | +- Add fine-grained TX checksum offload control. Thanks @vincentmli |
| 22 | +- Add `extra_eal_args` config option. Thanks @whatmatrix |
| 23 | +- Add zero-copy receive `ff_zc_recv()`, and rework `ff_zc_send()` without the magic sentinel. |
| 24 | +- Add `FF_KERNEL_COEXIST` for kernel stack coexistence. |
| 25 | +- Optimize `ff_rss_check()` with `rte_thash_adjust_tuple()`, and support IPv6. |
| 26 | +- Run RSS aware port selection for IPv6 outbound connects. |
| 27 | +- Add `ff_regist_packet_dispatcher_context()`. @jinliu777 |
| 28 | +- Support nanosecond timestamp precision in pcap dump. |
| 29 | +- Recognize IPv6 L4 checksum offload flags in `ff_mbuf_tx_offload()`. |
| 30 | +- Fix the BBR large-file hang. |
| 31 | +- Add a cmocka based unit test framework. |
| 32 | + |
| 33 | +1. adapter |
| 34 | + |
| 35 | +- Add lock-free ring IPC for LD_PRELOAD (`FF_USE_RING_IPC`). |
| 36 | +- Map Linux `SO_TIMESTAMP` to FreeBSD. @tarun-t |
| 37 | +- Propagate the DPDK mbuf RX timestamp to the FreeBSD mbuf. @tarun-t |
| 38 | +- Fix the `ioctl` conflicting types compile error on older glibc. |
| 39 | +- Add an addrlen check in `ff_hook_bind()` (#1068). |
| 40 | + |
| 41 | +1. FreeBSD |
| 42 | + |
| 43 | +- Upgrade to FreeBSD-releng-15.0. |
| 44 | +- Fix TCP timers never being armed (`callout_when()` was an empty stub). |
| 45 | +- Fix EVFILT_TIMER precision of kqueue. Thanks @vanlink |
| 46 | + |
| 47 | +1. ff tools |
| 48 | + |
| 49 | +- Let the F-Stack tools find a stack by themselves (#419). @alberthaolihai |
| 50 | +- Let `ff_top` and `ff_traffic` follow a graceful reload. |
| 51 | +- Support cross-generation addressing with `-p` and `-g`. |
| 52 | +- Fix IPFW crash when the rule list is large. Thanks @chocosnat |
| 53 | +- Fix start.sh lcore_mask parsing to ignore commented lines. |
| 54 | +- Fix ff tools build error with gcc-15.2.0 in ubuntu-26.04. |
| 55 | + |
| 56 | +1. DPDK: |
| 57 | + |
| 58 | +- Upgrade to DPDK-24.11.8(LTS). |
| 59 | +- Fix the secondary process resetting the NIC (#860). |
| 60 | +- Fix an infinite loop when a DPDK secondary process restarts. @jinliu777 |
| 61 | +- Fix the vmxnet3 `rss_key_len` in RSS mode. @WK-Tseng |
| 62 | +- Fix build with GCC 15 and DPDK 25.11. @tarun-t |
| 63 | +- Bump black, cryptography and pynacl in /dpdk/dts. @dependabot[bot] |
| 64 | + |
| 65 | +1. APP |
| 66 | + |
| 67 | +- Nginx: lossless reload (HUP) and binary upgrade (USR2). |
| 68 | +- Nginx: dispatch UDP flows across reload. |
| 69 | +- Nginx: fix a SIGSEGV in stream udp proxying. |
| 70 | +- Nginx: add a reverse-proxy example with buffer settings. |
| 71 | +- Redis: fix the build when the jemalloc configure script is missing (#802). |
| 72 | + |
| 73 | +1. example |
| 74 | + |
| 75 | +- Make helloworld thread-safe for `thread_mode=1`. |
| 76 | +- Add a UDP echo server example (#1063). |
| 77 | + |
| 78 | +1. doc: |
| 79 | + |
| 80 | +- Add three-layer architecture docs and knowledge graph. |
| 81 | +- Add F-Stack 2.0 preview blogs in Chinese and English. |
| 82 | +- Update the nginx guide for graceful reload. |
| 83 | +- Document the executable bits and symlink loss when the tree is copied from Windows. |
| 84 | + |
| 85 | + |
6 | 86 | ## 2025.11 F-Stack v1.25 |
7 | 87 |
|
8 | 88 | 1. F-Stack lib: |
|
0 commit comments