Skip to content

Releases: F-Stack/f-stack

1.25

04 Nov 10:59

Choose a tag to compare

2025.11 F-Stack v1.25(LTS)

  1. 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.
  1. 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
  1. FreeBSD
  1. ff toos
  • update tools/compat/include/sys/*.h.
  • ff_traffic support rx_dropped and tx_dropped.
  1. 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
  1. 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
  1. doc
  • Add wiki and deepwiki link in README.
  • Remove the relevant content for rte_kni.ko from the documentation.

1.21.6

04 Nov 11:00

Choose a tag to compare

2025.11 F-Stack v1.21.6(LTS)

  1. 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
  1. FreeBSD
  1. ff toos
  • ff_traffic support rx_dropped and tx_dropped.
  1. DPDK
  • Modify real_if_indextoname return value and type. @GiannisLi
  1. APP
  • Nginx: Adapt nginx-1.28.0 to f-stack. @jinliu777

v.1.21.5

18 Oct 10:42

Choose a tag to compare

2024.10 F-Stack v1.21.5(LTS)

  1. 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.255 now.
  • 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.
  1. FreeBSD
  • Fix issue in Freebsd when building with GCC 14.1.0. @bjosv
  1. ff toos
  • Fix ff tools build error with gcc-13.2.0.
  1. DPDK
  • Fix some build errors of dpdk-19.11.14 with gcc-13.2.0.
  1. APP
  • Nginx: Nginx's stream support transparent.
  1. doc
  • Update ff tools README.md, use ff_netstat -rnW to display wider device name.
  • Fix a typo in doc/F-Stack_Nginx_APP_Guide.md: "kernel_network_stack" -> "proxy_kernel_network_stack".

1.24

18 Oct 11:09

Choose a tag to compare

2024.10 F-Stack v1.24

  1. 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.255 now.
  • 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.
  1. 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
  1. ff toos
  • Fix ff tools build error with gcc-13.2.0.
  • Fix netstat tool compilation on linux. Support mawk of ubuntu. @taras
  1. 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.
  1. APP
  • Nginx: gettimeofday automatically compatible with different glibc versions.
  • Nginx: Nginx's stream support transparent.
  1. 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
  1. 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 -rnW to 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)

20 Oct 03:59

Choose a tag to compare

2023.10 F-Stack v1.21.4(LTS)

  1. 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.
  1. ff tools:
  • Fix Compile Error with gcc 12.2.0.
  1. APP:
  • gettimeofday automatically compatible with different glibc versions.

v1.23

13 Sep 08:29

Choose a tag to compare

2023.09 F-Stack v1.23

  1. 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() and ff_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.
  1. 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.
  1. 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),
  1. 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

13 Sep 07:19

Choose a tag to compare

2023.09 F-Stack v1.22.1

  1. F-Stack lib:
  • Fix #702 F-stack rack and BBR both causes PCB memory leak.
  • While use bbr, the hz should be set to 1000000, match the bintime and timer of F-Stack. Ref #701 #702
  • Modify pci_whitelist to allow that from DPDK 20.11. Close #745.
  1. DPDK:
  • Upgrade to DPDK-20.11.9(LTS).

v1.21.3

13 Sep 07:26

Choose a tag to compare

2023.09 F-Stack v1.21.3(LTS)

  1. 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_sockaddr same to struct sockaddr in 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.
  1. DPDK:
  • DPDK: Upgrade to 19.11.14(LTS).
  1. APP:
  • Fiexd some build errors of micro_thread on ubuntu 22.04.

v1.22

02 Sep 12:49
a70f11f

Choose a tag to compare

2022.09 F-Stack v1.22

  1. Freebsd
  • Upgrade to FreeBSD-releng-13.0, support RACK and BBR.
  1. F-Stack lib:
  • Support extra tcp stacks, RACK and BBR. Significantly improves the performance of large file transfer(more than 10 times) in high latency and packet loss scenarios. Thanks @FireAngell.
  • F-Stack support HPTS for RACK and BBR.
  • lo port is added 127.0.0.1 when freebsd init.
  • Fix #643. Fix a VXLAN issue. Thanks @agerguo
  • FF_USE_PAGE_ARRAY compatible DPDK 19.11.
  • Optimize random function in ff_compat.c @dingyuan
  • Enable net.inet.tcp.delayed_ack by default to improve concurrent performance.
  • Support zero copy while call ff_write, disable by default.
  • Fix the bonding issue. @Lorisy @agerguo
  • Fix the issue that ff_netstat -r can't show gateway6.
  • Fix compile error of micro_thread with gcc 8.3. @Xin Wang
  • to avoid compiling errors when gcc version >= 10. @ZZMarquis
  • Support FDIR. @hawkxiang
  • fix use after free issue in mbuf free. @jianfeng Tan
  • Fix #568, Insufficient condition in ff_rte_frm_extcl function. @freak82
  • Add IPv6 net addr parameters in config. @zengyi1001
  • Add ff_regist_pcblddr_fun to regist a pcb lddr function in F-Stack to select source IP when as client.
  • modify struct linux_sockaddr same to struct sockaddr in linux.
  • Support IPPROTO_IPV6's IPV6_V6ONLY and IPV6_RECVPKTINFO. @hawkxiang
  • Support set multi virtual IPv4/IPv6 net addrs in config.ini.
  • Add support for multiple pci_whitelist in config.ini. @ibtisam-tariq
  • Add support to set interface name of each port in config.ini. @ibtisam-tariq
  • ff_syscall_wrapper.c: add linux_cmsghdr and its support in recvmsg add support for IP_RECVTTL and IP_RECVTOS. @FidaullahNoonari-emumba
  • Added F-Stack FreeBSD 13.0 support. @guhaoyu2005
  • Add IP_MINTTL flag in ff_syscall_wrapper.c. @FidaullahNoonari-emumba
  • alows user to set dpdk log level from config.ini file. @Jawad-Hussain-23
  • Fix ff_syscall_wrapper.c: in ff_recvfrom() in case of zero *fromlen, *from will not be filled with garbadge values. @sarosh Arif
  1. DPDK:
  • Upgrade to DPDK-20.11.6(LTS).
  • MLX5: modify if_indextoname syscall to support F-Stack tools.
  1. ff tools
  • Fix bug of ff_ipc_msg_free in ff tools.

  • The ff_traffic and ff_top's -P argument support bigger than 38.

    1. APP
  • Redis: Upgrade to Redis-6.2.6. @glarer

    1. example
  • Enable INET6 by default in helloworld.

v1.21.2(LTS)

02 Sep 08:22
0aa81ab

Choose a tag to compare

2022.09 F-Stack v1.21.2(LTS)

F-Stack lib:

  • Fix #643. Fix a VXLAN issue. Thanks @agerguo
  • FF_USE_PAGE_ARRAY compatible DPDK 19.11.
  • Optimize random function in ff_compat.c @dingyuan
  • Enable net.inet.tcp.delayed_ack by default to improve concurrent performance.
  • Support zero copy while call ff_write, disable by default.
  • Fix the bonding issue. @Lorisy
  • Fix the issue that ff_netstat -r can't show gateway6.

DPDK:

  • Upgrade to DPDK-19.11.13(LTS).