4086a5d5创建于 2025年9月17日历史提交
%define conf_path %{_sysconfdir}/%{name}

Name:          gazelle
Version:       1.0.3
Release:       2
Summary:       gazelle is a high performance user-mode stack
License:       MulanPSL-2.0
URL:           https://gitee.com/openeuler/gazelle
Source0:       %{name}-%{version}.tar.gz

BuildRequires: cmake gcc-c++
BuildRequires: lwip >= 2.2.0-73
BuildRequires: dpdk-devel >= 21.11-5
BuildRequires: numactl-devel libpcap-devel libconfig-devel libboundscheck uthash-devel
%ifarch ppc64le
BuildRequires: libarchive libarchive-devel
%endif

Requires:      dpdk >= 21.11-5
Requires:      numactl libpcap libconfig libboundscheck iproute

Patch9001:     0001-fix-dpdk-19.11-not-support-ring_mt_rts-mempool-ops.patch
Patch9002:     0002-fix-SIGFPE-in-gazelle-init.patch

%description
%{name} is a high performance user-mode stack.

ExclusiveArch: x86_64 aarch64 ppc64le riscv64

%prep
%autosetup -n %{name}-%{version} -p1

%build
#export DPDK_VERSION_1911=1
cd %{_builddir}/%{name}-%{version}
# Add compile option, ignore map address check. Scenarios: asan test
%if 0%{?gazelle_map_addr_nocheck}
    sed -i 's/-pthread/-pthread -D gazelle_map_addr_nocheck/' %{_builddir}/%{name}-%{version}/src/ltran/CMakeLists.txt
%endif
sh build/build.sh

%install
install -dpm 0755 %{buildroot}/%{_bindir}
install -dpm 0755 %{buildroot}/%{_prefix}/lib64
install -dpm 0750 %{buildroot}/%{conf_path}

install -Dpm 0500 %{_builddir}/%{name}-%{version}/src/lstack/liblstack.*     %{buildroot}/%{_libdir}/
install -Dpm 0640 %{_builddir}/%{name}-%{version}/src/lstack/lstack.Makefile %{buildroot}/%{conf_path}/
install -Dpm 0640 %{_builddir}/%{name}-%{version}/src/lstack/lstack.conf     %{buildroot}/%{conf_path}/

install -Dpm 0500 %{_builddir}/%{name}-%{version}/src/ltran/gazellectl       %{buildroot}/%{_bindir}/
install -Dpm 0500 %{_builddir}/%{name}-%{version}/src/ltran/ltran            %{buildroot}/%{_bindir}/
install -Dpm 0640 %{_builddir}/%{name}-%{version}/src/ltran/ltran.conf       %{buildroot}/%{conf_path}/

