Repository navigation
Releases: F-Stack/f-stack
Releases · F-Stack/f-stack
Release list
v2.0
2026.10 F-Stack v2.0
- F-Stack lib:
- Support single-process multi-thread mode (
thread_mode=1). - Add
primary_slimmode, the primary keeps no rx/tx queue. Ref #1078. - Add
graceful_reloadfor nginx, HUP reload is lossless. - Support lossless binary upgrade with USR2 under
graceful_reload=1. - Dispatch UDP flows across graceful reload.
- Add
drain_ring_size,reload_heartbeat_timeout_msandreload_udp_idle_msin config.ini. - Add
idle_loop_intervalin config.ini. - Add
ff_regist_idle_callback()andff_unregist_idle_callback(). - Add LRO offload with software fallback, and improve TSO for IPv6.
- Support runtime MTU change and jumbo frames.
- Add mbuf water-level backpressure. Thanks @Sai-Raveendra-Kandregula
- Add fine-grained TX checksum offload control. Thanks @vincentmli
- Add
extra_eal_argsconfig option. Thanks @whatmatrix - Add zero-copy receive
ff_zc_recv(), and reworkff_zc_send()without the magic sentinel. - Add
FF_KERNEL_COEXISTfor kernel stack coexistence. - Optimize
ff_rss_check()withrte_thash_adjust_tuple(), and support IPv6. - Run RSS aware port selection for IPv6 outbound connects.
- Add
ff_regist_packet_dispatcher_context(). @jinliu777 - Support nanosecond timestamp precision in pcap dump.
- Recognize IPv6 L4 checksum offload flags in
ff_mbuf_tx_offload(). - Fix the BBR large-file hang.
- Add a cmocka based unit test framework.
- adapter
- Add lock-free ring IPC for LD_PRELOAD (
FF_USE_RING_IPC). - Map Linux
SO_TIMESTAMPto FreeBSD. @tarun-t - Propagate the DPDK mbuf RX timestamp to the FreeBSD mbuf. @tarun-t
- Fix the
ioctlconflicting types compile error on older glibc. - Add an addrlen check in
ff_hook_bind()(#1068).
- FreeBSD
- Upgrade to FreeBSD-releng-15.0.
- Fix TCP timers never being armed (
callout_when()was an empty stub). - Fix EVFILT_TIMER precision of kqueue. Thanks @vanlink
- ff tools
- Let the F-Stack tools find a stack by themselves (#419). @alberthaolihai
- Let
ff_topandff_trafficfollow a graceful reload. - Support cross-generation addressing with
-pand-g. - Fix IPFW crash when the rule list is large. Thanks @chocosnat
- Fix start.sh lcore_mask parsing to ignore commented lines.
- Fix ff tools build error with gcc-15.2.0 in ubuntu-26.04.
- DPDK:
- Upgrade to DPDK-24.11.8(LTS).
- Fix the secondary process resetting the NIC (#860).
- Fix an infinite loop when a DPDK secondary process restarts. @jinliu777
- Fix the vmxnet3
rss_key_lenin RSS mode. @WK-Tseng - Fix build with GCC 15 and DPDK 25.11. @tarun-t
- Bump black, cryptography and pynacl in /dpdk/dts. @dependabot[bot]
- APP
- Nginx: lossless reload (HUP) and binary upgrade (USR2).
- Nginx: dispatch UDP flows across reload.
- Nginx: fix a SIGSEGV in stream udp proxying.
- Nginx: add a reverse-proxy example with buffer settings.
- Redis: fix the build when the jemalloc configure script is missing (#802).
- example
- Make helloworld thread-safe for
thread_mode=1. - Add a UDP echo server example (#1063).
- doc:
- Add three-layer architecture docs and knowledge graph.
- Add F-Stack 2.0 preview blogs in Chinese and English.
- Update the nginx guide for graceful reload.
- Document the executable bits and symlink loss when the tree is copied from Windows.
v1.21.7(LTS)
2026.10 F-Stack v1.21.7(LTS)
- F-Stack lib:
- Port kernel-stack coexistence from release/2.0.
- Port LRO support and TSO improvements from branch of dev.
- Fix software LRO crash on flush by setting mbuf rcvif.
- Port MTU change (jumbo frame) support from branch of dev.
- Port IPv6 RSS check static-table support from branch of dev.
- Run RSS aware port selection for IPv6 outbound connects.
- Support nanosecond timestamp precision in pcap dump.
- Add mbuf water-level backpressure for high connection rate scenarios. Thanks @Sai-Raveendra-Kandregula
- Add fine-grained TX checksum offload control in config.ini. Thanks @vincentmli
- Add extra_eal_args config option for generic DPDK EAL argument passthrough. Thanks @whatmatrix
- Add ff_accept4 API with LINUX_SOCK_CLOEXEC/LINUX_SOCK_NONBLOCK support. @liujinhui-job
- Add an API ff_regist_packet_dispatcher_context that allows to pass more context to callback. @jinliu777
- Fix a build error on DPDK 19.11 by using PKT_RX_VLAN_STRIPPED.
- FreeBSD:
- Port IPv6 RSS check static-table support from branch of dev.
- Fix EVFILT_TIMER precision of kqueue. Thanks @vanlink
- ff tools:
- Fix IPFW crash when the rule list is large. Thanks @chocosnat
- Fix start.sh lcore_mask parsing to ignore commented lines.
- APP:
- Nginx: fix a SIGSEGV in stream udp proxying, upstream connections have no c->listening.
- doc:
- Replace dpdk-setup.sh with 'make config T=x86_64-native-linuxapp-gcc' and point FF_DPDK/insmod paths to dpdk/build in docs and Makefiles.
- Document how to restore the executable bits and the symlink lost when sources are copied from Windows.
1.25
2025.11 F-Stack v1.25(LTS)
- F-Stack lib:
- Support CI. @shanakaprageeth
- set the IP-type flag for tx_csum_l4 offload. @zcjie1
- m_gethdr will call m_pkthdr_init also, so there is no need to initialize it again. @liujinhui-job
- add tcp/udp loopback support, we can send packet through lo dev. @liujinhui-job
- fix dev_info.hash_key_size is 0 init_port_start failed. @liujinhui-job
- Add support for custom install prefix. @Clcanny
- Disable RSS if hardware does not support it. @Clcanny
- add __recv_chk/__read_chk/__recvfrom_chk. @liujinhui-job
- Change ff config pci whitelist to allow. @liujinhui-job
- Add inner IP and port-based flow steering capabilities for the IPIP protocol.(Authors: Zhiwen Wang @hirowang1, Huiqin Zhang).
- ff_ipfw support ip_fw_pmod and tcpmod for tcp-setmss.
- f-stack supports the socket options IP_TRANSPARENT and IPV6_TRANSPARENT. Nginx does not require additional checks, and the translation for IPV6_PKTINFO has been added. @wenchengji159357
- Modify usleep to rte_delay_us_sleep.
- Remove some useless code of kni.
- ff_traffic support rx_dropped and tx_dropped.
- fix ff toos issue for mlx5 drivers.
- Support bind no port like linux's IP_BIND_ADDRESS_NO_PORT.
- Add the feature fo ff_rss_check table to improve the performance of ff_rss_check(). See https://github.com/F-Stack/f-stack/wiki/%E2%80%8B%E2%80%8BF%E2%80%90Stack-ff_rss_check()-Optimization-Introduction%E2%80%8B
- Added the -Wextra compilation option and fixed compilation errors.
- Add ff_log mod, that encapsulates some interfaces of the rte_log module.
- Remove the code for rte_kni.ko, only retain virtio.
- Add some cleanup action, however, it is incomplete.
- adapter
- fix compile syscall directory compile issue. @liujinhui-job
- add ld_preload mode fcntl linux flags convert to freebsd. @liujinhui-job
- add epoll polling mode, improve latency performance in RTT mode. @liujinhui-job
- ff_hook_recvfrom sh_fromlen not init, ff_sys_recvfrom will return -1. @liujinhui-job
- add fork support, like linux kernel, every process has one freebsd struct thread. @liujinhui-job
- Add select interface support. @liujinhui-job
- add accept4 support, and LINUX_SOCK_CLOEXEC/LINUX_SOCK_NONBLOCK support for ff_socket. @liujinhui-job
- FreeBSD
- Add the feature fo ff_rss_check table to improve the performance of ff_rss_check(). See https://github.com/F-Stack/f-stack/wiki/%E2%80%8B%E2%80%8BF%E2%80%90Stack-ff_rss_check()-Optimization-Introduction%E2%80%8B
- ff toos
- update tools/compat/include/sys/*.h.
- ff_traffic support rx_dropped and tx_dropped.
- DPDK
- DPDK: Upgrade to 23.11.5.
- Build fix : Copy missing igb_uio.c to build dir. @richqubit
- Modify real_if_indextoname return value and type. @GiannisLi
- APP
- Nginx: Upgrad to Nginx-1.28.0. @jinliu777
- Nginx: f-stack supports the socket options IP_TRANSPARENT and IPV6_TRANSPARENT. Nginx does not require additional checks, and the translation for IPV6_PKTINFO has been added. @wenchengji159357
- Redis: Fix Redis Lua security vulnerabilities (CVE-2024-31449, CVE-2025-29844, CVE-2025-46817, CVE-2025-46819). @KIMDONGYEON00
- doc
- Add wiki and deepwiki link in README.
- Remove the relevant content for rte_kni.ko from the documentation.
1.21.6
2025.11 F-Stack v1.21.6(LTS)
- F-Stack lib:
- Support bind no port like linux's IP_BIND_ADDRESS_NO_PORT.
- Add inner IP and port-based flow steering capabilities for the IPIP protocol.(Authors: Zhiwen Wang @hirowang1, Huiqin Zhang).
- Modify usleep to rte_delay_us_sleep.
- Add viritio support for kni.
- Build netgraph and ipfw by default.
- Disable RSS if hardware does not support it. @Clcanny
- ff_traffic support rx_dropped and tx_dropped.
- Added the -Wextra compilation option and fixed compilation errors.
- Add ff_log mod, that encapsulates some interfaces of the rte_log module.
- set the IP-type flag for tx_csum_l4 offload. @zcjie1
- Add ff_stop_run to stop the poll loop. @renzibei
- Add some cleanup action, however, it is incomplete.
- Add the feature fo ff_rss_check table to improve the performance of ff_rss_check(). See https://github.com/F-Stack/f-stack/wiki/%E2%80%8B%E2%80%8BF%E2%80%90Stack-ff_rss_check()-Optimization-Introduction%E2%80%8B
- FreeBSD
- Add the feature fo ff_rss_check table to improve the performance of ff_rss_check(). See https://github.com/F-Stack/f-stack/wiki/%E2%80%8B%E2%80%8BF%E2%80%90Stack-ff_rss_check()-Optimization-Introduction%E2%80%8B
- ff toos
- ff_traffic support rx_dropped and tx_dropped.
- DPDK
- Modify real_if_indextoname return value and type. @GiannisLi
- APP
- Nginx: Adapt nginx-1.28.0 to f-stack. @jinliu777
v.1.21.5
2024.10 F-Stack v1.21.5(LTS)
- F-Stack lib:
- Modify ff_port_cfg.port_id's type from uint8_t to unint16_t.
- Modify INI_MAX_LINE from 200 to 2048 in lib/ff_ini_parser.h.
- IPv6 addr and vaddr set autoconf by default.
- Modify IPv4 vip addrs' broadaddr from x.x.x.255 to x.x.x.x, same as vip addr, because vips' netmask only support
255.255.255.255now. - Add APi ff_dpdk_raw_packet_send to suppoort RAW packet send direty with DPDK by user APP not via socket.
- Support automatic configuration of vlan and vlan ip, routing and the simplest policy routing.
- Use soclose() instead of sofree() when initializing the configuration stack IP.
- Support KNI ratelimit, default disable.
- The msghdr.msg_iov->iov_base and msghdr.msg_iov->iov_len of ff_sendmsg() and ff_recvmsg() compatible with the Linux.
- FreeBSD
- Fix issue in Freebsd when building with GCC 14.1.0. @bjosv
- ff toos
- Fix ff tools build error with gcc-13.2.0.
- DPDK
- Fix some build errors of dpdk-19.11.14 with gcc-13.2.0.
- APP
- Nginx: Nginx's stream support transparent.
- doc
- Update ff tools README.md, use
ff_netstat -rnWto display wider device name. - Fix a typo in doc/F-Stack_Nginx_APP_Guide.md: "kernel_network_stack" -> "proxy_kernel_network_stack".
1.24
2024.10 F-Stack v1.24
- F-Stack lib, Sync some features from branch of dev:
- Restore vEth0 to veth0 now.
- Add kni type argument in config.ini and FF_KNI_KNI in lib/Makefile to set exception path type.
- FF_FLOW_ISOLATE support DPDK-22.11.
- Add net.add_addr_allfibs=1 in config.ini.
- gettimeofday automatically compatible with different glibc versions.
- Add an API ff_get_traffic to get traffic for QoS or other.
- Add ff_stop_run to stop the poll loop. @renzibei
- Add POSIX Like functions for pthread_create and pthread_join. @radu Nichita
- Fix pthread issue. @vitaly Pavlov
- Fix a build error with gcc-4.8.5.
- Modify ff_port_cfg.port_id's type from uint8_t to unint16_t.
- Modify INI_MAX_LINE from 200 to 2048 in lib/ff_ini_parser.h.
- IPv6 addr and vaddr set autoconf by default.
- Modify IPv4 vip addrs' broadaddr from x.x.x.255 to x.x.x.x, same as vip addr, because vips' netmask only support
255.255.255.255now. - Add APi ff_dpdk_raw_packet_send to suppoort RAW packet send direty with DPDK by user APP not via socket.
- Support automatic configuration of vlan and vlan ip, routing and the simplest policy routing.
- Use soclose() instead of sofree() when initializing the configuration stack IP.
- Support KNI ratelimit, default disable.
- The msghdr.msg_iov->iov_base and msghdr.msg_iov->iov_len of ff_sendmsg() and ff_recvmsg() compatible with the Linux.
- FreeBSD
- Add atomic_fcmpset_int32.
- Fix some build errors of freebsd with gcc-12.2.0.
- For f-stack to support QAT accelerator cards. @wenchengJi.
- Fix some build errors of freebsd with gcc-13.2.0.
- Fix issue in Freebsd when building with GCC 14.1.0. @bjosv
- ff toos
- Fix ff tools build error with gcc-13.2.0.
- Fix netstat tool compilation on linux. Support
mawkof ubuntu. @taras
- DPDK
- DPDK: Upgrade to 22.11.6.
- Fix a compilation warning of drivers mlx5.
- Bump black from 22.10.0 to 24.3.0 in /dpdk/dts. @dependabot[bot]
- kni_net.c compatible with -Wstringop-overflow with different gcc versions.
- APP
- Nginx: gettimeofday automatically compatible with different glibc versions.
- Nginx: Nginx's stream support transparent.
- adapter
- syscall: Fix cplen calculation errors in ff_hook_syscall.c. @zhaozihanzzh
- syscall: Close kernel epoll fd in ff_hook_close when using FF_KERNEL_EVENT. @zhaozihanzzh
- doc
- modify doc that re-enable kni now, to remove kni later.
- Modify nginx-1.16.1 to nginx-1.25.2 in docs.
- Remove doc/F-Stack_Binary_Release_Quick_Start.md.
- chore: update freebsd version in readme. @Jamlee
- Update ff tools README.md, use
ff_netstat -rnWto display wider device name. - Update F-Stack_Quick_Start_Guide.md, add a cmd. @万能的翔王大人
- Fix a typo in doc/F-Stack_Nginx_APP_Guide.md: "kernel_network_stack" -> "proxy_kernel_network_stack".
- Disable build driver crypto/openssl for Redhat/Centos 7.x.
v1.21.4(LTS)
2023.10 F-Stack v1.21.4(LTS)
- F-Stack lib:
- Add vlan_filter argument in config.ini for RSS with vlan.
- Set Rx VLAN filter, and then the dirvier(such as MLX5) will set FLOW RSS to enable L3/L4 RSS below vlan hdr. This action won't need after DPDK-20.11.
- Fix Compile Error with gcc 12.2.0.
- gettimeofday automatically compatible with different glibc versions.
- Add an API ff_get_traffic to get traffic for QoS or other.
- ff tools:
- Fix Compile Error with gcc 12.2.0.
- APP:
- gettimeofday automatically compatible with different glibc versions.
v1.23
2023.09 F-Stack v1.23
- F-Stack lib, Sync some features from branch of dev:
- Added FDIR using general flow rules. @guhaoyu2005.
- Added more clear error message in case of failed config read. @d06alexandrov.
- vlan_strip support kni.
- Removed deleted sources from Makefile. @d06alexandrov.
- make it compilable under O2 optimization, pass gcc check. @renzibei.
- enable -O2 by default. Ref #711 #721.
- Fix #702 F-stack rack and BBR both causes PCB memory leak.
- tcp: Missing mfree in rack and bbr.
- when nginx use setsockopt ON_LINGER, the seq number of the RST packet is error. @wenchengji159357.
- While use bbr, the hz should be set to 1000000, match the bintime and timer of F-Stack. Ref #701 #702.
- Redis can listen IPv6 address.
- Fix Compile Error with gcc 11.3.0(in Ubuntu 22.04). Close #736.
- Fixed #705. While Adding -DNDEBUG flag will cause the helloworld example.
- Add some description of
ff_socket()andff_write(). Ref #709. - Modify pci_whitelist to allow that from DPDK 20.11. Close #745.
- fix that vtoslab doesn't return the correct slab. @ZhuTian.
- When entering the softclock function for the first time,ticks is 2147423648,cc_softticks is 0. @wenchengji159357.
- Add adapter for LD_PRELOAD. EXPERIMENTAL.
- fix cmsg for sendmsg. @sarosh.
- Fixed an issue that before C99 mode..
- Fiexd some build errors of ipfw on ubuntu 22.04 (kernel:5.19.0-1025, gcc:11.4.0),
- fix some issue of ff_sendmsg and ff_recvmsg.
- Support LINUX_IP_TRANSPARENT and LINUX_IPV6_TRANSPARENT to IP_BINDANY and IPV6_BINDANY in lib/ff_syscall_wrapper.c.
- DPDK:
- DPDK: Upgrade to 21.11.5.
- Fix I40E_DEV_ID_10G_BASE_T_X722 issue.
- Update igb_uio, sync from git://dpdk.org/dpdk-kmods.
- APP:
- Nginx: Upgrade to Nginx-1.25.2 to support HTTP3. EXPERIMENTAL.
- Add adapter for LD_PRELOAD. EXPERIMENTAL.
- move /app/micro_thread to adapter/micro_thread.
- Fix netmask in nginx conf. @jiegec.
- Fiexd some build errors of micro_thread on ubuntu 22.04 (kernel:5.19.0-1025, gcc:11.4.0),
- example:
- Set non blocking in example/main.c. Ref #709.
- Add helloworld_stack_epoll、 main_stack_epoll_pipeline and kevent for LD_PRELOAD demo.
- Fiexd some build errors of example on ubuntu 22.04 (kernel:5.19.0-1025, gcc:11.4.0).
v1.22.1
v1.21.3
2023.09 F-Stack v1.21.3(LTS)
- F-Stack lib, Sync some features from branch of dev:
- vlan_strip support kni.
- Fix Compile Error with gcc 11.3.0(in Ubuntu 22.04).
- Added F-Stack FreeBSD support. see 9f7a142 .
- Enable INET6 by default in helloworld. see 51c91ab .
- Added FDIR support. see 4854315 .
- To avoid compiling errors when gcc version >= 10. see 6daadb0 .
- Modify
struct linux_sockaddrsame tostruct sockaddrin linux. see d96a9d1 . - Sync some modified of ff_config.c, inclue set dpdk log level, Avoid memory leaks, suppor vip_addr and vip_addr6, etc. see git log lib/ff_config.c in branch of dev.
- Sync some modified of ff_syscall_wrapper.c, include ff_sendmsg, ff_recvmsg, ip6_opt_convert, etc. see git log lib/ff_syscall_wrapper.c in branch of dev.
- The CPU usage of packet_dispatcher() is modified to usr. see 0508c8b .
- If process_dispatch_ring() has data packet to be processed and it is considered non-idle state. see 81dd6c7 .
- Fix a plurality of packets may not statistics in ff_traffic.rx_packets and ff_traffic.rx_bytes. see 0b4a084 .
- Added FF_IPSEC=1 in lib/Makefile, disable by default.
- Some other modified.
- DPDK:
- DPDK: Upgrade to 19.11.14(LTS).
- APP:
- Fiexd some build errors of micro_thread on ubuntu 22.04.