%files
%defattr(-,root,root)
%dir %{conf_path}
%{_bindir}/*
%{_libdir}/liblstack.*
%{conf_path}/lstack.Makefile
%config(noreplace) %{conf_path}/lstack.conf
%config(noreplace) %{conf_path}/ltran.conf

%changelog
* Wed Sep 17 2025 root <yinbin8@huawei.com> - 1.0.3-2
- fix SIGFPE in gazelle init
- fix dpdk 19.11 not support ring_mt_rts mempool ops

* Fri Aug 1 2025 yinbin <yinbin8@huawei.com> - 1.0.3-1
- update version to 1.0.3

* Wed Jul 09 2025 yinbin6 <yinbin8@huawei.com> - 1.0.2-85
- sockio: fix rpc_send coredump after RPC_MSG_EXIT
- sockio: fix tcp_write not remove EPOLLOUT
- fix 20.03-LTS build failed
- sk_wait: igonre mem_thread flush signal
- sockio: fix sendmbox full return EWOULDBLOCK
- sockio: fix callback_tcp_send output too many at once
- mempool: increase MEM_THREAD_MANAGER_FREE_S to avoid poll
- sockctl: fix rtw broadcast close and shutdown
- poll: fix do_lwip_connected_callback not delete poll kernel fd
- sk_event: fix rtw epoll wrong event notify and remove
- sockio: fix rtw_stack_tcp_write wrong copied_total after append
- epoll: fix do_lwip_connected_callback
- sk_wait: fix lwip_wait_foreach_notify coredump at startup
- socket: fix stack_udp_readmsg return len
- sk_wait: fix sock_wait_common_free socket: simplify calling free_count in rtw_stack_tcp_write
- mbox: fix mbox_ring_common_free coredump when rte_ring_create failed
- sk_wait: fix lwip_tcp_allow_send coredump
- mempool: stop using cache when too many threads
- mempool: fix pthread_tryjoin_np coredump when mysqld shutdown
- mempool: mem_get_rpc add reserve limit
- mempool: fix mbox_ring free not call recv_finish_burst
- mempool: modify mbuf num and rpc_msg num
- socket: fix sk_wait cannot be interrupted by signals
- socket: fix tcp closed
- tcp: add GAZELLE_TCP_ASYNC_RECVD      fix mbuf OOM caused by untimely sockio_peek_recv_free
- socket: fix stack_tcp_read do not recv_finish_burst
- socket: fix connect blocking
- mempool: fix copy_mbuf_private
- dfx: support sk_wait stat
- mempool: add mem_thread_cache_flush          fix PBUF_POOL_PREINIT
- cfg: add mem_async_mode
- cfg: add mem_cache_max and change default rpc_msg_max
- socket: adapt to tcp and udp
- socket: refactor tcp and udp
- socket: adapt to sock_event
- socket: refactor sock_event
- cleancode: remove get_stack_tid DPDK_PKT_BURST_SIZE PACKET_READ_SIZE
- cleancode: remove gazelle_light_ring
- cleancode: add GAZELLE_SAME_NODE
- RTC: fixing program stuck while gazelle exit in multi-threads envirement

* Tue Mar 04 2025 yinbin6 <yinbin8@huawei.com> - 1.0.2-84
- update gazelle max numa nodes 8
- Protocal: fixing deathlock between protocol threads and app thread
- Connect: fix benchmark_dws connect failed
- RTC-mode: fix gazellectl can't print connenct info
- add xdp tx checksum/tso offload

* Fri Jan 17 2025 yinbin6 <yinbin8@huawei.com> - 1.0.2-83
- SIGNAL: block SIGSEGV during exit process
- Stack: unset stack_stop, while stacks exit by rpc message.
- fix the memory leak when using strdup

* Fri Jan 10 2025 yinbin6 <yinbin8@huawei.com> - 1.0.2-82
- DUMP: fix abnomal printing in the dump process.
- SIGNAL: Adjust hijack sigal table to hijack SIGABRT SIGQUIT and delet SIGKILL
- SIGNAL: Adjust sigaction function to keep lstack signal function executed successfully.

* Thu Dec 19 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-81
- DUMP: fix build error of oe2003 because of micro is not defined.

* Wed Dec 18 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-80
- Connect: execute lwip connect if dst_ip and host_ip are in the same network.
- kernerl bind: add ipv6 add check
- openGauss unsupport_tcp_optname
- fix a contention issue when rpc pools are added to rpc_pool_array

* Wed Dec 11 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-79
- cfg: notify that it's unsupported, when stack_num > 1
- fix errno == ETIMEFOUT
- fix epoll and recv threads blocked on the same semaphore. data cannot be read in recv thread.
- fix rpc pool leak, when thread exits
- remove app_bind_numa check from exclude_cpus
- openGauss: fix connection attempt failed
- openGauss: fix gs_ctl switchover failed

* Wed Dec 04 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-78
- DUMP: gazelle supports dump lstack

* Wed Nov 27 2024 yinbin <yinbin8@huawei.com> - 1.0.2-77
- openGauss: support kernel connnect
- xdp: support stack bind numa
- CFG: fix xdp iface check error
- fix build error in 2003SP4
- cfg: show dpdk args after dpdk_adjust_args
- fix free null pointer when no matching device is found
- update test/unitest/ltran/ltran_param_test.c.
- Fix the wrong spelling description in the notes and logs
- LWIP: adjust position of shutdown in callback of connect
- fix socket of control thread is overwirtten due to another primary process start

* Wed Nov 20 2024 yinbin <yinbin8@huawei.com> - 1.0.2-76
- socket: init wakeup in blocking socket
- openGauss: support kernel accept4

* Fri Nov 15 2024 yinbin <chengyechun1@huawei.com> - 1.0.2-75
- suport kernel accept for openGauss
- support auto set xdp addr
- xdp: support bind no cpu mode

* Fri Nov 08 2024 yinbin <jiangheng14@huawei.com> - 1.0.2-74
- LOG: Optimize some log displays
- remove: code about nobolck mode for mysql
- interrupt: fix timeout events cannot be counted

* Fri Nov 01 2024 hantwofish <yinbin8@huawei.com> - 1.0.2-73
- xdp: support XDP_STATISTICS by posix_api->getsockopt_fn
- add SO_NUMA_ID(optname) for adapting opneGauss
- remove the unused return variable.
- Fix annotation errors
- bugfix: start fail when executing the popen command for the second time in openGauss

* Sat Oct 26 2024 hantwofish <hankangkang5@huawei.com> - 1.0.2-72
- slove compile err when GAZELLE_TCP_REUSE_IPPORT is off

* Wed Oct 23 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-71
- epoll: remove unnecessary judgment code
- control: call epoll_ctl delete fd when fd close

* Fri Oct 11 2024 yangchen <yangchen145@huawei.com> - 1.0.2-70
- fix the coredump when gazellectl -l

* Thu Oct 10 2024 yinbin6 <jiangheng14@huawei.com> - 1.0.2-69
- fix dpdk_nic_is_xdp coredump in ltran mode

* Thu Oct 10 2024 yinbin6 <jiangheng14@huawei.com> - 1.0.2-68
- xdp: skip checksum temporarily due to kernel cannot transfer offloads

* Wed Oct 09 2024 yinbin6 <jiangheng14@huawei.com> - 1.0.2-67
- bugfix: fix gazelle init failed while setup by non-root user
- rpc: fix rpc_sync_call spinlock block when msg be recalled
- rtw: fix send length exceeding send_ring_size
- fix stack null when register interrupt

* Sun Sep 29 2024 yinbin6 <jiangheng14@huawei.com> - 1.0.2-66
- af_xdp: set rlimit unlimit when gazelle init
- add interrupt mode support
- add pingpong dfx support

* Fri Sep 27 2024 yinbin6 <jiangheng14@huawei.com> - 1.0.2-65
- Fill in a portion of mbuf to send_ring, when mbuf is insufficient.

* Fri Sep 27 2024 yinbin6 <jiangheng14@huawei.com> - 1.0.2-64
- cleancode: declare different cfg_params types
- cleancode: add rpc_async_call, remove rpc_msg_arg.socklen, fix some format
- cleancode: move some API from stack to rpc and rtw
- cleancode: refactor rtc_api rtw_api and dummy_api

* Fri Sep 27 2024 yinbin6 <jiangheng14@huawei.com> - 1.0.2-63
- LOG:add log when udp send_ring is exhausted
- DFX: adapt log optimization

* Fri Sep 20 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-62
- WRAP: support setsockopt SO_SNDTIMEO SO_SNBUF

* Fri Sep 13 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-61
- example: solve double free
- rtc: do_lwip_init_sock no need to create ring in rtc mode

* Fri Sep 06 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-60
- fix: when errno is ENOTCONN, ignore it
- tools: fix script generate patchname wrong

* Fri Aug 30 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-59
- epoll: fix wild pointer detected by cooddy
- tools: fix sync patch script date wrong and update the way get patchnum
- cfg: modify maximum tcp_conn_count to 2w
- fix mbuf_total calculation error

* Wed Aug 28 2024 laokz <zhangkai@iscas.ac.cn> - 1.0.2-58
- add riscv64 to %ExclusiveArch

* Mon Aug 26 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-57
- CMAKE: fix ltran build error in 2403

* Fri Aug 23 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-56
- virtio: solve compilation error in 2003sp3
- virtio_user: check netif status

* Fri Aug 16 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-55
- virtio: mod virtio_user_name when multi process is on
- WRAP: fix bind log error
- WRAP:fix ltran mode did not bind kernel while open kni
- virtio_user: The program establishes a network connection when network card status is up
- fix redis coredump ctrl-c during the pressure test 

* Fri Aug 9 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-54
- refector fill udp sendring
- virtio_user: solve the issue that failed to bind virtio_user's IPv6 address
- virtio_user: add vlan info for kernerl packets when vlan switch is on
- WRAP:fix double connect lead posix api disable

* Fri Aug 2 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-53
- virtio_user: modify mbuf index for bond4
- fix issue: create virtio_user based on bond4 main network card
- virtio: fix dfx error with multiple cpus
- dfx: optimize gazellectl -x for bond

* Thu Jul 25 2024 yangchen555 <yangchen145@huawei.com> - 1.0.2-52
- fix redis coredump when hugetlbs pagesize is 1024M
- vitio_user: modify mbuf index for bond4
- Check the return of lwip_init
- support kernel connect
- POSIX: fix select timeout disable and build failed in openEuler 2003

* Fri Jul 19 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-51
- cleancode: refactor sys_now and lwip_ioctl
- add sem post when update event
- cleancode: refactor lwipgz_hlist.h
- fix EPOLLIN event dropd
- cleancode: refactor lwipgz_list.h
- cleancode: refactor posix_api
- fix some error of NULL pointer
- cleancode: refactor posix type and get_socket
- cleancode: refactor lwipsock.h

* Thu Jul 11 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-50
- cleancode: rename gazelle files in lwip
- add .gitignore
- cleancode: improving makefile readability

* Thu Jul 11 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-49
- example: sync example update

* Fri Jul 5 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-48
- add flow_bifurcation switch in lstack_cfg file
- virtio: dfx data of virtio
- virtio: update g_rule_port by reg_ring_type enum
- virtio: mode actual_queue_num
- fix poll init not clear old fd

* Fri Jun 28 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-47
- fix coredump when get empty from udp sendring
- [virtio]: distribute pkg by dst_port
- parse packages type in rx_poll
- [virtio]: cfg ipv4 and ipv6 addr
- fix build failed in 2003sp4
- fix dpdk_bond_primary_set bug
- cfg: del unnecessary logs
- perftool: add latency tool

* Wed Jun 26 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-46
- fix function call error

* Tue Jun 25 2024 yinbin<yinbin6@huawei.com> - 1.0.2-45
- fix changelog version incorrect

* Tue Jun 25 2024 yinbin<yinbin6@huawei.com> - 1.0.2-44
- sync solve compile err in 20.03

* Fri Jun 14 2024 jiangheng <jiangheng14@huawei.com> - 1.0.2-43
- refacotr udp send

* Fri Jun 21 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-42
- [virtio]: create and init virtio_port
- refactor tx cache module
- cfg: bond_slave_mac support pci addr
- remove legacy-mem
- [virtio]: flow_bifurcation switch
- rtc: adapt rtc_close
- optimized latency distribution dotting
- redis perf: add tx driver cache

* Fri Jun 14 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-41
- cfg: remove map-perfect flag in lstack.conf
- fix MySQL shutdown cmd
- fix fin pack free coredump

* Fri June 7 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-40
- make rpc_msg_max recv_ring_size configurable
- EPOLL: fix coredump while eventcount exceed maxevent

* Fri May 31 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-39
- bond:remove bond initialization code in dpdk_ethdev_init

* Fri May 24 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-38
- memary error: fix some memary error
- change gazelle_stat_lstack_proto from u16 to u64

* Thu May 16 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-37
- dfx: fix gazellectl -x for bond

* Fri May 10 2024 yangchen555 <yangchen145@huawei.com> - 1.0.2-36
- add riscv64 support
- fix mbuf leak in dpdk-23.11 due to kni removed

* Thu May 9 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-35
- CFG:fix multicast IP assert error
- cfg: devices must be in bond_slave_mac for BONDING_MODE_ACTIVE
- CFG:set multicast IP assert
- gazellectl add lwip stats_proto print
- ltran: memset quintuple

* Sun Apr 28 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-34
- fix ioctl set failed

* Fri Apr 19 2024 yangchen555 <yangchen145@huawei.com> - 1.0.2-33
- adapt dpdk-23.11 remove kni
- add tuple_fileter error info
- fix tcp recv does not return pkg when ring buffer is empty

* Fri Apr 12 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-32
- fix port not support vlan filter
- gazellectl add lwip stats_proto print
- remove dpdk_skip_nic_init for dpdk-23.11
- dfx: support get nic bond status

* Sun Apr 7 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-31
- Add support for arch ppc64le

* Sun Apr 7 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-30
- fix vlan filter can be added when vlan_mode=-1
- add latency nodes: READ_APP_CALL & WRITE_RPC_MSG
- warp: add configuration check with host_addr and server_ip for ipv6
- DFX: adapt testcase for gazellectl connect failed
- add udp poll
- perftool: add lhist statstic tool
- Correcting spelling errors
- dpdk add vlan filter
- fix LATENCY_WRITE increase in recv process
- fix netperf setsockopt fail
- recvfrom support timeout
- select timeout arguments check
- FAULT INJECT: add duplicate and reorder methods
- ensure the bond interface flow_type_rss_offloads match slave

* Thu Mar 14 2024 yinbin6 <jiangheng14@huawei.com> - 1.0.2-29
- fix rpc_pool create failed coredump
- dfx: improve log readability when connect ltran/lstack failed
- udp add restriction: message too long
- add limit with level for sockopt
- support udp pkglen > mtu
- FAUT INJECT: add fault inject unset method
- do_setsockopt function no longer checks the results of the kernel.
- recv support MSG_DONTWAIT

* Thu Mar 14 2024 yinbin6 <jiangheng14@huawei.com> - 1.0.2-28
- FAULT INJECT: gazelle add packet delay and packet drop
- diff udp and tcp read from stack
- fix coreddump when stack setup failed in rtc mode
- split the flow fules related functions into separate file
- readv return -1, errno is EAGAIN when recvring no data
- rpc function does not depend on protocol stack diff rpc queue and dfx rpc queue
- gazellectl: support send latency show
- try to ensure arp packet can be sent
- add observable method of data aggregation

* Wed Feb 07 2024 yibin6 <yinbin8@huawei.com> - 1.0.2-27
- support netperf UDP_STREAM and UDP_RR

* Sun Feb 4 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-26
- support netperf UDP_STREAM and UDP_RR
- fix receive fin packet process error
- fix t_params double free
- add bond1 support
- cfg: host_addr is not mandatory
- add bond doc
- set ltran
- remove expand_send_ring
- optimize recv exit process for FIN and unsupport SO_RCVBUF
- remove unused variables in pbuf and reduce mbuf size
- modify conf vlan default vlaue

* Sat Jan 20 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-25
- adpat dpdk 23.11
- udp: do not merge data into last pbuf
- fix host_addr6 can be assigned a multicast address
- diff lstack and ltran dfx sock
- add socket accept fail cnt
- gazellectl: add tcp_input empty ack cnt
- lstack_dpdk: limit mbuf max num
- listen_shadow support ipv6

* Sat Jan 06 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-24
- replace with gz_addr_t
- update src/common/dpdk_common.c
- match_host_addr func support ipv6
- add example keep-alive interval para

* Sat Jan 06 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-23
- fix dpdk_alloc_pktmbuf time-consuming
- ltran: optimize config file error message

* Wed Dec 27 2023 yinbin6 <yinbin8@huawei.com> - 1.0.2-22
- fix rte_ring_create/free time consuming
- use default nonblock mode
- fix func separate_str_to_array overflow problem
- CFG:fix check func strdup return value is NULL
- fix gazellectl -c msg error
- sigaction: fix deprecated signal flags
- fix alloc not free
- optimize shutdown exit process

* Tue Dec 19 2023 yinbin6 <yinbin8@huawei.com> - 1.0.2-21
- support netperf
- fix udp multicast bind error

* Mon Dec 18 2023 yinbin6 <yinbin8@huawei.com> - 1.0.2-20
- fix gazellectl lstack show ip -r with ltran error && log info display unknow error
- mod time err

* Sat Dec 16 2023 yinbin6 <yinbin8@huawei.com> - 1.0.2-19
- fix EPOLLIN event error
- optimize gazelle exit process 1. close all fds 2. lstack thread exits, then gazelle process exits
- mod unix time stamp to local time
- fix close can't exit
- add keep-alive info
- dfx: fix kernel_events stat

* Sat Dec 9 2023 yinbin6 <yinbin8@huawei.com> - 1.0.2-18
- Fixed an issue where no packet is sent or received when UDP traffic is sent
- support show nic offload and features
- log: optimize lstack log
- gazellectl add connect para
- dfx: fix 'gazellectl lstack show ip' failed
- The call stack is not printed in the proactive exit scenario.
- dfx: gazellectl -c support ipv6
- 1.solve the problem of 1w connection not being able to ping 2.add debug info : rpc_mempool availd size
- wrap: support shutdown
- add struct gz_addr_t
- fix coredump because of addr null in lwip_fill_sendring
- fix compilation error
- fix coredump because sock closed before send data fully
- gazellectl: fix gazellectl lstack show 1 -r error

* Wed Nov 29 2023 yinbin6 <yinbin8@huawei.com> - 1.0.2-17
- support vlan offload
- add vlan_id in netif
- dfx: add tcp exception and kernel event statistics
- stack: fix coredump caused by gazelleclt in rtc mode when stack num defined is greater than the hijacked thread num
- add tcp faste timer cnt
- dfx: support bond get dpdk xstats
- update src/ltran/ltran_param.c. 规范679行的报错日志信息,将“,”之后的“Please”修正为“please”
- ltran support vlan
- cfg: rm ipv6_enable
- wrap: fix connect wrong port after addr bind two ports
- add gazelle log
- PRE_LOG: modify log info while there are repeated items in conf file
- add gazelle log

* Wed Nov 22 2023 yinbin6 <yinbin8@huawei.com> - 1.0.2-16
- ipv6

* Sat Nov 18 2023 yinbin6 <yinbin8@huawei.com> - 1.0.2-15
- wrap: dont hijack select temporarily

* Sat Nov 18 2023 yinbin6 <yinbin8@huawei.com> - 1.0.2-14
- enable ipv6

* Sat Nov 18 2023 yinbin6 <yinbin8@huawei.com> - 1.0.2-13
- modif mem
- add tx package timeout
- cfg: fix lstack mempool lookup failed in ltran mode
- build: fix ltran build error
- ethdev: mbuf data start pointer pbuf->payload
- PRE_LOG: modify prelog info transfer to terminal at the same time
- slave mac addr
- add vlan support
- wrap: support select
- when timeout occurs,process exits.
- build: add mlx5 pmd dependency

* Sat Nov 18 2023 hantwofish <hankangkang5@huawei.com> - 1.0.2-12
- solve problem that rte_pktmbuf_poll_creat in same numa .
- Fix coredump issue and skip rte_pdump_init for secondary process
- stack: fix possible coredump when arp packet broadcast in rtc mode
- cfg: nic queue size only support power of 2
- dfx: add four snmp udp datas

* Sat Nov 4 2023 yinbin6 <yinbin8@huawei.com> - 1.0.2-11
- cfg: fix bond_mode null

* Sat Nov 4 2023 yinbin6 <yinbin8@huawei.com> - 1.0.2-10
- bond6
- epoll: fix epollet mode error
- ethdev: register offload to netif
- stack: add semaphore to ensure all stack threads setup success in rtw mode before call main()
- ethdev: fix arp unicast packets cannot be transmitted to current procotol stack
- clean useless code
- epoll: adapt epoll interface for rtc mode

* Sat Nov 4 2023 yinbin6 <yinbin8@huawei.com> - 1.0.2-9
- init: stack setup in app thread when app call socket/epoll_create first in rtc mode
- fix arping gazelle return value is 1
- wrap: add run-to-completion/wakeup mode api
- tools: gazelle_setup adapt non ltran mode
- delete_rule bug
- statck: the for loop in lstack thread is defined as stack_polling

* Mon Oct 30 2023 yangchenCloud <yangchen145@huawei.com> - 1.0.2-8
- cfg: add run-to-completion mode configure
- preload: support thread hijacking mode

* Mon Oct 30 2023 hantwofish <hankangkang5@huawei.com> - 1.0.2-7
- epoll: distinguish add/del_sock_event and add/del_sock_event_nolock
- cfg: nic rx/tx queue size configure

* Sat Oct 14 2023 yinbin6 <yinbin8@huawei.com> - 1.0.2-6
- update lwip version buildrequire

* Fri Oct 13 2023 yinbin6 <yinbin8@huawei.com> - 1.0.2-5
- lstack_lwip: external api start with do_lwip_ prefix
- init: remove sync sem between lstack thread and main thread
- fix bond port reta_size init

* Sat Oct 7 2023 yinbin6 <yinbin8@huawei.com> - 1.0.2-4
- kernelevent: kernel event thread report kernel events to app thread directly without passing through lstack thread
- ethdev: fix pbuf chain tot_len incorrect p->tot_len = p->len + (p->next ? p->next->tot_len : 0)
- suport clang build
- CFG:fixed the dpdk primary default parameter
- 添加龙芯和申威架构支持
- cosmetic changes

* Sat Aug 19 2023 jiangheng12 <jiangheng14@huawei.com> - 1.0.2-3
- add lstack_preload.c to makefile fix compile failure
- fix previous commit "refactoring preload module"
- refactoring preload module
- set localhost ip when bind ip is same as ip in lstack.conf

* Sat Jul 8 2023 jiangheng12 <jiangheng14@huawei.com> - 1.0.2-2
- sync remove unused dpdk dynamic libraries

* Tue Jul 4 2023 jiangheng12 <chengyechun1@huawei.com> - 1.0.2-1
- update version to 1.0.2

* Mon Jul 3 2023 jiangheng12 <chengyechun1@huawei.com> - 1.0.1-72
- bond4 add dpdk return value check

* Sat Jul 1 2023 jiangheng12 <chengyechun1@huawei.com> - 1.0.1-71
- fix bond4 EPOLLOUT event error

* Fri Jun 30 2023 jiangheng12 <jiangheng14@huawei.com> - 1.0.1-70
- add build requires constraints on lwip version

* Tue Jun 27 2023 jiangheng12 <jiangheng14@huawei.com> - 1.0.1-69
- add udp_enable to turn off udp in need

* Wed Jun 21 2023 jiangheng12 <jiangheng14@huawei.com> - 1.0.1-68
- check return value of hugepage_init to avoid coredump when hugepage memory is insufficient
- fix core dump when slave mac failed

* Sun Jun 25 2023 kircher <majun65@huawei.com> - 1.0.1-67
- enable UDP CKSUM in gazelle
- lstack: cfg add app_exclude_cpus
- skip gro when tcp/ip checksum offloads disable
- fix null pointer of sock in udp_recvfrom

* Mon Jun 19 2023 jiangheng12 <jiangheng14@huawei.com> - 1.0.1-66
- add multicast enable in dpdk_ethdev_init
- add use_sockmap in cfg to distinguish whether to use dpdk ring communication between processes

* Mon Jun 19 2023 jiangheng12 <jiangheng14@huawei.com> - 1.0.1-65
- remove obsolete args num_wakeup in doc

* Thu Jun 15 2023 jiangheng12 <jiangheng14@huawei.com> - 1.0.1-64
- change send_ring_size 32 in lstack conf
- adapt to dpdk-19.11 and dpdk-21.11
- fix t_params use after free in kernel event thread
- rpc pool use dpdk mempool replace array

* Wed Jun 14 2023 jiangheng12 <jiangheng14@huawei.com> - 1.0.1-63
- set sock when select path is PATH_UNKNOW

* Wed Jun 14 2023 jiangheng12 <jiangheng14@huawei.com> - 1.0.1-62
- fix udp send/recv in muliple queue
- fix gazellectl block before lstack registration is complete
- add exception handling for is_dst_ip_localhost
- fix change low power mod invalid
- send/recv thread bind numa only app_bind_numa set to 1

* Tue Jun 6 2023 jiangheng <jiangheng14@huawei.com> - 1.0.1-61
- revert cleancode series patches

* Fri Jun 2 2023 LemmyHuang <huangliming5@huawei.com> - 1.0.1-60
- fix socket init and clean
- fix coredump caused by lwip_get_socket_nouse

* Mon May 29 2023 LemmyHuang <huangliming5@huawei.com> - 1.0.1-59
- drop netbuf in read_lwip_data to fix mem overflow
- cleancode: refactor memp
- cleancode: refactor sys_now and lwip_ioctl
- cleancode: refactor gazelle_hlist.h
- cleancode: refactor gazelle_list.h
- cleancode: refactor gazelle_posix_api.h
- cleancode: refactor lwipsock.h
- cleancode: rename gazelle files in lwip
- cleancode: improving makefile readability

* Sat May 20 2023 jiangheng <jiangheng14@huawei.com> - 1.0.1-58
- modify hugepage directory name

* Tue May 16 2023 kircher <majun65@huawei.com> - 1.0.1-57
- add udp multicast support in gazelle
- clean code
- add bond4 suport
- dfx: security function failed, return error directly
- dfx: set g_unix_fd to -1 after abnormal close fd to avoid double close
- fix bond_ports parse error fix socket_mem parse error when the value exceeds 65536 exit if create_rxtx_pktmbuf failed build.sh build failed return 1 clean code
- add parentheses to fix build error
- fix rpc msg alloc failed fix process_numa args error coredump fix sock->conn not free when fd is kernel mode
- kni down not stop nic
- fix client connect number unbalance on lstack
- fix gazellectl -x error when multiplt user nic config

* Sat May 13 2023 jiangheng12 <jiangheng14@huawei.com> - 1.0.1-56
- fix build err with dpdk-21.11
- fix config flow rule race
- update lstack.Makefile
- add socket check before write it
- optimize do_close
- set kni_switch valid only in primary process
- fix build err on select_path
- optimite select_path and pbuf_take
- check primary process idx and secondary lstack num
- revert select_thread_path and optimize app thread when sendmsg
- do not transfer broadcast arp pkts to other process

* Thu Apr 20 2023 sunsuwan <sunsuwan3@huawei.com> - 1.0.1-55
- sepeate_string_to array add error args handle

* Thu Apr 20 2023 wu-changsheng <wuchangsheng2@huawei.com> - 1.0.1-54
- waiting when primary process not start already
- gazelle send/recv thread bind numa

* Tue Mar 21 2023 jiangheng12 <jiangheng14@huawei.com> - 1.0.1-53
- fix parse args error
- discard wakeup_num parameter
- fix kernel scoket select path error

* Sat Mar 18 2023 jiangheng<jiangheng14@huawei.com> - 1.0.1-52
- add pbuf lock when aggregate pbuf
- support multi process
- add gazellectl -x -a args
- add same node ring for iner-process communication
- fix send reset by peer when not sleep after connect
- add tuple filter in conf to diff rss rule adn tuple filter rule
- support tuple rule add/delete
- disable tso without ipv4 checksum
- refactor mbuf private data

* Sat Mar 11 2023 kircher <majun65@huawei.com> - 1.0.1-51
- when send ring full whether dynamic alloc mbuf is configurable reduce cpu usage when send ring full
- send should return -1, errno EAGAIN when ring full
- send ring size is configure
- remove rxtx driver cache
- fix do_close core dump
- fix private data offset error

* Mon Feb 27 2023 wu-changsheng <wuchangsheng2@huawei.com> - 1.0.1-50
- reduce duplicate code in lstack_cfg.c
- adapt unsupport sock optname

* Wed Feb 22 2023 kircher <majun65@huawei.com> - 1.0.1-49
- eneble TSO and fix TSO mbuf pktlen error
- check and fix wakeup_list when null appears

* Mon Feb 13 2023 net <jiangheng14@huawei.com> - 1.0.1-48
- change mbuf_pool_size in lstack.conf to tcp_conn_count * mbuf_count_per_conn
- bring up kni when init
- fix coredump in example server mum mode
- add fucntest
- test readv writev epoll_create1 accept4

* Mon Feb 6 2023 jiangheng12 <jiangheng14@huawei.com> - 1.0.1-47
- add gazelle setup tools
- add unitest

* Tue Jan 31 2023 kircher <majun65@huawei.com> - 1.0.1-46
- add gazelle fuzz
- add log message when wait for connecting to ltran

* Mon Jan 16 2023 kircher <majun65@huawei.com> - 1.0.1-45
- add ret check in pthread_create and fix example bug
- move control_client_thread creation after control_in and dpdk_skip_nic_init

* Fri Jan 6 2023 kircher <majun65@huawei.com> - 1.0.1-44
- add the suggestion of using the -u parameter when the connection to unix socket fails

* Fri Dec 30 2022 wuchangsheng <wuchangsheng2@huawei.com> - 1.0.1-43
- revert expand recv data buff

* Wed Dec 28 2022 wuchangsheng <wuchangsheng2@huawei.com> - 1.0.1-42
- pbuf cacheline align
  support main thread affinity
  reduce epoll wakeup

* Fri Dec 23 2022 kircher <majun65@huawei.com> - 1.0.1-41
- fix null pointer deref in stack_broadcast_close
- fix lstack Makefile warning

* Thu Dec 22 2022 wuchangsheng <wuchangsheng2@huawei.com> - 1.0.1-40
- add dfx rcv_nxt info
  mbuf private cache line align
  send pkts index bug fix
  free recv pkts in main loop

* Wed Dec 21 2022 wuchangsheng <wuchangsheng2@huawei.com> - 1.0.1-39
- add mempool dfx info
  write support without epoll/poll

* Tue Dec 20 2022 wuchangsheng <wuchangsheng2@huawei.com> - 1.0.1-38
- optimite recv data buff and send pkts index

* Sun Dec 18 2022 wuchangsheng <wuchangsheng2@huawei.com> - 1.0.1-37
- pkts-bulk-send-to-nic and rpc-dont-send

* Sat Dec 17 2022 jiangheng <jiangheng14@huawei.com> - 1.0.1-36
- remove mbuf reserve in mbuf alloc

* Sat Dec 17 2022 jiangheng <jiangheng14@huawei.com> - 1.0.1-35
- optimite net type
  app bind numa when epoll/poll create
  stack thread params set dafult value

* Sat Dec 17 2022 kircher <majun65@huawei.com> - 1.0.1-34
- add RXTX_NB_MBUF_MAX to limit mbuf_pool_size to its range

* Fri Dec 16 2022 kircher <majun65@huawei.com> - 1.0.1-33
- move select_thread_path after posix_api_init

* Thu Dec 15 2022 jiangheng <jiangheng14@huawei.com> - 1.0.1-32
- ltran rxtx mbuf pool size config by conf

* Thu Dec 15 2022 wuchangsheng <wuchangsheng2@huawei.com> - 1.0.1-31
- stack thread params config by lstack.conf

* Wed Dec 14 2022 jiangheng <jiangheng14@huawei.com> - 1.0.1-30
- fix kernel event thread bind nuam failed

* Tue Dec 13 2022 wuchangsheng <wuchangsheng2@huawei.com> - 1.0.1-29
- dfx add pcb windows info
  rxtx mbuf pool size config by conf

* Mon Dec 12 2022 kircher <majun65@huawei.com> - 1.0.1-28
- add pdump support in ltran

* Sat Dec 3 2022 wuchangsheng <wuchangsheng2@huawei.com> - 1.0.1-27
- optimize app thread write buff block

* Fri Dec 2 2022 wuchangsheng <wuchangsheng2@huawei.com> - 1.0.1-26
- fix epoll_wait report events 0

* Thu Dec 1 UTC compile_success <980965867@qq.com> - 1.0.1-25
- add malloc init zero
- modify EPOLLOUT event is overwritten.

* Sat Nov 26 UTC compile_success <980965867@qq.com> - 1.0.1-24
- fix write event error

* Wed Nov 16 2022 kircher <majun65@huawei.com> - 1.0.1-23
- modify duplicate code
- fix data flow error when use NIC in kernel
- fix lwip send return 0 add err event
- fix pcb snd_buf flip
- avoid send stop when mbuf pool empty
- merge lstack rx tx mbuf pool

* Tue Nov 15 2022 kircher <majun65@huawei.com> - 1.0.1-22
- fix pdump and mutil NIC init fail

* Mon Nov 14 2022 wuchangsheng <wuchangsheng2@huawei.com> - 1.0.1-21
- support muti-nic
  fix some bugs

* Tue Nov 8 2022 kircher <majun65@huawei.com> - 1.0.1-20
- add pdump support in lstack

* Sat Nov 07 2022 wuchangsheng <wuchangsheng2@huawei.com> - 1.0.1-19
- resolve the conflict between the eth_dev_ops variable and the dpdk-19.11

* Sat Nov 05 2022 kircher <majun65@huawei.com> - 1.0.1-18
- Add kni local support in lstack

* Fri Nov 04 2022 wuchangsheng <wuchangsheng2@huawei.com> - 1.0.1-17
- Optimize ceph client performance

* Sat Oct 08 2022 wuchangsheng <wuchangsheng2@huawei.com> - 1.0.1-16
- refactor event
  addapt for ceph client

* Mon Sep 05 2022 wuchangsheng <wuchangsheng2@huawei.com> - 1.0.1-15
- expand rpc msg pool size

* Mon Sep 05 2022 wuchangsheng <wuchangsheng2@huawei.com> - 1.0.1-14
- backport bugfix and doc

* Mon Aug 08 2022 fushanqing <fushanqing@kylinos.cn> - 1.0.1-13
- Unified license name specification

* Tue Jul 26 2022 wuchangsheng <wuchangsheng2@huawei.com> - 1.0.1-12
- support epoll oneshot 

* Tue Jul 19 2022 xiusailong <xiusailong@huawei.com> - 1.0.1-11
- reconstruct packet sending and receiving to improve performance 

* Thu Jul 7 2022 jiangheng <jiangheng14@huawei.com> - 1.0.1-10
- Type:bugfix
- CVE:
- SUG:NA
- DESC:update readme
       fix some bugs
       refactor pkt read send to improve performance
       refactoe kernle event to improve performanc 

* Fri May 27 2022 xiusailong <xiusailong@huawei.com> - 1.0.1-9
- update license lockless queue

* Fri May 20 2022 xiusailong <xiusailong@huawei.com> - 1.0.1-8
- update README.md

* Thu Mar 31 2022 jiangheng <jiangheng12@huawei.com> - 1.0.1-7
- Type:bugfix
- CVE:
- SUG:NA
- DESC:add gazelle.yaml

* Tue Mar 29 2022 jiangheng <jiangheng12@huawei.com> - 1.0.1-6
- refactor event
- add gazellectl lstack constraint

* Fri Mar 18 2022 jiangheng <jiangheng12@huawei.com> - 1.0.1-5
- limit lwip_alloc_pbuf size to TCP_MSS
- sending of sock last data is triggered by lstack iteself 

* Thu Mar 17 2022 jiangheng <jiangheng12@huawei.com> - 1.0.1-4
- fix repeatede stack restart coredump

* Wed Mar 16 2022 jiangheng <jiangheng12@huawei.com> - 1.0.1-3
- fix gazelle test issue

* Mon Mar 7 2022 wu-changsheng <wuchangsheng2@huawei.com> - 1.0.1-2
- reduce copy in send

* Thu Mar 3 2022 wu-changsheng <wuchangsheng2@huawei.com> - 1.0.1-1
- support mysql with two mode:ltran+lstack and lstack.

* Thu Feb 24 2022 wu-changsheng <wuchangsheng2@huawei.com> - 1.0.0-1
- release initial version