From e4bcdda27112c22905415023f7cc6b4271e7be8b Mon Sep 17 00:00:00 2001 From: jiangheng Date: Thu, 15 Jun 2023 17:45:10 +0800 Subject: [PATCH] sync code same as 2203LTS (cherry picked from commit b2442e1b25f7985c87ab190fff06aa19cfd9e70f) --- 0040-adapt-to-gazelle.patch | 274 -------- ...tch => 0040-fix-sock-invalid-address.patch | 0 ...-process-after-ltran-instance-logout.patch | 0 0041-modify-securec-to-boundscheck.patch | 45 -- ...=> 0042-use-atomic-variales-to-count.patch | 0 ...rogram-to-invoke-rte_eth_dev_start-b.patch | 0 ....patch => 0044-delete-redundant-file.patch | 0 ...=> 0045-lstack-all-exit-move-to-init.patch | 0 ...tch => 0046-clean-code-fix-huge-func.patch | 0 ... 0047-add-kernel-path-in-epoll-funcs.patch | 0 ...048-refactor-kernel-event-poll-epoll.patch | 0 ...e1-sem-to-avoid-block-main-thread-wh.patch | 0 ...r-of-RX-TX-mbufs-of-each-stack-threa.patch | 0 ...y-README.patch => 0051-modify-README.patch | 0 ...ee.com-src-openeuler-gazelle-issues-.patch | 0 ...ME.md.patch => 0053-update-README.md.patch | 0 ... 0054-ltran-fix-use-after-free-issue.patch | 0 ...5-refactor-pkt-read-send-performance.patch | 24 +- ...patch => 0056-ltran-support-checksum.patch | 13 +- ...dme-compile-components-main-file-and.patch | 0 ... 0058-add-examples-parameter-parsing.patch | 0 ...fix-reta_conf-array-size-calculation.patch | 0 ... 0060-Replace-gettid-with-rte_gettid.patch | 0 ...for-canonical-and-update-the-cmake-b.patch | 0 ...-secure-compile-and-open-compile-log.patch | 20 +- ...h => 0063-support-epoll-et-trig-mode.patch | 0 ...tch => 0064-lstack-support-low-power.patch | 0 ...ch => 0065-add-port-mask-range-check.patch | 0 ...ice.patch => 0066-release-kni-device.patch | 9 +- ...h => 0067-optimize-check-ltran-exist.patch | 0 ...-clean-code.patch => 0068-clean-code.patch | 6 +- ...-clean-code.patch => 0069-clean-code.patch | 0 ...070-Support-build-gazelle-with-clang.patch | 4 +- 0071-Allow-dynamic-load-PMDs.patch | 76 +++ ....patch => 0072-support-epoll-oneshot.patch | 0 0073-Allow-dynamic-load-PMDs.patch | 63 -- ...=> 0073-modify-readme-and-clean-code.patch | 8 +- ...ltran-support-muti-proc-with-same-ip.patch | 26 +- 0074-resolve-patch-conflicts.patch | 64 -- ...tch => 0075-fix-rpc-msg-out-of-bound.patch | 6 +- ...fix-traversal-array-use-NULL-pointer.patch | 6 +- ...-stack-thread-don-t-repeate-send-msg.patch | 8 +- ....patch => 0078-fix-memcpy-out-bounds.patch | 0 ...ch => 0079-fix-miss-send-rpc-msg-err.patch | 0 ...-exit-due-to-lack-of-mem-startup-fai.patch | 0 ...tch => 0081-read-data-with-err-event.patch | 0 ...azelle-ring-cons.tail-atomic-protect.patch | 2 +- ...e.patch => 0083-fix-send-return-vale.patch | 0 ...-examples.patch => 0084-add-examples.patch | 0 ...0085-expand-thread-rpc-msg-pool-size.patch | 0 ...ix-fd-leak.patch => 0086-fix-fd-leak.patch | 0 ... => 0087-fix-del-conn-use-after-free.patch | 0 ...0088-init-g_gazelle_errno-before-use.patch | 0 ...ch => 0089-code-format-specification.patch | 0 ...el-event-thread-affinity-same-with-s.patch | 0 ...x-ltran-sig_default_handler-kill-pid.patch | 33 - ..._arg.patch => 0091-have_corelist_arg.patch | 0 ...list.patch => 0092-ltran-update-list.patch | 0 ... 0093-remove-get_reg_ring_free_count.patch | 0 ...NN.patch => 0094-add-errorno-EISCONN.patch | 0 ...=> 0095-fix-sendmsg-data-write-wrong.patch | 0 ...96-lstack-restore-pci-bus-after-init.patch | 0 ...atch => 0097-fix-malloc-rpc-msg-fail.patch | 0 ... => 0098-support-dpdk-dynamic-memory.patch | 0 ...x-lwip_send-fail-free-pbuf-miss-data.patch | 2 +- ...r-wakeup.patch => 0100-merger-wakeup.patch | 0 ...=> 0101-conenct-support-multi-queues.patch | 0 ...te.patch => 0102-merge-sendmsg-write.patch | 0 ...patch => 0103-add-thread-select-path.patch | 0 ...4-support-conf-control-app-bind-numa.patch | 0 ...05-fix-epoll_wait-cover-kernel-event.patch | 0 ...ead-stack-data-return-0-when-no-data.patch | 0 ...ch => 0107-fix-stack-wakeup-node-del.patch | 0 ...oid-useless-stack-check-wakeup-event.patch | 0 ...esg-loss.patch => 0109-fix-mesg-loss.patch | 0 ...> 0110-add-accept4-and-epoll_create1.patch | 0 ....patch => 0111-refactor-event-notice.patch | 16 +- ...v.patch => 0112-add-writev-and-readv.patch | 0 ...13-optimized-some-function-in-lstack.patch | 0 ...lectl-stats-err-when-donot-bind-numa.patch | 0 ...5-add-usleep-when-write_ring-is-busy.patch | 0 ...tch => 0116-optimize-variable-access.patch | 0 0122-add-gro.patch => 0117-add-gro.patch | 28 +- ...atch => 0118-expand-nic-rx-desc-size.patch | 0 ...0119-add-kni-local-support-in-lstack.patch | 0 ...lict-between-the-eth_dev_ops-variabl.patch | 30 +- ... => 0121-add-pdump-support-in-lstack.patch | 0 ...nit-stack-port_id-when-use-mutil-NIC.patch | 0 ...ak-in-dpdk_ethdev_init-unlikely-path.patch | 0 ...-epoll_wait-return-when-timeout-is-0.patch | 0 ...elle-pdump-init-fail-with-dpdk-21.11.patch | 0 ...patch => 0126-fix-add-outdated-event.patch | 0 ...ep.patch => 0127-revert-write-usleep.patch | 0 ...> 0128-reduce-thread-variable-access.patch | 0 ...h => 0129-add-readv-and-readv-kernel.patch | 0 ...atch => 0130-add-unlock-before-after.patch | 0 ...131-add-mutil-NIC-support-in-gazelle.patch | 0 ...check-in-gazellectl-to-fix-build-err.patch | 0 ...ock-epoll-ctl-when-lwip-sock-connect.patch | 0 ...y-readv-and-writev-first-buf-is-null.patch | 0 ...35-fix-pdump-and-mutil-NIC-init-fail.patch | 18 +- ....patch => 0136-modify-duplicate-code.patch | 0 ...=> 0137-merge-lstack-rx-tx-mbuf-pool.patch | 0 ...avoid-send-stop-when-mbuf-pool-empty.patch | 0 ...p.patch => 0139-fix-pcb-snd_buf-flip.patch | 0 ...fix-lwip-send-return-0-add-err-event.patch | 0 ...ta-flow-error-when-use-NIC-in-kernel.patch | 0 ....patch => 0142-fix-write-event-error.patch | 0 ...o.patch => 0143-add-malloc-init-zero.patch | 0 ...ror.patch => 0144-modify-event-error.patch | 0 ...> 0145-add-unix_prefix-in-gazellectl.patch | 0 ...=> 0146-fix-epoll_wait-report-event0.patch | 0 0152-add-TSO.patch => 0147-add-TSO.patch | 2 +- ...optimize-app-thread-write-buff-block.patch | 28 +- ....patch => 0149-expand-rxtx-mbuf-pool.patch | 0 0150-add-pdump-support-in-ltran.patch | 25 + ...151-dfx-gazellectl-add-pcb-wins-info.patch | 20 +- ...0152-fix-genarate-out-event-untimely.patch | 0 ...3-rxtx-mbuf-pool-size-config-by-conf.patch | 0 ...kernel-event-thread-bind-numa-failed.patch | 0 0155-add-pdump-support-in-ltran.patch | 25 - ...55-stack-thread-parms-config-by-conf.patch | 0 ...n-rxtx-mbuf-pool-size-config-by-conf.patch | 0 ...ect_thread_path-after-posix_api_init.patch | 0 ..._MAX-to-limit-mbuf_pool_size-to-its-.patch | 0 ...0159-stack-thread-params-default-val.patch | 0 ...type.patch => 0160-optimite-net-type.patch | 0 ...app-bind-numa-when-epoll-poll-create.patch | 0 ...62-remove-mbuf-reserve-in-mbuf-alloc.patch | 0 ....patch => 0163-pkts-bulk-send-to-nic.patch | 0 ...ont-send.patch => 0164-rpc-dont-send.patch | 0 ....patch => 0165-recv-pbuf-free-timely.patch | 0 ...=> 0166-optimite-send-pkts-dul-index.patch | 0 ....patch => 0167-expand-data-recv-buff.patch | 14 +- ...h => 0168-dfx-add-mempool-count-info.patch | 0 ...69--write-support-without-epoll-poll.patch | 0 ...o.patch => 0170-add-rcv-nxt-dfx-info.patch | 0 ...f-private-data-size-align-cache-line.patch | 0 ...patch => 0172-fix-send-pkts-bluk-err.patch | 0 ...s.patch => 0173-free-recv-pkts-bluks.patch | 0 ... => 0174-fix-lstack-Makefile-warning.patch | 0 ...inter-deref-in-stack_broadcast_close.patch | 0 ....patch => 0176-pbuf-align-cache-line.patch | 0 ...177-support-set-main-thread-affinity.patch | 0 ...up.patch => 0178-reduce-epoll-wakeup.patch | 0 ...=> 0179-revert-expand-recv-data-buff.patch | 12 +- ...on-of-using-the-u-parameter-when-the.patch | 0 ...ent_thread-creation-after-control_in.patch | 0 ...n-pthread_create-and-fix-example-bug.patch | 0 ...ge-when-wait-for-connecting-to-ltran.patch | 0 ...-fuzz.patch => 0184-add-gazelle-fuzz.patch | 0 ...dd-unitest.patch => 0185-add-unitest.patch | 0 ...atch => 0186-add-gazelle-setup-tools.patch | 0 ...t-readv-writev-epoll_create1-accept4.patch | 0 ...-fucntest.patch => 0188-add-fucntest.patch | 0 ...-coredump-in-example-server-mum-mode.patch | 0 ...patch => 0190-bring-up-kni-when-init.patch | 0 ..._size-in-lstack.conf-to-tcp_conn_cou.patch | 0 ...ch => 0192-fix-build-error-in-lstack.patch | 0 ...nd-fix-wakeup_list-when-null-appears.patch | 0 ...le-TSO-and-fix-TSO-mbuf-pktlen-error.patch | 0 ...=> 0195-adapt-unsupport-sock-optname.patch | 0 ...educe-duplicate-code-in-lstack_cfg.c.patch | 0 ...> 0197-fix-private-data-offset-error.patch | 0 ...patch => 0198-fix-do_close-core-dump.patch | 0 ...tch => 0199-remove-rxtx-driver-cache.patch | 0 ... => 0200-send-ring-size-is-configure.patch | 0 ...return-1-errno-EAGAIN-when-ring-full.patch | 0 ...ull-whether-dynamic-alloc-mbuf-is-co.patch | 0 ...03-add-pbuf-lock-when-aggregate-pbuf.patch | 25 +- ....patch => 0204-supprot-multi-process.patch | 0 ...5-add-gazellectl-x-to-show-nic-stats.patch | 0 ...-ring-for-inter-proces-communication.patch | 0 ...by-peer-when-not-sleep-after-connect.patch | 0 ...-in-conf-to-diff-rss-rule-and-tuple-.patch | 10 +- ...10-disable-tso-without-ipv4-checksum.patch | 2 +- ...> 0210-support-tuple-rule-add-delete.patch | 12 +- ...h => 0211-refactor-mbuf-private-data.patch | 25 +- ...-fix-kernel-scoket-select-path-error.patch | 0 ...=> 0213-discard-wakeup_num-parameter.patch | 0 ...r.patch => 0214-fix-parse-args-error.patch | 0 ...5-gazelle-send-recv-thread-bind-numa.patch | 0 ...en-primary-process-not-start-already.patch | 0 ...tring_to-array-add-error-args-handle.patch | 2 +- ...-broadcast-arp-pkts-to-other-process.patch | 2 +- ...read_path-and-optimize-app-thread-wh.patch | 2 +- ...process-idx-and-secondary-lstack-num.patch | 2 +- ...1-optimite-select_path-and-pbuf_take.patch | 2 +- ...=> 0222-fix-build-err-on-select_path.patch | 0 ...switch-valid-only-in-primary-process.patch | 0 ...lose.patch => 0224-optimize-do_close.patch | 0 ...225-add-socket-check-before-write-it.patch | 0 ...patch => 0226-update-lstack.Makefile.patch | 0 ...ch => 0227-fix-config-flow-rule-race.patch | 0 0228-fix-build-err-with-dpdk-21.11.patch | 25 + ...-error-when-multiplt-user-nic-config.patch | 2 +- ...t-connect-number-unbalance-on-lstack.patch | 2 +- ....patch => 0231-kni-down-not-stop-nic.patch | 2 +- ...tch => 0232-fix-rpc-msg-alloc-failed.patch | 2 +- ...3-add-parentheses-to-fix-build-error.patch | 2 +- ...h => 0234-fix-bond_ports-parse-error.patch | 2 +- ...d-to-1-after-abnormal-close-fd-to-av.patch | 0 ...onblock-to-fix-example-connect-error.patch | 41 -- ...unction-failed-return-error-directly.patch | 0 ...uport.patch => 0237-add-bond4-suport.patch | 18 +- ...-clean-code.patch => 0238-clean-code.patch | 98 +-- ...add-udp-multicast-support-in-gazelle.patch | 38 +- ...-add-udp-protocol-support-in-example.patch | 624 ----------------- ...tch => 0240-modify-huge-dir-dir-name.patch | 0 ...n-read_lwip_data-to-fix-mem-overflow.patch | 61 ++ ...-bind-numa-only-app_bind_numa-set-to.patch | 28 + 0243-fix-change-low-power-mod-invalid.patch | 33 + ...ion-handling-for-is_dst_ip_localhost.patch | 58 ++ ...lock-before-lstack-registration-is-c.patch | 27 + 0246-fix-udp-send-recv-in-muliple-queue.patch | 218 ++++++ ...sock-when-select-path-is-PATH_UNKNOW.patch | 60 ++ ...-pool-use-dpdk-mempool-replace-array.patch | 133 ++++ ...se-after-free-in-kernel-event-thread.patch | 97 +++ 0250-adapt-to-dpdk-19.11-and-dpdk-21.11.patch | 241 +++++++ ...nge-send_ring_size-32-in-lstack-conf.patch | 25 + gazelle.spec | 643 +++++++++--------- 221 files changed, 1722 insertions(+), 1749 deletions(-) delete mode 100644 0040-adapt-to-gazelle.patch rename 0042-fix-sock-invalid-address.patch => 0040-fix-sock-invalid-address.patch (100%) rename 0043-exit-lstack-process-after-ltran-instance-logout.patch => 0041-exit-lstack-process-after-ltran-instance-logout.patch (100%) delete mode 100644 0041-modify-securec-to-boundscheck.patch rename 0044-use-atomic-variales-to-count.patch => 0042-use-atomic-variales-to-count.patch (100%) rename 0045-re-arrange-the-program-to-invoke-rte_eth_dev_start-b.patch => 0043-re-arrange-the-program-to-invoke-rte_eth_dev_start-b.patch (100%) rename 0046-delete-redundant-file.patch => 0044-delete-redundant-file.patch (100%) rename 0047-lstack-all-exit-move-to-init.patch => 0045-lstack-all-exit-move-to-init.patch (100%) rename 0048-clean-code-fix-huge-func.patch => 0046-clean-code-fix-huge-func.patch (100%) rename 0049-add-kernel-path-in-epoll-funcs.patch => 0047-add-kernel-path-in-epoll-funcs.patch (100%) rename 0050-refactor-kernel-event-poll-epoll.patch => 0048-refactor-kernel-event-poll-epoll.patch (100%) rename 0051-post-thread_phase1-sem-to-avoid-block-main-thread-wh.patch => 0049-post-thread_phase1-sem-to-avoid-block-main-thread-wh.patch (100%) rename 0052-adjust-the-number-of-RX-TX-mbufs-of-each-stack-threa.patch => 0050-adjust-the-number-of-RX-TX-mbufs-of-each-stack-threa.patch (100%) rename 0053-modify-README.patch => 0051-modify-README.patch (100%) rename 0054-bugfix-https-gitee.com-src-openeuler-gazelle-issues-.patch => 0052-bugfix-https-gitee.com-src-openeuler-gazelle-issues-.patch (100%) rename 0055-update-README.md.patch => 0053-update-README.md.patch (100%) rename 0056-ltran-fix-use-after-free-issue.patch => 0054-ltran-fix-use-after-free-issue.patch (100%) rename 0057-refactor-pkt-read-send-performance.patch => 0055-refactor-pkt-read-send-performance.patch (99%) rename 0058-ltran-support-checksum.patch => 0056-ltran-support-checksum.patch (98%) rename 0059-add-examples-readme-compile-components-main-file-and.patch => 0057-add-examples-readme-compile-components-main-file-and.patch (100%) rename 0060-add-examples-parameter-parsing.patch => 0058-add-examples-parameter-parsing.patch (100%) rename 0061-lstack-core-fix-reta_conf-array-size-calculation.patch => 0059-lstack-core-fix-reta_conf-array-size-calculation.patch (100%) rename 0062-Replace-gettid-with-rte_gettid.patch => 0060-Replace-gettid-with-rte_gettid.patch (100%) rename 0063-modify-the-code-for-canonical-and-update-the-cmake-b.patch => 0061-modify-the-code-for-canonical-and-update-the-cmake-b.patch (100%) rename 0064-enable-secure-compile-and-open-compile-log.patch => 0062-enable-secure-compile-and-open-compile-log.patch (79%) rename 0065-support-epoll-et-trig-mode.patch => 0063-support-epoll-et-trig-mode.patch (100%) rename 0066-lstack-support-low-power.patch => 0064-lstack-support-low-power.patch (100%) rename 0067-add-port-mask-range-check.patch => 0065-add-port-mask-range-check.patch (100%) rename 0068-release-kni-device.patch => 0066-release-kni-device.patch (94%) rename 0069-optimize-check-ltran-exist.patch => 0067-optimize-check-ltran-exist.patch (100%) rename 0070-clean-code.patch => 0068-clean-code.patch (99%) rename 0071-clean-code.patch => 0069-clean-code.patch (100%) rename 0072-Support-build-gazelle-with-clang.patch => 0070-Support-build-gazelle-with-clang.patch (99%) create mode 100644 0071-Allow-dynamic-load-PMDs.patch rename 0075-support-epoll-oneshot.patch => 0072-support-epoll-oneshot.patch (100%) delete mode 100644 0073-Allow-dynamic-load-PMDs.patch rename 0076-clean-code-space-before-operator.patch => 0073-modify-readme-and-clean-code.patch (76%) rename 0077-ltran-support-muti-proc-with-same-ip.patch => 0074-ltran-support-muti-proc-with-same-ip.patch (97%) delete mode 100644 0074-resolve-patch-conflicts.patch rename 0078-fix-rpc-msg-out-of-bound.patch => 0075-fix-rpc-msg-out-of-bound.patch (88%) rename 0079-fix-traversal-array-use-NULL-pointer.patch => 0076-fix-traversal-array-use-NULL-pointer.patch (81%) rename 0080-same-stack-thread-don-t-repeate-send-msg.patch => 0077-same-stack-thread-don-t-repeate-send-msg.patch (96%) rename 0082-fix-memcpy-out-bounds.patch => 0078-fix-memcpy-out-bounds.patch (100%) rename 0083-fix-miss-send-rpc-msg-err.patch => 0079-fix-miss-send-rpc-msg-err.patch (100%) rename 0084-fix-proc-can-not-exit-due-to-lack-of-mem-startup-fai.patch => 0080-fix-proc-can-not-exit-due-to-lack-of-mem-startup-fai.patch (100%) rename 0085-read-data-with-err-event.patch => 0081-read-data-with-err-event.patch (100%) rename 0086-del-gazelle-ring-cons.tail-atomic-protect.patch => 0082-del-gazelle-ring-cons.tail-atomic-protect.patch (95%) rename 0087-fix-send-return-vale.patch => 0083-fix-send-return-vale.patch (100%) rename 0088-add-examples.patch => 0084-add-examples.patch (100%) rename 0089-expand-thread-rpc-msg-pool-size.patch => 0085-expand-thread-rpc-msg-pool-size.patch (100%) rename 0091-fix-fd-leak.patch => 0086-fix-fd-leak.patch (100%) rename 0092-fix-del-conn-use-after-free.patch => 0087-fix-del-conn-use-after-free.patch (100%) rename 0093-init-g_gazelle_errno-before-use.patch => 0088-init-g_gazelle_errno-before-use.patch (100%) rename 0094-code-format-specification.patch => 0089-code-format-specification.patch (100%) rename 0095-fix-gazelle-kernel-event-thread-affinity-same-with-s.patch => 0090-fix-gazelle-kernel-event-thread-affinity-same-with-s.patch (100%) delete mode 100644 0090-fix-ltran-sig_default_handler-kill-pid.patch rename 0096-have_corelist_arg.patch => 0091-have_corelist_arg.patch (100%) rename 0097-ltran-update-list.patch => 0092-ltran-update-list.patch (100%) rename 0098-remove-get_reg_ring_free_count.patch => 0093-remove-get_reg_ring_free_count.patch (100%) rename 0099-add-errorno-EISCONN.patch => 0094-add-errorno-EISCONN.patch (100%) rename 0100-fix-sendmsg-data-write-wrong.patch => 0095-fix-sendmsg-data-write-wrong.patch (100%) rename 0101-lstack-restore-pci-bus-after-init.patch => 0096-lstack-restore-pci-bus-after-init.patch (100%) rename 0102-fix-malloc-rpc-msg-fail.patch => 0097-fix-malloc-rpc-msg-fail.patch (100%) rename 0103-support-dpdk-dynamic-memory.patch => 0098-support-dpdk-dynamic-memory.patch (100%) rename 0104-fix-lwip_send-fail-free-pbuf-miss-data.patch => 0099-fix-lwip_send-fail-free-pbuf-miss-data.patch (97%) rename 0105-merger-wakeup.patch => 0100-merger-wakeup.patch (100%) rename 0106-conenct-support-multi-queues.patch => 0101-conenct-support-multi-queues.patch (100%) rename 0107-merge-sendmsg-write.patch => 0102-merge-sendmsg-write.patch (100%) rename 0108-add-thread-select-path.patch => 0103-add-thread-select-path.patch (100%) rename 0109-support-conf-control-app-bind-numa.patch => 0104-support-conf-control-app-bind-numa.patch (100%) rename 0110-fix-epoll_wait-cover-kernel-event.patch => 0105-fix-epoll_wait-cover-kernel-event.patch (100%) rename 0111-fix-read-stack-data-return-0-when-no-data.patch => 0106-fix-read-stack-data-return-0-when-no-data.patch (100%) rename 0112-fix-stack-wakeup-node-del.patch => 0107-fix-stack-wakeup-node-del.patch (100%) rename 0113-avoid-useless-stack-check-wakeup-event.patch => 0108-avoid-useless-stack-check-wakeup-event.patch (100%) rename 0114-fix-mesg-loss.patch => 0109-fix-mesg-loss.patch (100%) rename 0115-add-accept4-and-epoll_create1.patch => 0110-add-accept4-and-epoll_create1.patch (100%) rename 0116-refactor-event-notice.patch => 0111-refactor-event-notice.patch (99%) rename 0117-add-writev-and-readv.patch => 0112-add-writev-and-readv.patch (100%) rename 0118-optimized-some-function-in-lstack.patch => 0113-optimized-some-function-in-lstack.patch (100%) rename 0119-fix-gazellectl-stats-err-when-donot-bind-numa.patch => 0114-fix-gazellectl-stats-err-when-donot-bind-numa.patch (100%) rename 0120-add-usleep-when-write_ring-is-busy.patch => 0115-add-usleep-when-write_ring-is-busy.patch (100%) rename 0121-optimize-variable-access.patch => 0116-optimize-variable-access.patch (100%) rename 0122-add-gro.patch => 0117-add-gro.patch (86%) rename 0123-expand-nic-rx-desc-size.patch => 0118-expand-nic-rx-desc-size.patch (100%) rename 0124-add-kni-local-support-in-lstack.patch => 0119-add-kni-local-support-in-lstack.patch (100%) rename 0125-resolve-the-conflict-between-the-eth_dev_ops-variabl.patch => 0120-resolve-the-conflict-between-the-eth_dev_ops-variabl.patch (90%) rename 0126-add-pdump-support-in-lstack.patch => 0121-add-pdump-support-in-lstack.patch (100%) rename 0127-fix-uninit-stack-port_id-when-use-mutil-NIC.patch => 0122-fix-uninit-stack-port_id-when-use-mutil-NIC.patch (100%) rename 0128-fix-memleak-in-dpdk_ethdev_init-unlikely-path.patch => 0123-fix-memleak-in-dpdk_ethdev_init-unlikely-path.patch (100%) rename 0129-fix-epoll_wait-return-when-timeout-is-0.patch => 0124-fix-epoll_wait-return-when-timeout-is-0.patch (100%) rename 0130-fix-gazelle-pdump-init-fail-with-dpdk-21.11.patch => 0125-fix-gazelle-pdump-init-fail-with-dpdk-21.11.patch (100%) rename 0131-fix-add-outdated-event.patch => 0126-fix-add-outdated-event.patch (100%) rename 0132-revert-write-usleep.patch => 0127-revert-write-usleep.patch (100%) rename 0133-reduce-thread-variable-access.patch => 0128-reduce-thread-variable-access.patch (100%) rename 0134-add-readv-and-readv-kernel.patch => 0129-add-readv-and-readv-kernel.patch (100%) rename 0135-add-unlock-before-after.patch => 0130-add-unlock-before-after.patch (100%) rename 0136-add-mutil-NIC-support-in-gazelle.patch => 0131-add-mutil-NIC-support-in-gazelle.patch (100%) rename 0137-remove-filename_check-in-gazellectl-to-fix-build-err.patch => 0132-remove-filename_check-in-gazellectl-to-fix-build-err.patch (100%) rename 0138-cancel-kernel-sock-epoll-ctl-when-lwip-sock-connect.patch => 0133-cancel-kernel-sock-epoll-ctl-when-lwip-sock-connect.patch (100%) rename 0139-modify-readv-and-writev-first-buf-is-null.patch => 0134-modify-readv-and-writev-first-buf-is-null.patch (100%) rename 0140-fix-pdump-and-mutil-NIC-init-fail.patch => 0135-fix-pdump-and-mutil-NIC-init-fail.patch (77%) rename 0141-modify-duplicate-code.patch => 0136-modify-duplicate-code.patch (100%) rename 0142-merge-lstack-rx-tx-mbuf-pool.patch => 0137-merge-lstack-rx-tx-mbuf-pool.patch (100%) rename 0143-avoid-send-stop-when-mbuf-pool-empty.patch => 0138-avoid-send-stop-when-mbuf-pool-empty.patch (100%) rename 0144-fix-pcb-snd_buf-flip.patch => 0139-fix-pcb-snd_buf-flip.patch (100%) rename 0145-fix-lwip-send-return-0-add-err-event.patch => 0140-fix-lwip-send-return-0-add-err-event.patch (100%) rename 0146-fix-data-flow-error-when-use-NIC-in-kernel.patch => 0141-fix-data-flow-error-when-use-NIC-in-kernel.patch (100%) rename 0147-fix-write-event-error.patch => 0142-fix-write-event-error.patch (100%) rename 0148-add-malloc-init-zero.patch => 0143-add-malloc-init-zero.patch (100%) rename 0149-modify-event-error.patch => 0144-modify-event-error.patch (100%) rename 0150-add-unix_prefix-in-gazellectl.patch => 0145-add-unix_prefix-in-gazellectl.patch (100%) rename 0151-fix-epoll_wait-report-event0.patch => 0146-fix-epoll_wait-report-event0.patch (100%) rename 0152-add-TSO.patch => 0147-add-TSO.patch (99%) rename 0153-optimize-app-thread-write-buff-block.patch => 0148-optimize-app-thread-write-buff-block.patch (97%) rename 0154-expand-rxtx-mbuf-pool.patch => 0149-expand-rxtx-mbuf-pool.patch (100%) create mode 100644 0150-add-pdump-support-in-ltran.patch rename 0156-dfx-gazellectl-add-pcb-wins-info.patch => 0151-dfx-gazellectl-add-pcb-wins-info.patch (95%) rename 0157-fix-genarate-out-event-untimely.patch => 0152-fix-genarate-out-event-untimely.patch (100%) rename 0158-rxtx-mbuf-pool-size-config-by-conf.patch => 0153-rxtx-mbuf-pool-size-config-by-conf.patch (100%) rename 0159-fix-kernel-event-thread-bind-numa-failed.patch => 0154-fix-kernel-event-thread-bind-numa-failed.patch (100%) delete mode 100644 0155-add-pdump-support-in-ltran.patch rename 0160-stack-thread-parms-config-by-conf.patch => 0155-stack-thread-parms-config-by-conf.patch (100%) rename 0161-ltran-rxtx-mbuf-pool-size-config-by-conf.patch => 0156-ltran-rxtx-mbuf-pool-size-config-by-conf.patch (100%) rename 0162-move-select_thread_path-after-posix_api_init.patch => 0157-move-select_thread_path-after-posix_api_init.patch (100%) rename 0163-add-RXTX_NB_MBUF_MAX-to-limit-mbuf_pool_size-to-its-.patch => 0158-add-RXTX_NB_MBUF_MAX-to-limit-mbuf_pool_size-to-its-.patch (100%) rename 0164-stack-thread-params-default-val.patch => 0159-stack-thread-params-default-val.patch (100%) rename 0165-optimite-net-type.patch => 0160-optimite-net-type.patch (100%) rename 0166-app-bind-numa-when-epoll-poll-create.patch => 0161-app-bind-numa-when-epoll-poll-create.patch (100%) rename 0167-remove-mbuf-reserve-in-mbuf-alloc.patch => 0162-remove-mbuf-reserve-in-mbuf-alloc.patch (100%) rename 0168-pkts-bulk-send-to-nic.patch => 0163-pkts-bulk-send-to-nic.patch (100%) rename 0169-rpc-dont-send.patch => 0164-rpc-dont-send.patch (100%) rename 0170-recv-pbuf-free-timely.patch => 0165-recv-pbuf-free-timely.patch (100%) rename 0171-optimite-send-pkts-dul-index.patch => 0166-optimite-send-pkts-dul-index.patch (100%) rename 0172-expand-data-recv-buff.patch => 0167-expand-data-recv-buff.patch (97%) rename 0173-dfx-add-mempool-count-info.patch => 0168-dfx-add-mempool-count-info.patch (100%) rename 0174-write-support-without-epoll-poll.patch => 0169--write-support-without-epoll-poll.patch (100%) rename 0175-add-rcv-nxt-dfx-info.patch => 0170-add-rcv-nxt-dfx-info.patch (100%) rename 0176-mbuf-private-data-size-align-cache-line.patch => 0171-mbuf-private-data-size-align-cache-line.patch (100%) rename 0177-fix-send-pkts-bluk-err.patch => 0172-fix-send-pkts-bluk-err.patch (100%) rename 0178-free-recv-pkts-bluks.patch => 0173-free-recv-pkts-bluks.patch (100%) rename 0179-fix-lstack-Makefile-warning.patch => 0174-fix-lstack-Makefile-warning.patch (100%) rename 0180-fix-null-pointer-deref-in-stack_broadcast_close.patch => 0175-fix-null-pointer-deref-in-stack_broadcast_close.patch (100%) rename 0181-pbuf-align-cache-line.patch => 0176-pbuf-align-cache-line.patch (100%) rename 0182-support-set-main-thread-affinity.patch => 0177-support-set-main-thread-affinity.patch (100%) rename 0183-reduce-epoll-wakeup.patch => 0178-reduce-epoll-wakeup.patch (100%) rename 0184-revert-expand-recv-data-buff.patch => 0179-revert-expand-recv-data-buff.patch (96%) rename 0185-add-the-suggestion-of-using-the-u-parameter-when-the.patch => 0180-add-the-suggestion-of-using-the-u-parameter-when-the.patch (100%) rename 0186-move-control_client_thread-creation-after-control_in.patch => 0181-move-control_client_thread-creation-after-control_in.patch (100%) rename 0187-add-ret-check-in-pthread_create-and-fix-example-bug.patch => 0182-add-ret-check-in-pthread_create-and-fix-example-bug.patch (100%) rename 0188-add-log-message-when-wait-for-connecting-to-ltran.patch => 0183-add-log-message-when-wait-for-connecting-to-ltran.patch (100%) rename 0189-add-gazelle-fuzz.patch => 0184-add-gazelle-fuzz.patch (100%) rename 0190-add-unitest.patch => 0185-add-unitest.patch (100%) rename 0191-add-gazelle-setup-tools.patch => 0186-add-gazelle-setup-tools.patch (100%) rename 0192-test-readv-writev-epoll_create1-accept4.patch => 0187-test-readv-writev-epoll_create1-accept4.patch (100%) rename 0193-add-fucntest.patch => 0188-add-fucntest.patch (100%) rename 0194-fix-coredump-in-example-server-mum-mode.patch => 0189-fix-coredump-in-example-server-mum-mode.patch (100%) rename 0195-bring-up-kni-when-init.patch => 0190-bring-up-kni-when-init.patch (100%) rename 0196-change-mbuf_pool_size-in-lstack.conf-to-tcp_conn_cou.patch => 0191-change-mbuf_pool_size-in-lstack.conf-to-tcp_conn_cou.patch (100%) rename 0197-fix-build-error-in-lstack.patch => 0192-fix-build-error-in-lstack.patch (100%) rename 0198-check-and-fix-wakeup_list-when-null-appears.patch => 0193-check-and-fix-wakeup_list-when-null-appears.patch (100%) rename 0199-eneble-TSO-and-fix-TSO-mbuf-pktlen-error.patch => 0194-eneble-TSO-and-fix-TSO-mbuf-pktlen-error.patch (100%) rename 0200-adapt-unsupport-sock-optname.patch => 0195-adapt-unsupport-sock-optname.patch (100%) rename 0201-reduce-duplicate-code-in-lstack_cfg.c.patch => 0196-reduce-duplicate-code-in-lstack_cfg.c.patch (100%) rename 0202-fix-private-data-offset-error.patch => 0197-fix-private-data-offset-error.patch (100%) rename 0203-fix-do_close-core-dump.patch => 0198-fix-do_close-core-dump.patch (100%) rename 0204-remove-rxtx-driver-cache.patch => 0199-remove-rxtx-driver-cache.patch (100%) rename 0205-send-ring-size-is-configure.patch => 0200-send-ring-size-is-configure.patch (100%) rename 0206-send-should-return-1-errno-EAGAIN-when-ring-full.patch => 0201-send-should-return-1-errno-EAGAIN-when-ring-full.patch (100%) rename 0207-when-send-ring-full-whether-dynamic-alloc-mbuf-is-co.patch => 0202-when-send-ring-full-whether-dynamic-alloc-mbuf-is-co.patch (100%) rename 0208-add-pbuf-lock-when-aggregate-pbuf.patch => 0203-add-pbuf-lock-when-aggregate-pbuf.patch (96%) rename 0209-supprot-multi-process.patch => 0204-supprot-multi-process.patch (100%) rename 0210-add-gazellectl-x-to-show-nic-stats.patch => 0205-add-gazellectl-x-to-show-nic-stats.patch (100%) rename 0211-add-same-node-ring-for-inter-proces-communication.patch => 0206-add-same-node-ring-for-inter-proces-communication.patch (100%) rename 0212-fix-send-reset-by-peer-when-not-sleep-after-connect.patch => 0207-fix-send-reset-by-peer-when-not-sleep-after-connect.patch (100%) rename 0213-add-tuple_filter-to-diff-rss-rule-and-tuple-filter.patch => 0208-add-tuple-filter-in-conf-to-diff-rss-rule-and-tuple-.patch (98%) rename 0215-disable-tso-without-ipv4-checksum.patch => 0210-disable-tso-without-ipv4-checksum.patch (99%) rename 0214-support-tuple-rule-add-delete.patch => 0210-support-tuple-rule-add-delete.patch (96%) rename 0216-refactor-mbuf-private-data.patch => 0211-refactor-mbuf-private-data.patch (93%) rename 0217-fix-kernel-scoket-select-path-error.patch => 0212-fix-kernel-scoket-select-path-error.patch (100%) rename 0218-discard-wakeup_num-parameter.patch => 0213-discard-wakeup_num-parameter.patch (100%) rename 0219-fix-parse-args-error.patch => 0214-fix-parse-args-error.patch (100%) rename 0220-gazelle-send-recv-thread-bind-numa.patch => 0215-gazelle-send-recv-thread-bind-numa.patch (100%) rename 0221-waiting-when-primary-process-not-start-already.patch => 0216-waiting-when-primary-process-not-start-already.patch (100%) rename 0224-sepeate_string_to-array-add-error-args-handle.patch => 0217-sepeate_string_to-array-add-error-args-handle.patch (99%) rename 0222-do-not-transfer-broadcast-arp-pkts-to-other-process.patch => 0218-do-not-transfer-broadcast-arp-pkts-to-other-process.patch (99%) rename 0223-revert-select_thread_path-and-optimize-app-thread-wh.patch => 0219-revert-select_thread_path-and-optimize-app-thread-wh.patch (99%) rename 0225-check-primary-process-idx-and-secondary-lstack-num.patch => 0220-check-primary-process-idx-and-secondary-lstack-num.patch (99%) rename 0226-optimite-select_path-and-pbuf_take.patch => 0221-optimite-select_path-and-pbuf_take.patch (99%) rename 0227-fix-build-err-on-select_path.patch => 0222-fix-build-err-on-select_path.patch (100%) rename 0228-set-kni_switch-valid-only-in-primary-process.patch => 0223-set-kni_switch-valid-only-in-primary-process.patch (100%) rename 0230-optimize-do_close.patch => 0224-optimize-do_close.patch (100%) rename 0229-add-socket-check-before-write-it.patch => 0225-add-socket-check-before-write-it.patch (100%) rename 0232-update-lstack.Makefile.patch => 0226-update-lstack.Makefile.patch (100%) rename 0231-fix-config-flow-rule-race.patch => 0227-fix-config-flow-rule-race.patch (100%) create mode 100644 0228-fix-build-err-with-dpdk-21.11.patch rename 0233-fix-gazellectl-x-error-when-multiplt-user-nic-config.patch => 0229-fix-gazellectl-x-error-when-multiplt-user-nic-config.patch (99%) rename 0234-fix-client-connect-number-unbalance-on-lstack.patch => 0230-fix-client-connect-number-unbalance-on-lstack.patch (99%) rename 0236-kni-down-not-stop-nic.patch => 0231-kni-down-not-stop-nic.patch (99%) rename 0237-fix-rpc-msg-alloc-failed.patch => 0232-fix-rpc-msg-alloc-failed.patch (99%) rename 0238-add-parentheses-to-fix-build-error.patch => 0233-add-parentheses-to-fix-build-error.patch (99%) rename 0240-fix-bond_ports-parse-error.patch => 0234-fix-bond_ports-parse-error.patch (99%) rename 0241-dfx-set-g_unix_fd-to-1-after-abnormal-close-fd-to-av.patch => 0235-dfx-set-g_unix_fd-to-1-after-abnormal-close-fd-to-av.patch (100%) delete mode 100644 0235-set-client-nonblock-to-fix-example-connect-error.patch rename 0242-dfx-security-function-failed-return-error-directly.patch => 0236-dfx-security-function-failed-return-error-directly.patch (100%) rename 0243-add-bond4-suport.patch => 0237-add-bond4-suport.patch (94%) rename 0244-clean-code.patch => 0238-clean-code.patch (97%) rename 0245-add-udp-multicast-support-in-gazelle.patch => 0239-add-udp-multicast-support-in-gazelle.patch (94%) delete mode 100644 0239-add-udp-protocol-support-in-example.patch rename 0081-modify-huge-dir-dir-name.patch => 0240-modify-huge-dir-dir-name.patch (100%) create mode 100644 0241-drop-netbuf-in-read_lwip_data-to-fix-mem-overflow.patch create mode 100644 0242-send-recv-thread-bind-numa-only-app_bind_numa-set-to.patch create mode 100644 0243-fix-change-low-power-mod-invalid.patch create mode 100644 0244-add-exception-handling-for-is_dst_ip_localhost.patch create mode 100644 0245-fix-gazellectl-block-before-lstack-registration-is-c.patch create mode 100644 0246-fix-udp-send-recv-in-muliple-queue.patch create mode 100644 0247-set-sock-when-select-path-is-PATH_UNKNOW.patch create mode 100644 0248-rpc-pool-use-dpdk-mempool-replace-array.patch create mode 100644 0249-fix-t_params-use-after-free-in-kernel-event-thread.patch create mode 100644 0250-adapt-to-dpdk-19.11-and-dpdk-21.11.patch create mode 100644 0251-change-send_ring_size-32-in-lstack-conf.patch diff --git a/0040-adapt-to-gazelle.patch b/0040-adapt-to-gazelle.patch deleted file mode 100644 index 2f47037..0000000 --- a/0040-adapt-to-gazelle.patch +++ /dev/null @@ -1,274 +0,0 @@ -From fd7a843ec8afcd44233488cca0f1fd3bb6fe6112 Mon Sep 17 00:00:00 2001 -From: root -Date: Mon, 18 Apr 2022 20:08:14 +0800 -Subject: [PATCH] adpter 20.03 - ---- - build/build.sh | 0 - src/common/dpdk_common.c | 3 +- - src/lstack/Makefile | 54 +++++++++++----------- - src/lstack/api/lstack_wrap.c | 7 ++- - src/lstack/core/lstack_dpdk.c | 38 +++++++++++++-- - src/lstack/include/lstack_ethdev.h | 2 +- - src/lstack/include/lstack_protocol_stack.h | 2 +- - src/lstack/include/lstack_vdev.h | 4 +- - src/lstack/netif/lstack_vdev.c | 6 +-- - src/ltran/CMakeLists.txt | 47 ++++++++++--------- - tool/gazelle_common.sh | 0 - tool/gazelle_crontab.sh | 0 - tool/gazelle_exit.sh | 0 - tool/gazelle_setup.sh | 0 - 14 files changed, 101 insertions(+), 62 deletions(-) - mode change 100755 => 100644 build/build.sh - mode change 100755 => 100644 tool/gazelle_common.sh - mode change 100755 => 100644 tool/gazelle_crontab.sh - mode change 100755 => 100644 tool/gazelle_exit.sh - mode change 100755 => 100644 tool/gazelle_setup.sh - -diff --git a/build/build.sh b/build/build.sh -old mode 100755 -new mode 100644 -diff --git a/src/common/dpdk_common.c b/src/common/dpdk_common.c -index 63dcfc1..af03f2c 100644 ---- a/src/common/dpdk_common.c -+++ b/src/common/dpdk_common.c -@@ -16,6 +16,7 @@ - #include - #include - #include -+#include - - #include "dpdk_common.h" - -@@ -167,4 +168,4 @@ void kni_process_rx(uint16_t port) - pkts_burst[i] = NULL; - } - } --} -\ No newline at end of file -+} -diff --git a/src/lstack/Makefile b/src/lstack/Makefile -index 8fc2435..0abed9e 100644 ---- a/src/lstack/Makefile -+++ b/src/lstack/Makefile -@@ -14,18 +14,22 @@ ROOT_DIR := $(dir $(abspath $(LSTACK_DIR))) - LWIP_INCLUDE_FILE ?= /usr/include/lwip - LIB_PATH ?= /usr/lib64 - -+DPDK_INCLUDE_FILE ?= /usr/include/dpdk -+DPDK_LIB_PATH ?= /usr/lib64 -+ - AR = ar - ARFLAGS = crDP - CC = gcc - OPTIMIZATION = -O2 -g - RM = rm -f --LDFLAGS = -shared -ldl -lm -lpthread -lrt -lnuma -lconfig -lboundscheck -+LDFLAGS = -shared -ldl -lm -lpthread -lrt -lnuma -lconfig -lsecurec - - SEC_FLAGS = -fstack-protector-strong -Werror -Wall -Wl,-z,relro,-z,now -Wl,-z,noexecstack -Wtrampolines -fPIC - - INC = -I$(LSTACK_DIR)/include \ - -I$(LSTACK_DIR)/../common \ -- -I$(LWIP_INCLUDE_FILE) -+ -I$(LWIP_INCLUDE_FILE) \ -+ -I$(DPDK_INCLUDE_FILE) - - CFLAGS = $(OPTIMIZATION) -fno-strict-aliasing $(INC) - -@@ -53,32 +57,26 @@ include $(patsubst %, %/dir.mk, $(DIRS)) - OBJS = $(subst .c,.o,$(SRCS)) - - LWIP_LIB = $(LIB_PATH)/liblwip.a --LIBRTE_LIB = $(LIB_PATH)/librte_bus_pci.a \ -- $(LIB_PATH)/librte_pci.a \ -- $(LIB_PATH)/librte_cmdline.a \ -- $(LIB_PATH)/librte_hash.a \ -- $(LIB_PATH)/librte_mempool.a \ -- $(LIB_PATH)/librte_mempool_ring.a \ -- $(LIB_PATH)/librte_timer.a \ -- $(LIB_PATH)/librte_eal.a \ -- $(LIB_PATH)/librte_ring.a \ -- $(LIB_PATH)/librte_mbuf.a \ -- $(LIB_PATH)/librte_telemetry.a \ -- $(LIB_PATH)/librte_kni.a \ -- $(LIB_PATH)/librte_net_ixgbe.a \ -- $(LIB_PATH)/librte_kvargs.a \ -- $(LIB_PATH)/librte_net_hinic.a \ -- $(LIB_PATH)/librte_net_i40e.a \ -- $(LIB_PATH)/librte_net_virtio.a \ -- $(LIB_PATH)/librte_bus_vdev.a \ -- $(LIB_PATH)/librte_net.a \ -- $(LIB_PATH)/librte_rcu.a \ -- $(LIB_PATH)/librte_ethdev.a \ -- $(LIB_PATH)/librte_pdump.a \ -- $(LIB_PATH)/librte_bpf.a \ -- $(LIB_PATH)/librte_pcapng.a \ -- $(LIB_PATH)/librte_security.a \ -- $(LIB_PATH)/librte_cryptodev.a -+LIBRTE_LIB = $(DPDK_LIB_PATH)/librte_pci.a \ -+ $(DPDK_LIB_PATH)/librte_bus_pci.a \ -+ $(DPDK_LIB_PATH)/librte_cmdline.a \ -+ $(DPDK_LIB_PATH)/librte_hash.a \ -+ $(DPDK_LIB_PATH)/librte_mempool.a \ -+ $(DPDK_LIB_PATH)/librte_mempool_ring.a \ -+ $(DPDK_LIB_PATH)/librte_timer.a \ -+ $(DPDK_LIB_PATH)/librte_eal.a \ -+ $(DPDK_LIB_PATH)/librte_ring.a \ -+ $(DPDK_LIB_PATH)/librte_mbuf.a \ -+ $(DPDK_LIB_PATH)/librte_kni.a \ -+ $(DPDK_LIB_PATH)/librte_pmd_ixgbe.a \ -+ $(DPDK_LIB_PATH)/librte_kvargs.a \ -+ $(DPDK_LIB_PATH)/librte_pmd_hinic.a \ -+ $(DPDK_LIB_PATH)/librte_pmd_i40e.a \ -+ $(DPDK_LIB_PATH)/librte_pmd_virtio.a \ -+ $(DPDK_LIB_PATH)/librte_bus_vdev.a \ -+ $(DPDK_LIB_PATH)/librte_net.a \ -+ $(DPDK_LIB_PATH)/librte_ethdev.a \ -+ $(DPDK_LIB_PATH)/librte_pdump.a - - - DEP_LIBS = $(LWIP_LIB) $(LIBRTE_LIB) -diff --git a/src/lstack/include/lstack_ethdev.h b/src/lstack/include/lstack_ethdev.h -index 573a413..e76f72d 100644 ---- a/src/lstack/include/lstack_ethdev.h -+++ b/src/lstack/include/lstack_ethdev.h -@@ -24,7 +24,7 @@ - - #define DPDK_PKT_BURST_SIZE 512 - --struct eth_dev_ops { -+struct lstack_eth_dev_ops { - uint32_t (*rx_poll)(struct protocol_stack *stack, struct rte_mbuf **pkts, uint32_t max_mbuf); - uint32_t (*tx_xmit)(struct protocol_stack *stack, struct rte_mbuf **pkts, uint32_t nr_pkts); - }; -diff --git a/src/lstack/include/lstack_protocol_stack.h b/src/lstack/include/lstack_protocol_stack.h -index 9753385..5a1e0a0 100644 ---- a/src/lstack/include/lstack_protocol_stack.h -+++ b/src/lstack/include/lstack_protocol_stack.h -@@ -44,7 +44,7 @@ struct protocol_stack { - struct netif netif; - uint32_t rx_ring_used; - uint32_t tx_ring_used; -- struct eth_dev_ops *dev_ops; -+ struct lstack_eth_dev_ops *dev_ops; - - struct list_node recv_list; - struct list_node listen_list; -diff --git a/src/lstack/include/lstack_vdev.h b/src/lstack/include/lstack_vdev.h -index 31a997d..4a6253e 100644 ---- a/src/lstack/include/lstack_vdev.h -+++ b/src/lstack/include/lstack_vdev.h -@@ -29,8 +29,8 @@ - #define VDEV_TX_QUEUE_SZ (DEFAULT_RING_SIZE) - #define FREE_RX_QUEUE_SZ (DPDK_PKT_BURST_SIZE) - --struct eth_dev_ops; --void vdev_dev_ops_init(struct eth_dev_ops **dev_ops); -+struct lstack_eth_dev_ops; -+void vdev_dev_ops_init(struct lstack_eth_dev_ops **dev_ops); - int vdev_reg_xmit(enum reg_ring_type type, struct gazelle_quintuple *qtuple); - - #endif /* _GAZELLE_VDEV_H_ */ -diff --git a/src/lstack/netif/lstack_vdev.c b/src/lstack/netif/lstack_vdev.c -index 5a4e86a..cb0e6e9 100644 ---- a/src/lstack/netif/lstack_vdev.c -+++ b/src/lstack/netif/lstack_vdev.c -@@ -153,17 +153,17 @@ int32_t vdev_reg_xmit(enum reg_ring_type type, struct gazelle_quintuple *qtuple) - return (int32_t)sent_pkts; - } - --static struct eth_dev_ops g_eth_dev_ops = { -+static struct lstack_eth_dev_ops g_eth_dev_ops = { - .rx_poll = vdev_rx_poll, - .tx_xmit = vdev_tx_xmit, - }; - --static struct eth_dev_ops g_ltran_eth_dev_ops = { -+static struct lstack_eth_dev_ops g_ltran_eth_dev_ops = { - .rx_poll = ltran_rx_poll, - .tx_xmit = ltran_tx_xmit, - }; - --void vdev_dev_ops_init(struct eth_dev_ops **dev_ops) -+void vdev_dev_ops_init(struct lstack_eth_dev_ops **dev_ops) - { - if (use_ltran()) { - *dev_ops = &g_ltran_eth_dev_ops; -diff --git a/src/ltran/CMakeLists.txt b/src/ltran/CMakeLists.txt -index c21d88a..37ec14a 100644 ---- a/src/ltran/CMakeLists.txt -+++ b/src/ltran/CMakeLists.txt -@@ -12,6 +12,7 @@ cmake_minimum_required(VERSION 3.12.1) - project(ltran) - - set(COMMON_DIR ${PROJECT_SOURCE_DIR}/../common) -+set(DPDK_DIR /usr/include/dpdk) - - set(CMAKE_C_FLAGS "-O2 -g -fstack-protector-strong -Wall -Werror -fPIE -pie -pthread") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D LTRAN_COMPILE") -@@ -26,7 +27,7 @@ add_executable(ltran main.c ltran_param.c ltran_config.c ltran_ethdev.c ltran_st - ltran_forward.c ltran_timer.c ${COMMON_DIR}/gazelle_dfx_msg.c ${COMMON_DIR}/dpdk_common.c - ${COMMON_DIR}/gazelle_parse_config.c) - --target_include_directories(ltran PRIVATE ${COMMON_DIR} ${PROJECT_SOURCE_DIR}) -+ target_include_directories(ltran PRIVATE ${DPDK_DIR} ${COMMON_DIR} ${PROJECT_SOURCE_DIR}) - target_compile_options(ltran PRIVATE -march=native -fno-strict-aliasing -D__ARM_FEATURE_CRC32=1 -DRTE_MACHINE_CPUFLAG_NEON - -DRTE_MACHINE_CPUFLAG_CRC32 -DRTE_MACHINE_CPUFLAG_PMULL -DRTE_MACHINE_CPUFLAG_AES - -DRTE_MACHINE_CPUFLAG_SHA1 -DRTE_MACHINE_CPUFLAG_SHA2 -include rte_config.h -@@ -34,27 +35,31 @@ target_compile_options(ltran PRIVATE -march=native -fno-strict-aliasing -D__ARM_ - -Wpointer-arith -Wcast-align -Wcast-qual -Wnested-externs -Wformat-nonliteral -Wformat-security -Wundef - -Wdeprecated -Wwrite-strings -Wno-implicit-fallthrough -D_FORTIFY_SOURCE=2) - --target_link_libraries(ltran PRIVATE config boundscheck rte_pdump -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack -Wtrampolines) -+target_link_libraries(ltran PRIVATE config securec rte_pdump -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack -Wtrampolines) - set_target_properties(ltran PROPERTIES LINK_FLAGS "-L$ENV{DPDK_LIB_PATH} -Wl,--whole-archive -Wl,-lrte_pipeline \ -- -Wl,--no-whole-archive -Wl,-lrte_table -Wl,--whole-archive -Wl,--no-whole-archive -Wl,--whole-archive -Wl,-lrte_port -Wl,--no-whole-archive \ -- -Wl,-lrte_distributor -Wl,-lrte_meter -Wl,-lrte_ip_frag -Wl,-lrte_lpm -Wl,--whole-archive -Wl,-lrte_acl -Wl,--no-whole-archive \ -- -Wl,-lrte_jobstats -Wl,-lrte_bitratestats -Wl,-lrte_metrics -Wl,-lrte_latencystats -Wl,-lrte_power -Wl,-lrte_efd -Wl,-lrte_bpf \ -- -Wl,--whole-archive -Wl,-lrte_gro -Wl,-lrte_cfgfile -Wl,-lrte_gso -Wl,-lrte_hash -Wl,-lrte_member -Wl,-lrte_vhost -Wl,-lrte_kvargs \ -- -Wl,-lrte_mbuf -Wl,-lrte_ethdev -Wl,-lrte_net -Wl,-lrte_bbdev -Wl,-lrte_cryptodev -Wl,-lrte_security -Wl,-lrte_compressdev -Wl,-lrte_eventdev \ -+ -Wl,--no-whole-archive -Wl,--whole-archive -Wl,-lrte_table -Wl,--no-whole-archive -Wl,--whole-archive -Wl,-lrte_port -Wl,--no-whole-archive \ -+ -Wl,-lrte_distributor -Wl,-lrte_ip_frag -Wl,-lrte_meter -Wl,-lrte_lpm -Wl,--whole-archive -Wl,-lrte_acl -Wl,--no-whole-archive \ -+ -Wl,-lrte_jobstats -Wl,-lrte_metrics -Wl,-lrte_bitratestats -Wl,-lrte_latencystats -Wl,-lrte_power -Wl,-lrte_efd -Wl,-lrte_bpf \ -+ -Wl,--whole-archive -Wl,-lrte_cfgfile -Wl,-lrte_gro -Wl,-lrte_gso -Wl,-lrte_hash -Wl,-lrte_member -Wl,-lrte_vhost -Wl,-lrte_kvargs \ -+ -Wl,-lrte_mbuf -Wl,-lrte_net -Wl,-lrte_ethdev -Wl,-lrte_bbdev -Wl,-lrte_cryptodev -Wl,-lrte_security -Wl,-lrte_compressdev -Wl,-lrte_eventdev \ - -Wl,-lrte_rawdev -Wl,-lrte_timer -Wl,-lrte_mempool -Wl,-lrte_mempool_ring -Wl,-lrte_ring -Wl,-lrte_pci \ -- -Wl,-Bstatic -lrte_eal -Wl,-Bdynamic -Wl,-lrte_cmdline \ -- -Wl,-lrte_sched -Wl,-lrte_reorder -Wl,-lrte_kni -Wl,-lrte_common_cpt -Wl,-lrte_common_octeontx -Wl,-lrte_common_dpaax -Wl,-lrte_bus_pci \ -- -Wl,-lrte_bus_dpaa -Wl,-lrte_bus_vdev -Wl,-lrte_bus_fslmc -Wl,-lrte_mempool_bucket -Wl,-lrte_mempool_stack -Wl,-lrte_mempool_dpaa \ -- -Wl,-lrte_mempool_dpaa2 -Wl,-lrte_net_af_packet -Wl,-lrte_net_ark -Wl,-lrte_net_atlantic -Wl,-lrte_net_axgbe \ -- -Wl,-lrte_net_bnxt -Wl,-lrte_net_bond -Wl,-lrte_net_cxgbe -Wl,-lrte_net_dpaa -Wl,-lrte_net_dpaa2 -Wl,-lrte_net_e1000 -Wl,-lrte_net_ena \ -- -Wl,-lrte_net_enetc -Wl,-lrte_net_enic -Wl,-lrte_net_failsafe -Wl,-lrte_net_i40e -Wl,-lrte_net_hinic -Wl,-lrte_net_ixgbe -Wl,-lrte_net_kni \ -- -Wl,-lrte_net_nfp -Wl,-lrte_net_null -Wl,-lpcap -Wl,-lrte_net_qede -Wl,-lrte_net_ring -Wl,-lrte_net_softnic \ -- -Wl,-lrte_net_tap -Wl,-lrte_net_vdev_netvsc -Wl,-lrte_net_virtio -Wl,-lrte_net_vhost \ -- -Wl,-lrte_bus_vmbus -Wl,-lrte_net_netvsc -Wl,-lrte_mempool_octeontx -Wl,-lrte_net_octeontx \ -- -Wl,-lrte_bus_ifpga -Wl,-lrte_stack -Wl,-lrte_telemetry\ -- -Wl,--no-whole-archive -Wl,-lm -Wl,-lrt -Wl,-lnuma -Wl,-ldl -Wl,-export-dynamic -Wl,-export-dynamic \ -- -Wl,--as-needed -Wl,-export-dynamic -Wl,-Map=ltran.map -Wl,--cref") -+ -Wl,-Bstatic -lrte_eal -Wl,-Bdynamic \ -+ -Wl,-lrte_cmdline \ -+ -Wl,-lrte_reorder -Wl,-lrte_sched -Wl,-lrte_kni -Wl,-lrte_common_cpt -Wl,-lrte_common_octeontx -Wl,-lrte_common_dpaax -Wl,-lrte_bus_pci \ -+ -Wl,-lrte_bus_vdev -Wl,-lrte_bus_dpaa -Wl,-lrte_bus_fslmc -Wl,-lrte_mempool_bucket -Wl,-lrte_mempool_stack -Wl,-lrte_mempool_dpaa \ -+ -Wl,-lrte_mempool_dpaa2 -Wl,-lrte_pmd_af_packet -Wl,-lrte_pmd_ark -Wl,-lrte_pmd_atlantic -Wl,-lrte_pmd_axgbe \ -+ -Wl,-lrte_pmd_bnxt -Wl,-lrte_pmd_bond -Wl,-lrte_pmd_cxgbe -Wl,-lrte_pmd_dpaa -Wl,-lrte_pmd_dpaa2 -Wl,-lrte_pmd_e1000 -Wl,-lrte_pmd_ena \ -+ -Wl,-lrte_pmd_enetc -Wl,-lrte_pmd_enic -Wl,-lrte_pmd_failsafe -Wl,-lrte_pmd_i40e -Wl,-lrte_pmd_hinic -Wl,-lrte_pmd_ixgbe -Wl,-lrte_pmd_kni \ -+ -Wl,-lrte_pmd_lio -Wl,-lrte_pmd_nfp -Wl,-lrte_pmd_null -Wl,-lpcap -Wl,-lrte_pmd_qede -Wl,-lrte_pmd_ring -Wl,-lrte_pmd_softnic \ -+ -Wl,-lrte_pmd_tap -Wl,-lrte_pmd_thunderx_nicvf -Wl,-lrte_pmd_vdev_netvsc -Wl,-lrte_pmd_virtio -Wl,-lrte_pmd_vhost -Wl,-lrte_pmd_ifc \ -+ -Wl,-lrte_pmd_vmxnet3_uio -Wl,-lrte_bus_vmbus -Wl,-lrte_pmd_netvsc -Wl,-lrte_pmd_bbdev_null -Wl,-lrte_pmd_null_crypto -Wl,-lrte_pmd_octeontx_crypto \ -+ -Wl,-lrte_pmd_crypto_scheduler -Wl,-lrte_pmd_dpaa2_sec -Wl,-lrte_pmd_dpaa_sec -Wl,-lrte_pmd_caam_jr -Wl,-lrte_pmd_virtio_crypto \ -+ -Wl,-lrte_pmd_octeontx_zip -Wl,-lrte_pmd_qat -Wl,-lrte_pmd_skeleton_event -Wl,-lrte_pmd_sw_event -Wl,-lrte_pmd_dsw_event \ -+ -Wl,-lrte_pmd_octeontx_ssovf -Wl,-lrte_pmd_dpaa_event -Wl,-lrte_pmd_dpaa2_event -Wl,-lrte_mempool_octeontx -Wl,-lrte_pmd_octeontx \ -+ -Wl,-lrte_pmd_opdl_event -Wl,-lrte_bus_ifpga -Wl,-lrte_stack \ -+ -Wl,--no-whole-archive -Wl,-lrt -Wl,-lm -Wl,-lnuma -Wl,-ldl -Wl,-export-dynamic -Wl,-export-dynamic \ -+ -Wl,-export-dynamic -Wl,--as-needed -Wl,-Map=ltran.map -Wl,--cref") - - add_executable(gazellectl ltran_dfx.c ${COMMON_DIR}/gazelle_dfx_msg.c) --target_include_directories(gazellectl PRIVATE $ENV{DPDK_INCLUDE_FILE} ${COMMON_DIR}) --target_link_libraries(gazellectl PRIVATE boundscheck) -+target_include_directories(gazellectl PRIVATE $ENV{DPDK_INCLUDE_FILE} ${DPDK_DIR} ${COMMON_DIR}) -+target_link_libraries(gazellectl PRIVATE securec) - --- -2.27.0 - diff --git a/0042-fix-sock-invalid-address.patch b/0040-fix-sock-invalid-address.patch similarity index 100% rename from 0042-fix-sock-invalid-address.patch rename to 0040-fix-sock-invalid-address.patch diff --git a/0043-exit-lstack-process-after-ltran-instance-logout.patch b/0041-exit-lstack-process-after-ltran-instance-logout.patch similarity index 100% rename from 0043-exit-lstack-process-after-ltran-instance-logout.patch rename to 0041-exit-lstack-process-after-ltran-instance-logout.patch diff --git a/0041-modify-securec-to-boundscheck.patch b/0041-modify-securec-to-boundscheck.patch deleted file mode 100644 index 1c982bc..0000000 --- a/0041-modify-securec-to-boundscheck.patch +++ /dev/null @@ -1,45 +0,0 @@ -From feb53c7996a677577d9d60664697a1f5bd2afe21 Mon Sep 17 00:00:00 2001 -From: xiusailong -Date: Tue, 14 Jun 2022 17:36:52 +0800 -Subject: [PATCH] modify securec to boundscheck - ---- - src/lstack/Makefile | 2 +- - src/ltran/CMakeLists.txt | 4 ++-- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/lstack/Makefile b/src/lstack/Makefile -index 0abed9e..1aaed16 100644 ---- a/src/lstack/Makefile -+++ b/src/lstack/Makefile -@@ -22,7 +22,7 @@ ARFLAGS = crDP - CC = gcc - OPTIMIZATION = -O2 -g - RM = rm -f --LDFLAGS = -shared -ldl -lm -lpthread -lrt -lnuma -lconfig -lsecurec -+LDFLAGS = -shared -ldl -lm -lpthread -lrt -lnuma -lconfig -lboundscheck - - SEC_FLAGS = -fstack-protector-strong -Werror -Wall -Wl,-z,relro,-z,now -Wl,-z,noexecstack -Wtrampolines -fPIC - -diff --git a/src/ltran/CMakeLists.txt b/src/ltran/CMakeLists.txt -index 37ec14a..5279d24 100644 ---- a/src/ltran/CMakeLists.txt -+++ b/src/ltran/CMakeLists.txt -@@ -35,7 +35,7 @@ target_compile_options(ltran PRIVATE -march=native -fno-strict-aliasing -D__ARM_ - -Wpointer-arith -Wcast-align -Wcast-qual -Wnested-externs -Wformat-nonliteral -Wformat-security -Wundef - -Wdeprecated -Wwrite-strings -Wno-implicit-fallthrough -D_FORTIFY_SOURCE=2) - --target_link_libraries(ltran PRIVATE config securec rte_pdump -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack -Wtrampolines) -+target_link_libraries(ltran PRIVATE config boundscheck rte_pdump -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack -Wtrampolines) - set_target_properties(ltran PROPERTIES LINK_FLAGS "-L$ENV{DPDK_LIB_PATH} -Wl,--whole-archive -Wl,-lrte_pipeline \ - -Wl,--no-whole-archive -Wl,--whole-archive -Wl,-lrte_table -Wl,--no-whole-archive -Wl,--whole-archive -Wl,-lrte_port -Wl,--no-whole-archive \ - -Wl,-lrte_distributor -Wl,-lrte_ip_frag -Wl,-lrte_meter -Wl,-lrte_lpm -Wl,--whole-archive -Wl,-lrte_acl -Wl,--no-whole-archive \ -@@ -62,4 +62,4 @@ set_target_properties(ltran PROPERTIES LINK_FLAGS "-L$ENV{DPDK_LIB_PATH} -Wl,--w - - add_executable(gazellectl ltran_dfx.c ${COMMON_DIR}/gazelle_dfx_msg.c) - target_include_directories(gazellectl PRIVATE $ENV{DPDK_INCLUDE_FILE} ${DPDK_DIR} ${COMMON_DIR}) --target_link_libraries(gazellectl PRIVATE securec) -+target_link_libraries(gazellectl PRIVATE boundscheck) --- -2.27.0 - diff --git a/0044-use-atomic-variales-to-count.patch b/0042-use-atomic-variales-to-count.patch similarity index 100% rename from 0044-use-atomic-variales-to-count.patch rename to 0042-use-atomic-variales-to-count.patch diff --git a/0045-re-arrange-the-program-to-invoke-rte_eth_dev_start-b.patch b/0043-re-arrange-the-program-to-invoke-rte_eth_dev_start-b.patch similarity index 100% rename from 0045-re-arrange-the-program-to-invoke-rte_eth_dev_start-b.patch rename to 0043-re-arrange-the-program-to-invoke-rte_eth_dev_start-b.patch diff --git a/0046-delete-redundant-file.patch b/0044-delete-redundant-file.patch similarity index 100% rename from 0046-delete-redundant-file.patch rename to 0044-delete-redundant-file.patch diff --git a/0047-lstack-all-exit-move-to-init.patch b/0045-lstack-all-exit-move-to-init.patch similarity index 100% rename from 0047-lstack-all-exit-move-to-init.patch rename to 0045-lstack-all-exit-move-to-init.patch diff --git a/0048-clean-code-fix-huge-func.patch b/0046-clean-code-fix-huge-func.patch similarity index 100% rename from 0048-clean-code-fix-huge-func.patch rename to 0046-clean-code-fix-huge-func.patch diff --git a/0049-add-kernel-path-in-epoll-funcs.patch b/0047-add-kernel-path-in-epoll-funcs.patch similarity index 100% rename from 0049-add-kernel-path-in-epoll-funcs.patch rename to 0047-add-kernel-path-in-epoll-funcs.patch diff --git a/0050-refactor-kernel-event-poll-epoll.patch b/0048-refactor-kernel-event-poll-epoll.patch similarity index 100% rename from 0050-refactor-kernel-event-poll-epoll.patch rename to 0048-refactor-kernel-event-poll-epoll.patch diff --git a/0051-post-thread_phase1-sem-to-avoid-block-main-thread-wh.patch b/0049-post-thread_phase1-sem-to-avoid-block-main-thread-wh.patch similarity index 100% rename from 0051-post-thread_phase1-sem-to-avoid-block-main-thread-wh.patch rename to 0049-post-thread_phase1-sem-to-avoid-block-main-thread-wh.patch diff --git a/0052-adjust-the-number-of-RX-TX-mbufs-of-each-stack-threa.patch b/0050-adjust-the-number-of-RX-TX-mbufs-of-each-stack-threa.patch similarity index 100% rename from 0052-adjust-the-number-of-RX-TX-mbufs-of-each-stack-threa.patch rename to 0050-adjust-the-number-of-RX-TX-mbufs-of-each-stack-threa.patch diff --git a/0053-modify-README.patch b/0051-modify-README.patch similarity index 100% rename from 0053-modify-README.patch rename to 0051-modify-README.patch diff --git a/0054-bugfix-https-gitee.com-src-openeuler-gazelle-issues-.patch b/0052-bugfix-https-gitee.com-src-openeuler-gazelle-issues-.patch similarity index 100% rename from 0054-bugfix-https-gitee.com-src-openeuler-gazelle-issues-.patch rename to 0052-bugfix-https-gitee.com-src-openeuler-gazelle-issues-.patch diff --git a/0055-update-README.md.patch b/0053-update-README.md.patch similarity index 100% rename from 0055-update-README.md.patch rename to 0053-update-README.md.patch diff --git a/0056-ltran-fix-use-after-free-issue.patch b/0054-ltran-fix-use-after-free-issue.patch similarity index 100% rename from 0056-ltran-fix-use-after-free-issue.patch rename to 0054-ltran-fix-use-after-free-issue.patch diff --git a/0057-refactor-pkt-read-send-performance.patch b/0055-refactor-pkt-read-send-performance.patch similarity index 99% rename from 0057-refactor-pkt-read-send-performance.patch rename to 0055-refactor-pkt-read-send-performance.patch index 8f9b965..23c8ecc 100644 --- a/0057-refactor-pkt-read-send-performance.patch +++ b/0055-refactor-pkt-read-send-performance.patch @@ -71,7 +71,7 @@ index 595e85f..4a7bd37 100644 + return 0; + } + -+ ENQUEUE_PTRS(r, &r[1], prod, obj_table, n, void *); ++ __rte_ring_enqueue_elems(r, prod, obj_table, sizeof(void *), n); + + __atomic_store_n(&r->prod.tail, prod + n, __ATOMIC_RELEASE); + @@ -92,7 +92,7 @@ index 595e85f..4a7bd37 100644 + return 0; + } + -+ DEQUEUE_PTRS(r, &r[1], cons, obj_table, n, void *); ++ __rte_ring_dequeue_elems(r, cons, obj_table, sizeof(void *), n); + + __atomic_store_n(&r->cons.tail, cons + n, __ATOMIC_RELEASE); + @@ -121,7 +121,7 @@ index 595e85f..4a7bd37 100644 + } + + -+ ENQUEUE_PTRS(r, &r[1], head, obj_table, n, void *); ++ __rte_ring_enqueue_elems(r, head, obj_table, sizeof(void *), n); + + __atomic_store_n(&r->cons.head, head + n, __ATOMIC_RELEASE); + @@ -142,7 +142,7 @@ index 595e85f..4a7bd37 100644 + } + + -+ DEQUEUE_PTRS(r, &r[1], cons, obj_table, n, void *); ++ __rte_ring_dequeue_elems(r, cons, obj_table, sizeof(void *), n); + + __atomic_store_n(&r->cons.tail, cons + n, __ATOMIC_RELEASE); + @@ -162,7 +162,7 @@ index 595e85f..4a7bd37 100644 + return 0; + } + -+ DEQUEUE_PTRS(r, &r[1], prod, obj_table, n, void *); ++ __rte_ring_dequeue_elems(r, prod, obj_table, sizeof(void *), n); + + r->prod.head = prod + n; + @@ -2718,7 +2718,7 @@ index c73e3a7..ba57541 100644 void get_lwip_connnum(struct rpc_msg *msg); void stack_recvlist_count(struct rpc_msg *msg); diff --git a/src/lstack/include/lstack_protocol_stack.h b/src/lstack/include/lstack_protocol_stack.h -index c1d1d35..8a6aa9d 100644 +index bc4e4bd..8a6aa9d 100644 --- a/src/lstack/include/lstack_protocol_stack.h +++ b/src/lstack/include/lstack_protocol_stack.h @@ -14,48 +14,52 @@ @@ -2765,10 +2765,10 @@ index c1d1d35..8a6aa9d 100644 + char pad __rte_cache_aligned; + struct netif netif; -+ struct lstack_eth_dev_ops *dev_ops; ++ struct eth_dev_ops *dev_ops; uint32_t rx_ring_used; uint32_t tx_ring_used; -- struct lstack_eth_dev_ops *dev_ops; +- struct eth_dev_ops *dev_ops; struct list_node recv_list; - struct list_node listen_list; @@ -2792,21 +2792,21 @@ index c1d1d35..8a6aa9d 100644 + pthread_spinlock_t wakeup_list_lock; + struct wakeup_poll *wakeup_list __rte_cache_aligned; }; - + long get_stack_tid(void); struct protocol_stack *get_protocol_stack(void); struct protocol_stack *get_protocol_stack_by_fd(int32_t fd); -struct protocol_stack *get_minconn_protocol_stack(void); +struct protocol_stack *get_bind_protocol_stack(void); struct protocol_stack_group *get_protocol_stack_group(void); - + int32_t init_protocol_stack(void); @@ -96,6 +102,7 @@ int32_t stack_broadcast_close(int32_t fd); - + /* listen sync to all protocol stack thread, so that any protocol stack thread can build connect */ int32_t stack_broadcast_listen(int32_t fd, int backlog); +int32_t stack_single_listen(int32_t fd, int32_t backlog); - + /* ergodic the protocol stack thread to find the connection, because all threads are listening */ int32_t stack_broadcast_accept(int32_t fd, struct sockaddr *addr, socklen_t *addrlen); diff --git a/src/lstack/include/lstack_stack_stat.h b/src/lstack/include/lstack_stack_stat.h diff --git a/0058-ltran-support-checksum.patch b/0056-ltran-support-checksum.patch similarity index 98% rename from 0058-ltran-support-checksum.patch rename to 0056-ltran-support-checksum.patch index dd6b662..6a974fd 100644 --- a/0058-ltran-support-checksum.patch +++ b/0056-ltran-support-checksum.patch @@ -4,7 +4,7 @@ Date: Thu, 7 Jul 2022 22:21:34 +0800 Subject: [PATCH 01/19] ltran support checksum --- - src/common/dpdk_common.c | 43 ++++++++++++++ + src/common/dpdk_common.c | 44 ++++++++++++++ src/common/dpdk_common.h | 4 ++ src/common/gazelle_reg_msg.h | 2 + src/lstack/core/lstack_control_plane.c | 4 ++ @@ -18,8 +18,15 @@ Subject: [PATCH 01/19] ltran support checksum diff --git a/src/common/dpdk_common.c b/src/common/dpdk_common.c index 63dcfc1..939d135 100644 --- a/src/common/dpdk_common.c -+++ b/src/common/dpdk_common.c - ++++ b/src/common/dpdk_common.c +@@ -15,6 +15,7 @@ + #include + #include + #include ++#include + #include + + #include "dpdk_common.h" @@ -87,6 +88,49 @@ static int32_t kni_config_network_interface(uint16_t port_id, uint8_t if_up) return ret; } diff --git a/0059-add-examples-readme-compile-components-main-file-and.patch b/0057-add-examples-readme-compile-components-main-file-and.patch similarity index 100% rename from 0059-add-examples-readme-compile-components-main-file-and.patch rename to 0057-add-examples-readme-compile-components-main-file-and.patch diff --git a/0060-add-examples-parameter-parsing.patch b/0058-add-examples-parameter-parsing.patch similarity index 100% rename from 0060-add-examples-parameter-parsing.patch rename to 0058-add-examples-parameter-parsing.patch diff --git a/0061-lstack-core-fix-reta_conf-array-size-calculation.patch b/0059-lstack-core-fix-reta_conf-array-size-calculation.patch similarity index 100% rename from 0061-lstack-core-fix-reta_conf-array-size-calculation.patch rename to 0059-lstack-core-fix-reta_conf-array-size-calculation.patch diff --git a/0062-Replace-gettid-with-rte_gettid.patch b/0060-Replace-gettid-with-rte_gettid.patch similarity index 100% rename from 0062-Replace-gettid-with-rte_gettid.patch rename to 0060-Replace-gettid-with-rte_gettid.patch diff --git a/0063-modify-the-code-for-canonical-and-update-the-cmake-b.patch b/0061-modify-the-code-for-canonical-and-update-the-cmake-b.patch similarity index 100% rename from 0063-modify-the-code-for-canonical-and-update-the-cmake-b.patch rename to 0061-modify-the-code-for-canonical-and-update-the-cmake-b.patch diff --git a/0064-enable-secure-compile-and-open-compile-log.patch b/0062-enable-secure-compile-and-open-compile-log.patch similarity index 79% rename from 0064-enable-secure-compile-and-open-compile-log.patch rename to 0062-enable-secure-compile-and-open-compile-log.patch index f77a4e7..94e94db 100644 --- a/0064-enable-secure-compile-and-open-compile-log.patch +++ b/0062-enable-secure-compile-and-open-compile-log.patch @@ -1,7 +1,7 @@ -From 573692bf610966f88bbc86468a9b55b9ef5be3e4 Mon Sep 17 00:00:00 2001 +From 2e36e8a3885563d12eac0e5cbed56ddaf1d28e27 Mon Sep 17 00:00:00 2001 From: jiangheng Date: Thu, 14 Jul 2022 22:05:57 +0800 -Subject: [PATCH] enable-secure-compile-and-open-compile-log +Subject: [PATCH 09/19] enable-secure-compile-and-open-compile-log --- src/lstack/Makefile | 2 +- @@ -9,10 +9,10 @@ Subject: [PATCH] enable-secure-compile-and-open-compile-log 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/lstack/Makefile b/src/lstack/Makefile -index 1aaed16..df58f89 100644 +index 8fc2435..98289d8 100644 --- a/src/lstack/Makefile +++ b/src/lstack/Makefile -@@ -24,7 +24,7 @@ OPTIMIZATION = -O2 -g +@@ -21,7 +21,7 @@ OPTIMIZATION = -O2 -g RM = rm -f LDFLAGS = -shared -ldl -lm -lpthread -lrt -lnuma -lconfig -lboundscheck @@ -22,12 +22,12 @@ index 1aaed16..df58f89 100644 INC = -I$(LSTACK_DIR)/include \ -I$(LSTACK_DIR)/../common \ diff --git a/src/ltran/CMakeLists.txt b/src/ltran/CMakeLists.txt -index 5279d24..b565b4c 100644 +index c21d88a..970bc1b 100644 --- a/src/ltran/CMakeLists.txt +++ b/src/ltran/CMakeLists.txt -@@ -14,7 +14,8 @@ project(ltran) +@@ -13,7 +13,8 @@ project(ltran) + set(COMMON_DIR ${PROJECT_SOURCE_DIR}/../common) - set(DPDK_DIR /usr/include/dpdk) -set(CMAKE_C_FLAGS "-O2 -g -fstack-protector-strong -Wall -Werror -fPIE -pie -pthread") +set(CMAKE_VERBOSE_MAKEFILE ON) @@ -35,12 +35,12 @@ index 5279d24..b565b4c 100644 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D LTRAN_COMPILE") if($ENV{GAZELLE_COVERAGE_ENABLE}) -@@ -62,4 +63,4 @@ set_target_properties(ltran PROPERTIES LINK_FLAGS "-L$ENV{DPDK_LIB_PATH} -Wl,--w +@@ -57,4 +58,4 @@ set_target_properties(ltran PROPERTIES LINK_FLAGS "-L$ENV{DPDK_LIB_PATH} -Wl,--w add_executable(gazellectl ltran_dfx.c ${COMMON_DIR}/gazelle_dfx_msg.c) - target_include_directories(gazellectl PRIVATE $ENV{DPDK_INCLUDE_FILE} ${DPDK_DIR} ${COMMON_DIR}) + target_include_directories(gazellectl PRIVATE $ENV{DPDK_INCLUDE_FILE} ${COMMON_DIR}) -target_link_libraries(gazellectl PRIVATE boundscheck) +target_link_libraries(gazellectl PRIVATE boundscheck -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack) -- -2.27.0 +2.23.0 diff --git a/0065-support-epoll-et-trig-mode.patch b/0063-support-epoll-et-trig-mode.patch similarity index 100% rename from 0065-support-epoll-et-trig-mode.patch rename to 0063-support-epoll-et-trig-mode.patch diff --git a/0066-lstack-support-low-power.patch b/0064-lstack-support-low-power.patch similarity index 100% rename from 0066-lstack-support-low-power.patch rename to 0064-lstack-support-low-power.patch diff --git a/0067-add-port-mask-range-check.patch b/0065-add-port-mask-range-check.patch similarity index 100% rename from 0067-add-port-mask-range-check.patch rename to 0065-add-port-mask-range-check.patch diff --git a/0068-release-kni-device.patch b/0066-release-kni-device.patch similarity index 94% rename from 0068-release-kni-device.patch rename to 0066-release-kni-device.patch index 48b9d38..4e35a9e 100644 --- a/0068-release-kni-device.patch +++ b/0066-release-kni-device.patch @@ -4,7 +4,7 @@ Date: Thu, 14 Jul 2022 22:25:44 +0800 Subject: [PATCH 13/19] release-kni-device --- - src/common/dpdk_common.c | 9 +++++++++ + src/common/dpdk_common.c | 11 ++++++++++- src/common/dpdk_common.h | 1 + src/lstack/api/lstack_signal.c | 7 ++++++- src/lstack/core/lstack_init.c | 2 ++ @@ -31,6 +31,13 @@ index 939d135..8d056f9 100644 int32_t kni_process_tx(struct rte_mbuf **pkts_burst, uint32_t count) { uint32_t i = rte_kni_tx_burst(g_pkni, pkts_burst, count); +@@ -211,4 +220,4 @@ void kni_process_rx(uint16_t port) + pkts_burst[i] = NULL; + } + } +-} +\ No newline at end of file ++} diff --git a/src/common/dpdk_common.h b/src/common/dpdk_common.h index 6a6a030..2066159 100644 --- a/src/common/dpdk_common.h diff --git a/0069-optimize-check-ltran-exist.patch b/0067-optimize-check-ltran-exist.patch similarity index 100% rename from 0069-optimize-check-ltran-exist.patch rename to 0067-optimize-check-ltran-exist.patch diff --git a/0070-clean-code.patch b/0068-clean-code.patch similarity index 99% rename from 0070-clean-code.patch rename to 0068-clean-code.patch index 369aea1..5759b39 100644 --- a/0070-clean-code.patch +++ b/0068-clean-code.patch @@ -2504,7 +2504,7 @@ index 0e8400f..91f5f13 100644 - +struct protocol_stack; +struct rte_mbuf; - struct lstack_eth_dev_ops { + struct eth_dev_ops { uint32_t (*rx_poll)(struct protocol_stack *stack, struct rte_mbuf **pkts, uint32_t max_mbuf); uint32_t (*tx_xmit)(struct protocol_stack *stack, struct rte_mbuf **pkts, uint32_t nr_pkts); diff --git a/src/lstack/include/lstack_lwip.h b/src/lstack/include/lstack_lwip.h @@ -2687,10 +2687,10 @@ index 31a997d..5836257 100644 -#define VDEV_TX_QUEUE_SZ (DEFAULT_RING_SIZE) -#define FREE_RX_QUEUE_SZ (DPDK_PKT_BURST_SIZE) - - struct lstack_eth_dev_ops; + struct eth_dev_ops; +struct gazelle_quintuple; +enum reg_ring_type; - void vdev_dev_ops_init(struct lstack_eth_dev_ops **dev_ops); + void vdev_dev_ops_init(struct eth_dev_ops **dev_ops); int vdev_reg_xmit(enum reg_ring_type type, struct gazelle_quintuple *qtuple); diff --git a/src/lstack/include/posix/lstack_epoll.h b/src/lstack/include/posix/lstack_epoll.h diff --git a/0071-clean-code.patch b/0069-clean-code.patch similarity index 100% rename from 0071-clean-code.patch rename to 0069-clean-code.patch diff --git a/0072-Support-build-gazelle-with-clang.patch b/0070-Support-build-gazelle-with-clang.patch similarity index 99% rename from 0072-Support-build-gazelle-with-clang.patch rename to 0070-Support-build-gazelle-with-clang.patch index 2a1675c..bdfd77c 100644 --- a/0072-Support-build-gazelle-with-clang.patch +++ b/0070-Support-build-gazelle-with-clang.patch @@ -125,8 +125,8 @@ index 970bc1b..9c6751c 100644 --- a/src/ltran/CMakeLists.txt +++ b/src/ltran/CMakeLists.txt @@ -14,7 +14,11 @@ project(ltran) - set(DPDK_DIR /usr/include/dpdk) - + set(COMMON_DIR ${PROJECT_SOURCE_DIR}/../common) + set(CMAKE_VERBOSE_MAKEFILE ON) -set(CMAKE_C_FLAGS "-g -fstack-protector-strong -Wall -Werror -fPIE -pie -pthread -D_FORTIFY_SOURCE=2 -O2 -fPIC") +if (CMAKE_C_COMPILER_ID STREQUAL "GNU") diff --git a/0071-Allow-dynamic-load-PMDs.patch b/0071-Allow-dynamic-load-PMDs.patch new file mode 100644 index 0000000..c00607f --- /dev/null +++ b/0071-Allow-dynamic-load-PMDs.patch @@ -0,0 +1,76 @@ +From 15dbe826aef71330043818c9a6c187819823768a Mon Sep 17 00:00:00 2001 +From: Honggang LI +Date: Mon, 18 Jul 2022 10:57:34 +0800 +Subject: [PATCH 18/19] Allow dynamic load PMDs + +Signed-off-by: Honggang LI +--- + src/lstack/Makefile | 52 +++++++++---------- + 1 files changed, 26 insertions(+), 26 deletions(-) + +diff --git a/src/lstack/Makefile b/src/lstack/Makefile +index 0fb4405..7ce35d4 100644 +--- a/src/lstack/Makefile ++++ b/src/lstack/Makefile +@@ -57,32 +57,32 @@ include $(patsubst %, %/dir.mk, $(DIRS)) + OBJS = $(subst .c,.o,$(SRCS)) + + LWIP_LIB = $(LIB_PATH)/liblwip.a +-LIBRTE_LIB = $(LIB_PATH)/librte_bus_pci.a \ +- $(LIB_PATH)/librte_pci.a \ +- $(LIB_PATH)/librte_cmdline.a \ +- $(LIB_PATH)/librte_hash.a \ +- $(LIB_PATH)/librte_mempool.a \ +- $(LIB_PATH)/librte_mempool_ring.a \ +- $(LIB_PATH)/librte_timer.a \ +- $(LIB_PATH)/librte_eal.a \ +- $(LIB_PATH)/librte_ring.a \ +- $(LIB_PATH)/librte_mbuf.a \ +- $(LIB_PATH)/librte_telemetry.a \ +- $(LIB_PATH)/librte_kni.a \ +- $(LIB_PATH)/librte_net_ixgbe.a \ +- $(LIB_PATH)/librte_kvargs.a \ +- $(LIB_PATH)/librte_net_hinic.a \ +- $(LIB_PATH)/librte_net_i40e.a \ +- $(LIB_PATH)/librte_net_virtio.a \ +- $(LIB_PATH)/librte_bus_vdev.a \ +- $(LIB_PATH)/librte_net.a \ +- $(LIB_PATH)/librte_rcu.a \ +- $(LIB_PATH)/librte_ethdev.a \ +- $(LIB_PATH)/librte_pdump.a \ +- $(LIB_PATH)/librte_bpf.a \ +- $(LIB_PATH)/librte_pcapng.a \ +- $(LIB_PATH)/librte_security.a \ +- $(LIB_PATH)/librte_cryptodev.a ++LIBRTE_LIB = $(LIB_PATH)/librte_bus_pci.so \ ++ $(LIB_PATH)/librte_pci.so \ ++ $(LIB_PATH)/librte_cmdline.so \ ++ $(LIB_PATH)/librte_hash.so \ ++ $(LIB_PATH)/librte_mempool.so \ ++ $(LIB_PATH)/librte_mempool_ring.so \ ++ $(LIB_PATH)/librte_timer.so \ ++ $(LIB_PATH)/librte_eal.so \ ++ $(LIB_PATH)/librte_ring.so \ ++ $(LIB_PATH)/librte_mbuf.so \ ++ $(LIB_PATH)/librte_telemetry.so \ ++ $(LIB_PATH)/librte_kni.so \ ++ $(LIB_PATH)/librte_net_ixgbe.so \ ++ $(LIB_PATH)/librte_kvargs.so \ ++ $(LIB_PATH)/librte_net_hinic.so \ ++ $(LIB_PATH)/librte_net_i40e.so \ ++ $(LIB_PATH)/librte_net_virtio.so \ ++ $(LIB_PATH)/librte_bus_vdev.so \ ++ $(LIB_PATH)/librte_net.so \ ++ $(LIB_PATH)/librte_rcu.so \ ++ $(LIB_PATH)/librte_ethdev.so \ ++ $(LIB_PATH)/librte_pdump.so \ ++ $(LIB_PATH)/librte_bpf.so \ ++ $(LIB_PATH)/librte_pcapng.so \ ++ $(LIB_PATH)/librte_security.so \ ++ $(LIB_PATH)/librte_cryptodev.so + + + DEP_LIBS = $(LWIP_LIB) $(LIBRTE_LIB) +-- +2.23.0 + diff --git a/0075-support-epoll-oneshot.patch b/0072-support-epoll-oneshot.patch similarity index 100% rename from 0075-support-epoll-oneshot.patch rename to 0072-support-epoll-oneshot.patch diff --git a/0073-Allow-dynamic-load-PMDs.patch b/0073-Allow-dynamic-load-PMDs.patch deleted file mode 100644 index 2c38e6f..0000000 --- a/0073-Allow-dynamic-load-PMDs.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 9976a38f96d46ffe11c9fe4542e70509de2fad1b Mon Sep 17 00:00:00 2001 -From: xiusailong -Date: Fri, 22 Jul 2022 15:31:29 +0800 -Subject: [PATCH] Allow-dynamic-load-PMDs - ---- - src/lstack/Makefile | 40 ++++++++++++++++++++-------------------- - 1 file changed, 20 insertions(+), 20 deletions(-) - -diff --git a/src/lstack/Makefile b/src/lstack/Makefile -index 1debc79..799e7be 100644 ---- a/src/lstack/Makefile -+++ b/src/lstack/Makefile -@@ -61,26 +61,26 @@ include $(patsubst %, %/dir.mk, $(DIRS)) - OBJS = $(subst .c,.o,$(SRCS)) - - LWIP_LIB = $(LIB_PATH)/liblwip.a --LIBRTE_LIB = $(DPDK_LIB_PATH)/librte_pci.a \ -- $(DPDK_LIB_PATH)/librte_bus_pci.a \ -- $(DPDK_LIB_PATH)/librte_cmdline.a \ -- $(DPDK_LIB_PATH)/librte_hash.a \ -- $(DPDK_LIB_PATH)/librte_mempool.a \ -- $(DPDK_LIB_PATH)/librte_mempool_ring.a \ -- $(DPDK_LIB_PATH)/librte_timer.a \ -- $(DPDK_LIB_PATH)/librte_eal.a \ -- $(DPDK_LIB_PATH)/librte_ring.a \ -- $(DPDK_LIB_PATH)/librte_mbuf.a \ -- $(DPDK_LIB_PATH)/librte_kni.a \ -- $(DPDK_LIB_PATH)/librte_pmd_ixgbe.a \ -- $(DPDK_LIB_PATH)/librte_kvargs.a \ -- $(DPDK_LIB_PATH)/librte_pmd_hinic.a \ -- $(DPDK_LIB_PATH)/librte_pmd_i40e.a \ -- $(DPDK_LIB_PATH)/librte_pmd_virtio.a \ -- $(DPDK_LIB_PATH)/librte_bus_vdev.a \ -- $(DPDK_LIB_PATH)/librte_net.a \ -- $(DPDK_LIB_PATH)/librte_ethdev.a \ -- $(DPDK_LIB_PATH)/librte_pdump.a -+LIBRTE_LIB = $(DPDK_LIB_PATH)/librte_pci.so \ -+ $(DPDK_LIB_PATH)/librte_bus_pci.so \ -+ $(DPDK_LIB_PATH)/librte_cmdline.so \ -+ $(DPDK_LIB_PATH)/librte_hash.so \ -+ $(DPDK_LIB_PATH)/librte_mempool.so \ -+ $(DPDK_LIB_PATH)/librte_mempool_ring.so \ -+ $(DPDK_LIB_PATH)/librte_timer.so \ -+ $(DPDK_LIB_PATH)/librte_eal.so \ -+ $(DPDK_LIB_PATH)/librte_ring.so \ -+ $(DPDK_LIB_PATH)/librte_mbuf.so \ -+ $(DPDK_LIB_PATH)/librte_kni.so \ -+ $(DPDK_LIB_PATH)/librte_pmd_ixgbe.so \ -+ $(DPDK_LIB_PATH)/librte_kvargs.so \ -+ $(DPDK_LIB_PATH)/librte_pmd_hinic.so \ -+ $(DPDK_LIB_PATH)/librte_pmd_i40e.so \ -+ $(DPDK_LIB_PATH)/librte_pmd_virtio.so \ -+ $(DPDK_LIB_PATH)/librte_bus_vdev.so \ -+ $(DPDK_LIB_PATH)/librte_net.so \ -+ $(DPDK_LIB_PATH)/librte_ethdev.so \ -+ $(DPDK_LIB_PATH)/librte_pdump.so - - - DEP_LIBS = $(LWIP_LIB) $(LIBRTE_LIB) --- -2.27.0 - diff --git a/0076-clean-code-space-before-operator.patch b/0073-modify-readme-and-clean-code.patch similarity index 76% rename from 0076-clean-code-space-before-operator.patch rename to 0073-modify-readme-and-clean-code.patch index 17820d5..5a6ba9e 100644 --- a/0076-clean-code-space-before-operator.patch +++ b/0073-modify-readme-and-clean-code.patch @@ -1,11 +1,11 @@ -From 5208fe70d61a7ee9e7bf4e99500e7417bb93df66 Mon Sep 17 00:00:00 2001 +From 1981869b950e5eaaebfa55bb938336e57e682d7c Mon Sep 17 00:00:00 2001 From: wu-changsheng -Date: Tue, 2 Aug 2022 10:38:43 +0800 -Subject: [PATCH 1/5] clean code space before operator +Date: Tue, 26 Jul 2022 21:45:48 +0800 +Subject: [PATCH 04/20] modify readme and clean code --- src/lstack/api/lstack_epoll.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lstack/api/lstack_epoll.c b/src/lstack/api/lstack_epoll.c index 963a696..9c44f87 100644 diff --git a/0077-ltran-support-muti-proc-with-same-ip.patch b/0074-ltran-support-muti-proc-with-same-ip.patch similarity index 97% rename from 0077-ltran-support-muti-proc-with-same-ip.patch rename to 0074-ltran-support-muti-proc-with-same-ip.patch index 531fc6e..18bf4c5 100644 --- a/0077-ltran-support-muti-proc-with-same-ip.patch +++ b/0074-ltran-support-muti-proc-with-same-ip.patch @@ -1,7 +1,7 @@ -From aea2e454eb573edaad09eb3aed245a014050b8ad Mon Sep 17 00:00:00 2001 +From 99c1b74a5dfe8ace8963e8015d581bd6cd6e092d Mon Sep 17 00:00:00 2001 From: wu-changsheng -Date: Tue, 2 Aug 2022 10:39:30 +0800 -Subject: [PATCH 2/5] ltran-support-muti-proc-with-same-ip +Date: Mon, 1 Aug 2022 15:32:49 +0800 +Subject: [PATCH 06/20] ltran support muti proc with same ip --- src/common/dpdk_common.h | 2 - @@ -24,7 +24,7 @@ Subject: [PATCH 2/5] ltran-support-muti-proc-with-same-ip 17 files changed, 82 insertions(+), 189 deletions(-) diff --git a/src/common/dpdk_common.h b/src/common/dpdk_common.h -index b3d67c1..d06bcb7 100644 +index 01c941d..987fbdd 100644 --- a/src/common/dpdk_common.h +++ b/src/common/dpdk_common.h @@ -62,8 +62,6 @@ static __rte_always_inline void copy_mbuf(struct rte_mbuf *dst, struct rte_mbuf @@ -149,10 +149,10 @@ index ca7ce52..09aa04c 100644 dfx->data.pkts.call_alloc_fail = stack_group->call_alloc_fail; diff --git a/src/ltran/ltran_dfx.c b/src/ltran/ltran_dfx.c -index d52f2f0..8bd141b 100644 +index 9da6b7f..3d977b5 100644 --- a/src/ltran/ltran_dfx.c +++ b/src/ltran/ltran_dfx.c -@@ -861,7 +861,7 @@ static void gazelle_print_lstack_stat_conn(void *buf, const struct gazelle_stat_ +@@ -860,7 +860,7 @@ static void gazelle_print_lstack_stat_conn(void *buf, const struct gazelle_stat_ do { printf("\n------ stack tid: %6u ------\n", stat->tid); printf("No. Proto recv_cnt recv_ring in_send send_ring sem_cnt fd Local Address " @@ -161,7 +161,7 @@ index d52f2f0..8bd141b 100644 uint32_t unread_pkts = 0; uint32_t unsend_pkts = 0; for (i = 0; i < conn->conn_num && i < GAZELLE_LSTACK_MAX_CONN; i++) { -@@ -870,13 +870,13 @@ static void gazelle_print_lstack_stat_conn(void *buf, const struct gazelle_stat_ +@@ -869,13 +869,13 @@ static void gazelle_print_lstack_stat_conn(void *buf, const struct gazelle_stat_ rip.s_addr = conn_info->rip; lip.s_addr = conn_info->lip; if ((conn_info->state == GAZELLE_ACTIVE_LIST) || (conn_info->state == GAZELLE_TIME_WAIT_LIST)) { @@ -178,7 +178,7 @@ index d52f2f0..8bd141b 100644 inet_ntop(AF_INET, &lip, str_ip, sizeof(str_ip)), conn_info->l_port); } else { printf("Got unknow tcp conn::%s:%5hu, state:%u\n", -@@ -1125,14 +1125,24 @@ static int32_t parse_dfx_lstack_args(int32_t argc, char *argv[], struct gazelle_ +@@ -1124,14 +1124,24 @@ static int32_t parse_dfx_lstack_args(int32_t argc, char *argv[], struct gazelle_ { int32_t num_cmd = 0; struct in_addr ip; @@ -205,7 +205,7 @@ index d52f2f0..8bd141b 100644 } param = argv[GAZELLE_COMMAND_ARG_IDX]; -@@ -1146,6 +1156,7 @@ static int32_t parse_dfx_lstack_args(int32_t argc, char *argv[], struct gazelle_ +@@ -1145,6 +1155,7 @@ static int32_t parse_dfx_lstack_args(int32_t argc, char *argv[], struct gazelle_ for (int32_t i = 0; i < num_cmd; i++) { req_msg[i].ip.s_addr = ip.s_addr; @@ -610,10 +610,10 @@ index 0562ce1..dfda93f 100644 static void gazelle_ctl_loop(void) diff --git a/src/ltran/ltran_param.c b/src/ltran/ltran_param.c -index 9273ee2..b8e9732 100644 +index 40ee8d3..75cc2f9 100644 --- a/src/ltran/ltran_param.c +++ b/src/ltran/ltran_param.c -@@ -60,7 +60,7 @@ static int32_t parse_str2mac(char *mac_str, uint8_t *ether_addr) +@@ -59,7 +59,7 @@ static int32_t parse_str2mac(char *mac_str, uint8_t *ether_addr) char *tmp = NULL; int32_t i = 0; token = strtok_s(mac_str, delim, &tmp); @@ -622,7 +622,7 @@ index 9273ee2..b8e9732 100644 one_bit_mac = strtoul(token, &end, HEX_BASE); if ((end == NULL) || (*end != '\0')) { gazelle_set_errno(GAZELLE_EMAC); -@@ -420,7 +420,6 @@ static void macs_cache_free(char **bond_mac_cache, int32_t cnt, int32_t max_cnt) +@@ -419,7 +419,6 @@ static void macs_cache_free(char **bond_mac_cache, int32_t cnt, int32_t max_cnt) for (int32_t i = 0; i < cnt; i++) { GAZELLE_FREE(bond_mac_cache[i]); } @@ -630,7 +630,7 @@ index 9273ee2..b8e9732 100644 } static void parse_bond_macs_separate(const char *bond_macs_str, char **bond_mac_cache, int32_t cache_cnt, -@@ -452,7 +451,6 @@ static void parse_bond_macs_separate(const char *bond_macs_str, char **bond_mac_ +@@ -451,7 +450,6 @@ static void parse_bond_macs_separate(const char *bond_macs_str, char **bond_mac_ } free(bond_macs); diff --git a/0074-resolve-patch-conflicts.patch b/0074-resolve-patch-conflicts.patch deleted file mode 100644 index b022521..0000000 --- a/0074-resolve-patch-conflicts.patch +++ /dev/null @@ -1,64 +0,0 @@ -From abe38628e7254ffbfd82445204b5d248f67ae648 Mon Sep 17 00:00:00 2001 -From: xiusailong -Date: Fri, 22 Jul 2022 16:49:45 +0800 -Subject: [PATCH] adapt-to-20.03 - ---- - src/ltran/ltran_dfx.c | 1 + - src/ltran/ltran_param.c | 1 + - src/ltran/ltran_param.h | 1 + - src/ltran/main.c | 2 +- - 4 files changed, 4 insertions(+), 1 deletion(-) - -diff --git a/src/ltran/ltran_dfx.c b/src/ltran/ltran_dfx.c -index 9da6b7f..d52f2f0 100644 ---- a/src/ltran/ltran_dfx.c -+++ b/src/ltran/ltran_dfx.c -@@ -12,6 +12,7 @@ - - #include - #include -+#include - - #include - #include -diff --git a/src/ltran/ltran_param.c b/src/ltran/ltran_param.c -index 40ee8d3..9273ee2 100644 ---- a/src/ltran/ltran_param.c -+++ b/src/ltran/ltran_param.c -@@ -19,6 +19,7 @@ - #include - #include - #include -+#include - - #include "ltran_param.h" - #include "ltran_errno.h" -diff --git a/src/ltran/ltran_param.h b/src/ltran/ltran_param.h -index 3ec6451..48efb83 100644 ---- a/src/ltran/ltran_param.h -+++ b/src/ltran/ltran_param.h -@@ -15,6 +15,7 @@ - - #include - #include -+#include - - #include "gazelle_opt.h" - -diff --git a/src/ltran/main.c b/src/ltran/main.c -index 691595e..d1e4030 100644 ---- a/src/ltran/main.c -+++ b/src/ltran/main.c -@@ -58,7 +58,7 @@ static void sig_default_handler(int32_t sig) - LTRAN_ERR("ltran dumped,caught signal:%d.\n", sig); - print_stack(); - dpdk_kni_release(); -- kill(getpid(), sig); -+ kill(getpt(), sig); - } - - static void signal_init(void) --- -2.27.0 - diff --git a/0078-fix-rpc-msg-out-of-bound.patch b/0075-fix-rpc-msg-out-of-bound.patch similarity index 88% rename from 0078-fix-rpc-msg-out-of-bound.patch rename to 0075-fix-rpc-msg-out-of-bound.patch index 7a68943..1da6c92 100644 --- a/0078-fix-rpc-msg-out-of-bound.patch +++ b/0075-fix-rpc-msg-out-of-bound.patch @@ -1,7 +1,7 @@ -From 0affec12f7b888b996992105c9042a60efcd5029 Mon Sep 17 00:00:00 2001 +From 9404570889caba130960d55fdba39b8bffc61274 Mon Sep 17 00:00:00 2001 From: wu-changsheng -Date: Tue, 2 Aug 2022 10:39:54 +0800 -Subject: [PATCH 3/5] fix-rpc-msg-out-of-bound +Date: Mon, 1 Aug 2022 17:27:49 +0800 +Subject: [PATCH 07/20] fix rpc msg out of bound --- src/lstack/core/lstack_thread_rpc.c | 5 +++-- diff --git a/0079-fix-traversal-array-use-NULL-pointer.patch b/0076-fix-traversal-array-use-NULL-pointer.patch similarity index 81% rename from 0079-fix-traversal-array-use-NULL-pointer.patch rename to 0076-fix-traversal-array-use-NULL-pointer.patch index 1eb49ce..d95aa36 100644 --- a/0079-fix-traversal-array-use-NULL-pointer.patch +++ b/0076-fix-traversal-array-use-NULL-pointer.patch @@ -1,7 +1,7 @@ -From fef672fb6a817d96c220e13f416d57cca65dc1ea Mon Sep 17 00:00:00 2001 +From 44d9d6ed74efef409cd05dbd7d99aeaa70ffb359 Mon Sep 17 00:00:00 2001 From: wu-changsheng -Date: Tue, 2 Aug 2022 10:40:16 +0800 -Subject: [PATCH 4/5] fix-traversal-array-use-NULL-pointer +Date: Mon, 1 Aug 2022 19:25:28 +0800 +Subject: [PATCH 08/20] fix traversal array use NULL pointer --- src/ltran/ltran_instance.c | 4 ++++ diff --git a/0080-same-stack-thread-don-t-repeate-send-msg.patch b/0077-same-stack-thread-don-t-repeate-send-msg.patch similarity index 96% rename from 0080-same-stack-thread-don-t-repeate-send-msg.patch rename to 0077-same-stack-thread-don-t-repeate-send-msg.patch index d22167e..1dc2366 100644 --- a/0080-same-stack-thread-don-t-repeate-send-msg.patch +++ b/0077-same-stack-thread-don-t-repeate-send-msg.patch @@ -1,7 +1,7 @@ -From dc0d9d84da1f3552dd9014a9de43188ccbf42519 Mon Sep 17 00:00:00 2001 +From 9c3fe074be66abe142f19709bf7d1fe9793e104f Mon Sep 17 00:00:00 2001 From: wu-changsheng -Date: Tue, 2 Aug 2022 10:40:42 +0800 -Subject: [PATCH 5/5] same-stack-thread-don-t-repeate-send-msg +Date: Mon, 1 Aug 2022 22:34:13 +0800 +Subject: [PATCH 09/20] same stack thread don't repeate send msg --- src/lstack/core/lstack_lwip.c | 13 +++++++------ @@ -109,7 +109,7 @@ index 358ce54..d0f5257 100644 } diff --git a/src/lstack/include/lstack_protocol_stack.h b/src/lstack/include/lstack_protocol_stack.h -index d3071f3..2dff980 100644 +index 39d29d7..2a6aec7 100644 --- a/src/lstack/include/lstack_protocol_stack.h +++ b/src/lstack/include/lstack_protocol_stack.h @@ -50,7 +50,7 @@ struct protocol_stack { diff --git a/0082-fix-memcpy-out-bounds.patch b/0078-fix-memcpy-out-bounds.patch similarity index 100% rename from 0082-fix-memcpy-out-bounds.patch rename to 0078-fix-memcpy-out-bounds.patch diff --git a/0083-fix-miss-send-rpc-msg-err.patch b/0079-fix-miss-send-rpc-msg-err.patch similarity index 100% rename from 0083-fix-miss-send-rpc-msg-err.patch rename to 0079-fix-miss-send-rpc-msg-err.patch diff --git a/0084-fix-proc-can-not-exit-due-to-lack-of-mem-startup-fai.patch b/0080-fix-proc-can-not-exit-due-to-lack-of-mem-startup-fai.patch similarity index 100% rename from 0084-fix-proc-can-not-exit-due-to-lack-of-mem-startup-fai.patch rename to 0080-fix-proc-can-not-exit-due-to-lack-of-mem-startup-fai.patch diff --git a/0085-read-data-with-err-event.patch b/0081-read-data-with-err-event.patch similarity index 100% rename from 0085-read-data-with-err-event.patch rename to 0081-read-data-with-err-event.patch diff --git a/0086-del-gazelle-ring-cons.tail-atomic-protect.patch b/0082-del-gazelle-ring-cons.tail-atomic-protect.patch similarity index 95% rename from 0086-del-gazelle-ring-cons.tail-atomic-protect.patch rename to 0082-del-gazelle-ring-cons.tail-atomic-protect.patch index fe54ce6..7e714d6 100644 --- a/0086-del-gazelle-ring-cons.tail-atomic-protect.patch +++ b/0082-del-gazelle-ring-cons.tail-atomic-protect.patch @@ -32,7 +32,7 @@ index 987fbdd..1c3e7e8 100644 if (n > entries) { @@ -172,7 +172,7 @@ static __rte_always_inline uint32_t gazelle_ring_sc_dequeue(struct rte_ring *r, - DEQUEUE_PTRS(r, &r[1], cons, obj_table, n, void *); + __rte_ring_dequeue_elems(r, cons, obj_table, sizeof(void *), n); - __atomic_store_n(&r->cons.tail, cons + n, __ATOMIC_RELEASE); + r->cons.tail = cons + n; diff --git a/0087-fix-send-return-vale.patch b/0083-fix-send-return-vale.patch similarity index 100% rename from 0087-fix-send-return-vale.patch rename to 0083-fix-send-return-vale.patch diff --git a/0088-add-examples.patch b/0084-add-examples.patch similarity index 100% rename from 0088-add-examples.patch rename to 0084-add-examples.patch diff --git a/0089-expand-thread-rpc-msg-pool-size.patch b/0085-expand-thread-rpc-msg-pool-size.patch similarity index 100% rename from 0089-expand-thread-rpc-msg-pool-size.patch rename to 0085-expand-thread-rpc-msg-pool-size.patch diff --git a/0091-fix-fd-leak.patch b/0086-fix-fd-leak.patch similarity index 100% rename from 0091-fix-fd-leak.patch rename to 0086-fix-fd-leak.patch diff --git a/0092-fix-del-conn-use-after-free.patch b/0087-fix-del-conn-use-after-free.patch similarity index 100% rename from 0092-fix-del-conn-use-after-free.patch rename to 0087-fix-del-conn-use-after-free.patch diff --git a/0093-init-g_gazelle_errno-before-use.patch b/0088-init-g_gazelle_errno-before-use.patch similarity index 100% rename from 0093-init-g_gazelle_errno-before-use.patch rename to 0088-init-g_gazelle_errno-before-use.patch diff --git a/0094-code-format-specification.patch b/0089-code-format-specification.patch similarity index 100% rename from 0094-code-format-specification.patch rename to 0089-code-format-specification.patch diff --git a/0095-fix-gazelle-kernel-event-thread-affinity-same-with-s.patch b/0090-fix-gazelle-kernel-event-thread-affinity-same-with-s.patch similarity index 100% rename from 0095-fix-gazelle-kernel-event-thread-affinity-same-with-s.patch rename to 0090-fix-gazelle-kernel-event-thread-affinity-same-with-s.patch diff --git a/0090-fix-ltran-sig_default_handler-kill-pid.patch b/0090-fix-ltran-sig_default_handler-kill-pid.patch deleted file mode 100644 index d68066d..0000000 --- a/0090-fix-ltran-sig_default_handler-kill-pid.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 21ae5e6b6bc7baa02dbe934b28677ad9e0646447 Mon Sep 17 00:00:00 2001 -From: wu-changsheng -Date: Tue, 6 Sep 2022 10:41:59 +0800 -Subject: [PATCH] fix ltran sig handler get pid - ---- - src/ltran/main.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/ltran/main.c b/src/ltran/main.c -index d1e4030..2e3af82 100644 ---- a/src/ltran/main.c -+++ b/src/ltran/main.c -@@ -17,6 +17,7 @@ - #include - #include - #include -+#include - - #include "dpdk_common.h" - #include "ltran_log.h" -@@ -58,7 +59,7 @@ static void sig_default_handler(int32_t sig) - LTRAN_ERR("ltran dumped,caught signal:%d.\n", sig); - print_stack(); - dpdk_kni_release(); -- kill(getpt(), sig); -+ kill(getpid(), sig); - } - - static void signal_init(void) --- -2.23.0 - diff --git a/0096-have_corelist_arg.patch b/0091-have_corelist_arg.patch similarity index 100% rename from 0096-have_corelist_arg.patch rename to 0091-have_corelist_arg.patch diff --git a/0097-ltran-update-list.patch b/0092-ltran-update-list.patch similarity index 100% rename from 0097-ltran-update-list.patch rename to 0092-ltran-update-list.patch diff --git a/0098-remove-get_reg_ring_free_count.patch b/0093-remove-get_reg_ring_free_count.patch similarity index 100% rename from 0098-remove-get_reg_ring_free_count.patch rename to 0093-remove-get_reg_ring_free_count.patch diff --git a/0099-add-errorno-EISCONN.patch b/0094-add-errorno-EISCONN.patch similarity index 100% rename from 0099-add-errorno-EISCONN.patch rename to 0094-add-errorno-EISCONN.patch diff --git a/0100-fix-sendmsg-data-write-wrong.patch b/0095-fix-sendmsg-data-write-wrong.patch similarity index 100% rename from 0100-fix-sendmsg-data-write-wrong.patch rename to 0095-fix-sendmsg-data-write-wrong.patch diff --git a/0101-lstack-restore-pci-bus-after-init.patch b/0096-lstack-restore-pci-bus-after-init.patch similarity index 100% rename from 0101-lstack-restore-pci-bus-after-init.patch rename to 0096-lstack-restore-pci-bus-after-init.patch diff --git a/0102-fix-malloc-rpc-msg-fail.patch b/0097-fix-malloc-rpc-msg-fail.patch similarity index 100% rename from 0102-fix-malloc-rpc-msg-fail.patch rename to 0097-fix-malloc-rpc-msg-fail.patch diff --git a/0103-support-dpdk-dynamic-memory.patch b/0098-support-dpdk-dynamic-memory.patch similarity index 100% rename from 0103-support-dpdk-dynamic-memory.patch rename to 0098-support-dpdk-dynamic-memory.patch diff --git a/0104-fix-lwip_send-fail-free-pbuf-miss-data.patch b/0099-fix-lwip_send-fail-free-pbuf-miss-data.patch similarity index 97% rename from 0104-fix-lwip_send-fail-free-pbuf-miss-data.patch rename to 0099-fix-lwip_send-fail-free-pbuf-miss-data.patch index 8a65940..0bfccd2 100644 --- a/0104-fix-lwip_send-fail-free-pbuf-miss-data.patch +++ b/0099-fix-lwip_send-fail-free-pbuf-miss-data.patch @@ -32,7 +32,7 @@ index 1c3e7e8..c2cbda7 100644 + } + + -+ DEQUEUE_PTRS(r, &r[1], cons, obj_table, n, void *); ++ __rte_ring_dequeue_elems(r, cons, obj_table, sizeof(void *), n); + + return n; +} diff --git a/0105-merger-wakeup.patch b/0100-merger-wakeup.patch similarity index 100% rename from 0105-merger-wakeup.patch rename to 0100-merger-wakeup.patch diff --git a/0106-conenct-support-multi-queues.patch b/0101-conenct-support-multi-queues.patch similarity index 100% rename from 0106-conenct-support-multi-queues.patch rename to 0101-conenct-support-multi-queues.patch diff --git a/0107-merge-sendmsg-write.patch b/0102-merge-sendmsg-write.patch similarity index 100% rename from 0107-merge-sendmsg-write.patch rename to 0102-merge-sendmsg-write.patch diff --git a/0108-add-thread-select-path.patch b/0103-add-thread-select-path.patch similarity index 100% rename from 0108-add-thread-select-path.patch rename to 0103-add-thread-select-path.patch diff --git a/0109-support-conf-control-app-bind-numa.patch b/0104-support-conf-control-app-bind-numa.patch similarity index 100% rename from 0109-support-conf-control-app-bind-numa.patch rename to 0104-support-conf-control-app-bind-numa.patch diff --git a/0110-fix-epoll_wait-cover-kernel-event.patch b/0105-fix-epoll_wait-cover-kernel-event.patch similarity index 100% rename from 0110-fix-epoll_wait-cover-kernel-event.patch rename to 0105-fix-epoll_wait-cover-kernel-event.patch diff --git a/0111-fix-read-stack-data-return-0-when-no-data.patch b/0106-fix-read-stack-data-return-0-when-no-data.patch similarity index 100% rename from 0111-fix-read-stack-data-return-0-when-no-data.patch rename to 0106-fix-read-stack-data-return-0-when-no-data.patch diff --git a/0112-fix-stack-wakeup-node-del.patch b/0107-fix-stack-wakeup-node-del.patch similarity index 100% rename from 0112-fix-stack-wakeup-node-del.patch rename to 0107-fix-stack-wakeup-node-del.patch diff --git a/0113-avoid-useless-stack-check-wakeup-event.patch b/0108-avoid-useless-stack-check-wakeup-event.patch similarity index 100% rename from 0113-avoid-useless-stack-check-wakeup-event.patch rename to 0108-avoid-useless-stack-check-wakeup-event.patch diff --git a/0114-fix-mesg-loss.patch b/0109-fix-mesg-loss.patch similarity index 100% rename from 0114-fix-mesg-loss.patch rename to 0109-fix-mesg-loss.patch diff --git a/0115-add-accept4-and-epoll_create1.patch b/0110-add-accept4-and-epoll_create1.patch similarity index 100% rename from 0115-add-accept4-and-epoll_create1.patch rename to 0110-add-accept4-and-epoll_create1.patch diff --git a/0116-refactor-event-notice.patch b/0111-refactor-event-notice.patch similarity index 99% rename from 0116-refactor-event-notice.patch rename to 0111-refactor-event-notice.patch index 0e2a882..4506acd 100644 --- a/0116-refactor-event-notice.patch +++ b/0111-refactor-event-notice.patch @@ -1,7 +1,7 @@ -From 17325698f15226cfd92760f6413edbbdc66362a1 Mon Sep 17 00:00:00 2001 +From b41e22d7d8af5c990edc04130d885c9bd675461e Mon Sep 17 00:00:00 2001 From: chengyechun -Date: Thu, 20 Oct 2022 14:37:54 +0800 -Subject: [PATCH] refactor kernel event notice +Date: Thu, 20 Oct 2022 11:29:16 +0800 +Subject: [PATCH 2/2] refactor event notice --- src/common/gazelle_opt.h | 1 + @@ -1068,7 +1068,7 @@ index bc77909..46cbbe7 100644 } - diff --git a/src/lstack/include/lstack_protocol_stack.h b/src/lstack/include/lstack_protocol_stack.h -index 082430a..75e3254 100644 +index 0eda45d..cc2cfb9 100644 --- a/src/lstack/include/lstack_protocol_stack.h +++ b/src/lstack/include/lstack_protocol_stack.h @@ -14,6 +14,7 @@ @@ -1094,7 +1094,7 @@ index 082430a..75e3254 100644 + char pad1 __rte_cache_aligned; + struct netif netif; - struct lstack_eth_dev_ops *dev_ops; + struct eth_dev_ops *dev_ops; uint32_t rx_ring_used; @@ -62,7 +66,7 @@ struct protocol_stack { @@ -1211,7 +1211,7 @@ index 3c8fd1b..d6c81a7 100644 int32_t lstack_epoll_create1(int32_t flags); int32_t lstack_epoll_ctl(int32_t epfd, int32_t op, int32_t fd, struct epoll_event *event); diff --git a/src/lstack/netif/lstack_ethdev.c b/src/lstack/netif/lstack_ethdev.c -index 151d0f7..a20895b 100644 +index 28bf32d..4757d72 100644 --- a/src/lstack/netif/lstack_ethdev.c +++ b/src/lstack/netif/lstack_ethdev.c @@ -79,7 +79,7 @@ void eth_dev_recv(struct rte_mbuf *mbuf) @@ -1224,10 +1224,10 @@ index 151d0f7..a20895b 100644 { uint32_t nr_pkts; diff --git a/src/ltran/ltran_dfx.c b/src/ltran/ltran_dfx.c -index 8bd141b..c1109f4 100644 +index 3d977b5..de97a48 100644 --- a/src/ltran/ltran_dfx.c +++ b/src/ltran/ltran_dfx.c -@@ -876,8 +876,8 @@ static void gazelle_print_lstack_stat_conn(void *buf, const struct gazelle_stat_ +@@ -875,8 +875,8 @@ static void gazelle_print_lstack_stat_conn(void *buf, const struct gazelle_stat_ inet_ntop(AF_INET, &rip, str_rip, sizeof(str_rip)), conn_info->r_port, tcp_state_to_str(conn_info->tcp_sub_state)); } else if (conn_info->state == GAZELLE_LISTEN_LIST) { diff --git a/0117-add-writev-and-readv.patch b/0112-add-writev-and-readv.patch similarity index 100% rename from 0117-add-writev-and-readv.patch rename to 0112-add-writev-and-readv.patch diff --git a/0118-optimized-some-function-in-lstack.patch b/0113-optimized-some-function-in-lstack.patch similarity index 100% rename from 0118-optimized-some-function-in-lstack.patch rename to 0113-optimized-some-function-in-lstack.patch diff --git a/0119-fix-gazellectl-stats-err-when-donot-bind-numa.patch b/0114-fix-gazellectl-stats-err-when-donot-bind-numa.patch similarity index 100% rename from 0119-fix-gazellectl-stats-err-when-donot-bind-numa.patch rename to 0114-fix-gazellectl-stats-err-when-donot-bind-numa.patch diff --git a/0120-add-usleep-when-write_ring-is-busy.patch b/0115-add-usleep-when-write_ring-is-busy.patch similarity index 100% rename from 0120-add-usleep-when-write_ring-is-busy.patch rename to 0115-add-usleep-when-write_ring-is-busy.patch diff --git a/0121-optimize-variable-access.patch b/0116-optimize-variable-access.patch similarity index 100% rename from 0121-optimize-variable-access.patch rename to 0116-optimize-variable-access.patch diff --git a/0122-add-gro.patch b/0117-add-gro.patch similarity index 86% rename from 0122-add-gro.patch rename to 0117-add-gro.patch index b623915..d8d02aa 100644 --- a/0122-add-gro.patch +++ b/0117-add-gro.patch @@ -1,7 +1,7 @@ -From 6c36a958fc9b9889bf4bb42dfbdcf0c88cf3a566 Mon Sep 17 00:00:00 2001 +From b485a70ba6a68f10e4958843648400d3caaa4837 Mon Sep 17 00:00:00 2001 From: wu-changsheng -Date: Wed, 2 Nov 2022 11:20:56 +0800 -Subject: [PATCH] add-gro +Date: Tue, 1 Nov 2022 10:51:13 +0800 +Subject: [PATCH 6/7] add gro --- src/lstack/Makefile | 1 + @@ -11,17 +11,17 @@ Subject: [PATCH] add-gro 4 files changed, 33 insertions(+), 6 deletions(-) diff --git a/src/lstack/Makefile b/src/lstack/Makefile -index 799e7be..1560d0c 100644 +index 7ce35d4..cb7be16 100644 --- a/src/lstack/Makefile +++ b/src/lstack/Makefile -@@ -69,6 +69,7 @@ LIBRTE_LIB = $(DPDK_LIB_PATH)/librte_pci.so \ - $(DPDK_LIB_PATH)/librte_mempool_ring.so \ - $(DPDK_LIB_PATH)/librte_timer.so \ - $(DPDK_LIB_PATH)/librte_eal.so \ -+ $(DPDK_LIB_PATH)/librte_gro.so \ - $(DPDK_LIB_PATH)/librte_ring.so \ - $(DPDK_LIB_PATH)/librte_mbuf.so \ - $(DPDK_LIB_PATH)/librte_kni.so \ +@@ -65,6 +65,7 @@ LIBRTE_LIB = $(LIB_PATH)/librte_bus_pci.so \ + $(LIB_PATH)/librte_mempool_ring.so \ + $(LIB_PATH)/librte_timer.so \ + $(LIB_PATH)/librte_eal.so \ ++ $(LIB_PATH)/librte_gro.so \ + $(LIB_PATH)/librte_ring.so \ + $(LIB_PATH)/librte_mbuf.so \ + $(LIB_PATH)/librte_telemetry.so \ diff --git a/src/lstack/core/lstack_lwip.c b/src/lstack/core/lstack_lwip.c index f924ee7..52b4624 100644 --- a/src/lstack/core/lstack_lwip.c @@ -65,7 +65,7 @@ index f924ee7..52b4624 100644 } else { if (sock->wakeup) { diff --git a/src/lstack/netif/lstack_ethdev.c b/src/lstack/netif/lstack_ethdev.c -index 30e7204..cf783f4 100644 +index 3abed5e..1c35919 100644 --- a/src/lstack/netif/lstack_ethdev.c +++ b/src/lstack/netif/lstack_ethdev.c @@ -41,6 +41,7 @@ void eth_dev_recv(struct rte_mbuf *mbuf, struct protocol_stack *stack) @@ -88,7 +88,7 @@ index 30e7204..cf783f4 100644 if (head != NULL) { diff --git a/src/lstack/netif/lstack_vdev.c b/src/lstack/netif/lstack_vdev.c -index 4f2960b..68b6a0c 100644 +index 1c148e1..8df0c5e 100644 --- a/src/lstack/netif/lstack_vdev.c +++ b/src/lstack/netif/lstack_vdev.c @@ -18,6 +18,8 @@ diff --git a/0123-expand-nic-rx-desc-size.patch b/0118-expand-nic-rx-desc-size.patch similarity index 100% rename from 0123-expand-nic-rx-desc-size.patch rename to 0118-expand-nic-rx-desc-size.patch diff --git a/0124-add-kni-local-support-in-lstack.patch b/0119-add-kni-local-support-in-lstack.patch similarity index 100% rename from 0124-add-kni-local-support-in-lstack.patch rename to 0119-add-kni-local-support-in-lstack.patch diff --git a/0125-resolve-the-conflict-between-the-eth_dev_ops-variabl.patch b/0120-resolve-the-conflict-between-the-eth_dev_ops-variabl.patch similarity index 90% rename from 0125-resolve-the-conflict-between-the-eth_dev_ops-variabl.patch rename to 0120-resolve-the-conflict-between-the-eth_dev_ops-variabl.patch index 7ed1250..e1f0c2c 100644 --- a/0125-resolve-the-conflict-between-the-eth_dev_ops-variabl.patch +++ b/0120-resolve-the-conflict-between-the-eth_dev_ops-variabl.patch @@ -1,6 +1,6 @@ -From 5b51e86ec445f7411f2fb8669397d84761766e3e Mon Sep 17 00:00:00 2001 +From af42b7871afc5ad80b5b2db5341a852218de0e1e Mon Sep 17 00:00:00 2001 From: wu-changsheng -Date: Mon, 7 Nov 2022 15:37:14 +0800 +Date: Mon, 7 Nov 2022 15:15:52 +0800 Subject: [PATCH] resolve the conflict between the eth_dev_ops variable and the dpdk-19.11 @@ -15,7 +15,7 @@ Subject: [PATCH] resolve the conflict between the eth_dev_ops variable and the 7 files changed, 18 insertions(+), 24 deletions(-) diff --git a/src/common/dpdk_common.h b/src/common/dpdk_common.h -index bff4913..315707f 100644 +index c2cbda7..753c168 100644 --- a/src/common/dpdk_common.h +++ b/src/common/dpdk_common.h @@ -135,7 +135,7 @@ static __rte_always_inline uint32_t gazelle_light_ring_dequeue_burst(struct rte_ @@ -49,20 +49,20 @@ index 52b4624..0437187 100644 } gazelle_ring_read_over(sock->recv_ring); diff --git a/src/lstack/include/lstack_ethdev.h b/src/lstack/include/lstack_ethdev.h -index 95f5161..c64b4a0 100644 +index a174978..c64b4a0 100644 --- a/src/lstack/include/lstack_ethdev.h +++ b/src/lstack/include/lstack_ethdev.h @@ -15,7 +15,7 @@ struct protocol_stack; struct rte_mbuf; --struct lstack_eth_dev_ops { +-struct eth_dev_ops { +struct lstack_dev_ops { uint32_t (*rx_poll)(struct protocol_stack *stack, struct rte_mbuf **pkts, uint32_t max_mbuf); uint32_t (*tx_xmit)(struct protocol_stack *stack, struct rte_mbuf **pkts, uint32_t nr_pkts); }; diff --git a/src/lstack/include/lstack_protocol_stack.h b/src/lstack/include/lstack_protocol_stack.h -index c836b77..2d9053a 100644 +index fed1882..2d9053a 100644 --- a/src/lstack/include/lstack_protocol_stack.h +++ b/src/lstack/include/lstack_protocol_stack.h @@ -21,6 +21,7 @@ @@ -77,32 +77,32 @@ index c836b77..2d9053a 100644 char pad1 __rte_cache_aligned; struct netif netif; -- struct lstack_eth_dev_ops *dev_ops; +- struct eth_dev_ops *dev_ops; + struct lstack_dev_ops dev_ops; uint32_t rx_ring_used; uint32_t tx_ring_used; diff --git a/src/lstack/include/lstack_vdev.h b/src/lstack/include/lstack_vdev.h -index b84d280..0693c4d 100644 +index 5836257..0693c4d 100644 --- a/src/lstack/include/lstack_vdev.h +++ b/src/lstack/include/lstack_vdev.h @@ -13,10 +13,12 @@ #ifndef _GAZELLE_VDEV_H_ #define _GAZELLE_VDEV_H_ --struct lstack_eth_dev_ops; +-struct eth_dev_ops; +#include + +struct lstack_dev_ops; struct gazelle_quintuple; enum reg_ring_type; --void vdev_dev_ops_init(struct lstack_eth_dev_ops **dev_ops); +-void vdev_dev_ops_init(struct eth_dev_ops **dev_ops); +void vdev_dev_ops_init(struct lstack_dev_ops *dev_ops); int vdev_reg_xmit(enum reg_ring_type type, struct gazelle_quintuple *qtuple); #endif /* _GAZELLE_VDEV_H_ */ diff --git a/src/lstack/netif/lstack_ethdev.c b/src/lstack/netif/lstack_ethdev.c -index cf783f4..dbe7203 100644 +index 1c35919..d410a5c 100644 --- a/src/lstack/netif/lstack_ethdev.c +++ b/src/lstack/netif/lstack_ethdev.c @@ -88,7 +88,7 @@ int32_t eth_dev_poll(void) @@ -139,24 +139,24 @@ index cf783f4..dbe7203 100644 if (sent_pkts < 1) { stack->stats.tx_drop++; diff --git a/src/lstack/netif/lstack_vdev.c b/src/lstack/netif/lstack_vdev.c -index 68b6a0c..e2671b4 100644 +index 8df0c5e..e2671b4 100644 --- a/src/lstack/netif/lstack_vdev.c +++ b/src/lstack/netif/lstack_vdev.c @@ -168,21 +168,13 @@ int32_t vdev_reg_xmit(enum reg_ring_type type, struct gazelle_quintuple *qtuple) return (int32_t)sent_pkts; } --static struct lstack_eth_dev_ops g_eth_dev_ops = { +-static struct eth_dev_ops g_eth_dev_ops = { - .rx_poll = vdev_rx_poll, - .tx_xmit = vdev_tx_xmit, -}; - --static struct lstack_eth_dev_ops g_ltran_eth_dev_ops = { +-static struct eth_dev_ops g_ltran_eth_dev_ops = { - .rx_poll = ltran_rx_poll, - .tx_xmit = ltran_tx_xmit, -}; - --void vdev_dev_ops_init(struct lstack_eth_dev_ops **dev_ops) +-void vdev_dev_ops_init(struct eth_dev_ops **dev_ops) +void vdev_dev_ops_init(struct lstack_dev_ops *dev_ops) { if (use_ltran()) { diff --git a/0126-add-pdump-support-in-lstack.patch b/0121-add-pdump-support-in-lstack.patch similarity index 100% rename from 0126-add-pdump-support-in-lstack.patch rename to 0121-add-pdump-support-in-lstack.patch diff --git a/0127-fix-uninit-stack-port_id-when-use-mutil-NIC.patch b/0122-fix-uninit-stack-port_id-when-use-mutil-NIC.patch similarity index 100% rename from 0127-fix-uninit-stack-port_id-when-use-mutil-NIC.patch rename to 0122-fix-uninit-stack-port_id-when-use-mutil-NIC.patch diff --git a/0128-fix-memleak-in-dpdk_ethdev_init-unlikely-path.patch b/0123-fix-memleak-in-dpdk_ethdev_init-unlikely-path.patch similarity index 100% rename from 0128-fix-memleak-in-dpdk_ethdev_init-unlikely-path.patch rename to 0123-fix-memleak-in-dpdk_ethdev_init-unlikely-path.patch diff --git a/0129-fix-epoll_wait-return-when-timeout-is-0.patch b/0124-fix-epoll_wait-return-when-timeout-is-0.patch similarity index 100% rename from 0129-fix-epoll_wait-return-when-timeout-is-0.patch rename to 0124-fix-epoll_wait-return-when-timeout-is-0.patch diff --git a/0130-fix-gazelle-pdump-init-fail-with-dpdk-21.11.patch b/0125-fix-gazelle-pdump-init-fail-with-dpdk-21.11.patch similarity index 100% rename from 0130-fix-gazelle-pdump-init-fail-with-dpdk-21.11.patch rename to 0125-fix-gazelle-pdump-init-fail-with-dpdk-21.11.patch diff --git a/0131-fix-add-outdated-event.patch b/0126-fix-add-outdated-event.patch similarity index 100% rename from 0131-fix-add-outdated-event.patch rename to 0126-fix-add-outdated-event.patch diff --git a/0132-revert-write-usleep.patch b/0127-revert-write-usleep.patch similarity index 100% rename from 0132-revert-write-usleep.patch rename to 0127-revert-write-usleep.patch diff --git a/0133-reduce-thread-variable-access.patch b/0128-reduce-thread-variable-access.patch similarity index 100% rename from 0133-reduce-thread-variable-access.patch rename to 0128-reduce-thread-variable-access.patch diff --git a/0134-add-readv-and-readv-kernel.patch b/0129-add-readv-and-readv-kernel.patch similarity index 100% rename from 0134-add-readv-and-readv-kernel.patch rename to 0129-add-readv-and-readv-kernel.patch diff --git a/0135-add-unlock-before-after.patch b/0130-add-unlock-before-after.patch similarity index 100% rename from 0135-add-unlock-before-after.patch rename to 0130-add-unlock-before-after.patch diff --git a/0136-add-mutil-NIC-support-in-gazelle.patch b/0131-add-mutil-NIC-support-in-gazelle.patch similarity index 100% rename from 0136-add-mutil-NIC-support-in-gazelle.patch rename to 0131-add-mutil-NIC-support-in-gazelle.patch diff --git a/0137-remove-filename_check-in-gazellectl-to-fix-build-err.patch b/0132-remove-filename_check-in-gazellectl-to-fix-build-err.patch similarity index 100% rename from 0137-remove-filename_check-in-gazellectl-to-fix-build-err.patch rename to 0132-remove-filename_check-in-gazellectl-to-fix-build-err.patch diff --git a/0138-cancel-kernel-sock-epoll-ctl-when-lwip-sock-connect.patch b/0133-cancel-kernel-sock-epoll-ctl-when-lwip-sock-connect.patch similarity index 100% rename from 0138-cancel-kernel-sock-epoll-ctl-when-lwip-sock-connect.patch rename to 0133-cancel-kernel-sock-epoll-ctl-when-lwip-sock-connect.patch diff --git a/0139-modify-readv-and-writev-first-buf-is-null.patch b/0134-modify-readv-and-writev-first-buf-is-null.patch similarity index 100% rename from 0139-modify-readv-and-writev-first-buf-is-null.patch rename to 0134-modify-readv-and-writev-first-buf-is-null.patch diff --git a/0140-fix-pdump-and-mutil-NIC-init-fail.patch b/0135-fix-pdump-and-mutil-NIC-init-fail.patch similarity index 77% rename from 0140-fix-pdump-and-mutil-NIC-init-fail.patch rename to 0135-fix-pdump-and-mutil-NIC-init-fail.patch index 6421b2e..ffacd4b 100644 --- a/0140-fix-pdump-and-mutil-NIC-init-fail.patch +++ b/0135-fix-pdump-and-mutil-NIC-init-fail.patch @@ -1,4 +1,4 @@ -From 846fc6abbb693183d042ab91f9450f4fa4cef345 Mon Sep 17 00:00:00 2001 +From b2b659c8d2567b9553344ef7c4fe3489c2c7906b Mon Sep 17 00:00:00 2001 From: kircher Date: Mon, 14 Nov 2022 19:17:00 +0800 Subject: [PATCH] fix pdump and mutil NIC init fail @@ -9,16 +9,16 @@ Subject: [PATCH] fix pdump and mutil NIC init fail 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/lstack/Makefile b/src/lstack/Makefile -index 1560d0c..908897d 100644 +index cb7be16..b6cbd32 100644 --- a/src/lstack/Makefile +++ b/src/lstack/Makefile -@@ -81,7 +81,8 @@ LIBRTE_LIB = $(DPDK_LIB_PATH)/librte_pci.so \ - $(DPDK_LIB_PATH)/librte_bus_vdev.so \ - $(DPDK_LIB_PATH)/librte_net.so \ - $(DPDK_LIB_PATH)/librte_ethdev.so \ -- $(DPDK_LIB_PATH)/librte_pdump.so -+ $(DPDK_LIB_PATH)/librte_pdump.so \ -+ $(DPDK_LIB_PATH)/librte_pmd_pcap.so +@@ -83,7 +83,8 @@ LIBRTE_LIB = $(LIB_PATH)/librte_bus_pci.so \ + $(LIB_PATH)/librte_bpf.so \ + $(LIB_PATH)/librte_pcapng.so \ + $(LIB_PATH)/librte_security.so \ +- $(LIB_PATH)/librte_cryptodev.so ++ $(LIB_PATH)/librte_cryptodev.so \ ++ $(LIB_PATH)/librte_net_pcap.so DEP_LIBS = $(LWIP_LIB) $(LIBRTE_LIB) diff --git a/0141-modify-duplicate-code.patch b/0136-modify-duplicate-code.patch similarity index 100% rename from 0141-modify-duplicate-code.patch rename to 0136-modify-duplicate-code.patch diff --git a/0142-merge-lstack-rx-tx-mbuf-pool.patch b/0137-merge-lstack-rx-tx-mbuf-pool.patch similarity index 100% rename from 0142-merge-lstack-rx-tx-mbuf-pool.patch rename to 0137-merge-lstack-rx-tx-mbuf-pool.patch diff --git a/0143-avoid-send-stop-when-mbuf-pool-empty.patch b/0138-avoid-send-stop-when-mbuf-pool-empty.patch similarity index 100% rename from 0143-avoid-send-stop-when-mbuf-pool-empty.patch rename to 0138-avoid-send-stop-when-mbuf-pool-empty.patch diff --git a/0144-fix-pcb-snd_buf-flip.patch b/0139-fix-pcb-snd_buf-flip.patch similarity index 100% rename from 0144-fix-pcb-snd_buf-flip.patch rename to 0139-fix-pcb-snd_buf-flip.patch diff --git a/0145-fix-lwip-send-return-0-add-err-event.patch b/0140-fix-lwip-send-return-0-add-err-event.patch similarity index 100% rename from 0145-fix-lwip-send-return-0-add-err-event.patch rename to 0140-fix-lwip-send-return-0-add-err-event.patch diff --git a/0146-fix-data-flow-error-when-use-NIC-in-kernel.patch b/0141-fix-data-flow-error-when-use-NIC-in-kernel.patch similarity index 100% rename from 0146-fix-data-flow-error-when-use-NIC-in-kernel.patch rename to 0141-fix-data-flow-error-when-use-NIC-in-kernel.patch diff --git a/0147-fix-write-event-error.patch b/0142-fix-write-event-error.patch similarity index 100% rename from 0147-fix-write-event-error.patch rename to 0142-fix-write-event-error.patch diff --git a/0148-add-malloc-init-zero.patch b/0143-add-malloc-init-zero.patch similarity index 100% rename from 0148-add-malloc-init-zero.patch rename to 0143-add-malloc-init-zero.patch diff --git a/0149-modify-event-error.patch b/0144-modify-event-error.patch similarity index 100% rename from 0149-modify-event-error.patch rename to 0144-modify-event-error.patch diff --git a/0150-add-unix_prefix-in-gazellectl.patch b/0145-add-unix_prefix-in-gazellectl.patch similarity index 100% rename from 0150-add-unix_prefix-in-gazellectl.patch rename to 0145-add-unix_prefix-in-gazellectl.patch diff --git a/0151-fix-epoll_wait-report-event0.patch b/0146-fix-epoll_wait-report-event0.patch similarity index 100% rename from 0151-fix-epoll_wait-report-event0.patch rename to 0146-fix-epoll_wait-report-event0.patch diff --git a/0152-add-TSO.patch b/0147-add-TSO.patch similarity index 99% rename from 0152-add-TSO.patch rename to 0147-add-TSO.patch index 224885b..4a31af9 100644 --- a/0152-add-TSO.patch +++ b/0147-add-TSO.patch @@ -214,7 +214,7 @@ index 62e4ecf..87fe9ae 100644 - stack->stats.tx_drop++; - return ERR_BUF; + if (likely(first_mbuf->pkt_len > MBUF_MAX_LEN)) { -+ mbuf->ol_flags |= PKT_TX_TCP_SEG; ++ mbuf->ol_flags |= RTE_MBUF_F_TX_TCP_SEG; + mbuf->tso_segsz = TCP_MSS; + } + mbuf->l2_len = first_pbuf->l2_len; diff --git a/0153-optimize-app-thread-write-buff-block.patch b/0148-optimize-app-thread-write-buff-block.patch similarity index 97% rename from 0153-optimize-app-thread-write-buff-block.patch rename to 0148-optimize-app-thread-write-buff-block.patch index ca7749f..59aec83 100644 --- a/0153-optimize-app-thread-write-buff-block.patch +++ b/0148-optimize-app-thread-write-buff-block.patch @@ -1,7 +1,7 @@ -From 910e12f008092795c6e8a2434407331bfe0f129b Mon Sep 17 00:00:00 2001 +From 8fcc0033d10f7bac263759794199b4ec96372a92 Mon Sep 17 00:00:00 2001 From: wu-changsheng -Date: Sat, 3 Dec 2022 22:23:09 +0800 -Subject: [PATCH] optimize-app-thread-write-buff-block +Date: Sat, 3 Dec 2022 21:20:28 +0800 +Subject: [PATCH 2/2] optimize app thread write buff block --- src/common/dpdk_common.h | 39 +-- @@ -20,7 +20,7 @@ Subject: [PATCH] optimize-app-thread-write-buff-block 13 files changed, 366 insertions(+), 136 deletions(-) diff --git a/src/common/dpdk_common.h b/src/common/dpdk_common.h -index 315707f..5d354da 100644 +index 753c168..a0c304c 100644 --- a/src/common/dpdk_common.h +++ b/src/common/dpdk_common.h @@ -13,6 +13,7 @@ @@ -45,7 +45,7 @@ index 315707f..5d354da 100644 } - - ENQUEUE_PTRS(r, &r[1], head, obj_table, n, void *); + __rte_ring_enqueue_elems(r, head, obj_table, sizeof(void *), n); __atomic_store_n(&r->cons.head, head + n, __ATOMIC_RELEASE); @@ -169,39 +169,13 @@ static __rte_always_inline uint32_t gazelle_ring_sc_dequeue(struct rte_ring *r, @@ -53,7 +53,7 @@ index 315707f..5d354da 100644 } - - DEQUEUE_PTRS(r, &r[1], cons, obj_table, n, void *); + __rte_ring_dequeue_elems(r, cons, obj_table, sizeof(void *), n); - r->cons.tail = cons + n; - @@ -75,7 +75,7 @@ index 315707f..5d354da 100644 - } - - -- DEQUEUE_PTRS(r, &r[1], cons, obj_table, n, void *); +- __rte_ring_dequeue_elems(r, cons, obj_table, sizeof(void *), n); + __atomic_store_n(&r->cons.tail, cons + n, __ATOMIC_RELEASE); return n; @@ -502,7 +502,7 @@ index d30ecdc..2cda2d9 100644 + return NULL; + } + -+ DEQUEUE_PTRS(r, &r[1], last, ((void **)&last_pbuf), 1, void *); ++ __rte_ring_dequeue_elems(r, last, (void **)&last_pbuf, sizeof(void *), 1); + __atomic_store_n(&last_pbuf->in_write, 1, __ATOMIC_RELEASE); + + rte_mb(); @@ -924,7 +924,7 @@ index 6928f98..2c1202e 100644 #endif diff --git a/src/lstack/netif/lstack_ethdev.c b/src/lstack/netif/lstack_ethdev.c -index 304293f..965b32f 100644 +index 87fe9ae..7984ded 100644 --- a/src/lstack/netif/lstack_ethdev.c +++ b/src/lstack/netif/lstack_ethdev.c @@ -82,7 +82,7 @@ void eth_dev_recv(struct rte_mbuf *mbuf, struct protocol_stack *stack) @@ -939,17 +939,17 @@ index 304293f..965b32f 100644 @@ -183,7 +183,7 @@ static err_t eth_dev_output(struct netif *netif, struct pbuf *pbuf) if (likely(first_mbuf->pkt_len > MBUF_MAX_LEN)) { - mbuf->ol_flags |= PKT_TX_TCP_SEG; + mbuf->ol_flags |= RTE_MBUF_F_TX_TCP_SEG; - mbuf->tso_segsz = TCP_MSS; + mbuf->tso_segsz = MBUF_MAX_DATA_LEN; } mbuf->l2_len = first_pbuf->l2_len; mbuf->l3_len = first_pbuf->l3_len; diff --git a/src/ltran/ltran_dfx.c b/src/ltran/ltran_dfx.c -index c39662f..537dee1 100644 +index c505822..54839af 100644 --- a/src/ltran/ltran_dfx.c +++ b/src/ltran/ltran_dfx.c -@@ -569,7 +569,7 @@ static void show_lstack_stats(struct gazelle_stack_dfx_data *lstack_stat) +@@ -568,7 +568,7 @@ static void show_lstack_stats(struct gazelle_stack_dfx_data *lstack_stat) printf("read_lwip_drop: %-13"PRIu64" \n", lstack_stat->data.pkts.stack_stat.read_lwip_drop); printf("app_write: %-18"PRIu64" ", lstack_stat->data.pkts.wakeup_stat.app_write_cnt); printf("write_lwip: %-17"PRIu64" ", lstack_stat->data.pkts.stack_stat.write_lwip_cnt); @@ -958,7 +958,7 @@ index c39662f..537dee1 100644 printf("recv_list: %-18"PRIu64" ", lstack_stat->data.pkts.recv_list_cnt); printf("send_list: %-18"PRIu64" ", lstack_stat->data.pkts.send_list_cnt); printf("conn_num: %-19hu \n", lstack_stat->data.pkts.conn_num); -@@ -876,8 +876,8 @@ static void gazelle_print_lstack_stat_conn(void *buf, const struct gazelle_stat_ +@@ -875,8 +875,8 @@ static void gazelle_print_lstack_stat_conn(void *buf, const struct gazelle_stat_ printf("Active Internet connections (servers and established)\n"); do { printf("\n------ stack tid: %6u ------\n", stat->tid); @@ -969,7 +969,7 @@ index c39662f..537dee1 100644 uint32_t unread_pkts = 0; uint32_t unsend_pkts = 0; for (i = 0; i < conn->conn_num && i < GAZELLE_LSTACK_MAX_CONN; i++) { -@@ -886,20 +886,21 @@ static void gazelle_print_lstack_stat_conn(void *buf, const struct gazelle_stat_ +@@ -885,20 +885,21 @@ static void gazelle_print_lstack_stat_conn(void *buf, const struct gazelle_stat_ rip.s_addr = conn_info->rip; lip.s_addr = conn_info->lip; if ((conn_info->state == GAZELLE_ACTIVE_LIST) || (conn_info->state == GAZELLE_TIME_WAIT_LIST)) { diff --git a/0154-expand-rxtx-mbuf-pool.patch b/0149-expand-rxtx-mbuf-pool.patch similarity index 100% rename from 0154-expand-rxtx-mbuf-pool.patch rename to 0149-expand-rxtx-mbuf-pool.patch diff --git a/0150-add-pdump-support-in-ltran.patch b/0150-add-pdump-support-in-ltran.patch new file mode 100644 index 0000000..79135ce --- /dev/null +++ b/0150-add-pdump-support-in-ltran.patch @@ -0,0 +1,25 @@ +From 4e7af8dfba06983f5907478c560df479b0418a2a Mon Sep 17 00:00:00 2001 +From: kircher +Date: Mon, 12 Dec 2022 16:22:15 +0800 +Subject: [PATCH] add pdump support in ltran + +--- + src/ltran/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/ltran/CMakeLists.txt b/src/ltran/CMakeLists.txt +index 9c6751c..1c82dae 100644 +--- a/src/ltran/CMakeLists.txt ++++ b/src/ltran/CMakeLists.txt +@@ -53,7 +53,7 @@ set_target_properties(ltran PROPERTIES LINK_FLAGS "-L$ENV{DPDK_LIB_PATH} -Wl,--w + -Wl,-lrte_mempool_dpaa2 -Wl,-lrte_net_af_packet -Wl,-lrte_net_ark -Wl,-lrte_net_atlantic -Wl,-lrte_net_axgbe \ + -Wl,-lrte_net_bnxt -Wl,-lrte_net_bond -Wl,-lrte_net_cxgbe -Wl,-lrte_net_dpaa -Wl,-lrte_net_dpaa2 -Wl,-lrte_net_e1000 -Wl,-lrte_net_ena \ + -Wl,-lrte_net_enetc -Wl,-lrte_net_enic -Wl,-lrte_net_failsafe -Wl,-lrte_net_i40e -Wl,-lrte_net_hinic -Wl,-lrte_net_ixgbe -Wl,-lrte_net_kni \ +- -Wl,-lrte_net_nfp -Wl,-lrte_net_null -Wl,-lpcap -Wl,-lrte_net_qede -Wl,-lrte_net_ring -Wl,-lrte_net_softnic \ ++ -Wl,-lrte_net_nfp -Wl,-lrte_net_null -Wl,-lpcap -Wl,-lrte_net_qede -Wl,-lrte_net_ring -Wl,-lrte_net_softnic -Wl,-lrte_net_pcap \ + -Wl,-lrte_net_tap -Wl,-lrte_net_vdev_netvsc -Wl,-lrte_net_virtio -Wl,-lrte_net_vhost \ + -Wl,-lrte_bus_vmbus -Wl,-lrte_net_netvsc -Wl,-lrte_mempool_octeontx -Wl,-lrte_net_octeontx \ + -Wl,-lrte_bus_ifpga -Wl,-lrte_stack -Wl,-lrte_telemetry\ +-- +2.33.0 + diff --git a/0156-dfx-gazellectl-add-pcb-wins-info.patch b/0151-dfx-gazellectl-add-pcb-wins-info.patch similarity index 95% rename from 0156-dfx-gazellectl-add-pcb-wins-info.patch rename to 0151-dfx-gazellectl-add-pcb-wins-info.patch index a6604c0..3567785 100644 --- a/0156-dfx-gazellectl-add-pcb-wins-info.patch +++ b/0151-dfx-gazellectl-add-pcb-wins-info.patch @@ -1,7 +1,7 @@ -From 592e8fe085a7cea866930fc1f4f0a8fc703fb4fe Mon Sep 17 00:00:00 2001 +From 0a034f7bf644660c09a12af6c5e5d4cc3e1521d2 Mon Sep 17 00:00:00 2001 From: wu-changsheng -Date: Tue, 13 Dec 2022 22:58:00 +0800 -Subject: [PATCH] dfx-gazellectl-add-pcb-wins-info +Date: Mon, 12 Dec 2022 11:37:45 +0800 +Subject: [PATCH 1/4] dfx:gazellectl add pcb wins info --- src/common/gazelle_dfx_msg.h | 12 ++++++--- @@ -34,7 +34,7 @@ index 0bdd238..d14f1b9 100644 struct gazelle_stat_lstack_conn { diff --git a/src/lstack/core/lstack_lwip.c b/src/lstack/core/lstack_lwip.c -index bad1de3..c843395 100644 +index 2cda2d9..d4a2861 100644 --- a/src/lstack/core/lstack_lwip.c +++ b/src/lstack/core/lstack_lwip.c @@ -125,21 +125,22 @@ static struct pbuf *init_mbuf_to_pbuf(struct rte_mbuf *mbuf, pbuf_layer layer, u @@ -162,18 +162,18 @@ index bad1de3..c843395 100644 } } diff --git a/src/ltran/ltran_dfx.c b/src/ltran/ltran_dfx.c -index 537dee1..c98e3f6 100644 +index 54839af..3801f19 100644 --- a/src/ltran/ltran_dfx.c +++ b/src/ltran/ltran_dfx.c -@@ -13,6 +13,7 @@ +@@ -12,6 +12,7 @@ + #include #include - #include +#include #include #include -@@ -872,12 +873,14 @@ static void gazelle_print_lstack_stat_conn(void *buf, const struct gazelle_stat_ +@@ -871,12 +872,14 @@ static void gazelle_print_lstack_stat_conn(void *buf, const struct gazelle_stat_ char str_rip[GAZELLE_SUBNET_LENGTH_MAX] = {0}; struct gazelle_stack_dfx_data *stat = (struct gazelle_stack_dfx_data *)buf; struct gazelle_stat_lstack_conn *conn = &stat->data.conn; @@ -191,7 +191,7 @@ index 537dee1..c98e3f6 100644 uint32_t unread_pkts = 0; uint32_t unsend_pkts = 0; for (i = 0; i < conn->conn_num && i < GAZELLE_LSTACK_MAX_CONN; i++) { -@@ -886,10 +889,12 @@ static void gazelle_print_lstack_stat_conn(void *buf, const struct gazelle_stat_ +@@ -885,10 +888,12 @@ static void gazelle_print_lstack_stat_conn(void *buf, const struct gazelle_stat_ rip.s_addr = conn_info->rip; lip.s_addr = conn_info->lip; if ((conn_info->state == GAZELLE_ACTIVE_LIST) || (conn_info->state == GAZELLE_TIME_WAIT_LIST)) { @@ -208,7 +208,7 @@ index 537dee1..c98e3f6 100644 inet_ntop(AF_INET, &rip, str_rip, sizeof(str_rip)), conn_info->r_port, tcp_state_to_str(conn_info->tcp_sub_state)); } else if (conn_info->state == GAZELLE_LISTEN_LIST) { -@@ -900,7 +905,7 @@ static void gazelle_print_lstack_stat_conn(void *buf, const struct gazelle_stat_ +@@ -899,7 +904,7 @@ static void gazelle_print_lstack_stat_conn(void *buf, const struct gazelle_stat_ inet_ntop(AF_INET, &lip, str_ip, sizeof(str_ip)), conn_info->l_port, conn_info->state); } unread_pkts += conn_info->recv_ring_cnt + conn_info->recv_cnt; diff --git a/0157-fix-genarate-out-event-untimely.patch b/0152-fix-genarate-out-event-untimely.patch similarity index 100% rename from 0157-fix-genarate-out-event-untimely.patch rename to 0152-fix-genarate-out-event-untimely.patch diff --git a/0158-rxtx-mbuf-pool-size-config-by-conf.patch b/0153-rxtx-mbuf-pool-size-config-by-conf.patch similarity index 100% rename from 0158-rxtx-mbuf-pool-size-config-by-conf.patch rename to 0153-rxtx-mbuf-pool-size-config-by-conf.patch diff --git a/0159-fix-kernel-event-thread-bind-numa-failed.patch b/0154-fix-kernel-event-thread-bind-numa-failed.patch similarity index 100% rename from 0159-fix-kernel-event-thread-bind-numa-failed.patch rename to 0154-fix-kernel-event-thread-bind-numa-failed.patch diff --git a/0155-add-pdump-support-in-ltran.patch b/0155-add-pdump-support-in-ltran.patch deleted file mode 100644 index 3b13793..0000000 --- a/0155-add-pdump-support-in-ltran.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 9fc8d2430138bd7e7de1c4597c50a9dbf87d090d Mon Sep 17 00:00:00 2001 -From: kircher -Date: Mon, 12 Dec 2022 16:49:50 +0800 -Subject: [PATCH] add pdump support in ltran - ---- - src/ltran/CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/ltran/CMakeLists.txt b/src/ltran/CMakeLists.txt -index 25c617f..2695f8a 100644 ---- a/src/ltran/CMakeLists.txt -+++ b/src/ltran/CMakeLists.txt -@@ -55,7 +55,7 @@ set_target_properties(ltran PROPERTIES LINK_FLAGS "-L$ENV{DPDK_LIB_PATH} -Wl,--w - -Wl,-lrte_mempool_dpaa2 -Wl,-lrte_pmd_af_packet -Wl,-lrte_pmd_ark -Wl,-lrte_pmd_atlantic -Wl,-lrte_pmd_axgbe \ - -Wl,-lrte_pmd_bnxt -Wl,-lrte_pmd_bond -Wl,-lrte_pmd_cxgbe -Wl,-lrte_pmd_dpaa -Wl,-lrte_pmd_dpaa2 -Wl,-lrte_pmd_e1000 -Wl,-lrte_pmd_ena \ - -Wl,-lrte_pmd_enetc -Wl,-lrte_pmd_enic -Wl,-lrte_pmd_failsafe -Wl,-lrte_pmd_i40e -Wl,-lrte_pmd_hinic -Wl,-lrte_pmd_ixgbe -Wl,-lrte_pmd_kni \ -- -Wl,-lrte_pmd_lio -Wl,-lrte_pmd_nfp -Wl,-lrte_pmd_null -Wl,-lpcap -Wl,-lrte_pmd_qede -Wl,-lrte_pmd_ring -Wl,-lrte_pmd_softnic \ -+ -Wl,-lrte_pmd_lio -Wl,-lrte_pmd_nfp -Wl,-lrte_pmd_null -Wl,-lpcap -Wl,-lrte_pmd_qede -Wl,-lrte_pmd_ring -Wl,-lrte_pmd_softnic -Wl,-lrte_pmd_pcap \ - -Wl,-lrte_pmd_tap -Wl,-lrte_pmd_thunderx_nicvf -Wl,-lrte_pmd_vdev_netvsc -Wl,-lrte_pmd_virtio -Wl,-lrte_pmd_vhost -Wl,-lrte_pmd_ifc \ - -Wl,-lrte_pmd_vmxnet3_uio -Wl,-lrte_bus_vmbus -Wl,-lrte_pmd_netvsc -Wl,-lrte_pmd_bbdev_null -Wl,-lrte_pmd_null_crypto -Wl,-lrte_pmd_octeontx_crypto \ - -Wl,-lrte_pmd_crypto_scheduler -Wl,-lrte_pmd_dpaa2_sec -Wl,-lrte_pmd_dpaa_sec -Wl,-lrte_pmd_caam_jr -Wl,-lrte_pmd_virtio_crypto \ --- -2.33.0 - diff --git a/0160-stack-thread-parms-config-by-conf.patch b/0155-stack-thread-parms-config-by-conf.patch similarity index 100% rename from 0160-stack-thread-parms-config-by-conf.patch rename to 0155-stack-thread-parms-config-by-conf.patch diff --git a/0161-ltran-rxtx-mbuf-pool-size-config-by-conf.patch b/0156-ltran-rxtx-mbuf-pool-size-config-by-conf.patch similarity index 100% rename from 0161-ltran-rxtx-mbuf-pool-size-config-by-conf.patch rename to 0156-ltran-rxtx-mbuf-pool-size-config-by-conf.patch diff --git a/0162-move-select_thread_path-after-posix_api_init.patch b/0157-move-select_thread_path-after-posix_api_init.patch similarity index 100% rename from 0162-move-select_thread_path-after-posix_api_init.patch rename to 0157-move-select_thread_path-after-posix_api_init.patch diff --git a/0163-add-RXTX_NB_MBUF_MAX-to-limit-mbuf_pool_size-to-its-.patch b/0158-add-RXTX_NB_MBUF_MAX-to-limit-mbuf_pool_size-to-its-.patch similarity index 100% rename from 0163-add-RXTX_NB_MBUF_MAX-to-limit-mbuf_pool_size-to-its-.patch rename to 0158-add-RXTX_NB_MBUF_MAX-to-limit-mbuf_pool_size-to-its-.patch diff --git a/0164-stack-thread-params-default-val.patch b/0159-stack-thread-params-default-val.patch similarity index 100% rename from 0164-stack-thread-params-default-val.patch rename to 0159-stack-thread-params-default-val.patch diff --git a/0165-optimite-net-type.patch b/0160-optimite-net-type.patch similarity index 100% rename from 0165-optimite-net-type.patch rename to 0160-optimite-net-type.patch diff --git a/0166-app-bind-numa-when-epoll-poll-create.patch b/0161-app-bind-numa-when-epoll-poll-create.patch similarity index 100% rename from 0166-app-bind-numa-when-epoll-poll-create.patch rename to 0161-app-bind-numa-when-epoll-poll-create.patch diff --git a/0167-remove-mbuf-reserve-in-mbuf-alloc.patch b/0162-remove-mbuf-reserve-in-mbuf-alloc.patch similarity index 100% rename from 0167-remove-mbuf-reserve-in-mbuf-alloc.patch rename to 0162-remove-mbuf-reserve-in-mbuf-alloc.patch diff --git a/0168-pkts-bulk-send-to-nic.patch b/0163-pkts-bulk-send-to-nic.patch similarity index 100% rename from 0168-pkts-bulk-send-to-nic.patch rename to 0163-pkts-bulk-send-to-nic.patch diff --git a/0169-rpc-dont-send.patch b/0164-rpc-dont-send.patch similarity index 100% rename from 0169-rpc-dont-send.patch rename to 0164-rpc-dont-send.patch diff --git a/0170-recv-pbuf-free-timely.patch b/0165-recv-pbuf-free-timely.patch similarity index 100% rename from 0170-recv-pbuf-free-timely.patch rename to 0165-recv-pbuf-free-timely.patch diff --git a/0171-optimite-send-pkts-dul-index.patch b/0166-optimite-send-pkts-dul-index.patch similarity index 100% rename from 0171-optimite-send-pkts-dul-index.patch rename to 0166-optimite-send-pkts-dul-index.patch diff --git a/0172-expand-data-recv-buff.patch b/0167-expand-data-recv-buff.patch similarity index 97% rename from 0172-expand-data-recv-buff.patch rename to 0167-expand-data-recv-buff.patch index a277a8e..6dd7029 100644 --- a/0172-expand-data-recv-buff.patch +++ b/0167-expand-data-recv-buff.patch @@ -1,7 +1,7 @@ -From a74911e2208535c675f1e0e6f64020485517b84e Mon Sep 17 00:00:00 2001 +From da54963163baf9213c8cd34da6ec3c533ab1ef9d Mon Sep 17 00:00:00 2001 From: wu-changsheng -Date: Tue, 20 Dec 2022 15:56:17 +0800 -Subject: [PATCH] base +Date: Tue, 20 Dec 2022 15:42:33 +0800 +Subject: [PATCH 2/2] expand-data-recv-buff --- src/common/dpdk_common.h | 2 +- @@ -10,12 +10,12 @@ Subject: [PATCH] base 3 files changed, 164 insertions(+), 42 deletions(-) diff --git a/src/common/dpdk_common.h b/src/common/dpdk_common.h -index c949f95..cc9b849 100644 +index 63d651d..c93f506 100644 --- a/src/common/dpdk_common.h +++ b/src/common/dpdk_common.h @@ -193,7 +193,7 @@ static __rte_always_inline uint32_t gazelle_ring_read(struct rte_ring *r, void * - DEQUEUE_PTRS(r, &r[1], prod, obj_table, n, void *); + __rte_ring_dequeue_elems(r, prod, obj_table, sizeof(void *), n); - r->prod.head = prod + n; + __atomic_store_n(&r->prod.head, prod + n, __ATOMIC_RELEASE); @@ -23,7 +23,7 @@ index c949f95..cc9b849 100644 return n; } diff --git a/src/lstack/core/lstack_lwip.c b/src/lstack/core/lstack_lwip.c -index fb2f082..e418029 100644 +index 0b9b684..32d21b6 100644 --- a/src/lstack/core/lstack_lwip.c +++ b/src/lstack/core/lstack_lwip.c @@ -83,6 +83,11 @@ static void reset_sock_data(struct lwip_sock *sock) @@ -79,7 +79,7 @@ index fb2f082..e418029 100644 } - free_recv_ring_readover(sock->recv_ring); -+ DEQUEUE_PTRS(r, &r[1], last, ((void **)&last_pbuf), 1, void *); ++ __rte_ring_dequeue_elems(r, last, (void **)&last_pbuf, sizeof(void *), 1); + __atomic_store_n(&last_pbuf->in_write, 1, __ATOMIC_RELEASE); - uint32_t free_count = gazelle_ring_free_count(sock->recv_ring); diff --git a/0173-dfx-add-mempool-count-info.patch b/0168-dfx-add-mempool-count-info.patch similarity index 100% rename from 0173-dfx-add-mempool-count-info.patch rename to 0168-dfx-add-mempool-count-info.patch diff --git a/0174-write-support-without-epoll-poll.patch b/0169--write-support-without-epoll-poll.patch similarity index 100% rename from 0174-write-support-without-epoll-poll.patch rename to 0169--write-support-without-epoll-poll.patch diff --git a/0175-add-rcv-nxt-dfx-info.patch b/0170-add-rcv-nxt-dfx-info.patch similarity index 100% rename from 0175-add-rcv-nxt-dfx-info.patch rename to 0170-add-rcv-nxt-dfx-info.patch diff --git a/0176-mbuf-private-data-size-align-cache-line.patch b/0171-mbuf-private-data-size-align-cache-line.patch similarity index 100% rename from 0176-mbuf-private-data-size-align-cache-line.patch rename to 0171-mbuf-private-data-size-align-cache-line.patch diff --git a/0177-fix-send-pkts-bluk-err.patch b/0172-fix-send-pkts-bluk-err.patch similarity index 100% rename from 0177-fix-send-pkts-bluk-err.patch rename to 0172-fix-send-pkts-bluk-err.patch diff --git a/0178-free-recv-pkts-bluks.patch b/0173-free-recv-pkts-bluks.patch similarity index 100% rename from 0178-free-recv-pkts-bluks.patch rename to 0173-free-recv-pkts-bluks.patch diff --git a/0179-fix-lstack-Makefile-warning.patch b/0174-fix-lstack-Makefile-warning.patch similarity index 100% rename from 0179-fix-lstack-Makefile-warning.patch rename to 0174-fix-lstack-Makefile-warning.patch diff --git a/0180-fix-null-pointer-deref-in-stack_broadcast_close.patch b/0175-fix-null-pointer-deref-in-stack_broadcast_close.patch similarity index 100% rename from 0180-fix-null-pointer-deref-in-stack_broadcast_close.patch rename to 0175-fix-null-pointer-deref-in-stack_broadcast_close.patch diff --git a/0181-pbuf-align-cache-line.patch b/0176-pbuf-align-cache-line.patch similarity index 100% rename from 0181-pbuf-align-cache-line.patch rename to 0176-pbuf-align-cache-line.patch diff --git a/0182-support-set-main-thread-affinity.patch b/0177-support-set-main-thread-affinity.patch similarity index 100% rename from 0182-support-set-main-thread-affinity.patch rename to 0177-support-set-main-thread-affinity.patch diff --git a/0183-reduce-epoll-wakeup.patch b/0178-reduce-epoll-wakeup.patch similarity index 100% rename from 0183-reduce-epoll-wakeup.patch rename to 0178-reduce-epoll-wakeup.patch diff --git a/0184-revert-expand-recv-data-buff.patch b/0179-revert-expand-recv-data-buff.patch similarity index 96% rename from 0184-revert-expand-recv-data-buff.patch rename to 0179-revert-expand-recv-data-buff.patch index e12348a..4b1749f 100644 --- a/0184-revert-expand-recv-data-buff.patch +++ b/0179-revert-expand-recv-data-buff.patch @@ -1,7 +1,7 @@ -From 21275878e54bfa911f3f669f7ca8375a100b0433 Mon Sep 17 00:00:00 2001 +From 9389400a55d1e82abf736eb3112998c1c2fc0ef8 Mon Sep 17 00:00:00 2001 From: wu-changsheng -Date: Fri, 30 Dec 2022 16:17:34 +0800 -Subject: [PATCH] revert expand recv data buff +Date: Fri, 30 Dec 2022 15:42:55 +0800 +Subject: [PATCH] revert-expand-recv-data-buff --- src/common/dpdk_common.h | 2 +- @@ -9,12 +9,12 @@ Subject: [PATCH] revert expand recv data buff 2 files changed, 31 insertions(+), 124 deletions(-) diff --git a/src/common/dpdk_common.h b/src/common/dpdk_common.h -index 2735398..d78e9eb 100644 +index 49e03a7..4053a2c 100644 --- a/src/common/dpdk_common.h +++ b/src/common/dpdk_common.h @@ -198,7 +198,7 @@ static __rte_always_inline uint32_t gazelle_ring_read(struct rte_ring *r, void * - DEQUEUE_PTRS(r, &r[1], prod, obj_table, n, void *); + __rte_ring_dequeue_elems(r, prod, obj_table, sizeof(void *), n); - __atomic_store_n(&r->prod.head, prod + n, __ATOMIC_RELEASE); + r->prod.head = prod + n; @@ -22,7 +22,7 @@ index 2735398..d78e9eb 100644 return n; } diff --git a/src/lstack/core/lstack_lwip.c b/src/lstack/core/lstack_lwip.c -index 247ca88..43f1971 100644 +index 01c7280..f23419d 100644 --- a/src/lstack/core/lstack_lwip.c +++ b/src/lstack/core/lstack_lwip.c @@ -83,11 +83,6 @@ static void reset_sock_data(struct lwip_sock *sock) diff --git a/0185-add-the-suggestion-of-using-the-u-parameter-when-the.patch b/0180-add-the-suggestion-of-using-the-u-parameter-when-the.patch similarity index 100% rename from 0185-add-the-suggestion-of-using-the-u-parameter-when-the.patch rename to 0180-add-the-suggestion-of-using-the-u-parameter-when-the.patch diff --git a/0186-move-control_client_thread-creation-after-control_in.patch b/0181-move-control_client_thread-creation-after-control_in.patch similarity index 100% rename from 0186-move-control_client_thread-creation-after-control_in.patch rename to 0181-move-control_client_thread-creation-after-control_in.patch diff --git a/0187-add-ret-check-in-pthread_create-and-fix-example-bug.patch b/0182-add-ret-check-in-pthread_create-and-fix-example-bug.patch similarity index 100% rename from 0187-add-ret-check-in-pthread_create-and-fix-example-bug.patch rename to 0182-add-ret-check-in-pthread_create-and-fix-example-bug.patch diff --git a/0188-add-log-message-when-wait-for-connecting-to-ltran.patch b/0183-add-log-message-when-wait-for-connecting-to-ltran.patch similarity index 100% rename from 0188-add-log-message-when-wait-for-connecting-to-ltran.patch rename to 0183-add-log-message-when-wait-for-connecting-to-ltran.patch diff --git a/0189-add-gazelle-fuzz.patch b/0184-add-gazelle-fuzz.patch similarity index 100% rename from 0189-add-gazelle-fuzz.patch rename to 0184-add-gazelle-fuzz.patch diff --git a/0190-add-unitest.patch b/0185-add-unitest.patch similarity index 100% rename from 0190-add-unitest.patch rename to 0185-add-unitest.patch diff --git a/0191-add-gazelle-setup-tools.patch b/0186-add-gazelle-setup-tools.patch similarity index 100% rename from 0191-add-gazelle-setup-tools.patch rename to 0186-add-gazelle-setup-tools.patch diff --git a/0192-test-readv-writev-epoll_create1-accept4.patch b/0187-test-readv-writev-epoll_create1-accept4.patch similarity index 100% rename from 0192-test-readv-writev-epoll_create1-accept4.patch rename to 0187-test-readv-writev-epoll_create1-accept4.patch diff --git a/0193-add-fucntest.patch b/0188-add-fucntest.patch similarity index 100% rename from 0193-add-fucntest.patch rename to 0188-add-fucntest.patch diff --git a/0194-fix-coredump-in-example-server-mum-mode.patch b/0189-fix-coredump-in-example-server-mum-mode.patch similarity index 100% rename from 0194-fix-coredump-in-example-server-mum-mode.patch rename to 0189-fix-coredump-in-example-server-mum-mode.patch diff --git a/0195-bring-up-kni-when-init.patch b/0190-bring-up-kni-when-init.patch similarity index 100% rename from 0195-bring-up-kni-when-init.patch rename to 0190-bring-up-kni-when-init.patch diff --git a/0196-change-mbuf_pool_size-in-lstack.conf-to-tcp_conn_cou.patch b/0191-change-mbuf_pool_size-in-lstack.conf-to-tcp_conn_cou.patch similarity index 100% rename from 0196-change-mbuf_pool_size-in-lstack.conf-to-tcp_conn_cou.patch rename to 0191-change-mbuf_pool_size-in-lstack.conf-to-tcp_conn_cou.patch diff --git a/0197-fix-build-error-in-lstack.patch b/0192-fix-build-error-in-lstack.patch similarity index 100% rename from 0197-fix-build-error-in-lstack.patch rename to 0192-fix-build-error-in-lstack.patch diff --git a/0198-check-and-fix-wakeup_list-when-null-appears.patch b/0193-check-and-fix-wakeup_list-when-null-appears.patch similarity index 100% rename from 0198-check-and-fix-wakeup_list-when-null-appears.patch rename to 0193-check-and-fix-wakeup_list-when-null-appears.patch diff --git a/0199-eneble-TSO-and-fix-TSO-mbuf-pktlen-error.patch b/0194-eneble-TSO-and-fix-TSO-mbuf-pktlen-error.patch similarity index 100% rename from 0199-eneble-TSO-and-fix-TSO-mbuf-pktlen-error.patch rename to 0194-eneble-TSO-and-fix-TSO-mbuf-pktlen-error.patch diff --git a/0200-adapt-unsupport-sock-optname.patch b/0195-adapt-unsupport-sock-optname.patch similarity index 100% rename from 0200-adapt-unsupport-sock-optname.patch rename to 0195-adapt-unsupport-sock-optname.patch diff --git a/0201-reduce-duplicate-code-in-lstack_cfg.c.patch b/0196-reduce-duplicate-code-in-lstack_cfg.c.patch similarity index 100% rename from 0201-reduce-duplicate-code-in-lstack_cfg.c.patch rename to 0196-reduce-duplicate-code-in-lstack_cfg.c.patch diff --git a/0202-fix-private-data-offset-error.patch b/0197-fix-private-data-offset-error.patch similarity index 100% rename from 0202-fix-private-data-offset-error.patch rename to 0197-fix-private-data-offset-error.patch diff --git a/0203-fix-do_close-core-dump.patch b/0198-fix-do_close-core-dump.patch similarity index 100% rename from 0203-fix-do_close-core-dump.patch rename to 0198-fix-do_close-core-dump.patch diff --git a/0204-remove-rxtx-driver-cache.patch b/0199-remove-rxtx-driver-cache.patch similarity index 100% rename from 0204-remove-rxtx-driver-cache.patch rename to 0199-remove-rxtx-driver-cache.patch diff --git a/0205-send-ring-size-is-configure.patch b/0200-send-ring-size-is-configure.patch similarity index 100% rename from 0205-send-ring-size-is-configure.patch rename to 0200-send-ring-size-is-configure.patch diff --git a/0206-send-should-return-1-errno-EAGAIN-when-ring-full.patch b/0201-send-should-return-1-errno-EAGAIN-when-ring-full.patch similarity index 100% rename from 0206-send-should-return-1-errno-EAGAIN-when-ring-full.patch rename to 0201-send-should-return-1-errno-EAGAIN-when-ring-full.patch diff --git a/0207-when-send-ring-full-whether-dynamic-alloc-mbuf-is-co.patch b/0202-when-send-ring-full-whether-dynamic-alloc-mbuf-is-co.patch similarity index 100% rename from 0207-when-send-ring-full-whether-dynamic-alloc-mbuf-is-co.patch rename to 0202-when-send-ring-full-whether-dynamic-alloc-mbuf-is-co.patch diff --git a/0208-add-pbuf-lock-when-aggregate-pbuf.patch b/0203-add-pbuf-lock-when-aggregate-pbuf.patch similarity index 96% rename from 0208-add-pbuf-lock-when-aggregate-pbuf.patch rename to 0203-add-pbuf-lock-when-aggregate-pbuf.patch index 27854a7..57c900a 100644 --- a/0208-add-pbuf-lock-when-aggregate-pbuf.patch +++ b/0203-add-pbuf-lock-when-aggregate-pbuf.patch @@ -18,6 +18,7 @@ Subject: [PATCH] add pbuf lock when aggregate pbuf reduce invalid send rpc src/lstack/lstack.conf | 2 - src/ltran/ltran_dfx.c | 1 - 12 files changed, 87 insertions(+), 156 deletions(-) + diff --git a/src/common/gazelle_dfx_msg.h b/src/common/gazelle_dfx_msg.h index 674f2d7..608a023 100644 --- a/src/common/gazelle_dfx_msg.h @@ -64,7 +65,7 @@ index 86d0f14..9195f34 100644 { return parse_int(&g_config_params.read_connect_number, "read_connect_number", diff --git a/src/lstack/core/lstack_lwip.c b/src/lstack/core/lstack_lwip.c -index 6f2c1d0..563a65e 100644 +index dcd7e05..e83bffa 100644 --- a/src/lstack/core/lstack_lwip.c +++ b/src/lstack/core/lstack_lwip.c @@ -94,7 +94,7 @@ static void reset_sock_data(struct lwip_sock *sock) @@ -152,7 +153,7 @@ index 6f2c1d0..563a65e 100644 } sock->send_lastdata = pbuf->next; -@@ -442,18 +460,16 @@ static inline struct pbuf *gazelle_ring_readlast(struct rte_ring *r) +@@ -442,18 +460,17 @@ static inline struct pbuf *gazelle_ring_readlast(struct rte_ring *r) struct pbuf *last_pbuf = NULL; volatile uint32_t tail = __atomic_load_n(&r->cons.tail, __ATOMIC_ACQUIRE); uint32_t last = r->prod.tail - 1; @@ -161,11 +162,11 @@ index 6f2c1d0..563a65e 100644 return NULL; } - DEQUEUE_PTRS(r, &r[1], last, ((void **)&last_pbuf), 1, void *); + __rte_ring_dequeue_elems(r, last, (void **)&last_pbuf, sizeof(void *), 1); - __atomic_store_n(&last_pbuf->in_write, 1, __ATOMIC_RELEASE); - - rte_mb(); -- + - tail = __atomic_load_n(&r->cons.tail, __ATOMIC_ACQUIRE); - if (last == tail || last - tail > r->capacity) { - __atomic_store_n(&last_pbuf->in_write, 0, __ATOMIC_RELEASE); @@ -177,7 +178,7 @@ index 6f2c1d0..563a65e 100644 return NULL; } -@@ -462,7 +478,7 @@ static inline struct pbuf *gazelle_ring_readlast(struct rte_ring *r) +@@ -462,7 +479,7 @@ static inline struct pbuf *gazelle_ring_readlast(struct rte_ring *r) static inline void gazelle_ring_lastover(struct pbuf *last_pbuf) { @@ -186,7 +187,7 @@ index 6f2c1d0..563a65e 100644 } static inline size_t merge_data_lastpbuf(struct lwip_sock *sock, void *buf, size_t len) -@@ -623,56 +639,28 @@ void stack_send(struct rpc_msg *msg) +@@ -623,56 +640,28 @@ void stack_send(struct rpc_msg *msg) { int32_t fd = msg->args[MSG_ARG_0].i; struct protocol_stack *stack = (struct protocol_stack *)msg->args[MSG_ARG_3].p; @@ -257,7 +258,7 @@ index 6f2c1d0..563a65e 100644 } } } -@@ -686,29 +674,6 @@ static inline void free_recv_ring_readover(struct rte_ring *ring) +@@ -686,29 +675,6 @@ static inline void free_recv_ring_readover(struct rte_ring *ring) } } @@ -270,7 +271,7 @@ index 6f2c1d0..563a65e 100644 - return NULL; - } - -- DEQUEUE_PTRS(r, &r[1], last, ((void **)&last_pbuf), 1, void *); +- __rte_ring_dequeue_elems(r, last, (void **)&last_pbuf, sizeof(void *), 1); - __atomic_store_n(&last_pbuf->in_write, 1, __ATOMIC_RELEASE); - - rte_mb(); @@ -287,7 +288,7 @@ index 6f2c1d0..563a65e 100644 static inline struct pbuf *pbuf_last(struct pbuf *pbuf) { while (pbuf->next) { -@@ -824,11 +789,14 @@ ssize_t recvmsg_from_stack(int32_t s, struct msghdr *message, int32_t flags) +@@ -824,11 +790,14 @@ ssize_t recvmsg_from_stack(int32_t s, struct msghdr *message, int32_t flags) static inline void notice_stack_send(struct lwip_sock *sock, int32_t fd, int32_t len, int32_t flags) { @@ -306,7 +307,7 @@ index 6f2c1d0..563a65e 100644 } } -@@ -1240,13 +1208,6 @@ void stack_mempool_size(struct rpc_msg *msg) +@@ -1240,13 +1209,6 @@ void stack_mempool_size(struct rpc_msg *msg) msg->result = rte_mempool_avail_count(stack->rxtx_pktmbuf_pool); } @@ -546,10 +547,10 @@ index a4571ff..cf81954 100644 read_connect_number = 4 #process rpc msg number diff --git a/src/ltran/ltran_dfx.c b/src/ltran/ltran_dfx.c -index 800a372..9f8ce05 100644 +index 1c9d4fa..051787e 100644 --- a/src/ltran/ltran_dfx.c +++ b/src/ltran/ltran_dfx.c -@@ -573,7 +573,6 @@ static void show_lstack_stats(struct gazelle_stack_dfx_data *lstack_stat) +@@ -572,7 +572,6 @@ static void show_lstack_stats(struct gazelle_stack_dfx_data *lstack_stat) printf("write_lwip: %-17"PRIu64" ", lstack_stat->data.pkts.stack_stat.write_lwip_cnt); printf("app_write_rpc: %-14"PRIu64" \n", lstack_stat->data.pkts.wakeup_stat.app_write_rpc); printf("recv_list: %-18"PRIu64" ", lstack_stat->data.pkts.recv_list_cnt); diff --git a/0209-supprot-multi-process.patch b/0204-supprot-multi-process.patch similarity index 100% rename from 0209-supprot-multi-process.patch rename to 0204-supprot-multi-process.patch diff --git a/0210-add-gazellectl-x-to-show-nic-stats.patch b/0205-add-gazellectl-x-to-show-nic-stats.patch similarity index 100% rename from 0210-add-gazellectl-x-to-show-nic-stats.patch rename to 0205-add-gazellectl-x-to-show-nic-stats.patch diff --git a/0211-add-same-node-ring-for-inter-proces-communication.patch b/0206-add-same-node-ring-for-inter-proces-communication.patch similarity index 100% rename from 0211-add-same-node-ring-for-inter-proces-communication.patch rename to 0206-add-same-node-ring-for-inter-proces-communication.patch diff --git a/0212-fix-send-reset-by-peer-when-not-sleep-after-connect.patch b/0207-fix-send-reset-by-peer-when-not-sleep-after-connect.patch similarity index 100% rename from 0212-fix-send-reset-by-peer-when-not-sleep-after-connect.patch rename to 0207-fix-send-reset-by-peer-when-not-sleep-after-connect.patch diff --git a/0213-add-tuple_filter-to-diff-rss-rule-and-tuple-filter.patch b/0208-add-tuple-filter-in-conf-to-diff-rss-rule-and-tuple-.patch similarity index 98% rename from 0213-add-tuple_filter-to-diff-rss-rule-and-tuple-filter.patch rename to 0208-add-tuple-filter-in-conf-to-diff-rss-rule-and-tuple-.patch index 7dc9c26..8916f08 100644 --- a/0213-add-tuple_filter-to-diff-rss-rule-and-tuple-filter.patch +++ b/0208-add-tuple-filter-in-conf-to-diff-rss-rule-and-tuple-.patch @@ -1,7 +1,7 @@ -From 6c3fa217820f0fc43044851b0b66118339c038e2 Mon Sep 17 00:00:00 2001 +From 9437f113443158cb3bd8aa31c69e40de5ff6c3dc Mon Sep 17 00:00:00 2001 From: jiangheng -Date: Mon, 5 Sep 2022 01:10:44 +0800 -Subject: [PATCH] add tuple filter in conf to diff rss rule and tuple-tilter +Date: Mon, 5 Sep 2022 01:33:52 +0800 +Subject: [PATCH] add tuple filter in conf to diff rss rule and tuple filter rule --- @@ -241,7 +241,7 @@ index 389a81c..64a2f42 100644 +#tuple_filer=0, below cfg valid +listen_shadow=0 diff --git a/src/lstack/netif/lstack_ethdev.c b/src/lstack/netif/lstack_ethdev.c -index 95b2dc8..19578b2 100644 +index 5032b5b..5ec211d 100644 --- a/src/lstack/netif/lstack_ethdev.c +++ b/src/lstack/netif/lstack_ethdev.c @@ -530,7 +530,6 @@ int recv_pkts_from_other_process(int process_index, void* arg){ @@ -295,5 +295,5 @@ index 1752853..2a4c6ac 100644 int32_t ret; -- -2.27.0 +2.23.0 diff --git a/0215-disable-tso-without-ipv4-checksum.patch b/0210-disable-tso-without-ipv4-checksum.patch similarity index 99% rename from 0215-disable-tso-without-ipv4-checksum.patch rename to 0210-disable-tso-without-ipv4-checksum.patch index 3aee20a..d17e201 100644 --- a/0215-disable-tso-without-ipv4-checksum.patch +++ b/0210-disable-tso-without-ipv4-checksum.patch @@ -36,5 +36,5 @@ index 2938a25..f5a20dd 100644 conf->txmode.offloads = tx_ol; -- -2.33.0 +2.23.0 diff --git a/0214-support-tuple-rule-add-delete.patch b/0210-support-tuple-rule-add-delete.patch similarity index 96% rename from 0214-support-tuple-rule-add-delete.patch rename to 0210-support-tuple-rule-add-delete.patch index f32d9a9..f627b78 100644 --- a/0214-support-tuple-rule-add-delete.patch +++ b/0210-support-tuple-rule-add-delete.patch @@ -1,7 +1,7 @@ -From d7e1f6c5cd22ce75c5147bb118dd12fd426f6315 Mon Sep 17 00:00:00 2001 -From: jiangheng -Date: Tue, 14 Mar 2023 19:03:41 +0800 -Subject: [PATCH] support tuple rule add/delete +From 9b42f69b52aa335d5be445e7de73dfca242ee66a Mon Sep 17 00:00:00 2001 +From: jiangheng12 +Date: Tue, 14 Mar 2023 21:07:15 +0800 +Subject: [PATCH 210/210] support tuple rule add/delete --- src/lstack/api/lstack_wrap.c | 3 +- @@ -38,7 +38,7 @@ index 4be981a..5e510bd 100644 index = atomic_fetch_add(&stack_index, 1); if (index >= stack_group->stack_num) { diff --git a/src/lstack/netif/lstack_ethdev.c b/src/lstack/netif/lstack_ethdev.c -index 19578b2..50c64ef 100644 +index 5ec211d..532f006 100644 --- a/src/lstack/netif/lstack_ethdev.c +++ b/src/lstack/netif/lstack_ethdev.c @@ -26,6 +26,7 @@ @@ -186,5 +186,5 @@ index 2a4c6ac..ba0db39 100644 transfer_delete_rule_info_to_process0(qtuple->dst_ip,qtuple->src_port,qtuple->dst_port); } -- -2.27.0 +2.23.0 diff --git a/0216-refactor-mbuf-private-data.patch b/0211-refactor-mbuf-private-data.patch similarity index 93% rename from 0216-refactor-mbuf-private-data.patch rename to 0211-refactor-mbuf-private-data.patch index 3c2a0a1..ffef817 100644 --- a/0216-refactor-mbuf-private-data.patch +++ b/0211-refactor-mbuf-private-data.patch @@ -1,8 +1,9 @@ -From 996ce182bbb315994cd799f2b5d9de8f578c3673 Mon Sep 17 00:00:00 2001 -From: wu-changsheng -Date: Fri, 17 Mar 2023 10:56:49 +0000 -Subject: [PATCH] refactor-mbuf-private-data +From 2c3000bba21c4c636860498530b57e842f56480f Mon Sep 17 00:00:00 2001 +From: Lemmy Huang +Date: Thu, 16 Mar 2023 11:40:29 +0800 +Subject: [PATCH] refactor mbuf private data +Signed-off-by: Lemmy Huang --- src/common/dpdk_common.h | 49 ++++++++++++++++++----------- src/lstack/core/lstack_dpdk.c | 2 +- @@ -13,7 +14,7 @@ Subject: [PATCH] refactor-mbuf-private-data 6 files changed, 50 insertions(+), 34 deletions(-) diff --git a/src/common/dpdk_common.h b/src/common/dpdk_common.h -index 11c4aa6..f44ad22 100644 +index 1305819..6b107ae 100644 --- a/src/common/dpdk_common.h +++ b/src/common/dpdk_common.h @@ -16,32 +16,44 @@ @@ -138,23 +139,23 @@ index 489b267..eed7fbf 100644 struct stack_latency *latency_stat = (type == GAZELLE_LATENCY_LWIP) ? &stack_latency->lwip_latency : &stack_latency->read_latency; diff --git a/src/ltran/CMakeLists.txt b/src/ltran/CMakeLists.txt -index 2695f8a..ccfc406 100644 +index 1c82dae..f37a232 100644 --- a/src/ltran/CMakeLists.txt +++ b/src/ltran/CMakeLists.txt -@@ -13,6 +13,7 @@ project(ltran) +@@ -12,6 +12,7 @@ cmake_minimum_required(VERSION 3.12.1) + project(ltran) set(COMMON_DIR ${PROJECT_SOURCE_DIR}/../common) - set(DPDK_DIR /usr/include/dpdk) +set(LWIP_DIR /usr/include/lwip) set(CMAKE_VERBOSE_MAKEFILE ON) if (CMAKE_C_COMPILER_ID STREQUAL "GNU") -@@ -32,7 +33,7 @@ add_executable(ltran main.c ltran_param.c ltran_config.c ltran_ethdev.c ltran_st +@@ -31,7 +32,7 @@ add_executable(ltran main.c ltran_param.c ltran_config.c ltran_ethdev.c ltran_st ltran_forward.c ltran_timer.c ${COMMON_DIR}/gazelle_dfx_msg.c ${COMMON_DIR}/dpdk_common.c ${COMMON_DIR}/gazelle_parse_config.c) -- target_include_directories(ltran PRIVATE ${DPDK_DIR} ${COMMON_DIR} ${PROJECT_SOURCE_DIR}) -+ target_include_directories(ltran PRIVATE ${DPDK_DIR} ${COMMON_DIR} ${PROJECT_SOURCE_DIR} ${LWIP_DIR}) +-target_include_directories(ltran PRIVATE ${COMMON_DIR} ${PROJECT_SOURCE_DIR}) ++target_include_directories(ltran PRIVATE ${COMMON_DIR} ${PROJECT_SOURCE_DIR} ${LWIP_DIR}) target_compile_options(ltran PRIVATE -march=native -fno-strict-aliasing -D__ARM_FEATURE_CRC32=1 -DRTE_MACHINE_CPUFLAG_NEON -DRTE_MACHINE_CPUFLAG_CRC32 -DRTE_MACHINE_CPUFLAG_PMULL -DRTE_MACHINE_CPUFLAG_AES -DRTE_MACHINE_CPUFLAG_SHA1 -DRTE_MACHINE_CPUFLAG_SHA2 -include rte_config.h @@ -215,5 +216,5 @@ index 4d9c1bb..8629acb 100644 stack->stack_stats.latency_total += latency; stack->stack_stats.latency_pkts++; -- -2.33.0 +2.23.0 diff --git a/0217-fix-kernel-scoket-select-path-error.patch b/0212-fix-kernel-scoket-select-path-error.patch similarity index 100% rename from 0217-fix-kernel-scoket-select-path-error.patch rename to 0212-fix-kernel-scoket-select-path-error.patch diff --git a/0218-discard-wakeup_num-parameter.patch b/0213-discard-wakeup_num-parameter.patch similarity index 100% rename from 0218-discard-wakeup_num-parameter.patch rename to 0213-discard-wakeup_num-parameter.patch diff --git a/0219-fix-parse-args-error.patch b/0214-fix-parse-args-error.patch similarity index 100% rename from 0219-fix-parse-args-error.patch rename to 0214-fix-parse-args-error.patch diff --git a/0220-gazelle-send-recv-thread-bind-numa.patch b/0215-gazelle-send-recv-thread-bind-numa.patch similarity index 100% rename from 0220-gazelle-send-recv-thread-bind-numa.patch rename to 0215-gazelle-send-recv-thread-bind-numa.patch diff --git a/0221-waiting-when-primary-process-not-start-already.patch b/0216-waiting-when-primary-process-not-start-already.patch similarity index 100% rename from 0221-waiting-when-primary-process-not-start-already.patch rename to 0216-waiting-when-primary-process-not-start-already.patch diff --git a/0224-sepeate_string_to-array-add-error-args-handle.patch b/0217-sepeate_string_to-array-add-error-args-handle.patch similarity index 99% rename from 0224-sepeate_string_to-array-add-error-args-handle.patch rename to 0217-sepeate_string_to-array-add-error-args-handle.patch index 9b214c3..1150d95 100644 --- a/0224-sepeate_string_to-array-add-error-args-handle.patch +++ b/0217-sepeate_string_to-array-add-error-args-handle.patch @@ -239,5 +239,5 @@ index 1b9d82b..7cf3423 100644 free(port_str); gazelle_set_errno(GAZELLE_ERANGE); -- -2.33.0 +2.23.0 diff --git a/0222-do-not-transfer-broadcast-arp-pkts-to-other-process.patch b/0218-do-not-transfer-broadcast-arp-pkts-to-other-process.patch similarity index 99% rename from 0222-do-not-transfer-broadcast-arp-pkts-to-other-process.patch rename to 0218-do-not-transfer-broadcast-arp-pkts-to-other-process.patch index cfbd8a9..854dbe4 100644 --- a/0222-do-not-transfer-broadcast-arp-pkts-to-other-process.patch +++ b/0218-do-not-transfer-broadcast-arp-pkts-to-other-process.patch @@ -21,5 +21,5 @@ index 532f006..b35852b 100644 transfer_arp_to_other_process(stack->pkts[i]); transfer_type = TRANSFER_KERNEL; -- -2.33.0 +2.23.0 diff --git a/0223-revert-select_thread_path-and-optimize-app-thread-wh.patch b/0219-revert-select_thread_path-and-optimize-app-thread-wh.patch similarity index 99% rename from 0223-revert-select_thread_path-and-optimize-app-thread-wh.patch rename to 0219-revert-select_thread_path-and-optimize-app-thread-wh.patch index 82a46ab..1cfcb90 100644 --- a/0223-revert-select_thread_path-and-optimize-app-thread-wh.patch +++ b/0219-revert-select_thread_path-and-optimize-app-thread-wh.patch @@ -200,5 +200,5 @@ index 7355d7b..b4a08ea 100644 } sock->already_bind_numa = 1; -- -2.33.0 +2.23.0 diff --git a/0225-check-primary-process-idx-and-secondary-lstack-num.patch b/0220-check-primary-process-idx-and-secondary-lstack-num.patch similarity index 99% rename from 0225-check-primary-process-idx-and-secondary-lstack-num.patch rename to 0220-check-primary-process-idx-and-secondary-lstack-num.patch index e88d556..3615843 100644 --- a/0225-check-primary-process-idx-and-secondary-lstack-num.patch +++ b/0220-check-primary-process-idx-and-secondary-lstack-num.patch @@ -467,5 +467,5 @@ index 331a23c..9180e89 100644 } -- -2.33.0 +2.23.0 diff --git a/0226-optimite-select_path-and-pbuf_take.patch b/0221-optimite-select_path-and-pbuf_take.patch similarity index 99% rename from 0226-optimite-select_path-and-pbuf_take.patch rename to 0221-optimite-select_path-and-pbuf_take.patch index 8872193..a460176 100644 --- a/0226-optimite-select_path-and-pbuf_take.patch +++ b/0221-optimite-select_path-and-pbuf_take.patch @@ -318,5 +318,5 @@ index d52a06d..0b29e71 100644 ssize_t gazelle_send(int32_t fd, const void *buf, size_t len, int32_t flags); void rpc_replenish(struct rpc_msg *msg); -- -2.33.0 +2.23.0 diff --git a/0227-fix-build-err-on-select_path.patch b/0222-fix-build-err-on-select_path.patch similarity index 100% rename from 0227-fix-build-err-on-select_path.patch rename to 0222-fix-build-err-on-select_path.patch diff --git a/0228-set-kni_switch-valid-only-in-primary-process.patch b/0223-set-kni_switch-valid-only-in-primary-process.patch similarity index 100% rename from 0228-set-kni_switch-valid-only-in-primary-process.patch rename to 0223-set-kni_switch-valid-only-in-primary-process.patch diff --git a/0230-optimize-do_close.patch b/0224-optimize-do_close.patch similarity index 100% rename from 0230-optimize-do_close.patch rename to 0224-optimize-do_close.patch diff --git a/0229-add-socket-check-before-write-it.patch b/0225-add-socket-check-before-write-it.patch similarity index 100% rename from 0229-add-socket-check-before-write-it.patch rename to 0225-add-socket-check-before-write-it.patch diff --git a/0232-update-lstack.Makefile.patch b/0226-update-lstack.Makefile.patch similarity index 100% rename from 0232-update-lstack.Makefile.patch rename to 0226-update-lstack.Makefile.patch diff --git a/0231-fix-config-flow-rule-race.patch b/0227-fix-config-flow-rule-race.patch similarity index 100% rename from 0231-fix-config-flow-rule-race.patch rename to 0227-fix-config-flow-rule-race.patch diff --git a/0228-fix-build-err-with-dpdk-21.11.patch b/0228-fix-build-err-with-dpdk-21.11.patch new file mode 100644 index 0000000..2a97524 --- /dev/null +++ b/0228-fix-build-err-with-dpdk-21.11.patch @@ -0,0 +1,25 @@ +From 9a14d507fbad2f7f6875abf2d9cd45031f86d523 Mon Sep 17 00:00:00 2001 +From: kircher +Date: Thu, 30 Mar 2023 20:43:43 +0800 +Subject: [PATCH] fix build err with dpdk-21.11 + +--- + src/lstack/netif/lstack_ethdev.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/lstack/netif/lstack_ethdev.c b/src/lstack/netif/lstack_ethdev.c +index 52aa9a8..e26fe30 100644 +--- a/src/lstack/netif/lstack_ethdev.c ++++ b/src/lstack/netif/lstack_ethdev.c +@@ -761,7 +761,7 @@ int32_t gazelle_eth_dev_poll(struct protocol_stack *stack, uint8_t use_ltran_fla + struct rte_ether_hdr *ethh = rte_pktmbuf_mtod(stack->pkts[i], struct rte_ether_hdr *); + if (unlikely(RTE_BE16(RTE_ETHER_TYPE_ARP) == ethh->ether_type)) { + stack_broadcast_arp(stack->pkts[i], stack); +- if (!use_ltran_flag && !rte_is_broadcast_ether_addr(ðh->d_addr)) { ++ if (!use_ltran_flag && !rte_is_broadcast_ether_addr(ðh->dst_addr)) { + // copy arp into other process + transfer_arp_to_other_process(stack->pkts[i]); + transfer_type = TRANSFER_KERNEL; +-- +2.23.0 + diff --git a/0233-fix-gazellectl-x-error-when-multiplt-user-nic-config.patch b/0229-fix-gazellectl-x-error-when-multiplt-user-nic-config.patch similarity index 99% rename from 0233-fix-gazellectl-x-error-when-multiplt-user-nic-config.patch rename to 0229-fix-gazellectl-x-error-when-multiplt-user-nic-config.patch index 3f7ca6e..74c1313 100644 --- a/0233-fix-gazellectl-x-error-when-multiplt-user-nic-config.patch +++ b/0229-fix-gazellectl-x-error-when-multiplt-user-nic-config.patch @@ -64,5 +64,5 @@ index 9180e89..761bbb7 100644 if (xstats->len <= 0 || xstats->len > RTE_ETH_XSTATS_MAX_LEN) { printf("xstats item(%d) num error!\n", xstats->len); -- -2.23.0 +2.33.0 diff --git a/0234-fix-client-connect-number-unbalance-on-lstack.patch b/0230-fix-client-connect-number-unbalance-on-lstack.patch similarity index 99% rename from 0234-fix-client-connect-number-unbalance-on-lstack.patch rename to 0230-fix-client-connect-number-unbalance-on-lstack.patch index 94b6c04..e22e7e8 100644 --- a/0234-fix-client-connect-number-unbalance-on-lstack.patch +++ b/0230-fix-client-connect-number-unbalance-on-lstack.patch @@ -89,5 +89,5 @@ index 001ab47..c75161f 100644 long get_stack_tid(void); -- -2.23.0 +2.33.0 diff --git a/0236-kni-down-not-stop-nic.patch b/0231-kni-down-not-stop-nic.patch similarity index 99% rename from 0236-kni-down-not-stop-nic.patch rename to 0231-kni-down-not-stop-nic.patch index fad4bcb..21d8103 100644 --- a/0236-kni-down-not-stop-nic.patch +++ b/0231-kni-down-not-stop-nic.patch @@ -214,5 +214,5 @@ index 8629acb..b41e1e2 100644 } -- -2.23.0 +2.33.0 diff --git a/0237-fix-rpc-msg-alloc-failed.patch b/0232-fix-rpc-msg-alloc-failed.patch similarity index 99% rename from 0237-fix-rpc-msg-alloc-failed.patch rename to 0232-fix-rpc-msg-alloc-failed.patch index 754e528..f4c3855 100644 --- a/0237-fix-rpc-msg-alloc-failed.patch +++ b/0232-fix-rpc-msg-alloc-failed.patch @@ -75,5 +75,5 @@ index ed111fb..657ffa9 100644 struct rpc_msg; -- -2.23.0 +2.33.0 diff --git a/0238-add-parentheses-to-fix-build-error.patch b/0233-add-parentheses-to-fix-build-error.patch similarity index 99% rename from 0238-add-parentheses-to-fix-build-error.patch rename to 0233-add-parentheses-to-fix-build-error.patch index d1cc64b..7e54f36 100644 --- a/0238-add-parentheses-to-fix-build-error.patch +++ b/0233-add-parentheses-to-fix-build-error.patch @@ -23,5 +23,5 @@ index 9430dd7..394cb13 100644 } } -- -2.23.0 +2.33.0 diff --git a/0240-fix-bond_ports-parse-error.patch b/0234-fix-bond_ports-parse-error.patch similarity index 99% rename from 0240-fix-bond_ports-parse-error.patch rename to 0234-fix-bond_ports-parse-error.patch index 162536c..34fb362 100644 --- a/0240-fix-bond_ports-parse-error.patch +++ b/0234-fix-bond_ports-parse-error.patch @@ -442,5 +442,5 @@ index 7cf3423..1eb4f48 100644 return GAZELLE_OK; -- -2.23.0 +2.33.0 diff --git a/0241-dfx-set-g_unix_fd-to-1-after-abnormal-close-fd-to-av.patch b/0235-dfx-set-g_unix_fd-to-1-after-abnormal-close-fd-to-av.patch similarity index 100% rename from 0241-dfx-set-g_unix_fd-to-1-after-abnormal-close-fd-to-av.patch rename to 0235-dfx-set-g_unix_fd-to-1-after-abnormal-close-fd-to-av.patch diff --git a/0235-set-client-nonblock-to-fix-example-connect-error.patch b/0235-set-client-nonblock-to-fix-example-connect-error.patch deleted file mode 100644 index 2022139..0000000 --- a/0235-set-client-nonblock-to-fix-example-connect-error.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 81de059e410f6d1fc38e7caa380b13a0ea1fc9f1 Mon Sep 17 00:00:00 2001 -From: kircher -Date: Sat, 1 Apr 2023 17:30:07 +0800 -Subject: [PATCH] set client nonblock to fix example connect error - ---- - examples/src/client.c | 1 + - examples/src/utilities.c | 5 +++++ - 2 files changed, 6 insertions(+) - -diff --git a/examples/src/client.c b/examples/src/client.c -index 46dd039..a3a3ad0 100644 ---- a/examples/src/client.c -+++ b/examples/src/client.c -@@ -372,6 +372,7 @@ int32_t client_create_and_run(struct ProgramParams *params) - client_unit->epollcreate = params->epollcreate; - client_unit->debug = params->debug; - client_unit->next = (struct ClientUnit *)malloc(sizeof(struct ClientUnit)); -+ memset_s(client_unit->next, sizeof(struct ClientUnit), 0, sizeof(struct ClientUnit)); - - if (pthread_create((tids + i), NULL, client_s_create_and_run, client_unit) < 0) { - PRINT_ERROR("client can't create thread of poisx %d! ", errno); -diff --git a/examples/src/utilities.c b/examples/src/utilities.c -index 38a0d3e..877e611 100644 ---- a/examples/src/utilities.c -+++ b/examples/src/utilities.c -@@ -86,6 +86,11 @@ int32_t create_socket_and_connect(int32_t *socket_fd, in_addr_t ip, uint16_t por - return PROGRAM_FAULT; - } - -+ if (set_socket_unblock(*socket_fd) < 0) { -+ PRINT_ERROR("can't set the socket to unblock! "); -+ return PROGRAM_FAULT; -+ } -+ - struct sockaddr_in server_addr; - memset_s(&server_addr, sizeof(server_addr), 0, sizeof(server_addr)); - server_addr.sin_family = AF_INET; --- -2.23.0 - diff --git a/0242-dfx-security-function-failed-return-error-directly.patch b/0236-dfx-security-function-failed-return-error-directly.patch similarity index 100% rename from 0242-dfx-security-function-failed-return-error-directly.patch rename to 0236-dfx-security-function-failed-return-error-directly.patch diff --git a/0243-add-bond4-suport.patch b/0237-add-bond4-suport.patch similarity index 94% rename from 0243-add-bond4-suport.patch rename to 0237-add-bond4-suport.patch index 60ef541..4a50ea5 100644 --- a/0243-add-bond4-suport.patch +++ b/0237-add-bond4-suport.patch @@ -1,4 +1,4 @@ -From: 97e31b514dde519ac5b83a3b7519c98d9805d746 Mon Sep 17 00:00:00 2001 +From 97e31b514dde519ac5b83a3b7519c98d9805d746 Mon Sep 17 00:00:00 2001 From: compile_success <980965867@qq.com> Date: Fri, 5 May 2023 11:18:59 +0000 Subject: [PATCH] add bond4 suport @@ -12,16 +12,16 @@ Subject: [PATCH] add bond4 suport 5 files changed, 143 insertions(+), 10 deletions(-) diff --git a/src/lstack/Makefile b/src/lstack/Makefile -index d475961..a79b963 100644 +index 9fb1f4c..ab039ec 100644 --- a/src/lstack/Makefile +++ b/src/lstack/Makefile -@@ -83,7 +83,8 @@ LIBRTE_LIB = $(DPDK_LIB_PATH)/librte_pci.so \ - $(DPDK_LIB_PATH)/librte_net.so \ - $(DPDK_LIB_PATH)/librte_ethdev.so \ - $(DPDK_LIB_PATH)/librte_pdump.so \ -- $(DPDK_LIB_PATH)/librte_pmd_pcap.so -+ $(DPDK_LIB_PATH)/librte_pmd_pcap.so \ -+ $(DPDK_LIB_PATH)/librte_pmd_bond.so +@@ -85,7 +85,8 @@ LIBRTE_LIB = $(LIB_PATH)/librte_bus_pci.so \ + $(LIB_PATH)/librte_pcapng.so \ + $(LIB_PATH)/librte_security.so \ + $(LIB_PATH)/librte_cryptodev.so \ +- $(LIB_PATH)/librte_net_pcap.so ++ $(LIB_PATH)/librte_net_pcap.so \ ++ $(LIB_PATH)/librte_net_bond.so DEP_LIBS = $(LWIP_LIB) $(LIBRTE_LIB) diff --git a/0244-clean-code.patch b/0238-clean-code.patch similarity index 97% rename from 0244-clean-code.patch rename to 0238-clean-code.patch index b441224..d85dbe7 100644 --- a/0244-clean-code.patch +++ b/0238-clean-code.patch @@ -239,10 +239,10 @@ index 1b12822..98632c0 100644 static inline ssize_t do_recvmsg(int32_t s, struct msghdr *message, int32_t flags) diff --git a/src/lstack/core/lstack_cfg.c b/src/lstack/core/lstack_cfg.c -index c4919d3..a21992e 100644 +index cdb0200..db35110 100644 --- a/src/lstack/core/lstack_cfg.c +++ b/src/lstack/core/lstack_cfg.c -@@ -77,19 +77,19 @@ static int32_t parse_bond4_slave_mac(void); +@@ -75,19 +75,19 @@ static int32_t parse_tuple_filter(void); const config_setting_t *_config_arg = NULL; \ _config_arg = config_lookup(&g_config, _arg_string); \ if (_config_arg == NULL) { \ @@ -269,7 +269,7 @@ index c4919d3..a21992e 100644 } while (0) struct config_vector_t { -@@ -346,7 +346,8 @@ static int32_t parse_stack_cpu_number(void) +@@ -342,7 +342,8 @@ static int32_t parse_stack_cpu_number(void) } char *tmp_arg_send = strdup(args); @@ -279,7 +279,7 @@ index c4919d3..a21992e 100644 free(tmp_arg_send); // recv_num_cpus -@@ -372,7 +373,8 @@ static int32_t parse_stack_cpu_number(void) +@@ -368,7 +369,8 @@ static int32_t parse_stack_cpu_number(void) } char *tmp_arg_recv = strdup(args); @@ -289,7 +289,7 @@ index c4919d3..a21992e 100644 free(tmp_arg_recv); if (send_cpu_cnt <= 0 || send_cpu_cnt > CFG_MAX_CPUS / 2 || send_cpu_cnt != recv_cpu_cnt) { -@@ -448,7 +450,7 @@ int32_t init_stack_numa_cpuset(struct protocol_stack *stack) +@@ -444,7 +446,7 @@ int32_t init_stack_numa_cpuset(struct protocol_stack *stack) for (int32_t idx = 0; idx < cfg->num_cpu; ++idx) { if (!cfg->seperate_send_recv) { CPU_SET(cfg->cpus[idx], &stack_cpuset); @@ -298,7 +298,7 @@ index c4919d3..a21992e 100644 CPU_SET(cfg->send_cpus[idx], &stack_cpuset); CPU_SET(cfg->recv_cpus[idx], &stack_cpuset); } -@@ -498,7 +500,6 @@ static int32_t gazelle_parse_socket_mem(const char *arg, struct secondary_attach +@@ -494,7 +496,6 @@ static int32_t gazelle_parse_socket_mem(const char *arg, struct secondary_attach int32_t count = separate_str_to_array(socket_mem, sec_attach_arg->socket_per_size, GAZELLE_MAX_NUMA_NODES, INT32_MAX); @@ -306,7 +306,7 @@ index c4919d3..a21992e 100644 if (count < 0) { return -1; } -@@ -730,7 +731,7 @@ static int32_t parse_dpdk_args(void) +@@ -726,7 +727,7 @@ static int32_t parse_dpdk_args(void) g_config_params.dpdk_argv[start_index + i] = p; const char *primary = "primary"; @@ -315,7 +315,7 @@ index c4919d3..a21992e 100644 struct cfg_params *global_params = get_global_cfg_params(); global_params->is_primary = 1; } -@@ -941,10 +942,8 @@ static int32_t parse_unix_prefix(void) +@@ -937,10 +938,8 @@ static int32_t parse_unix_prefix(void) } unix_prefix = config_lookup(&g_config, "unix_prefix"); @@ -326,7 +326,7 @@ index c4919d3..a21992e 100644 if (filename_check(args)) { return -EINVAL; } -@@ -983,7 +982,7 @@ static int32_t parse_num_process(void) +@@ -979,7 +978,7 @@ static int32_t parse_num_process(void) num_process = config_lookup(&g_config, "num_process"); if (num_process == NULL) { g_config_params.num_process = 1; @@ -335,7 +335,7 @@ index c4919d3..a21992e 100644 g_config_params.num_process = (uint8_t)config_setting_get_int(num_process); } -@@ -1026,7 +1025,7 @@ static int parse_process_index(void) +@@ -1022,7 +1021,7 @@ static int parse_process_index(void) if (process_idx == NULL) { if (g_config_params.num_process == 1) { g_config_params.process_idx = 0; @@ -369,10 +369,10 @@ index e705cae..be156dc 100644 LSTACK_LOG(ERR, LSTACK, "delete %s failed\n", GAZELLE_PRIMARY_START_PATH); } diff --git a/src/lstack/core/lstack_dpdk.c b/src/lstack/core/lstack_dpdk.c -index 297dd7b..b321c18 100644 +index e386dfc..79d13ee 100644 --- a/src/lstack/core/lstack_dpdk.c +++ b/src/lstack/core/lstack_dpdk.c -@@ -41,12 +41,12 @@ +@@ -38,12 +38,12 @@ #include "lstack_log.h" #include "dpdk_common.h" @@ -386,7 +386,7 @@ index 297dd7b..b321c18 100644 struct eth_params { uint16_t port_id; -@@ -119,7 +119,7 @@ int32_t dpdk_eal_init(void) +@@ -116,7 +116,7 @@ int32_t dpdk_eal_init(void) ret = 0; } else { LSTACK_PRE_LOG(LSTACK_ERR, "rte_eal_init failed init, rte_errno %d\n", rte_errno); @@ -395,7 +395,7 @@ index 297dd7b..b321c18 100644 } } else { LSTACK_PRE_LOG(LSTACK_INFO, "dpdk_eal_init success\n"); -@@ -158,7 +158,8 @@ struct rte_mempool *create_pktmbuf_mempool(const char *name, uint32_t nb_mbuf, +@@ -155,7 +155,8 @@ struct rte_mempool *create_pktmbuf_mempool(const char *name, uint32_t nb_mbuf, return pool; } @@ -405,7 +405,7 @@ index 297dd7b..b321c18 100644 int32_t ret; char pool_name[PATH_MAX]; struct rte_mempool *pool; -@@ -172,9 +173,7 @@ static struct rte_mempool* get_pktmbuf_mempool(const char *name, uint16_t queue_ +@@ -169,9 +170,7 @@ static struct rte_mempool* get_pktmbuf_mempool(const char *name, uint16_t queue_ LSTACK_LOG(ERR, LSTACK, "look up %s pool rte_err=%d\n", pool_name, rte_errno); } @@ -415,7 +415,7 @@ index 297dd7b..b321c18 100644 } static struct reg_ring_msg *create_reg_mempool(const char *name, uint16_t queue_id) -@@ -223,7 +222,8 @@ struct rte_ring *create_ring(const char *name, uint32_t count, uint32_t flags, i +@@ -220,7 +219,8 @@ struct rte_ring *create_ring(const char *name, uint32_t count, uint32_t flags, i char ring_name[RTE_RING_NAMESIZE] = {0}; struct rte_ring *ring; @@ -425,7 +425,7 @@ index 297dd7b..b321c18 100644 if (ret < 0) { return NULL; } -@@ -556,10 +556,10 @@ static int32_t dpdk_ethdev_setup(const struct eth_params *eth_params, uint16_t i +@@ -521,10 +521,10 @@ static int32_t dpdk_ethdev_setup(const struct eth_params *eth_params, uint16_t i struct rte_mempool *rxtx_pktmbuf_pool = get_protocol_stack_group()->total_rxtx_pktmbuf_pool[idx]; uint16_t socket_id = 0; @@ -438,7 +438,7 @@ index 297dd7b..b321c18 100644 socket_id = cfg->process_numa[idx]; } ret = rte_eth_rx_queue_setup(eth_params->port_id, idx, eth_params->nb_rx_desc, socket_id, -@@ -607,8 +607,6 @@ int32_t dpdk_ethdev_start(void) +@@ -568,8 +568,6 @@ int32_t dpdk_ethdev_start(void) int32_t dpdk_init_lstack_kni(void) { struct protocol_stack_group *stack_group = get_protocol_stack_group(); @@ -447,7 +447,7 @@ index 297dd7b..b321c18 100644 stack_group->kni_pktmbuf_pool = create_pktmbuf_mempool("kni_mbuf", KNI_NB_MBUF, 0, 0); if (stack_group->kni_pktmbuf_pool == NULL) { return -1; -@@ -725,7 +723,8 @@ void dpdk_nic_xstats_get(struct gazelle_stack_dfx_data *dfx, uint16_t port_id) +@@ -651,7 +649,8 @@ void dpdk_nic_xstats_get(struct gazelle_stack_dfx_data *dfx, uint16_t port_id) if (len < 0) { return; } @@ -644,7 +644,7 @@ index f17e4d2..4fbbc14 100644 /* wait stack thread and kernel_event thread init finish */ diff --git a/src/lstack/core/lstack_lwip.c b/src/lstack/core/lstack_lwip.c -index f992e67..ed89054 100644 +index 0535428..b6c5813 100644 --- a/src/lstack/core/lstack_lwip.c +++ b/src/lstack/core/lstack_lwip.c @@ -33,8 +33,8 @@ @@ -695,16 +695,16 @@ index f992e67..ed89054 100644 struct pbuf **pbufs = (struct pbuf **)malloc(write_num * sizeof(struct pbuf *)); if (pbufs == NULL) { return 0; -@@ -468,7 +474,7 @@ static inline struct pbuf *gazelle_ring_readlast(struct rte_ring *r) - - DEQUEUE_PTRS(r, &r[1], last, ((void **)&last_pbuf), 1, void *); +@@ -469,7 +475,7 @@ static inline struct pbuf *gazelle_ring_readlast(struct rte_ring *r) + __rte_ring_dequeue_elems(r, last, (void **)&last_pbuf, sizeof(void *), 1); + if (pthread_spin_trylock(&last_pbuf->pbuf_lock) != 0) { - return NULL; + return NULL; } if (last_pbuf->allow_in != 1) { pthread_spin_unlock(&last_pbuf->pbuf_lock); -@@ -586,7 +592,8 @@ ssize_t write_stack_data(struct lwip_sock *sock, const void *buf, size_t len) +@@ -587,7 +593,8 @@ ssize_t write_stack_data(struct lwip_sock *sock, const void *buf, size_t len) /* send_ring have idle */ if (get_global_cfg_params()->expand_send_ring) { @@ -714,7 +714,7 @@ index f992e67..ed89054 100644 app_direct_write(stack, sock, (char *)buf + send_len, len - send_len, write_num); } else { if (write_num > write_avail) { -@@ -661,7 +668,7 @@ void stack_send(struct rpc_msg *msg) +@@ -662,7 +669,7 @@ void stack_send(struct rpc_msg *msg) rpc_msg_free(msg); return; } else { @@ -723,7 +723,7 @@ index f992e67..ed89054 100644 rpc_call(&stack->rpc_queue, msg); __sync_fetch_and_add(&sock->call_num, 1); } else { -@@ -740,7 +747,7 @@ ssize_t read_lwip_data(struct lwip_sock *sock, int32_t flags, u8_t apiflags) +@@ -741,7 +748,7 @@ ssize_t read_lwip_data(struct lwip_sock *sock, int32_t flags, u8_t apiflags) sock->stack->stats.read_lwip_cnt += read_count; if (recv_len == 0) { @@ -732,7 +732,7 @@ index f992e67..ed89054 100644 } return recv_len; } -@@ -796,11 +803,10 @@ ssize_t recvmsg_from_stack(int32_t s, struct msghdr *message, int32_t flags) +@@ -797,11 +804,10 @@ ssize_t recvmsg_from_stack(int32_t s, struct msghdr *message, int32_t flags) static inline void notice_stack_send(struct lwip_sock *sock, int32_t fd, int32_t len, int32_t flags) { @@ -747,7 +747,7 @@ index f992e67..ed89054 100644 LSTACK_LOG(INFO, LSTACK, "rpc_call_send failed, try again\n"); } __sync_fetch_and_add(&sock->call_num, 1); -@@ -837,10 +843,8 @@ ssize_t gazelle_same_node_ring_recv(struct lwip_sock *sock, const void *buf, siz +@@ -838,10 +844,8 @@ ssize_t gazelle_same_node_ring_recv(struct lwip_sock *sock, const void *buf, siz act_len = -1; goto END; } @@ -758,7 +758,7 @@ index f992e67..ed89054 100644 if ((index & SAME_NODE_RING_MASK) + act_len > SAME_NODE_RING_LEN) { size_t act_len1 = SAME_NODE_RING_LEN - (index & SAME_NODE_RING_MASK); size_t act_len2 = act_len - act_len1; -@@ -897,7 +901,8 @@ ssize_t gazelle_same_node_ring_send(struct lwip_sock *sock, const void *buf, siz +@@ -898,7 +902,8 @@ ssize_t gazelle_same_node_ring_send(struct lwip_sock *sock, const void *buf, siz PER_THREAD uint16_t stack_sock_num[GAZELLE_MAX_STACK_NUM] = {0}; PER_THREAD uint16_t max_sock_stack = 0; @@ -768,7 +768,7 @@ index f992e67..ed89054 100644 if (likely(sock->already_bind_numa || !sock->stack)) { return; } -@@ -905,7 +910,7 @@ static inline void thread_bind_stack(struct lwip_sock *sock) { +@@ -906,7 +911,7 @@ static inline void thread_bind_stack(struct lwip_sock *sock) { stack_sock_num[sock->stack->stack_idx]++; if (stack_sock_num[sock->stack->stack_idx] > max_sock_stack) { max_sock_stack = stack_sock_num[sock->stack->stack_idx]; @@ -777,7 +777,7 @@ index f992e67..ed89054 100644 } } -@@ -959,7 +964,7 @@ ssize_t sendmsg_to_stack(struct lwip_sock *sock, int32_t s, const struct msghdr +@@ -960,7 +965,7 @@ ssize_t sendmsg_to_stack(struct lwip_sock *sock, int32_t s, const struct msghdr buflen += ret; if (ret < message->msg_iov[i].iov_len) { @@ -786,7 +786,7 @@ index f992e67..ed89054 100644 } } -@@ -1103,7 +1108,6 @@ void read_recv_list(struct protocol_stack *stack, uint32_t max_num) +@@ -1104,7 +1109,6 @@ void read_recv_list(struct protocol_stack *stack, uint32_t max_num) ssize_t len = lwip_recv(sock->conn->socket, NULL, 0, 0); if (len == 0) { @@ -794,7 +794,7 @@ index f992e67..ed89054 100644 sock->errevent = 1; add_sock_event(sock, EPOLLERR); } else if (len > 0) { -@@ -1124,7 +1128,7 @@ void gazelle_connected_callback(struct netconn *conn) +@@ -1125,7 +1129,7 @@ void gazelle_connected_callback(struct netconn *conn) return; } @@ -803,7 +803,7 @@ index f992e67..ed89054 100644 posix_api->epoll_ctl_fn(sock->wakeup->epollfd, EPOLL_CTL_DEL, fd, NULL); } -@@ -1185,7 +1189,7 @@ static inline void clone_lwip_socket_opt(struct lwip_sock *dst_sock, struct lwip +@@ -1186,7 +1190,7 @@ static inline void clone_lwip_socket_opt(struct lwip_sock *dst_sock, struct lwip int32_t gazelle_socket(int domain, int type, int protocol) { @@ -812,7 +812,7 @@ index f992e67..ed89054 100644 LSTACK_LOG(ERR, LSTACK, "sock type error:%d, only support SOCK_STREAM \n", type); return -1; } -@@ -1336,125 +1340,125 @@ void stack_recvlist_count(struct rpc_msg *msg) +@@ -1337,125 +1341,125 @@ void stack_recvlist_count(struct rpc_msg *msg) void netif_poll(struct netif *netif) { @@ -1038,7 +1038,7 @@ index f992e67..ed89054 100644 } err_t same_node_memzone_create(const struct rte_memzone **zone, int size, int port, char *name, char *rx) -@@ -1468,7 +1472,8 @@ err_t same_node_memzone_create(const struct rte_memzone **zone, int size, int po +@@ -1469,7 +1473,8 @@ err_t same_node_memzone_create(const struct rte_memzone **zone, int size, int po return ERR_MEM; } @@ -1048,7 +1048,7 @@ index f992e67..ed89054 100644 return ERR_OK; } -@@ -1495,16 +1500,16 @@ err_t same_node_ring_create(struct rte_ring **ring, int size, int port, char *na +@@ -1496,16 +1501,16 @@ err_t same_node_ring_create(struct rte_ring **ring, int size, int port, char *na static void init_same_node_ring(struct tcp_pcb *pcb) { @@ -1075,7 +1075,7 @@ index f992e67..ed89054 100644 } #define CLIENT_RING_SIZE 512 -@@ -1521,24 +1526,28 @@ err_t create_same_node_ring(struct tcp_pcb *pcb) +@@ -1522,24 +1527,28 @@ err_t create_same_node_ring(struct tcp_pcb *pcb) } pcb->free_ring = 1; @@ -1108,7 +1108,7 @@ index f992e67..ed89054 100644 goto END; } -@@ -1559,20 +1568,21 @@ END: +@@ -1560,20 +1569,21 @@ END: err_t find_same_node_ring(struct tcp_pcb *npcb) { @@ -1349,7 +1349,7 @@ index d1c749a..60832b4 100644 LSTACK_LOG(ERR, LSTACK, "memcpy_s err ret=%d \n", ret); } diff --git a/src/lstack/include/lstack_dpdk.h b/src/lstack/include/lstack_dpdk.h -index 1047c44..a189557 100644 +index a896903..a1262a5 100644 --- a/src/lstack/include/lstack_dpdk.h +++ b/src/lstack/include/lstack_dpdk.h @@ -53,7 +53,8 @@ int32_t dpdk_init_lstack_kni(void); @@ -1433,7 +1433,7 @@ index 540a31a..007eec7 100644 void init_listen_and_user_ports(); diff --git a/src/lstack/netif/lstack_ethdev.c b/src/lstack/netif/lstack_ethdev.c -index 5d7477f..7514e58 100644 +index 0a91f79..2bae2f1 100644 --- a/src/lstack/netif/lstack_ethdev.c +++ b/src/lstack/netif/lstack_ethdev.c @@ -21,7 +21,7 @@ @@ -2097,10 +2097,10 @@ index aef6035..5ea1f31 100644 } return 0; diff --git a/src/ltran/ltran_dfx.c b/src/ltran/ltran_dfx.c -index b1ef967..37d05c8 100644 +index 944675e..e41c6db 100644 --- a/src/ltran/ltran_dfx.c +++ b/src/ltran/ltran_dfx.c -@@ -139,19 +139,17 @@ static void gazelle_print_lstack_xstats(void *buf, const struct gazelle_stat_msg +@@ -138,19 +138,17 @@ static void gazelle_print_lstack_xstats(void *buf, const struct gazelle_stat_msg static const char *nic_stats_border = "########################"; printf("###### NIC extended statistics for port %-2d #########\n", xstats->port_id); @@ -2123,7 +2123,7 @@ index b1ef967..37d05c8 100644 } static void gazelle_print_ltran_conn(void *buf, const struct gazelle_stat_msg_request *req_msg) -@@ -1111,7 +1109,7 @@ static void gazelle_print_lstack_aggregate(void *buf, const struct gazelle_stat_ +@@ -1110,7 +1108,7 @@ static void gazelle_print_lstack_aggregate(void *buf, const struct gazelle_stat_ break; } ret = dfx_stat_read_from_ltran(buf, sizeof(struct gazelle_stack_dfx_data), req_msg->stat_mode); @@ -2147,12 +2147,12 @@ index bd047fc..d163a47 100644 #define GAZELLE_LISTEN_BACKLOG 5 diff --git a/src/ltran/ltran_param.c b/src/ltran/ltran_param.c -index 2bafec8..1b14186 100644 +index 1eb4f48..e16e648 100644 --- a/src/ltran/ltran_param.c +++ b/src/ltran/ltran_param.c -@@ -21,12 +21,12 @@ +@@ -20,12 +20,12 @@ + #include #include - #include -#include "ltran_param.h" #include "ltran_errno.h" @@ -2165,10 +2165,10 @@ index 2bafec8..1b14186 100644 #define HEX_BASE 16 diff --git a/src/ltran/main.c b/src/ltran/main.c -index 997e44d..f2fd94f 100644 +index 03b3ad5..87f1e14 100644 --- a/src/ltran/main.c +++ b/src/ltran/main.c -@@ -62,11 +62,11 @@ static void sig_default_handler(int32_t sig) +@@ -61,11 +61,11 @@ static void sig_default_handler(int32_t sig) int ret = 0; ret = unlink(get_ltran_config()->unix_socket_filename); if (ret) { diff --git a/0245-add-udp-multicast-support-in-gazelle.patch b/0239-add-udp-multicast-support-in-gazelle.patch similarity index 94% rename from 0245-add-udp-multicast-support-in-gazelle.patch rename to 0239-add-udp-multicast-support-in-gazelle.patch index 0b8f834..07a46a1 100644 --- a/0245-add-udp-multicast-support-in-gazelle.patch +++ b/0239-add-udp-multicast-support-in-gazelle.patch @@ -159,7 +159,7 @@ index 98632c0..505e33d 100644 { return do_close(s); diff --git a/src/lstack/core/lstack_lwip.c b/src/lstack/core/lstack_lwip.c -index ed89054..c748b37 100644 +index b6c5813..12c2aa6 100644 --- a/src/lstack/core/lstack_lwip.c +++ b/src/lstack/core/lstack_lwip.c @@ -14,11 +14,13 @@ @@ -210,7 +210,7 @@ index ed89054..c748b37 100644 gazelle_ring_read_over(sock->send_ring); sock->remain_len = MBUF_MAX_DATA_LEN - pbufs[write_num - 1]->len; -@@ -535,7 +548,8 @@ int sem_timedwait_nsecs(sem_t *sem) +@@ -536,7 +549,8 @@ int sem_timedwait_nsecs(sem_t *sem) return sem_timedwait(sem, &ts); } @@ -220,7 +220,7 @@ index ed89054..c748b37 100644 { if (sock->errevent > 0) { GAZELLE_RETURN(ENOTCONN); -@@ -580,6 +594,11 @@ ssize_t write_stack_data(struct lwip_sock *sock, const void *buf, size_t len) +@@ -581,6 +595,11 @@ ssize_t write_stack_data(struct lwip_sock *sock, const void *buf, size_t len) if (wakeup) { wakeup->stat.app_write_cnt += write_num; } @@ -232,7 +232,7 @@ index ed89054..c748b37 100644 } else { (void)rpc_call_replenish(stack, sock); if (wakeup) { -@@ -593,14 +612,14 @@ ssize_t write_stack_data(struct lwip_sock *sock, const void *buf, size_t len) +@@ -594,14 +613,14 @@ ssize_t write_stack_data(struct lwip_sock *sock, const void *buf, size_t len) /* send_ring have idle */ if (get_global_cfg_params()->expand_send_ring) { send_len += (write_num <= write_avail) ? @@ -249,7 +249,7 @@ index ed89054..c748b37 100644 } if (wakeup) { -@@ -640,10 +659,15 @@ void rpc_replenish(struct rpc_msg *msg) +@@ -641,10 +660,15 @@ void rpc_replenish(struct rpc_msg *msg) msg->result = replenish_send_ring(stack, sock); } @@ -267,7 +267,7 @@ index ed89054..c748b37 100644 return replenish_send_ring(stack, sock); } -@@ -651,6 +675,7 @@ static inline bool do_lwip_send(struct protocol_stack *stack, int32_t fd, struct +@@ -652,6 +676,7 @@ static inline bool do_lwip_send(struct protocol_stack *stack, int32_t fd, struct void stack_send(struct rpc_msg *msg) { int32_t fd = msg->args[MSG_ARG_0].i; @@ -275,7 +275,7 @@ index ed89054..c748b37 100644 struct protocol_stack *stack = (struct protocol_stack *)msg->args[MSG_ARG_3].p; bool replenish_again; -@@ -662,7 +687,7 @@ void stack_send(struct rpc_msg *msg) +@@ -663,7 +688,7 @@ void stack_send(struct rpc_msg *msg) return; } @@ -284,7 +284,7 @@ index ed89054..c748b37 100644 __sync_fetch_and_sub(&sock->call_num, 1); if (!NETCONN_IS_DATAOUT(sock) && !replenish_again) { rpc_msg_free(msg); -@@ -711,11 +736,21 @@ ssize_t read_lwip_data(struct lwip_sock *sock, int32_t flags, u8_t apiflags) +@@ -712,11 +737,21 @@ ssize_t read_lwip_data(struct lwip_sock *sock, int32_t flags, u8_t apiflags) uint32_t data_count = rte_ring_count(sock->conn->recvmbox->ring); uint32_t read_num = LWIP_MIN(free_count, data_count); struct pbuf *pbufs[SOCK_RECV_RING_SIZE]; @@ -307,7 +307,7 @@ index ed89054..c748b37 100644 if (err != ERR_OK) { if (recv_len > 0) { /* already received data, return that (this trusts in getting the same error from -@@ -734,10 +769,19 @@ ssize_t read_lwip_data(struct lwip_sock *sock, int32_t flags, u8_t apiflags) +@@ -735,10 +770,19 @@ ssize_t read_lwip_data(struct lwip_sock *sock, int32_t flags, u8_t apiflags) } uint32_t enqueue_num = gazelle_ring_sp_enqueue(sock->recv_ring, (void **)pbufs, read_count); @@ -330,7 +330,7 @@ index ed89054..c748b37 100644 sock->stack->stats.read_lwip_drop++; } -@@ -785,7 +829,8 @@ ssize_t recvmsg_from_stack(int32_t s, struct msghdr *message, int32_t flags) +@@ -786,7 +830,8 @@ ssize_t recvmsg_from_stack(int32_t s, struct msghdr *message, int32_t flags) continue; } @@ -340,7 +340,7 @@ index ed89054..c748b37 100644 if (recvd_local > 0) { buflen += recvd_local; } -@@ -914,7 +959,8 @@ static inline void thread_bind_stack(struct lwip_sock *sock) +@@ -915,7 +960,8 @@ static inline void thread_bind_stack(struct lwip_sock *sock) } } @@ -350,7 +350,7 @@ index ed89054..c748b37 100644 { if (buf == NULL) { GAZELLE_RETURN(EINVAL); -@@ -931,7 +977,7 @@ ssize_t gazelle_send(int32_t fd, const void *buf, size_t len, int32_t flags) +@@ -932,7 +978,7 @@ ssize_t gazelle_send(int32_t fd, const void *buf, size_t len, int32_t flags) if (sock->same_node_tx_ring != NULL) { return gazelle_same_node_ring_send(sock, buf, len, flags); } @@ -359,7 +359,7 @@ index ed89054..c748b37 100644 if (send <= 0) { return send; } -@@ -955,7 +1001,7 @@ ssize_t sendmsg_to_stack(struct lwip_sock *sock, int32_t s, const struct msghdr +@@ -956,7 +1002,7 @@ ssize_t sendmsg_to_stack(struct lwip_sock *sock, int32_t s, const struct msghdr continue; } @@ -368,7 +368,7 @@ index ed89054..c748b37 100644 if (ret <= 0) { buflen = (buflen == 0) ? ret : buflen; break; -@@ -994,7 +1040,7 @@ static struct pbuf *pbuf_free_partial(struct pbuf *pbuf, uint16_t free_len) +@@ -995,7 +1041,7 @@ static struct pbuf *pbuf_free_partial(struct pbuf *pbuf, uint16_t free_len) return pbuf; } @@ -377,7 +377,7 @@ index ed89054..c748b37 100644 { size_t recv_left = len; struct pbuf *pbuf = NULL; -@@ -1051,6 +1097,10 @@ ssize_t read_stack_data(int32_t fd, void *buf, size_t len, int32_t flags) +@@ -1052,6 +1098,10 @@ ssize_t read_stack_data(int32_t fd, void *buf, size_t len, int32_t flags) del_data_in_event(sock); } @@ -388,7 +388,7 @@ index ed89054..c748b37 100644 if (recvd == 0) { if (sock->wakeup) { sock->wakeup->stat.read_null++; -@@ -1106,7 +1156,12 @@ void read_recv_list(struct protocol_stack *stack, uint32_t max_num) +@@ -1107,7 +1157,12 @@ void read_recv_list(struct protocol_stack *stack, uint32_t max_num) continue; } @@ -402,7 +402,7 @@ index ed89054..c748b37 100644 if (len == 0) { sock->errevent = 1; add_sock_event(sock, EPOLLERR); -@@ -1189,11 +1244,6 @@ static inline void clone_lwip_socket_opt(struct lwip_sock *dst_sock, struct lwip +@@ -1190,11 +1245,6 @@ static inline void clone_lwip_socket_opt(struct lwip_sock *dst_sock, struct lwip int32_t gazelle_socket(int domain, int type, int protocol) { @@ -464,7 +464,7 @@ index 7da439d..768c5ba 100644 WRAP_LDFLAGS = $(patsubst %, $(WRAP_PREFIX)%, $(WRAP_API)) diff --git a/src/lstack/netif/lstack_ethdev.c b/src/lstack/netif/lstack_ethdev.c -index 7514e58..ebe7450 100644 +index 2bae2f1..e4e7ebd 100644 --- a/src/lstack/netif/lstack_ethdev.c +++ b/src/lstack/netif/lstack_ethdev.c @@ -842,6 +842,10 @@ static err_t eth_dev_output(struct netif *netif, struct pbuf *pbuf) @@ -476,7 +476,7 @@ index 7514e58..ebe7450 100644 + } + if (likely(first_mbuf->pkt_len > MBUF_MAX_LEN)) { - mbuf->ol_flags |= PKT_TX_TCP_SEG; + mbuf->ol_flags |= RTE_MBUF_F_TX_TCP_SEG; mbuf->tso_segsz = MBUF_MAX_DATA_LEN; @@ -873,7 +877,7 @@ static err_t eth_dev_init(struct netif *netif) diff --git a/0239-add-udp-protocol-support-in-example.patch b/0239-add-udp-protocol-support-in-example.patch deleted file mode 100644 index 5293307..0000000 --- a/0239-add-udp-protocol-support-in-example.patch +++ /dev/null @@ -1,624 +0,0 @@ -From ee26b3ee749cd7906d3f1cc928c3a5603e74d6e0 Mon Sep 17 00:00:00 2001 -From: kircher -Date: Fri, 7 Apr 2023 17:18:58 +0800 -Subject: [PATCH] add udp protocol support in example - ---- - examples/inc/bussiness.h | 2 +- - examples/inc/client.h | 4 +++- - examples/inc/parameter.h | 4 ++++ - examples/inc/server.h | 2 +- - examples/inc/utilities.h | 2 +- - examples/src/bussiness.c | 46 +++++++++++++++++++++++++++++++++------- - examples/src/client.c | 11 +++++----- - examples/src/parameter.c | 41 +++++++++++++++++++++++++++++------ - examples/src/server.c | 26 +++++++++++++++-------- - examples/src/utilities.c | 45 ++++++++++++++++++++++++++++++++------- - 10 files changed, 142 insertions(+), 41 deletions(-) - -diff --git a/examples/inc/bussiness.h b/examples/inc/bussiness.h -index f16d771..3abb448 100644 ---- a/examples/inc/bussiness.h -+++ b/examples/inc/bussiness.h -@@ -95,7 +95,7 @@ int32_t client_bussiness(char *out, const char *in, uint32_t size, bool verify, - * @param api the api - * @return the result - */ --int32_t server_ans(struct ServerHandler *server_handler, uint32_t pktlen, const char* api); -+int32_t server_ans(struct ServerHandler *server_handler, uint32_t pktlen, const char* api, const char* domain); - - /** - * @brief client asks server -diff --git a/examples/inc/client.h b/examples/inc/client.h -index ad824c7..fa506fb 100644 ---- a/examples/inc/client.h -+++ b/examples/inc/client.h -@@ -33,6 +33,7 @@ struct ClientUnit - uint64_t send_bytes; ///< total send bytes - in_addr_t ip; ///< server ip - uint16_t port; ///< server port -+ uint16_t sport; ///< client sport - uint32_t connect_num; ///< total connection number - uint32_t pktlen; ///< the length of peckage - bool verify; ///< if we verify or not -@@ -80,10 +81,11 @@ void client_info_print(struct Client *client); - * @param epoll_fd the epoll file descriptor - * @param ip ip address - * @param port port -+ * @param sport sport - * @param domain domain - * @return the result pointer - */ --int32_t client_thread_try_connect(struct ClientHandler *client_handler, int32_t epoll_fd, in_addr_t ip, uint16_t port, const char *api); -+int32_t client_thread_try_connect(struct ClientHandler *client_handler, int32_t epoll_fd, in_addr_t ip, uint16_t port, uint16_t sport, const char *api); - - /** - * @brief the single thread, client retry to connect to server, register to epoll -diff --git a/examples/inc/parameter.h b/examples/inc/parameter.h -index 0683822..4242d1a 100644 ---- a/examples/inc/parameter.h -+++ b/examples/inc/parameter.h -@@ -21,6 +21,7 @@ - #define PARAM_DEFAULT_AS ("server") ///< default type - #define PARAM_DEFAULT_IP ("127.0.0.1") ///< default IP - #define PARAM_DEFAULT_PORT (5050) ///< default port -+#define PARAM_DEFAULT_SPORT (0) ///< default sport - #define PARAM_DEFAULT_MODEL ("mum") ///< default model type - #define PARAM_DEFAULT_CONNECT_NUM (10) ///< default connection number - #define PARAM_DEFAULT_THREAD_NUM (8) ///< default thread number -@@ -41,6 +42,8 @@ enum { - PARAM_NUM_IP = 'i', - #define PARAM_NAME_PORT ("port") ///< name of parameter port - PARAM_NUM_PORT = 'p', -+#define PARAM_NAME_SPORT ("sport") ///< name of parameter sport -+ PARAM_NUM_SPORT = 's', - #define PARAM_NAME_MODEL ("model") ///< name of parameter model type - PARAM_NUM_MODEL = 'm', - #define PARAM_NAME_CONNECT_NUM ("connectnum") ///< name of parameter connection number -@@ -91,6 +94,7 @@ struct ProgramParams { - char* as; ///< as server or client - char* ip; ///< IP address - uint32_t port; ///< port -+ uint32_t sport; ///< sport - char* model; ///< model type - uint32_t thread_num; ///< the number of threads - uint32_t connect_num; ///< the connection number -diff --git a/examples/inc/server.h b/examples/inc/server.h -index 45ca895..7b175db 100644 ---- a/examples/inc/server.h -+++ b/examples/inc/server.h -@@ -142,7 +142,7 @@ int32_t sermud_listener_accept_connects(struct ServerMud *server_mud); - * @param worker_unit the server worker - * @return the result pointer - */ --int32_t sermud_worker_proc_epevs(struct ServerMudWorker *worker_unit); -+int32_t sermud_worker_proc_epevs(struct ServerMudWorker *worker_unit, const char* domain); - - /** - * @brief the listener thread, unblock, dissymmetric server processes the events -diff --git a/examples/inc/utilities.h b/examples/inc/utilities.h -index a083f57..9c22abe 100644 ---- a/examples/inc/utilities.h -+++ b/examples/inc/utilities.h -@@ -128,7 +128,7 @@ int32_t create_socket_and_listen(int32_t *socket_fd, in_addr_t ip, uint16_t port - * @param domain domain - * @return the result - */ --int32_t create_socket_and_connect(int32_t *socket_fd, in_addr_t ip, uint16_t port, const char *domain); -+int32_t create_socket_and_connect(int32_t *socket_fd, in_addr_t ip, uint16_t port, uint16_t sport, const char *domain); - - /** - * @brief set the socket to unblock -diff --git a/examples/src/bussiness.c b/examples/src/bussiness.c -index b084b37..f108a9f 100644 ---- a/examples/src/bussiness.c -+++ b/examples/src/bussiness.c -@@ -37,7 +37,7 @@ static const char bussiness_messages_cap[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; // t - iov[2].iov_base = buffer_in + iov_len_size + iov_len_size; - iov[2].iov_len = length- iov_len_size - iov_len_size; - return readv(fd, iov, iovcnt); -- } else { -+ } else if (strcmp(api, "recvsendmsg") == 0) { - struct msghdr msg_recv; - struct iovec iov; - -@@ -52,6 +52,8 @@ static const char bussiness_messages_cap[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; // t - msg_recv.msg_flags = 0; - - return recvmsg(fd, &msg_recv, 0); -+ } else { -+ return recvfrom(fd, buffer_in, length, 0, NULL, 0); - } - } - -@@ -75,7 +77,7 @@ static const char bussiness_messages_cap[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; // t - iov[2].iov_len = length- iov_len_size - iov_len_size; - - return writev(fd, iov, iovcnt); -- } else { -+ } else if (strcmp(api, "recvsendmsg") == 0) { - struct msghdr msg_send; - struct iovec iov; - -@@ -90,6 +92,8 @@ static const char bussiness_messages_cap[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; // t - msg_send.msg_flags = 0; - - return sendmsg(fd, &msg_send, 0); -+ } else { -+ return sendto(fd, buffer_out, length, 0, NULL, 0); - } - } - -@@ -131,7 +135,7 @@ int32_t client_bussiness(char *out, const char *in, uint32_t size, bool verify, - } - - // server answers --int32_t server_ans(struct ServerHandler *server_handler, uint32_t pktlen, const char* api) -+int32_t server_ans(struct ServerHandler *server_handler, uint32_t pktlen, const char* api, const char* domain) - { - const uint32_t length = pktlen; - char *buffer_in = (char *)malloc(length * sizeof(char)); -@@ -139,14 +143,34 @@ int32_t server_ans(struct ServerHandler *server_handler, uint32_t pktlen, const - - int32_t cread = 0; - int32_t sread = length; -+ int32_t nread = 0; -+ struct sockaddr_in client_addr; -+ socklen_t len = sizeof(client_addr); -+ -+ if (strcmp(domain, "udp") == 0 && strcmp(api, "recvfromsendto") != 0) { -+ if (getpeername(server_handler->fd, (struct sockaddr *)&client_addr, &len) < 0) { -+ if (recvfrom(server_handler->fd, buffer_in, length, MSG_PEEK, (struct sockaddr *)&client_addr, &len) < 0) { -+ return PROGRAM_FAULT; -+ } -+ if (connect(server_handler->fd, (struct sockaddr *)&client_addr, sizeof(struct sockaddr_in)) < 0) { -+ return PROGRAM_FAULT; -+ } -+ } -+ } -+ - while (cread < sread) { -- int32_t nread = read_api(server_handler->fd, buffer_in, length, api); -+ if (strcmp(domain, "udp") == 0 && strcmp(api, "recvfromsendto") == 0) { -+ nread = recvfrom(server_handler->fd, buffer_in, length, 0, (struct sockaddr *)&client_addr, &len); -+ } else { -+ nread = read_api(server_handler->fd, buffer_in, length, api); -+ } -+ - if (nread == 0) { - return PROGRAM_ABORT; - } else if (nread < 0) { -- if (errno != EINTR && errno != EWOULDBLOCK && errno != EAGAIN) { -+ if (errno != EINTR && errno != EWOULDBLOCK && errno != EAGAIN) { - return PROGRAM_FAULT; -- } -+ } - } else { - cread += nread; - continue; -@@ -157,8 +181,14 @@ int32_t server_ans(struct ServerHandler *server_handler, uint32_t pktlen, const - - int32_t cwrite = 0; - int32_t swrite = length; -+ int32_t nwrite = 0; - while (cwrite < swrite) { -- int32_t nwrite = write_api(server_handler->fd, buffer_out, length, api); -+ if (strcmp(domain, "udp") == 0 && strcmp(api, "recvfromsendto") == 0) { -+ nwrite = sendto(server_handler->fd, buffer_out, length, 0, (struct sockaddr *)&client_addr, len); -+ } else { -+ nwrite = write_api(server_handler->fd, buffer_out, length, api); -+ } -+ - if (nwrite == 0) { - return PROGRAM_ABORT; - } else if (nwrite < 0) { -@@ -256,4 +286,4 @@ int32_t client_chkans(struct ClientHandler *client_handler, uint32_t pktlen, boo - free(buffer_out); - - return PROGRAM_OK; --} -\ No newline at end of file -+} -diff --git a/examples/src/client.c b/examples/src/client.c -index a3a3ad0..b0b99b6 100644 ---- a/examples/src/client.c -+++ b/examples/src/client.c -@@ -85,9 +85,9 @@ void client_info_print(struct Client *client) - } - - // the single thread, client try to connect to server, register to epoll --int32_t client_thread_try_connect(struct ClientHandler *client_handler, int32_t epoll_fd, in_addr_t ip, uint16_t port, const char *domain) -+int32_t client_thread_try_connect(struct ClientHandler *client_handler, int32_t epoll_fd, in_addr_t ip, uint16_t port, uint16_t sport, const char *domain) - { -- int32_t create_socket_and_connect_ret = create_socket_and_connect(&(client_handler->fd), ip, port, domain); -+ int32_t create_socket_and_connect_ret = create_socket_and_connect(&(client_handler->fd), ip, port, sport, domain); - if (create_socket_and_connect_ret == PROGRAM_INPROGRESS) { - struct epoll_event ep_ev; - ep_ev.events = EPOLLOUT; -@@ -103,7 +103,7 @@ int32_t client_thread_try_connect(struct ClientHandler *client_handler, int32_t - // the single thread, client retry to connect to server, register to epoll - int32_t client_thread_retry_connect(struct ClientUnit *client_unit, struct ClientHandler *client_handler) - { -- int32_t clithd_try_cnntask_ret = client_thread_try_connect(client_handler, client_unit->epfd, client_unit->ip, client_unit->port, client_unit->domain); -+ int32_t clithd_try_cnntask_ret = client_thread_try_connect(client_handler, client_unit->epfd, client_unit->ip, client_unit->port, client_unit->sport, client_unit->domain); - if (clithd_try_cnntask_ret < 0) { - if (clithd_try_cnntask_ret == PROGRAM_INPROGRESS) { - return PROGRAM_OK; -@@ -168,7 +168,7 @@ int32_t client_thread_create_epfd_and_reg(struct ClientUnit *client_unit) - } - - for (uint32_t i = 0; i < connect_num; ++i) { -- int32_t clithd_try_cnntask_ret = client_thread_try_connect(client_unit->handlers + i, client_unit->epfd, client_unit->ip, client_unit->port, client_unit->domain); -+ int32_t clithd_try_cnntask_ret = client_thread_try_connect(client_unit->handlers + i, client_unit->epfd, client_unit->ip, client_unit->port, client_unit->sport, client_unit->domain); - if (clithd_try_cnntask_ret < 0) { - if (clithd_try_cnntask_ret == PROGRAM_INPROGRESS) { - continue; -@@ -230,7 +230,7 @@ int32_t clithd_proc_epevs(struct ClientUnit *client_unit) - for (int32_t i = 0; i < epoll_nfds; ++i) { - struct epoll_event *curr_epev = client_unit->epevs + i; - -- if (curr_epev->events == EPOLLERR) { -+ if (curr_epev->events == EPOLLERR && errno != 0) { - PRINT_ERROR("client epoll wait error! %d", curr_epev->events); - return PROGRAM_FAULT; - } else if (curr_epev->events == EPOLLOUT) { -@@ -364,6 +364,7 @@ int32_t client_create_and_run(struct ProgramParams *params) - client_unit->send_bytes = 0; - client_unit->ip = inet_addr(params->ip); - client_unit->port = htons(params->port); -+ client_unit->sport = htons(params->sport); - client_unit->connect_num = params->connect_num; - client_unit->pktlen = params->pktlen; - client_unit->verify = params->verify; -diff --git a/examples/src/parameter.c b/examples/src/parameter.c -index 3116a18..a152700 100644 ---- a/examples/src/parameter.c -+++ b/examples/src/parameter.c -@@ -19,6 +19,7 @@ const char prog_short_opts[] = \ - "a:" // as - "i:" // ip - "p:" // port -+ "s:" // sport - "m:" // model - "t:" // thread number - "c:" // connect number -@@ -39,6 +40,7 @@ const struct ProgramOption prog_long_opts[] = \ - {PARAM_NAME_AS, REQUIRED_ARGUMETN, NULL, PARAM_NUM_AS}, - {PARAM_NAME_IP, REQUIRED_ARGUMETN, NULL, PARAM_NUM_IP}, - {PARAM_NAME_PORT, REQUIRED_ARGUMETN, NULL, PARAM_NUM_PORT}, -+ {PARAM_NAME_SPORT, REQUIRED_ARGUMETN, NULL, PARAM_NUM_SPORT}, - {PARAM_NAME_MODEL, REQUIRED_ARGUMETN, NULL, PARAM_NUM_MODEL}, - {PARAM_NAME_THREAD_NUM, REQUIRED_ARGUMETN, NULL, PARAM_NUM_THREAD_NUM}, - {PARAM_NAME_CONNECT_NUM, REQUIRED_ARGUMETN, NULL, PARAM_NUM_CONNECT_NUM}, -@@ -93,6 +95,19 @@ void program_param_parse_port(struct ProgramParams *params) - } - } - -+// set `sport` parameter -+void program_param_parse_sport(struct ProgramParams *params) -+{ -+ int32_t sport_arg = strtol(optarg, NULL, 0); -+ printf("%d\n", sport_arg); -+ if (CHECK_VAL_RANGE(sport_arg, UNIX_TCP_PORT_MIN, UNIX_TCP_PORT_MAX) == true) { -+ params->sport = (uint32_t)sport_arg; -+ } else { -+ PRINT_ERROR("illigal argument -- %s \n", optarg); -+ exit(PROGRAM_ABORT); -+ } -+} -+ - // set `model` parameter - void program_param_parse_model(struct ProgramParams *params) - { -@@ -131,7 +146,7 @@ void program_param_parse_threadnum(struct ProgramParams *params) - // set `domain` parameter - void program_param_parse_domain(struct ProgramParams *params) - { -- if (strcmp(optarg, "unix") == 0 || strcmp(optarg, "posix") == 0) { -+ if (strcmp(optarg, "unix") == 0 || strcmp(optarg, "tcp") == 0 || strcmp(optarg, "udp") == 0) { - params->domain = optarg; - } else { - PRINT_ERROR("illigal argument -- %s \n", optarg); -@@ -143,7 +158,7 @@ void program_param_parse_domain(struct ProgramParams *params) - void program_param_parse_api(struct ProgramParams *params) - { - printf("aaaaaa %s\n", optarg); -- if (strcmp(optarg, "readwrite") == 0 || strcmp(optarg, "readvwritev") == 0 || strcmp(optarg, "recvsend") == 0 || strcmp(optarg, "recvsendmsg") == 0) { -+ if (strcmp(optarg, "readwrite") == 0 || strcmp(optarg, "readvwritev") == 0 || strcmp(optarg, "recvsend") == 0 || strcmp(optarg, "recvsendmsg") == 0 || strcmp(optarg, "recvfromsendto") == 0) { - params->api = optarg; - } else { - PRINT_ERROR("illigal argument -- %s \n", optarg); -@@ -191,6 +206,7 @@ void program_params_init(struct ProgramParams *params) - params->as = PARAM_DEFAULT_AS; - params->ip = PARAM_DEFAULT_IP; - params->port = PARAM_DEFAULT_PORT; -+ params->sport = PARAM_DEFAULT_SPORT; - params->model = PARAM_DEFAULT_MODEL; - params->thread_num = PARAM_DEFAULT_THREAD_NUM; - params->connect_num = PARAM_DEFAULT_CONNECT_NUM; -@@ -213,18 +229,21 @@ void program_params_help(void) - printf(" client: as client. \n"); - printf("-i, --ip [???.???.???.???]: set ip address. \n"); - printf("-p, --port [????]: set port number in range of %d - %d. \n", UNIX_TCP_PORT_MIN, UNIX_TCP_PORT_MAX); -+ printf("-s, --sport [????]: set sport number in range of %d - %d. \n", UNIX_TCP_PORT_MIN, UNIX_TCP_PORT_MAX); - printf("-m, --model [mum | mud]: set the network model. \n"); - printf(" mum: multi thread, unblock, multiplexing IO network model. \n"); - printf(" mud: multi thread, unblock, dissymmetric network model. \n"); - printf("-t, --threadnum [???]: set thread number in range of %d - %d. \n", THREAD_NUM_MIN, THREAD_NUM_MAX); - printf("-c, --connectnum [???]: set connection number of each thread. \n"); -- printf("-D, --domain [unix | posix]: set domain type is server or client. \n"); -+ printf("-D, --domain [unix | tcp | udp]: set domain type is server or client. \n"); - printf(" unix: use unix's api. \n"); -- printf(" posix: use posix api. \n"); -- printf("-A, --api [readwrite | recvsend | recvsendmsg]: set api type is server or client. \n"); -+ printf(" tcp: use tcp api. \n"); -+ printf(" udp: use udp api. \n"); -+ printf("-A, --api [readwrite | recvsend | recvsendmsg | recvfromsendto]: set api type is server or client. \n"); - printf(" readwrite: use `read` and `write`. \n"); - printf(" recvsend: use `recv and `send`. \n"); - printf(" recvsendmsg: use `recvmsg` and `sendmsg`. \n"); -+ printf(" recvfromsendto: use `recvfrom` and `sendto`. \n"); - printf("-P, --pktlen [????]: set packet length in range of %d - %d. \n", MESSAGE_PKTLEN_MIN, MESSAGE_PKTLEN_MAX); - printf("-v, --verify: set to verifying the message packet. \n"); - printf("-r, --ringpmd: set to use ringpmd. \n"); -@@ -259,6 +278,9 @@ int32_t program_params_parse(struct ProgramParams *params, uint32_t argc, char * - case (PARAM_NUM_PORT): - program_param_parse_port(params); - break; -+ case (PARAM_NUM_SPORT): -+ program_param_parse_sport(params); -+ break; - case (PARAM_NUM_MODEL): - program_param_parse_model(params); - break; -@@ -303,7 +325,7 @@ int32_t program_params_parse(struct ProgramParams *params, uint32_t argc, char * - } - } - -- if (strcmp(params->domain, "unix") == 0) { -+ if (strcmp(params->domain, "tcp") != 0) { - params->thread_num = 1; - params->connect_num = 1; - } -@@ -319,6 +341,9 @@ void program_params_print(struct ProgramParams *params) - printf("--> [as]: %s \n", params->as); - printf("--> [server ip]: %s \n", params->ip); - printf("--> [server port]: %u \n", params->port); -+ if (params->sport && strcmp(params->as, "client") == 0) { -+ printf("--> [client sport]: %u \n", params->sport); -+ } - if (strcmp(params->as, "server") == 0) { - printf("--> [model]: %s \n", params->model); - } -@@ -333,8 +358,10 @@ void program_params_print(struct ProgramParams *params) - printf("--> [api]: read & write \n"); - } else if (strcmp(params->api, "recvsend") == 0) { - printf("--> [api]: recv & send \n"); -- } else { -+ } else if (strcmp(params->api, "recvsendmsg") == 0) { - printf("--> [api]: recvmsg & sendmsg \n"); -+ } else { -+ printf("--> [api]: recvfrom & sendto \n"); - } - printf("--> [packet length]: %u \n", params->pktlen); - printf("--> [verify]: %s \n", (params->verify == true) ? "on" : "off"); -diff --git a/examples/src/server.c b/examples/src/server.c -index 7ee73db..6a35f33 100644 ---- a/examples/src/server.c -+++ b/examples/src/server.c -@@ -13,7 +13,6 @@ - - #include "server.h" - -- - static pthread_mutex_t server_debug_mutex; // the server mutex for debug - - // server debug information print -@@ -142,6 +141,10 @@ int32_t sermud_listener_accept_connects(struct ServerMud *server_mud) - struct sockaddr_in accept_addr; - uint32_t sockaddr_in_len = sizeof(struct sockaddr_in); - int32_t accept_fd; -+ if (strcmp(server_mud->domain, "udp") == 0) { -+ break; -+ } -+ - if (strcmp(server_mud->accept, "ac4") == 0) { - accept_fd = accept4(server_mud->listener.fd, (struct sockaddr *)&accept_addr, &sockaddr_in_len, SOCK_CLOEXEC); - } else { -@@ -175,7 +178,7 @@ int32_t sermud_listener_accept_connects(struct ServerMud *server_mud) - - server_mud->workers = worker; - -- if (pthread_create(tid, NULL, sermud_worker_create_and_run, server_mud->workers) < 0) { -+ if (pthread_create(tid, NULL, sermud_worker_create_and_run, server_mud) < 0) { - PRINT_ERROR("server can't create poisx thread %d! ", errno); - return PROGRAM_FAULT; - } -@@ -187,7 +190,7 @@ int32_t sermud_listener_accept_connects(struct ServerMud *server_mud) - } - - // the worker thread, unblock, dissymmetric server processes the events --int32_t sermud_worker_proc_epevs(struct ServerMudWorker *worker_unit) -+int32_t sermud_worker_proc_epevs(struct ServerMudWorker *worker_unit, const char* domain) - { - int32_t epoll_nfds = epoll_wait(worker_unit->epfd, worker_unit->epevs, SERVER_EPOLL_SIZE_MAX, SERVER_EPOLL_WAIT_TIMEOUT); - if (epoll_nfds < 0) { -@@ -206,7 +209,7 @@ int32_t sermud_worker_proc_epevs(struct ServerMudWorker *worker_unit) - if (curr_epev->events == EPOLLIN) { - struct ServerHandler *server_handler = (struct ServerHandler *)curr_epev->data.ptr; - -- int32_t server_ans_ret = server_ans(server_handler, worker_unit->pktlen, worker_unit->api); -+ int32_t server_ans_ret = server_ans(server_handler, worker_unit->pktlen, worker_unit->api, domain); - if (server_ans_ret == PROGRAM_FAULT) { - struct epoll_event ep_ev; - if (epoll_ctl(worker_unit->epfd, EPOLL_CTL_DEL, server_handler->fd, &ep_ev) < 0) { -@@ -263,13 +266,14 @@ void *sermud_worker_create_and_run(void *arg) - { - pthread_detach(pthread_self()); - -- struct ServerMudWorker *worker_unit = (struct ServerMudWorker *)arg; -+ struct ServerMudWorker *worker_unit = ((struct ServerMud *)arg)->workers; -+ char* domain = ((struct ServerMud *)arg)->domain; - - if (sermud_worker_create_epfd_and_reg(worker_unit) < 0) { - exit(PROGRAM_FAULT); - } - while (true) { -- if (sermud_worker_proc_epevs(worker_unit) < 0) { -+ if (sermud_worker_proc_epevs(worker_unit, domain) < 0) { - exit(PROGRAM_FAULT); - } - } -@@ -428,6 +432,10 @@ int32_t sersum_accept_connects(struct ServerMumUnit *server_unit, struct ServerH - struct sockaddr_in accept_addr; - uint32_t sockaddr_in_len = sizeof(struct sockaddr_in); - int32_t accept_fd; -+ if (strcmp(server_unit->domain, "udp") == 0) { -+ break; -+ } -+ - if (strcmp(server_unit->accept, "ac4") == 0) { - accept_fd = accept4(server_unit->listener.fd, (struct sockaddr *)&accept_addr, &sockaddr_in_len, SOCK_CLOEXEC); - } else { -@@ -479,7 +487,7 @@ int32_t sersum_proc_epevs(struct ServerMumUnit *server_unit) - } - - if (curr_epev->events == EPOLLIN) { -- if (curr_epev->data.ptr == (void *)&(server_unit->listener)) { -+ if (curr_epev->data.ptr == (void *)&(server_unit->listener) && strcmp(server_unit->domain, "udp") != 0) { - int32_t sersum_accept_connects_ret = sersum_accept_connects(server_unit, &(server_unit->listener)); - if (sersum_accept_connects_ret < 0) { - PRINT_ERROR("server try accept error %d! ", sersum_accept_connects_ret); -@@ -490,12 +498,12 @@ int32_t sersum_proc_epevs(struct ServerMumUnit *server_unit) - struct ServerHandler *server_handler = (struct ServerHandler *)curr_epev->data.ptr; - struct sockaddr_in connect_addr; - socklen_t connect_addr_len = sizeof(connect_addr); -- if (getpeername(server_handler->fd, (struct sockaddr *)&connect_addr, &connect_addr_len) < 0) { -+ if (strcmp(server_unit->domain, "udp") != 0 && getpeername(server_handler->fd, (struct sockaddr *)&connect_addr, &connect_addr_len) < 0) { - PRINT_ERROR("server can't socket peername %d! ", errno); - return PROGRAM_FAULT; - } - -- int32_t server_ans_ret = server_ans(server_handler, server_unit->pktlen, server_unit->api); -+ int32_t server_ans_ret = server_ans(server_handler, server_unit->pktlen, server_unit->api, server_unit->domain); - if (server_ans_ret == PROGRAM_FAULT) { - --server_unit->curr_connect; - struct epoll_event ep_ev; -diff --git a/examples/src/utilities.c b/examples/src/utilities.c -index 877e611..0a65784 100644 ---- a/examples/src/utilities.c -+++ b/examples/src/utilities.c -@@ -17,18 +17,24 @@ - // create the socket and listen - int32_t create_socket_and_listen(int32_t *socket_fd, in_addr_t ip, uint16_t port, const char *domain) - { -- if (strcmp(domain, "posix") == 0) { -+ if (strcmp(domain, "tcp") == 0) { - *socket_fd = socket(AF_INET, SOCK_STREAM, 0); - if (*socket_fd < 0) { - PRINT_ERROR("can't create socket %d! ", errno); - return PROGRAM_FAULT; - } -- } else { -+ } else if (strcmp(domain, "unix") == 0) { - *socket_fd = socket(AF_UNIX, SOCK_STREAM, 0); - if (*socket_fd < 0) { - PRINT_ERROR("can't create socket %d! ", errno); - return PROGRAM_FAULT; - } -+ } else if (strcmp(domain, "udp") == 0) { -+ *socket_fd = socket(AF_INET, SOCK_DGRAM, 0); -+ if (*socket_fd < 0) { -+ PRINT_ERROR("can't create socket %d! ", errno); -+ return PROGRAM_FAULT; -+ } - } - - int32_t port_multi = 1; -@@ -42,7 +48,7 @@ int32_t create_socket_and_listen(int32_t *socket_fd, in_addr_t ip, uint16_t port - return PROGRAM_FAULT; - } - -- if (strcmp(domain, "posix") == 0) { -+ if (strcmp(domain, "tcp") == 0) { - struct sockaddr_in socket_addr; - memset_s(&socket_addr, sizeof(socket_addr), 0, sizeof(socket_addr)); - socket_addr.sin_family = AF_INET; -@@ -57,7 +63,7 @@ int32_t create_socket_and_listen(int32_t *socket_fd, in_addr_t ip, uint16_t port - PRINT_ERROR("server socket can't lisiten %d! ", errno); - return PROGRAM_FAULT; - } -- } else { -+ } else if (strcmp(domain, "unix") == 0) { - struct sockaddr_un socket_addr; - unlink(SOCKET_UNIX_DOMAIN_FILE); - socket_addr.sun_family = AF_UNIX; -@@ -71,16 +77,30 @@ int32_t create_socket_and_listen(int32_t *socket_fd, in_addr_t ip, uint16_t port - PRINT_ERROR("server socket can't lisiten %d! ", errno); - return PROGRAM_FAULT; - } -+ } else if (strcmp(domain, "udp") == 0) { -+ struct sockaddr_in socket_addr; -+ memset_s(&socket_addr, sizeof(socket_addr), 0, sizeof(socket_addr)); -+ socket_addr.sin_family = AF_INET; -+ socket_addr.sin_addr.s_addr = ip; -+ socket_addr.sin_port = port; -+ if (bind(*socket_fd, (struct sockaddr *)&socket_addr, sizeof(struct sockaddr_in)) < 0) { -+ PRINT_ERROR("can't bind the address to socket %d! ", errno); -+ return PROGRAM_FAULT; -+ } - } - - return PROGRAM_OK; - } - - // create the socket and connect --int32_t create_socket_and_connect(int32_t *socket_fd, in_addr_t ip, uint16_t port, const char *domain) -+int32_t create_socket_and_connect(int32_t *socket_fd, in_addr_t ip, uint16_t port, uint16_t sport, const char *domain) - { -- if (strcmp(domain, "posix") == 0) { -- *socket_fd = socket(AF_INET, SOCK_STREAM, 0); -+ if (strcmp(domain, "tcp") == 0 || strcmp(domain, "udp") == 0) { -+ if (strcmp(domain, "tcp") == 0) { -+ *socket_fd = socket(AF_INET, SOCK_STREAM, 0); -+ } else { -+ *socket_fd = socket(AF_INET, SOCK_DGRAM, 0); -+ } - if (*socket_fd < 0) { - PRINT_ERROR("client can't create socket %d! ", errno); - return PROGRAM_FAULT; -@@ -94,6 +114,14 @@ int32_t create_socket_and_connect(int32_t *socket_fd, in_addr_t ip, uint16_t por - struct sockaddr_in server_addr; - memset_s(&server_addr, sizeof(server_addr), 0, sizeof(server_addr)); - server_addr.sin_family = AF_INET; -+ if (sport) { -+ server_addr.sin_addr.s_addr = htonl(INADDR_ANY); -+ server_addr.sin_port = sport; -+ if (bind(*socket_fd, (struct sockaddr *)&server_addr, sizeof(struct sockaddr_in)) < 0) { -+ PRINT_ERROR("can't bind the address to socket %d! ", errno); -+ return PROGRAM_FAULT; -+ } -+ } - server_addr.sin_addr.s_addr = ip; - server_addr.sin_port = port; - if (connect(*socket_fd, (struct sockaddr *)&server_addr, sizeof(struct sockaddr_in)) < 0) { -@@ -104,7 +132,7 @@ int32_t create_socket_and_connect(int32_t *socket_fd, in_addr_t ip, uint16_t por - return PROGRAM_FAULT; - } - } -- } else { -+ } else if (strcmp(domain, "unix") == 0) { - *socket_fd = socket(AF_UNIX, SOCK_STREAM, 0); - if (*socket_fd < 0) { - PRINT_ERROR("client can't create socket %d! ", errno); -@@ -123,6 +151,7 @@ int32_t create_socket_and_connect(int32_t *socket_fd, in_addr_t ip, uint16_t por - } - } - } -+ - return PROGRAM_OK; - } - --- -2.23.0 - diff --git a/0081-modify-huge-dir-dir-name.patch b/0240-modify-huge-dir-dir-name.patch similarity index 100% rename from 0081-modify-huge-dir-dir-name.patch rename to 0240-modify-huge-dir-dir-name.patch diff --git a/0241-drop-netbuf-in-read_lwip_data-to-fix-mem-overflow.patch b/0241-drop-netbuf-in-read_lwip_data-to-fix-mem-overflow.patch new file mode 100644 index 0000000..e6eef88 --- /dev/null +++ b/0241-drop-netbuf-in-read_lwip_data-to-fix-mem-overflow.patch @@ -0,0 +1,61 @@ +From 3939d1baef23269bfd89d616979df4caf02801ca Mon Sep 17 00:00:00 2001 +From: kircher +Date: Sat, 27 May 2023 20:26:02 +0800 +Subject: [PATCH] drop netbuf in read_lwip_data to fix mem overflow + +--- + src/lstack/core/lstack_lwip.c | 15 +++------------ + 1 file changed, 3 insertions(+), 12 deletions(-) + +diff --git a/src/lstack/core/lstack_lwip.c b/src/lstack/core/lstack_lwip.c +index 805ac82..f12bfdb 100644 +--- a/src/lstack/core/lstack_lwip.c ++++ b/src/lstack/core/lstack_lwip.c +@@ -743,7 +743,6 @@ ssize_t read_lwip_data(struct lwip_sock *sock, int32_t flags, u8_t apiflags) + uint32_t data_count = rte_ring_count(sock->conn->recvmbox->ring); + uint32_t read_num = LWIP_MIN(free_count, data_count); + struct pbuf *pbufs[SOCK_RECV_RING_SIZE]; +- struct netbuf *netbufs[SOCK_RECV_RING_SIZE]; + uint32_t read_count = 0; + ssize_t recv_len = 0; + +@@ -751,10 +750,7 @@ ssize_t read_lwip_data(struct lwip_sock *sock, int32_t flags, u8_t apiflags) + + err_t err = ERR_OK; + if (NETCONN_IS_UDP(sock)) { +- err = netconn_recv_udp_raw_netbuf_flags(sock->conn, &netbufs[i], apiflags); +- pbufs[i] = netbufs[i]->p; +- pbufs[i]->addr = netbufs[i]->addr; +- pbufs[i]->port = netbufs[i]->port; ++ err = netconn_recv_udp_raw_pbuf_flags(sock->conn, &pbufs[i], apiflags); + } else { + err = netconn_recv_tcp_pbuf_flags(sock->conn, &pbufs[i], apiflags); + } +@@ -776,14 +772,9 @@ ssize_t read_lwip_data(struct lwip_sock *sock, int32_t flags, u8_t apiflags) + } + + uint32_t enqueue_num = gazelle_ring_sp_enqueue(sock->recv_ring, (void **)pbufs, read_count); +- if (NETCONN_IS_UDP(sock)) { +- for (uint32_t i = 0; i < read_count; i++) { +- memp_free(MEMP_NETBUF, netbufs[i]); +- } +- } + for (uint32_t i = enqueue_num; i < read_count; i++) { + if (NETCONN_IS_UDP(sock)) { +- netbuf_delete(netbufs[i]); ++ pbuf_free(pbufs[i]); + } else { + /* update receive window */ + tcp_recved(sock->conn->pcb.tcp, pbufs[i]->tot_len); +@@ -1104,7 +1095,7 @@ ssize_t read_stack_data(int32_t fd, void *buf, size_t len, int32_t flags, struct + del_data_in_event(sock); + } + +- if (addr && addrlen) { ++ if (pbuf && addr && addrlen) { + lwip_sock_make_addr(sock->conn, &(pbuf->addr), pbuf->port, addr, addrlen); + } + +-- +2.23.0 + diff --git a/0242-send-recv-thread-bind-numa-only-app_bind_numa-set-to.patch b/0242-send-recv-thread-bind-numa-only-app_bind_numa-set-to.patch new file mode 100644 index 0000000..b95776b --- /dev/null +++ b/0242-send-recv-thread-bind-numa-only-app_bind_numa-set-to.patch @@ -0,0 +1,28 @@ +From 0567322f373c084955d713dbf13459862a23e686 Mon Sep 17 00:00:00 2001 +From: jiangheng12 +Date: Tue, 30 May 2023 20:45:47 +0800 +Subject: [PATCH] send/recv thread bind numa only app_bind_numa set to 1 + +--- + src/lstack/core/lstack_lwip.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/src/lstack/core/lstack_lwip.c b/src/lstack/core/lstack_lwip.c +index f12bfdb..62b4838 100644 +--- a/src/lstack/core/lstack_lwip.c ++++ b/src/lstack/core/lstack_lwip.c +@@ -950,6 +950,11 @@ static inline void thread_bind_stack(struct lwip_sock *sock) + return; + } + sock->already_bind_numa = 1; ++ ++ if (get_global_cfg_params()->app_bind_numa == 0) { ++ return; ++ } ++ + stack_sock_num[sock->stack->stack_idx]++; + if (stack_sock_num[sock->stack->stack_idx] > max_sock_stack) { + max_sock_stack = stack_sock_num[sock->stack->stack_idx]; +-- +2.23.0 + diff --git a/0243-fix-change-low-power-mod-invalid.patch b/0243-fix-change-low-power-mod-invalid.patch new file mode 100644 index 0000000..bfe60d5 --- /dev/null +++ b/0243-fix-change-low-power-mod-invalid.patch @@ -0,0 +1,33 @@ +From c74be141f7c2f30a5b53c1920f4b1860e4fb3138 Mon Sep 17 00:00:00 2001 +From: jiangheng12 +Date: Wed, 31 May 2023 16:26:24 +0800 +Subject: [PATCH] fix change low power mod invalid + +--- + src/lstack/core/lstack_protocol_stack.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/src/lstack/core/lstack_protocol_stack.c b/src/lstack/core/lstack_protocol_stack.c +index 2fbe3eb..ce1c6de 100644 +--- a/src/lstack/core/lstack_protocol_stack.c ++++ b/src/lstack/core/lstack_protocol_stack.c +@@ -434,7 +434,6 @@ static void* gazelle_stack_thread(void *arg) + uint32_t read_connect_number = cfg->read_connect_number; + uint32_t rpc_number = cfg->rpc_number; + uint32_t nic_read_number = cfg->nic_read_number; +- uint16_t low_power_mod = cfg->low_power_mod; + uint32_t wakeup_tick = 0; + struct protocol_stack_group *stack_group = get_protocol_stack_group(); + +@@ -484,7 +483,7 @@ static void* gazelle_stack_thread(void *arg) + + sys_timer_run(); + +- if (low_power_mod != 0) { ++ if (cfg->low_power_mod != 0) { + low_power_idling(stack); + } + } +-- +2.23.0 + diff --git a/0244-add-exception-handling-for-is_dst_ip_localhost.patch b/0244-add-exception-handling-for-is_dst_ip_localhost.patch new file mode 100644 index 0000000..e0a17d4 --- /dev/null +++ b/0244-add-exception-handling-for-is_dst_ip_localhost.patch @@ -0,0 +1,58 @@ +From c34d9a5b98597c1ac029fc6c2fcde00b3bc4839b Mon Sep 17 00:00:00 2001 +From: jiangheng12 +Date: Fri, 9 Jun 2023 11:22:03 +0800 +Subject: [PATCH] add exception handling for is_dst_ip_localhost + +--- + src/lstack/api/lstack_wrap.c | 18 +++++++++++++++--- + 1 file changed, 15 insertions(+), 3 deletions(-) + +diff --git a/src/lstack/api/lstack_wrap.c b/src/lstack/api/lstack_wrap.c +index 505e33d..7245873 100644 +--- a/src/lstack/api/lstack_wrap.c ++++ b/src/lstack/api/lstack_wrap.c +@@ -242,12 +242,21 @@ static int32_t do_bind(int32_t s, const struct sockaddr *name, socklen_t namelen + bool is_dst_ip_localhost(const struct sockaddr *addr) + { + struct sockaddr_in *servaddr = (struct sockaddr_in *) addr; +- FILE *ifh = fopen("/proc/net/dev", "r"); + char *line = NULL; + char *p; + size_t linel = 0; + int linenum = 0; ++ FILE *ifh = fopen("/proc/net/dev", "r"); ++ if (ifh == NULL) { ++ LSTACK_LOG(ERR, LSTACK, "failed to open /proc/net/dev, errno is %d\n", errno); ++ return false; ++ } + struct sockaddr_in* sin = malloc(sizeof(struct sockaddr_in)); ++ if (sin == NULL) { ++ LSTACK_LOG(ERR, LSTACK, "sockaddr_in malloc failed\n"); ++ fclose(ifh); ++ return false; ++ } + + while (getdelim(&line, &linel, '\n', ifh) > 0) { + /* 2: skip the first two lines, which are not nic name */ +@@ -268,13 +277,16 @@ bool is_dst_ip_localhost(const struct sockaddr *addr) + int ret = get_addr(sin, interface); + if (ret == 0) { + if (sin->sin_addr.s_addr == servaddr->sin_addr.s_addr) { +- return 1; ++ free(sin); ++ fclose(ifh); ++ return true; + } + } + } + free(sin); ++ fclose(ifh); + +- return 0; ++ return false; + } + + static int32_t do_connect(int32_t s, const struct sockaddr *name, socklen_t namelen) +-- +2.23.0 + diff --git a/0245-fix-gazellectl-block-before-lstack-registration-is-c.patch b/0245-fix-gazellectl-block-before-lstack-registration-is-c.patch new file mode 100644 index 0000000..8d2b9a8 --- /dev/null +++ b/0245-fix-gazellectl-block-before-lstack-registration-is-c.patch @@ -0,0 +1,27 @@ +From f1abe05db080dfc3cbe9751fd0308af805a81b84 Mon Sep 17 00:00:00 2001 +From: jiangheng12 +Date: Tue, 13 Jun 2023 11:00:59 +0800 +Subject: [PATCH] fix gazellectl block before lstack registration is complete + +--- + src/ltran/ltran_stat.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/ltran/ltran_stat.c b/src/ltran/ltran_stat.c +index c17a5c1..2a0c03a 100644 +--- a/src/ltran/ltran_stat.c ++++ b/src/ltran/ltran_stat.c +@@ -402,6 +402,10 @@ void handle_resp_lstack_transfer(const struct gazelle_stat_msg_request *msg, int + return; + } + ++ if (!INSTANCE_IS_ON(instance)) { ++ return; ++ } ++ + int32_t lstack_fd = instance->sockfd; + if (lstack_fd < 0) { + return; +-- +2.23.0 + diff --git a/0246-fix-udp-send-recv-in-muliple-queue.patch b/0246-fix-udp-send-recv-in-muliple-queue.patch new file mode 100644 index 0000000..44f0353 --- /dev/null +++ b/0246-fix-udp-send-recv-in-muliple-queue.patch @@ -0,0 +1,218 @@ +From 388b2202a0b248026e77ef2c340144ed547c87b7 Mon Sep 17 00:00:00 2001 +From: jiangheng12 +Date: Wed, 14 Jun 2023 11:58:01 +0800 +Subject: [PATCH] fix udp send/recv in muliple queue + +--- + src/lstack/api/lstack_wrap.c | 37 ++++++++++++++++++-- + src/lstack/core/lstack_dpdk.c | 2 +- + src/lstack/core/lstack_lwip.c | 36 +++++++++++++++----- + src/lstack/core/lstack_protocol_stack.c | 39 ++++++++++++++++++++++ + src/lstack/include/lstack_protocol_stack.h | 4 +++ + 5 files changed, 106 insertions(+), 12 deletions(-) + +diff --git a/src/lstack/api/lstack_wrap.c b/src/lstack/api/lstack_wrap.c +index 7245873..1f33e13 100644 +--- a/src/lstack/api/lstack_wrap.c ++++ b/src/lstack/api/lstack_wrap.c +@@ -236,7 +236,11 @@ static int32_t do_bind(int32_t s, const struct sockaddr *name, socklen_t namelen + } + } + +- return rpc_call_bind(s, name, namelen); ++ if (NETCONN_IS_UDP(sock) && get_global_cfg_params()->listen_shadow) { ++ return stack_broadcast_bind(s, name, namelen); ++ } else { ++ return stack_single_bind(s, name, namelen); ++ } + } + + bool is_dst_ip_localhost(const struct sockaddr *addr) +@@ -548,6 +552,31 @@ static inline ssize_t do_sendmsg(int32_t s, const struct msghdr *message, int32_ + return posix_api->send_msg(s, message, flags); + } + ++static inline ssize_t udp_recvfrom(struct lwip_sock *sock, int32_t sockfd, void *buf, size_t len, int32_t flags, ++ struct sockaddr *addr, socklen_t *addrlen) ++{ ++ int32_t ret; ++ ++ do { ++ ret = read_stack_data(sockfd, buf, len, flags, addr, addrlen); ++ if (ret > 0) { ++ return ret; ++ } ++ if (ret <= 0 && errno != EAGAIN) { ++ return -1; ++ } ++ sock = sock->listen_next; ++ sockfd = sock->conn->socket; ++ } while (sock != NULL); ++ GAZELLE_RETURN(EAGAIN); ++} ++ ++static inline ssize_t tcp_recvfrom(struct lwip_sock *sock, int32_t sockfd, void *buf, size_t len, int32_t flags, ++ struct sockaddr *addr, socklen_t *addrlen) ++{ ++ return read_stack_data(sockfd, buf, len, flags, addr, addrlen); ++} ++ + static inline ssize_t do_recvfrom(int32_t sockfd, void *buf, size_t len, int32_t flags, + struct sockaddr *addr, socklen_t *addrlen) + { +@@ -561,7 +590,11 @@ static inline ssize_t do_recvfrom(int32_t sockfd, void *buf, size_t len, int32_t + + struct lwip_sock *sock = NULL; + if (select_path(sockfd, &sock) == PATH_LWIP) { +- return read_stack_data(sockfd, buf, len, flags, addr, addrlen); ++ if (NETCONN_IS_UDP(sock)) { ++ return udp_recvfrom(sock, sockfd, buf, len, flags, addr, addrlen); ++ } else { ++ return tcp_recvfrom(sock, sockfd, buf, len, flags, addr, addrlen); ++ } + } + + return posix_api->recv_from(sockfd, buf, len, flags, addr, addrlen); +diff --git a/src/lstack/core/lstack_dpdk.c b/src/lstack/core/lstack_dpdk.c +index b321c18..169025c 100644 +--- a/src/lstack/core/lstack_dpdk.c ++++ b/src/lstack/core/lstack_dpdk.c +@@ -362,7 +362,7 @@ uint64_t get_eth_params_tx_ol(void) + static int eth_params_rss(struct rte_eth_conf *conf, struct rte_eth_dev_info *dev_info) + { + int rss_enable = 0; +- uint64_t def_rss_hf = ETH_RSS_TCP | ETH_RSS_IP; ++ uint64_t def_rss_hf = ETH_RSS_TCP | ETH_RSS_UDP | ETH_RSS_IP; + struct rte_eth_rss_conf rss_conf = { + g_default_rss_key, + RSS_HASH_KEY_LEN, +diff --git a/src/lstack/core/lstack_lwip.c b/src/lstack/core/lstack_lwip.c +index 2e7a67a..34b4aa7 100644 +--- a/src/lstack/core/lstack_lwip.c ++++ b/src/lstack/core/lstack_lwip.c +@@ -1230,13 +1230,19 @@ static inline void clone_lwip_socket_opt(struct lwip_sock *dst_sock, struct lwip + dst_sock->conn->pcb.ip->so_options = src_sock->conn->pcb.ip->so_options; + dst_sock->conn->pcb.ip->ttl = src_sock->conn->pcb.ip->ttl; + dst_sock->conn->pcb.ip->tos = src_sock->conn->pcb.ip->tos; +- dst_sock->conn->pcb.tcp->netif_idx = src_sock->conn->pcb.tcp->netif_idx; +- dst_sock->conn->pcb.tcp->flags = src_sock->conn->pcb.tcp->flags; +- dst_sock->conn->pcb.tcp->keep_idle = src_sock->conn->pcb.tcp->keep_idle; +- dst_sock->conn->pcb.tcp->keep_idle = src_sock->conn->pcb.tcp->keep_idle; +- dst_sock->conn->pcb.tcp->keep_intvl = src_sock->conn->pcb.tcp->keep_intvl; +- dst_sock->conn->pcb.tcp->keep_cnt = src_sock->conn->pcb.tcp->keep_cnt; + dst_sock->conn->flags = src_sock->conn->flags; ++ if (NETCONN_IS_UDP(src_sock)) { ++ dst_sock->conn->pcb.udp->flags = src_sock->conn->pcb.udp->flags; ++ dst_sock->conn->pcb.udp->mcast_ifindex = src_sock->conn->pcb.udp->mcast_ifindex; ++ dst_sock->conn->pcb.udp->mcast_ttl = src_sock->conn->pcb.udp->mcast_ttl; ++ } else { ++ dst_sock->conn->pcb.tcp->netif_idx = src_sock->conn->pcb.tcp->netif_idx; ++ dst_sock->conn->pcb.tcp->flags = src_sock->conn->pcb.tcp->flags; ++ dst_sock->conn->pcb.tcp->keep_idle = src_sock->conn->pcb.tcp->keep_idle; ++ dst_sock->conn->pcb.tcp->keep_idle = src_sock->conn->pcb.tcp->keep_idle; ++ dst_sock->conn->pcb.tcp->keep_intvl = src_sock->conn->pcb.tcp->keep_intvl; ++ dst_sock->conn->pcb.tcp->keep_cnt = src_sock->conn->pcb.tcp->keep_cnt; ++ } + } + + int32_t gazelle_socket(int domain, int type, int protocol) +@@ -1265,16 +1271,28 @@ void create_shadow_fd(struct rpc_msg *msg) + struct sockaddr *addr = msg->args[MSG_ARG_1].p; + socklen_t addr_len = msg->args[MSG_ARG_2].socklen; + +- int32_t clone_fd = gazelle_socket(AF_INET, SOCK_STREAM, 0); ++ int32_t clone_fd = 0; ++ struct lwip_sock *sock = get_socket_by_fd(fd); ++ if (sock == NULL) { ++ LSTACK_LOG(ERR, LSTACK, "get sock null fd=%d\n", fd); ++ msg->result = -1; ++ return; ++ } ++ ++ if (NETCONN_IS_UDP(sock)) { ++ clone_fd = gazelle_socket(AF_INET, SOCK_DGRAM, 0); ++ } else { ++ clone_fd = gazelle_socket(AF_INET, SOCK_STREAM, 0); ++ } ++ + if (clone_fd < 0) { + LSTACK_LOG(ERR, LSTACK, "clone socket failed clone_fd=%d errno=%d\n", clone_fd, errno); + msg->result = clone_fd; + return; + } + +- struct lwip_sock *sock = get_socket_by_fd(fd); + struct lwip_sock *clone_sock = get_socket_by_fd(clone_fd); +- if (sock == NULL || clone_sock == NULL) { ++ if (clone_sock == NULL) { + LSTACK_LOG(ERR, LSTACK, "get sock null fd=%d clone_fd=%d\n", fd, clone_fd); + msg->result = -1; + return; +diff --git a/src/lstack/core/lstack_protocol_stack.c b/src/lstack/core/lstack_protocol_stack.c +index 6c96555..52a0c8f 100644 +--- a/src/lstack/core/lstack_protocol_stack.c ++++ b/src/lstack/core/lstack_protocol_stack.c +@@ -935,6 +935,45 @@ static void inline del_accept_in_event(struct lwip_sock *sock) + pthread_spin_unlock(&sock->wakeup->event_list_lock); + } + ++/* choice one stack bind */ ++int32_t stack_single_bind(int32_t fd, const struct sockaddr *name, socklen_t namelen) ++{ ++ return rpc_call_bind(fd, name, namelen); ++} ++ ++/* bind sync to all protocol stack thread, so that any protocol stack thread can build connect */ ++int32_t stack_broadcast_bind(int32_t fd, const struct sockaddr *name, socklen_t namelen) ++{ ++ struct protocol_stack *cur_stack = get_protocol_stack_by_fd(fd); ++ struct protocol_stack *stack = NULL; ++ int32_t ret, clone_fd; ++ ++ struct lwip_sock *sock = get_socket(fd); ++ if (sock == NULL) { ++ LSTACK_LOG(ERR, LSTACK, "tid %ld, %d get sock null\n", get_stack_tid(), fd); ++ GAZELLE_RETURN(EINVAL); ++ } ++ ++ ret = rpc_call_bind(fd, name, namelen); ++ if (ret < 0) { ++ close(fd); ++ return ret; ++ } ++ ++ struct protocol_stack_group *stack_group = get_protocol_stack_group(); ++ for (int32_t i = 0; i < stack_group->stack_num; ++i) { ++ stack = stack_group->stacks[i]; ++ if (stack != cur_stack) { ++ clone_fd = rpc_call_shadow_fd(stack, fd, name, namelen); ++ if (clone_fd < 0) { ++ stack_broadcast_close(fd); ++ return clone_fd; ++ } ++ } ++ } ++ return 0; ++} ++ + /* ergodic the protocol stack thread to find the connection, because all threads are listening */ + int32_t stack_broadcast_accept4(int32_t fd, struct sockaddr *addr, socklen_t *addrlen, int flags) + { +diff --git a/src/lstack/include/lstack_protocol_stack.h b/src/lstack/include/lstack_protocol_stack.h +index 3a447dc..a23ddff 100644 +--- a/src/lstack/include/lstack_protocol_stack.h ++++ b/src/lstack/include/lstack_protocol_stack.h +@@ -128,6 +128,10 @@ int32_t stack_broadcast_close(int32_t fd); + int32_t stack_broadcast_listen(int32_t fd, int backlog); + int32_t stack_single_listen(int32_t fd, int32_t backlog); + ++/* bind sync to all protocol stack thread, only for udp protocol */ ++int32_t stack_broadcast_bind(int32_t fd, const struct sockaddr *name, socklen_t namelen); ++int32_t stack_single_bind(int32_t fd, const struct sockaddr *name, socklen_t namelen); ++ + /* ergodic the protocol stack thread to find the connection, because all threads are listening */ + int32_t stack_broadcast_accept(int32_t fd, struct sockaddr *addr, socklen_t *addrlen); + int32_t stack_broadcast_accept4(int32_t fd, struct sockaddr *addr, socklen_t *addrlen, int32_t flags); +-- +2.23.0 + diff --git a/0247-set-sock-when-select-path-is-PATH_UNKNOW.patch b/0247-set-sock-when-select-path-is-PATH_UNKNOW.patch new file mode 100644 index 0000000..5cf3475 --- /dev/null +++ b/0247-set-sock-when-select-path-is-PATH_UNKNOW.patch @@ -0,0 +1,60 @@ +From 046d0963dc5d00430897ee2ffdb27dcae6b4693c Mon Sep 17 00:00:00 2001 +From: jiangheng +Date: Mon, 5 Sep 2022 12:20:17 +0800 +Subject: [PATCH] set sock when select path is PATH_UNKNOW + +--- + src/lstack/api/lstack_wrap.c | 19 +++++++------------ + 1 file changed, 7 insertions(+), 12 deletions(-) + +diff --git a/src/lstack/api/lstack_wrap.c b/src/lstack/api/lstack_wrap.c +index 1f33e13..096fcf7 100644 +--- a/src/lstack/api/lstack_wrap.c ++++ b/src/lstack/api/lstack_wrap.c +@@ -54,9 +54,9 @@ static inline enum KERNEL_LWIP_PATH select_path(int fd, struct lwip_sock **socke + { + if (unlikely(posix_api == NULL)) { + /* +- * posix api maybe call before gazelle init +- * So, we must call posix_api_init at the head of select_path +- */ ++ * posix api maybe call before gazelle init ++ * So, we must call posix_api_init at the head of select_path ++ */ + if (posix_api_init() != 0) { + LSTACK_PRE_LOG(LSTACK_ERR, "posix_api_init failed\n"); + } +@@ -74,26 +74,21 @@ static inline enum KERNEL_LWIP_PATH select_path(int fd, struct lwip_sock **socke + return PATH_KERNEL; + } + ++ if (socket) { ++ *socket = sock; ++ } ++ + if (likely(CONN_TYPE_IS_LIBOS(sock->conn))) { +- if (socket) { +- *socket = sock; +- } + return PATH_LWIP; + } + + if (NETCONN_IS_UDP(sock)) { +- if (socket) { +- *socket = sock; +- } + return PATH_LWIP; + } else { + struct tcp_pcb *pcb = sock->conn->pcb.tcp; + /* after lwip connect, call send immediately, pcb->state is SYN_SENT, need return PATH_LWIP */ + /* pcb->state default value is CLOSED when call socket, need return PATH_UNKNOW */ + if (pcb != NULL && pcb->state <= ESTABLISHED && pcb->state >= LISTEN) { +- if (socket) { +- *socket = sock; +- } + return PATH_LWIP; + } + } +-- +2.23.0 + diff --git a/0248-rpc-pool-use-dpdk-mempool-replace-array.patch b/0248-rpc-pool-use-dpdk-mempool-replace-array.patch new file mode 100644 index 0000000..48fbaf7 --- /dev/null +++ b/0248-rpc-pool-use-dpdk-mempool-replace-array.patch @@ -0,0 +1,133 @@ +From 795c15182d2dbeeb34982f274185b20920be195f Mon Sep 17 00:00:00 2001 +From: jiangheng +Date: Mon, 5 Sep 2022 09:49:10 +0800 +Subject: [PATCH] rpc pool use dpdk mempool replace array + +--- + src/lstack/core/lstack_dpdk.c | 20 ++++++++++++++++++++ + src/lstack/core/lstack_thread_rpc.c | 22 +++++++++++++++------- + src/lstack/include/lstack_dpdk.h | 2 ++ + src/lstack/include/lstack_thread_rpc.h | 7 +++---- + 4 files changed, 40 insertions(+), 11 deletions(-) + +diff --git a/src/lstack/core/lstack_dpdk.c b/src/lstack/core/lstack_dpdk.c +index 169025c..1dab9a3 100644 +--- a/src/lstack/core/lstack_dpdk.c ++++ b/src/lstack/core/lstack_dpdk.c +@@ -217,6 +217,26 @@ int32_t pktmbuf_pool_init(struct protocol_stack *stack, uint16_t stack_num) + return 0; + } + ++struct rte_mempool *create_mempool(const char *name, uint32_t count, uint32_t size, ++ uint32_t flags, int32_t idx) ++{ ++ char pool_name [RTE_MEMPOOL_NAMESIZE]; ++ struct rte_mempool *mempool; ++ int32_t ret = snprintf_s(pool_name, sizeof(pool_name), RTE_MEMPOOL_NAMESIZE - 1, ++ "%s_%d", name, idx); ++ if (ret < 0) { ++ return NULL; ++ } ++ ++ mempool = rte_mempool_create(pool_name, count, size, ++ 0, 0, NULL, NULL, NULL, NULL, rte_socket_id(), flags); ++ if (mempool == NULL) { ++ LSTACK_LOG(ERR, LSTACK, "%s create failed. errno: %d.\n", name, rte_errno); ++ } ++ ++ return mempool; ++} ++ + struct rte_ring *create_ring(const char *name, uint32_t count, uint32_t flags, int32_t queue_id) + { + char ring_name[RTE_RING_NAMESIZE] = {0}; +diff --git a/src/lstack/core/lstack_thread_rpc.c b/src/lstack/core/lstack_thread_rpc.c +index fe3b757..1234bc6 100644 +--- a/src/lstack/core/lstack_thread_rpc.c ++++ b/src/lstack/core/lstack_thread_rpc.c +@@ -27,15 +27,15 @@ static PER_THREAD struct rpc_msg_pool *g_rpc_pool = NULL; + + static inline __attribute__((always_inline)) struct rpc_msg *get_rpc_msg(struct rpc_msg_pool *rpc_pool) + { +- uint32_t cons = __atomic_load_n(&rpc_pool->cons, __ATOMIC_ACQUIRE); +- uint32_t prod = rpc_pool->prod + 1; +- +- if (prod - cons >= RPC_MSG_MAX) { ++ int ret; ++ struct rpc_msg *msg = NULL; ++ ret = rte_mempool_get(rpc_pool->rpc_pool, (void **)&msg); ++ if (ret < 0) { ++ LSTACK_LOG(INFO, LSTACK, "rpc pool empty!\n"); ++ errno = ENOMEM; + return NULL; + } +- +- rpc_pool->prod = prod; +- return &rpc_pool->msgs[prod & RPC_MSG_MASK]; ++ return msg; + } + + static struct rpc_msg *rpc_msg_alloc(struct protocol_stack *stack, rpc_msg_func func) +@@ -49,6 +49,14 @@ static struct rpc_msg *rpc_msg_alloc(struct protocol_stack *stack, rpc_msg_func + if (g_rpc_pool == NULL) { + g_rpc_pool = calloc(1, sizeof(struct rpc_msg_pool)); + if (g_rpc_pool == NULL) { ++ LSTACK_LOG(INFO, LSTACK, "g_rpc_pool calloc failed\n"); ++ get_protocol_stack_group()->call_alloc_fail++; ++ return NULL; ++ } ++ ++ g_rpc_pool->rpc_pool = create_mempool("rpc_pool", RPC_MSG_MAX, sizeof(struct rpc_msg), ++ 0, rte_gettid()); ++ if (g_rpc_pool->rpc_pool == NULL) { + get_protocol_stack_group()->call_alloc_fail++; + return NULL; + } +diff --git a/src/lstack/include/lstack_dpdk.h b/src/lstack/include/lstack_dpdk.h +index a189557..c233120 100644 +--- a/src/lstack/include/lstack_dpdk.h ++++ b/src/lstack/include/lstack_dpdk.h +@@ -44,6 +44,8 @@ int32_t fill_mbuf_to_ring(struct rte_mempool *mempool, struct rte_ring *ring, ui + int32_t dpdk_eal_init(void); + int32_t pktmbuf_pool_init(struct protocol_stack *stack, uint16_t stack_num); + struct rte_ring *create_ring(const char *name, uint32_t count, uint32_t flags, int32_t queue_id); ++struct rte_mempool *create_mempool(const char *name, uint32_t count, uint32_t size, ++ uint32_t flags, int32_t idx); + int32_t create_shared_ring(struct protocol_stack *stack); + void lstack_log_level_init(void); + int dpdk_ethdev_init(int port_id, bool bond_port); +diff --git a/src/lstack/include/lstack_thread_rpc.h b/src/lstack/include/lstack_thread_rpc.h +index 657ffa9..bcb40dd 100644 +--- a/src/lstack/include/lstack_thread_rpc.h ++++ b/src/lstack/include/lstack_thread_rpc.h +@@ -15,6 +15,7 @@ + + #include + #include ++#include + + #include "lstack_lockless_queue.h" + +@@ -53,9 +54,7 @@ struct rpc_msg { + }; + + struct rpc_msg_pool { +- struct rpc_msg msgs[RPC_MSG_MAX]; +- uint32_t prod __rte_cache_aligned; +- uint32_t cons __rte_cache_aligned; ++ struct rte_mempool *rpc_pool; + }; + + struct protocol_stack; +@@ -99,7 +98,7 @@ static inline __attribute__((always_inline)) void rpc_msg_free(struct rpc_msg *m + + msg->self_release = 0; + +- __atomic_fetch_add((_Atomic uint32_t *)&msg->pool->cons, 1, __ATOMIC_SEQ_CST); ++ rte_mempool_put(msg->pool->rpc_pool, (void *)msg); + } + + #endif +-- +2.27.0 + diff --git a/0249-fix-t_params-use-after-free-in-kernel-event-thread.patch b/0249-fix-t_params-use-after-free-in-kernel-event-thread.patch new file mode 100644 index 0000000..c33c24c --- /dev/null +++ b/0249-fix-t_params-use-after-free-in-kernel-event-thread.patch @@ -0,0 +1,97 @@ +From 52a5607eb8f20ccbaf03c8046b29763c2081e24a Mon Sep 17 00:00:00 2001 +From: jiangheng +Date: Mon, 5 Sep 2022 14:46:46 +0800 +Subject: [PATCH] fix t_params use after free in kernel event thread + +--- + src/lstack/core/lstack_protocol_stack.c | 30 +++++++++++++++---------- + 1 file changed, 18 insertions(+), 12 deletions(-) + +diff --git a/src/lstack/core/lstack_protocol_stack.c b/src/lstack/core/lstack_protocol_stack.c +index 52a0c8f..a8c5e14 100644 +--- a/src/lstack/core/lstack_protocol_stack.c ++++ b/src/lstack/core/lstack_protocol_stack.c +@@ -263,7 +263,9 @@ static void* gazelle_kernelevent_thread(void *arg) + struct thread_params *t_params = (struct thread_params*) arg; + uint16_t idx = t_params->idx; + struct protocol_stack *stack = get_protocol_stack_group()->stacks[idx]; ++ struct protocol_stack_group *stack_group = get_protocol_stack_group(); + ++ sem_post(&stack_group->thread_phase1); + bind_to_stack_numa(stack); + + LSTACK_LOG(INFO, LSTACK, "kernelevent_%02hu start\n", idx); +@@ -358,23 +360,22 @@ static struct protocol_stack *stack_thread_init(void *arg) + struct protocol_stack *stack = calloc(1, sizeof(*stack)); + if (stack == NULL) { + LSTACK_LOG(ERR, LSTACK, "malloc stack failed\n"); +- sem_post(&stack_group->thread_phase1); +- return NULL; ++ goto END2; + } + + if (init_stack_value(stack, arg) != 0) { +- goto END; ++ goto END2; + } + + if (init_stack_numa_cpuset(stack) < 0) { +- goto END; ++ goto END2; + } + if (create_affiliate_thread(arg) < 0) { +- goto END; ++ goto END2; + } + + if (thread_affinity_init(stack->cpu_id) != 0) { +- goto END; ++ goto END1; + } + RTE_PER_LCORE(_lcore_id) = stack->cpu_id; + +@@ -384,7 +385,7 @@ static struct protocol_stack *stack_thread_init(void *arg) + + if (use_ltran()) { + if (client_reg_thrd_ring() != 0) { +- goto END; ++ goto END1; + } + } + +@@ -397,14 +398,18 @@ static struct protocol_stack *stack_thread_init(void *arg) + usleep(SLEEP_US_BEFORE_LINK_UP); + + if (ethdev_init(stack) != 0) { +- free(stack); +- return NULL; ++ goto END1; + } + + return stack; +-END: ++/* kernel event thread dont create, stack thread post sem twice */ ++END2: ++ sem_post(&stack_group->thread_phase1); ++END1: + sem_post(&stack_group->thread_phase1); +- free(stack); ++ if (stack != NULL) { ++ free(stack); ++ } + return NULL; + } + +@@ -597,7 +602,8 @@ int32_t init_protocol_stack(void) + } + } + +- wait_sem_value(&stack_group->thread_phase1, stack_group->stack_num); ++ /* stack_num * 2: stack thread and kernel event thread will post sem */ ++ wait_sem_value(&stack_group->thread_phase1, stack_group->stack_num * 2); + + for (int idx = 0; idx < queue_num; idx++){ + free(t_params[idx]); +-- +2.27.0 + diff --git a/0250-adapt-to-dpdk-19.11-and-dpdk-21.11.patch b/0250-adapt-to-dpdk-19.11-and-dpdk-21.11.patch new file mode 100644 index 0000000..a6cc913 --- /dev/null +++ b/0250-adapt-to-dpdk-19.11-and-dpdk-21.11.patch @@ -0,0 +1,241 @@ +From 9884a2bcbe74647a49fb3969211e12fa399da2a1 Mon Sep 17 00:00:00 2001 +From: Lemmy Huang +Date: Thu, 15 Jun 2023 13:07:33 +0800 +Subject: [PATCH] adapt to dpdk-19.11 and dpdk-21.11 + +Signed-off-by: Lemmy Huang +--- + src/common/dpdk_common.h | 1 + + src/lstack/Makefile | 47 +++++++++++++++------- + src/lstack/include/lstack_lockless_queue.h | 2 + + src/lstack/netif/lstack_ethdev.c | 6 ++- + src/ltran/CMakeLists.txt | 41 ++++++++++++++----- + src/ltran/ltran_dfx.c | 2 +- + src/ltran/ltran_param.h | 1 + + 7 files changed, 74 insertions(+), 26 deletions(-) + +diff --git a/src/common/dpdk_common.h b/src/common/dpdk_common.h +index 2f0e8d1..38f09ae 100644 +--- a/src/common/dpdk_common.h ++++ b/src/common/dpdk_common.h +@@ -17,6 +17,7 @@ + #include + #include + #include ++#include + + #include "gazelle_opt.h" + +diff --git a/src/lstack/Makefile b/src/lstack/Makefile +index ab039ec..d9c8396 100644 +--- a/src/lstack/Makefile ++++ b/src/lstack/Makefile +@@ -14,6 +14,12 @@ ROOT_DIR := $(dir $(abspath $(LSTACK_DIR))) + LWIP_INCLUDE_FILE ?= /usr/include/lwip + LIB_PATH ?= /usr/lib64 + ++ifeq ($(DPDK_VERSION_1911), 1) ++ DPDK_INCLUDE_FILE ?= /usr/include/dpdk ++else ++ DPDK_INCLUDE_FILE ?= /usr/local/include/ ++endif ++ + AR = ar + ARFLAGS = crDP + CC ?= gcc +@@ -30,7 +36,8 @@ $(info $(CC):$(SEC_FLAGS)) + + INC = -I$(LSTACK_DIR)/include \ + -I$(LSTACK_DIR)/../common \ +- -I$(LWIP_INCLUDE_FILE) ++ -I$(LWIP_INCLUDE_FILE) \ ++ -I$(DPDK_INCLUDE_FILE) + + CFLAGS = $(OPTIMIZATION) -fno-strict-aliasing $(INC) + +@@ -58,8 +65,8 @@ include $(patsubst %, %/dir.mk, $(DIRS)) + OBJS = $(subst .c,.o,$(SRCS)) + + LWIP_LIB = $(LIB_PATH)/liblwip.a +-LIBRTE_LIB = $(LIB_PATH)/librte_bus_pci.so \ +- $(LIB_PATH)/librte_pci.so \ ++LIBRTE_LIB = $(LIB_PATH)/librte_pci.so \ ++ $(LIB_PATH)/librte_bus_pci.so \ + $(LIB_PATH)/librte_cmdline.so \ + $(LIB_PATH)/librte_hash.so \ + $(LIB_PATH)/librte_mempool.so \ +@@ -69,25 +76,35 @@ LIBRTE_LIB = $(LIB_PATH)/librte_bus_pci.so \ + $(LIB_PATH)/librte_gro.so \ + $(LIB_PATH)/librte_ring.so \ + $(LIB_PATH)/librte_mbuf.so \ +- $(LIB_PATH)/librte_telemetry.so \ + $(LIB_PATH)/librte_kni.so \ +- $(LIB_PATH)/librte_net_ixgbe.so \ + $(LIB_PATH)/librte_kvargs.so \ +- $(LIB_PATH)/librte_net_hinic.so \ +- $(LIB_PATH)/librte_net_i40e.so \ +- $(LIB_PATH)/librte_net_virtio.so \ + $(LIB_PATH)/librte_bus_vdev.so \ + $(LIB_PATH)/librte_net.so \ +- $(LIB_PATH)/librte_rcu.so \ + $(LIB_PATH)/librte_ethdev.so \ + $(LIB_PATH)/librte_pdump.so \ +- $(LIB_PATH)/librte_bpf.so \ +- $(LIB_PATH)/librte_pcapng.so \ +- $(LIB_PATH)/librte_security.so \ +- $(LIB_PATH)/librte_cryptodev.so \ +- $(LIB_PATH)/librte_net_pcap.so \ +- $(LIB_PATH)/librte_net_bond.so + ++ifeq ($(DPDK_VERSION_1911), 1) ++ CFLAGS += -DDPDK_VERSION_1911=1 ++ LIBRTE_LIB += $(LIB_PATH)/librte_pmd_pcap.so \ ++ $(LIB_PATH)/librte_pmd_bond.so \ ++ $(LIB_PATH)/librte_pmd_hinic.so \ ++ $(LIB_PATH)/librte_pmd_i40e.so \ ++ $(LIB_PATH)/librte_pmd_ixgbe.so \ ++ $(LIB_PATH)/librte_pmd_virtio.so ++else ++ LIBRTE_LIB += $(LIB_PATH)/librte_net_pcap.so \ ++ $(LIB_PATH)/librte_net_bond.so \ ++ $(LIB_PATH)/librte_net_hinic.so \ ++ $(LIB_PATH)/librte_net_i40e.so \ ++ $(LIB_PATH)/librte_net_ixgbe.so \ ++ $(LIB_PATH)/librte_net_virtio.so \ ++ $(LIB_PATH)/librte_pcapng.so \ ++ $(LIB_PATH)/librte_rcu.so \ ++ $(LIB_PATH)/librte_telemetry.so \ ++ $(LIB_PATH)/librte_bpf.so \ ++ $(LIB_PATH)/librte_security.so \ ++ $(LIB_PATH)/librte_cryptodev.so ++endif + + DEP_LIBS = $(LWIP_LIB) $(LIBRTE_LIB) + LDFLAGS += -Wl,--whole-archive $(DEP_LIBS) $(OBJS) -Wl,--no-whole-archive +diff --git a/src/lstack/include/lstack_lockless_queue.h b/src/lstack/include/lstack_lockless_queue.h +index c6f6f32..b0fc31f 100644 +--- a/src/lstack/include/lstack_lockless_queue.h ++++ b/src/lstack/include/lstack_lockless_queue.h +@@ -13,6 +13,8 @@ + #ifndef __GAZELLE_LOCKLESS_QUEUE_H__ + #define __GAZELLE_LOCKLESS_QUEUE_H__ + ++#include ++ + typedef struct lockless_queue_node { + struct lockless_queue_node *volatile next; + } lockless_queue_node; +diff --git a/src/lstack/netif/lstack_ethdev.c b/src/lstack/netif/lstack_ethdev.c +index e4e7ebd..2052240 100644 +--- a/src/lstack/netif/lstack_ethdev.c ++++ b/src/lstack/netif/lstack_ethdev.c +@@ -780,7 +780,11 @@ int32_t gazelle_eth_dev_poll(struct protocol_stack *stack, uint8_t use_ltran_fla + struct rte_ether_hdr *ethh = rte_pktmbuf_mtod(stack->pkts[i], struct rte_ether_hdr *); + if (unlikely(RTE_BE16(RTE_ETHER_TYPE_ARP) == ethh->ether_type)) { + stack_broadcast_arp(stack->pkts[i], stack); +- if (!use_ltran_flag && !rte_is_broadcast_ether_addr(ðh->dst_addr)) { ++#if DPDK_VERSION_1911 ++ if (!rte_is_broadcast_ether_addr(ðh->d_addr)) { ++#else /* DPDK_VERSION_1911 */ ++ if (!rte_is_broadcast_ether_addr(ðh->dst_addr)) { ++#endif /* DPDK_VERSION_1911 */ + // copy arp into other process + transfer_arp_to_other_process(stack->pkts[i]); + transfer_type = TRANSFER_KERNEL; +diff --git a/src/ltran/CMakeLists.txt b/src/ltran/CMakeLists.txt +index f37a232..1370dc8 100644 +--- a/src/ltran/CMakeLists.txt ++++ b/src/ltran/CMakeLists.txt +@@ -27,12 +27,40 @@ if($ENV{GAZELLE_COVERAGE_ENABLE}) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ftest-coverage -fprofile-arcs") + endif($ENV{GAZELLE_COVERAGE_ENABLE}) + ++if($ENV{DPDK_VERSION_1911}) ++ set(DPDK_DIR /usr/include/dpdk) ++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DDPDK_VERSION_1911=1") ++ set(DPDK_LINK_FLAGS "-Wl,-lrte_pmd_af_packet -Wl,-lrte_pmd_ark -Wl,-lrte_pmd_atlantic -Wl,-lrte_pmd_axgbe \ ++ -Wl,-lrte_pmd_bnxt -Wl,-lrte_pmd_bond -Wl,-lrte_pmd_cxgbe -Wl,-lrte_pmd_dpaa -Wl,-lrte_pmd_dpaa2 \ ++ -Wl,-lrte_pmd_e1000 -Wl,-lrte_pmd_ena -Wl,-lrte_pmd_enetc -Wl,-lrte_pmd_enic -Wl,-lrte_pmd_failsafe \ ++ -Wl,-lrte_pmd_i40e -Wl,-lrte_pmd_hinic -Wl,-lrte_pmd_ixgbe -Wl,-lrte_pmd_kni \ ++ -Wl,-lrte_pmd_nfp -Wl,-lrte_pmd_null -Wl,-lpcap -Wl,-lrte_pmd_qede -Wl,-lrte_pmd_ring -Wl,-lrte_pmd_softnic \ ++ -Wl,-lrte_pmd_pcap -Wl,-lrte_pmd_tap -Wl,-lrte_pmd_vdev_netvsc -Wl,-lrte_pmd_virtio -Wl,-lrte_pmd_vhost \ ++ -Wl,-lrte_mempool_octeontx -Wl,-lrte_pmd_octeontx -Wl,-lrte_bus_vmbus -Wl,-lrte_pmd_netvsc \ ++ -Wl,-lrte_pmd_vmxnet3_uio -Wl,-lrte_pmd_bbdev_null \ ++ -Wl,-lrte_pmd_null_crypto -Wl,-lrte_pmd_octeontx_crypto -Wl,-lrte_pmd_crypto_scheduler \ ++ -Wl,-lrte_pmd_dpaa2_sec -Wl,-lrte_pmd_dpaa_sec -Wl,-lrte_pmd_caam_jr -Wl,-lrte_pmd_virtio_crypto \ ++ -Wl,-lrte_pmd_octeontx_zip -Wl,-lrte_pmd_qat -Wl,-lrte_pmd_skeleton_event -Wl,-lrte_pmd_sw_event \ ++ -Wl,-lrte_pmd_dsw_event -Wl,-lrte_pmd_octeontx_ssovf -Wl,-lrte_pmd_dpaa_event -Wl,-lrte_pmd_dpaa2_event \ ++ -Wl,-lrte_pmd_opdl_event -Wl,-lrte_pmd_lio -Wl,-lrte_pmd_thunderx_nicvf -Wl,-lrte_pmd_ifc") ++else() ++ set(DPDK_DIR /usr/local/include/) ++ set(DPDK_LINK_FLAGS "-Wl,-lrte_net_af_packet -Wl,-lrte_net_ark -Wl,-lrte_net_atlantic -Wl,-lrte_net_axgbe \ ++ -Wl,-lrte_net_bnxt -Wl,-lrte_net_bond -Wl,-lrte_net_cxgbe -Wl,-lrte_net_dpaa -Wl,-lrte_net_dpaa2 \ ++ -Wl,-lrte_net_e1000 -Wl,-lrte_net_ena -Wl,-lrte_net_enetc -Wl,-lrte_net_enic -Wl,-lrte_net_failsafe \ ++ -Wl,-lrte_net_i40e -Wl,-lrte_net_hinic -Wl,-lrte_net_ixgbe -Wl,-lrte_net_kni \ ++ -Wl,-lrte_net_nfp -Wl,-lrte_net_null -Wl,-lpcap -Wl,-lrte_net_qede -Wl,-lrte_net_ring -Wl,-lrte_net_softnic \ ++ -Wl,-lrte_net_pcap -Wl,-lrte_net_tap -Wl,-lrte_net_vdev_netvsc -Wl,-lrte_net_virtio -Wl,-lrte_net_vhost \ ++ -Wl,-lrte_mempool_octeontx -Wl,-lrte_net_octeontx -Wl,-lrte_bus_vmbus -Wl,-lrte_net_netvsc \ ++ -Wl,-lrte_telemetry") ++endif($ENV{DPDK_VERSION_1911}) ++ + add_executable(ltran main.c ltran_param.c ltran_config.c ltran_ethdev.c ltran_stat.c ltran_errno.c + ltran_monitor.c ltran_instance.c ltran_stack.c ltran_tcp_conn.c ltran_tcp_sock.c + ltran_forward.c ltran_timer.c ${COMMON_DIR}/gazelle_dfx_msg.c ${COMMON_DIR}/dpdk_common.c + ${COMMON_DIR}/gazelle_parse_config.c) + +-target_include_directories(ltran PRIVATE ${COMMON_DIR} ${PROJECT_SOURCE_DIR} ${LWIP_DIR}) ++target_include_directories(ltran PRIVATE ${COMMON_DIR} ${PROJECT_SOURCE_DIR} ${LWIP_DIR} ${DPDK_DIR}) + target_compile_options(ltran PRIVATE -march=native -fno-strict-aliasing -D__ARM_FEATURE_CRC32=1 -DRTE_MACHINE_CPUFLAG_NEON + -DRTE_MACHINE_CPUFLAG_CRC32 -DRTE_MACHINE_CPUFLAG_PMULL -DRTE_MACHINE_CPUFLAG_AES + -DRTE_MACHINE_CPUFLAG_SHA1 -DRTE_MACHINE_CPUFLAG_SHA2 -include rte_config.h +@@ -51,16 +79,11 @@ set_target_properties(ltran PROPERTIES LINK_FLAGS "-L$ENV{DPDK_LIB_PATH} -Wl,--w + -Wl,-Bstatic -lrte_eal -Wl,-Bdynamic -Wl,-lrte_cmdline \ + -Wl,-lrte_sched -Wl,-lrte_reorder -Wl,-lrte_kni -Wl,-lrte_common_cpt -Wl,-lrte_common_octeontx -Wl,-lrte_common_dpaax -Wl,-lrte_bus_pci \ + -Wl,-lrte_bus_dpaa -Wl,-lrte_bus_vdev -Wl,-lrte_bus_fslmc -Wl,-lrte_mempool_bucket -Wl,-lrte_mempool_stack -Wl,-lrte_mempool_dpaa \ +- -Wl,-lrte_mempool_dpaa2 -Wl,-lrte_net_af_packet -Wl,-lrte_net_ark -Wl,-lrte_net_atlantic -Wl,-lrte_net_axgbe \ +- -Wl,-lrte_net_bnxt -Wl,-lrte_net_bond -Wl,-lrte_net_cxgbe -Wl,-lrte_net_dpaa -Wl,-lrte_net_dpaa2 -Wl,-lrte_net_e1000 -Wl,-lrte_net_ena \ +- -Wl,-lrte_net_enetc -Wl,-lrte_net_enic -Wl,-lrte_net_failsafe -Wl,-lrte_net_i40e -Wl,-lrte_net_hinic -Wl,-lrte_net_ixgbe -Wl,-lrte_net_kni \ +- -Wl,-lrte_net_nfp -Wl,-lrte_net_null -Wl,-lpcap -Wl,-lrte_net_qede -Wl,-lrte_net_ring -Wl,-lrte_net_softnic -Wl,-lrte_net_pcap \ +- -Wl,-lrte_net_tap -Wl,-lrte_net_vdev_netvsc -Wl,-lrte_net_virtio -Wl,-lrte_net_vhost \ +- -Wl,-lrte_bus_vmbus -Wl,-lrte_net_netvsc -Wl,-lrte_mempool_octeontx -Wl,-lrte_net_octeontx \ +- -Wl,-lrte_bus_ifpga -Wl,-lrte_stack -Wl,-lrte_telemetry\ ++ -Wl,-lrte_mempool_dpaa2 -Wl,-lrte_bus_ifpga -Wl,-lrte_stack \ ++ ${DPDK_LINK_FLAGS} \ + -Wl,--no-whole-archive -Wl,-lm -Wl,-lrt -Wl,-lnuma -Wl,-ldl -Wl,-export-dynamic -Wl,-export-dynamic \ + -Wl,--as-needed -Wl,-export-dynamic -Wl,-Map=ltran.map -Wl,--cref") + + add_executable(gazellectl ltran_dfx.c ${COMMON_DIR}/gazelle_dfx_msg.c) +-target_include_directories(gazellectl PRIVATE $ENV{DPDK_INCLUDE_FILE} ${COMMON_DIR}) ++target_include_directories(gazellectl PRIVATE $ENV{DPDK_INCLUDE_FILE} ${COMMON_DIR} ${DPDK_DIR}) + target_link_libraries(gazellectl PRIVATE boundscheck -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack) +diff --git a/src/ltran/ltran_dfx.c b/src/ltran/ltran_dfx.c +index e41c6db..b8d9c99 100644 +--- a/src/ltran/ltran_dfx.c ++++ b/src/ltran/ltran_dfx.c +@@ -10,10 +10,10 @@ + * See the Mulan PSL v2 for more details. + */ + ++#include + #include + #include + #include +- + #include + #include + #include +diff --git a/src/ltran/ltran_param.h b/src/ltran/ltran_param.h +index 40a92b1..75addcd 100644 +--- a/src/ltran/ltran_param.h ++++ b/src/ltran/ltran_param.h +@@ -13,6 +13,7 @@ + #ifndef __GAZELLE_PARAM_H__ + #define __GAZELLE_PARAM_H__ + ++#include + #include + #include + +-- +2.27.0 + diff --git a/0251-change-send_ring_size-32-in-lstack-conf.patch b/0251-change-send_ring_size-32-in-lstack-conf.patch new file mode 100644 index 0000000..03b092d --- /dev/null +++ b/0251-change-send_ring_size-32-in-lstack-conf.patch @@ -0,0 +1,25 @@ +From 8e11724484118e82a29fec768a0d601a613df705 Mon Sep 17 00:00:00 2001 +From: jiangheng +Date: Mon, 5 Sep 2022 18:57:38 +0800 +Subject: [PATCH] change send_ring_size 32 in lstack conf + +--- + src/lstack/lstack.conf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/lstack/lstack.conf b/src/lstack/lstack.conf +index 81da10a..fa7e284 100644 +--- a/src/lstack/lstack.conf ++++ b/src/lstack/lstack.conf +@@ -20,7 +20,7 @@ tcp_conn_count = 1500 + mbuf_count_per_conn = 170 + + # send ring size, default is 32, max is 2048 +-send_ring_size = 256 ++send_ring_size = 32 + + # 0: when send ring full, send return + # 1: when send ring full, alloc mbuf from mempool to send data +-- +2.27.0 + diff --git a/gazelle.spec b/gazelle.spec index 4c7f22b..a2d11e2 100644 --- a/gazelle.spec +++ b/gazelle.spec @@ -2,7 +2,7 @@ Name: gazelle Version: 1.0.1 -Release: 63 +Release: 64 Summary: gazelle is a high performance user-mode stack License: MulanPSL-2.0 URL: https://gitee.com/openeuler/gazelle @@ -54,212 +54,218 @@ Patch9036: 0036-the-sending-of-sock-last-data-is-triggered-by-lstack.patch Patch9037: 0037-add-gazellectl-lstack-constraint.patch Patch9038: 0038-refactor-event.patch Patch9039: 0039-update-license-lockless-queue.patch -Patch9040: 0040-adapt-to-gazelle.patch -Patch9041: 0041-modify-securec-to-boundscheck.patch -Patch9042: 0042-fix-sock-invalid-address.patch -Patch9043: 0043-exit-lstack-process-after-ltran-instance-logout.patch -Patch9044: 0044-use-atomic-variales-to-count.patch -Patch9045: 0045-re-arrange-the-program-to-invoke-rte_eth_dev_start-b.patch -Patch9046: 0046-delete-redundant-file.patch -Patch9047: 0047-lstack-all-exit-move-to-init.patch -Patch9048: 0048-clean-code-fix-huge-func.patch -Patch9049: 0049-add-kernel-path-in-epoll-funcs.patch -Patch9050: 0050-refactor-kernel-event-poll-epoll.patch -Patch9051: 0051-post-thread_phase1-sem-to-avoid-block-main-thread-wh.patch -Patch9052: 0052-adjust-the-number-of-RX-TX-mbufs-of-each-stack-threa.patch -Patch9053: 0053-modify-README.patch -Patch9054: 0054-bugfix-https-gitee.com-src-openeuler-gazelle-issues-.patch -Patch9055: 0055-update-README.md.patch -Patch9056: 0056-ltran-fix-use-after-free-issue.patch -Patch9057: 0057-refactor-pkt-read-send-performance.patch -Patch9058: 0058-ltran-support-checksum.patch -Patch9059: 0059-add-examples-readme-compile-components-main-file-and.patch -Patch9060: 0060-add-examples-parameter-parsing.patch -Patch9061: 0061-lstack-core-fix-reta_conf-array-size-calculation.patch -Patch9062: 0062-Replace-gettid-with-rte_gettid.patch -Patch9063: 0063-modify-the-code-for-canonical-and-update-the-cmake-b.patch -Patch9064: 0064-enable-secure-compile-and-open-compile-log.patch -Patch9065: 0065-support-epoll-et-trig-mode.patch -Patch9066: 0066-lstack-support-low-power.patch -Patch9067: 0067-add-port-mask-range-check.patch -Patch9068: 0068-release-kni-device.patch -Patch9069: 0069-optimize-check-ltran-exist.patch -Patch9070: 0070-clean-code.patch -Patch9071: 0071-clean-code.patch -Patch9072: 0072-Support-build-gazelle-with-clang.patch -Patch9073: 0073-Allow-dynamic-load-PMDs.patch -Patch9074: 0074-resolve-patch-conflicts.patch -Patch9075: 0075-support-epoll-oneshot.patch -Patch9076: 0076-clean-code-space-before-operator.patch -Patch9077: 0077-ltran-support-muti-proc-with-same-ip.patch -Patch9078: 0078-fix-rpc-msg-out-of-bound.patch -Patch9079: 0079-fix-traversal-array-use-NULL-pointer.patch -Patch9080: 0080-same-stack-thread-don-t-repeate-send-msg.patch -Patch9081: 0081-modify-huge-dir-dir-name.patch -Patch9082: 0082-fix-memcpy-out-bounds.patch -Patch9083: 0083-fix-miss-send-rpc-msg-err.patch -Patch9084: 0084-fix-proc-can-not-exit-due-to-lack-of-mem-startup-fai.patch -Patch9085: 0085-read-data-with-err-event.patch -Patch9086: 0086-del-gazelle-ring-cons.tail-atomic-protect.patch -Patch9087: 0087-fix-send-return-vale.patch -Patch9088: 0088-add-examples.patch -Patch9089: 0089-expand-thread-rpc-msg-pool-size.patch -Patch9090: 0090-fix-ltran-sig_default_handler-kill-pid.patch -Patch9091: 0091-fix-fd-leak.patch -Patch9092: 0092-fix-del-conn-use-after-free.patch -Patch9093: 0093-init-g_gazelle_errno-before-use.patch -Patch9094: 0094-code-format-specification.patch -Patch9095: 0095-fix-gazelle-kernel-event-thread-affinity-same-with-s.patch -Patch9096: 0096-have_corelist_arg.patch -Patch9097: 0097-ltran-update-list.patch -Patch9098: 0098-remove-get_reg_ring_free_count.patch -Patch9099: 0099-add-errorno-EISCONN.patch -Patch9100: 0100-fix-sendmsg-data-write-wrong.patch -Patch9101: 0101-lstack-restore-pci-bus-after-init.patch -Patch9102: 0102-fix-malloc-rpc-msg-fail.patch -Patch9103: 0103-support-dpdk-dynamic-memory.patch -Patch9104: 0104-fix-lwip_send-fail-free-pbuf-miss-data.patch -Patch9105: 0105-merger-wakeup.patch -Patch9106: 0106-conenct-support-multi-queues.patch -Patch9107: 0107-merge-sendmsg-write.patch -Patch9108: 0108-add-thread-select-path.patch -Patch9109: 0109-support-conf-control-app-bind-numa.patch -Patch9110: 0110-fix-epoll_wait-cover-kernel-event.patch -Patch9111: 0111-fix-read-stack-data-return-0-when-no-data.patch -Patch9112: 0112-fix-stack-wakeup-node-del.patch -Patch9113: 0113-avoid-useless-stack-check-wakeup-event.patch -Patch9114: 0114-fix-mesg-loss.patch -Patch9115: 0115-add-accept4-and-epoll_create1.patch -Patch9116: 0116-refactor-event-notice.patch -Patch9117: 0117-add-writev-and-readv.patch -Patch9118: 0118-optimized-some-function-in-lstack.patch -Patch9119: 0119-fix-gazellectl-stats-err-when-donot-bind-numa.patch -Patch9120: 0120-add-usleep-when-write_ring-is-busy.patch -Patch9121: 0121-optimize-variable-access.patch -Patch9122: 0122-add-gro.patch -Patch9123: 0123-expand-nic-rx-desc-size.patch -Patch9124: 0124-add-kni-local-support-in-lstack.patch -Patch9125: 0125-resolve-the-conflict-between-the-eth_dev_ops-variabl.patch -Patch9126: 0126-add-pdump-support-in-lstack.patch -Patch9127: 0127-fix-uninit-stack-port_id-when-use-mutil-NIC.patch -Patch9128: 0128-fix-memleak-in-dpdk_ethdev_init-unlikely-path.patch -Patch9129: 0129-fix-epoll_wait-return-when-timeout-is-0.patch -Patch9130: 0130-fix-gazelle-pdump-init-fail-with-dpdk-21.11.patch -Patch9131: 0131-fix-add-outdated-event.patch -Patch9132: 0132-revert-write-usleep.patch -Patch9133: 0133-reduce-thread-variable-access.patch -Patch9134: 0134-add-readv-and-readv-kernel.patch -Patch9135: 0135-add-unlock-before-after.patch -Patch9136: 0136-add-mutil-NIC-support-in-gazelle.patch -Patch9137: 0137-remove-filename_check-in-gazellectl-to-fix-build-err.patch -Patch9138: 0138-cancel-kernel-sock-epoll-ctl-when-lwip-sock-connect.patch -Patch9139: 0139-modify-readv-and-writev-first-buf-is-null.patch -Patch9140: 0140-fix-pdump-and-mutil-NIC-init-fail.patch -Patch9141: 0141-modify-duplicate-code.patch -Patch9142: 0142-merge-lstack-rx-tx-mbuf-pool.patch -Patch9143: 0143-avoid-send-stop-when-mbuf-pool-empty.patch -Patch9144: 0144-fix-pcb-snd_buf-flip.patch -Patch9145: 0145-fix-lwip-send-return-0-add-err-event.patch -Patch9146: 0146-fix-data-flow-error-when-use-NIC-in-kernel.patch -Patch9147: 0147-fix-write-event-error.patch -Patch9148: 0148-add-malloc-init-zero.patch -Patch9149: 0149-modify-event-error.patch -Patch9150: 0150-add-unix_prefix-in-gazellectl.patch -Patch9151: 0151-fix-epoll_wait-report-event0.patch -Patch9152: 0152-add-TSO.patch -Patch9153: 0153-optimize-app-thread-write-buff-block.patch -Patch9154: 0154-expand-rxtx-mbuf-pool.patch -Patch9155: 0155-add-pdump-support-in-ltran.patch -Patch9156: 0156-dfx-gazellectl-add-pcb-wins-info.patch -Patch9157: 0157-fix-genarate-out-event-untimely.patch -Patch9158: 0158-rxtx-mbuf-pool-size-config-by-conf.patch -Patch9159: 0159-fix-kernel-event-thread-bind-numa-failed.patch -Patch9160: 0160-stack-thread-parms-config-by-conf.patch -Patch9161: 0161-ltran-rxtx-mbuf-pool-size-config-by-conf.patch -Patch9162: 0162-move-select_thread_path-after-posix_api_init.patch -Patch9163: 0163-add-RXTX_NB_MBUF_MAX-to-limit-mbuf_pool_size-to-its-.patch -Patch9164: 0164-stack-thread-params-default-val.patch -Patch9165: 0165-optimite-net-type.patch -Patch9166: 0166-app-bind-numa-when-epoll-poll-create.patch -Patch9167: 0167-remove-mbuf-reserve-in-mbuf-alloc.patch -Patch9168: 0168-pkts-bulk-send-to-nic.patch -Patch9169: 0169-rpc-dont-send.patch -Patch9170: 0170-recv-pbuf-free-timely.patch -Patch9171: 0171-optimite-send-pkts-dul-index.patch -Patch9172: 0172-expand-data-recv-buff.patch -Patch9173: 0173-dfx-add-mempool-count-info.patch -Patch9174: 0174-write-support-without-epoll-poll.patch -Patch9175: 0175-add-rcv-nxt-dfx-info.patch -Patch9176: 0176-mbuf-private-data-size-align-cache-line.patch -Patch9177: 0177-fix-send-pkts-bluk-err.patch -Patch9178: 0178-free-recv-pkts-bluks.patch -Patch9179: 0179-fix-lstack-Makefile-warning.patch -Patch9180: 0180-fix-null-pointer-deref-in-stack_broadcast_close.patch -Patch9181: 0181-pbuf-align-cache-line.patch -Patch9182: 0182-support-set-main-thread-affinity.patch -Patch9183: 0183-reduce-epoll-wakeup.patch -Patch9184: 0184-revert-expand-recv-data-buff.patch -Patch9185: 0185-add-the-suggestion-of-using-the-u-parameter-when-the.patch -Patch9186: 0186-move-control_client_thread-creation-after-control_in.patch -Patch9187: 0187-add-ret-check-in-pthread_create-and-fix-example-bug.patch -Patch9188: 0188-add-log-message-when-wait-for-connecting-to-ltran.patch -Patch9189: 0189-add-gazelle-fuzz.patch -Patch9190: 0190-add-unitest.patch -Patch9191: 0191-add-gazelle-setup-tools.patch -Patch9192: 0192-test-readv-writev-epoll_create1-accept4.patch -Patch9193: 0193-add-fucntest.patch -Patch9194: 0194-fix-coredump-in-example-server-mum-mode.patch -Patch9195: 0195-bring-up-kni-when-init.patch -Patch9196: 0196-change-mbuf_pool_size-in-lstack.conf-to-tcp_conn_cou.patch -Patch9197: 0197-fix-build-error-in-lstack.patch -Patch9198: 0198-check-and-fix-wakeup_list-when-null-appears.patch -Patch9199: 0199-eneble-TSO-and-fix-TSO-mbuf-pktlen-error.patch -Patch9200: 0200-adapt-unsupport-sock-optname.patch -Patch9201: 0201-reduce-duplicate-code-in-lstack_cfg.c.patch -Patch9202: 0202-fix-private-data-offset-error.patch -Patch9203: 0203-fix-do_close-core-dump.patch -Patch9204: 0204-remove-rxtx-driver-cache.patch -Patch9205: 0205-send-ring-size-is-configure.patch -Patch9206: 0206-send-should-return-1-errno-EAGAIN-when-ring-full.patch -Patch9207: 0207-when-send-ring-full-whether-dynamic-alloc-mbuf-is-co.patch -Patch9208: 0208-add-pbuf-lock-when-aggregate-pbuf.patch -Patch9209: 0209-supprot-multi-process.patch -Patch9210: 0210-add-gazellectl-x-to-show-nic-stats.patch -Patch9211: 0211-add-same-node-ring-for-inter-proces-communication.patch -Patch9212: 0212-fix-send-reset-by-peer-when-not-sleep-after-connect.patch -Patch9213: 0213-add-tuple_filter-to-diff-rss-rule-and-tuple-filter.patch -Patch9214: 0214-support-tuple-rule-add-delete.patch -Patch9215: 0215-disable-tso-without-ipv4-checksum.patch -Patch9216: 0216-refactor-mbuf-private-data.patch -Patch9217: 0217-fix-kernel-scoket-select-path-error.patch -Patch9218: 0218-discard-wakeup_num-parameter.patch -Patch9219: 0219-fix-parse-args-error.patch -Patch9220: 0220-gazelle-send-recv-thread-bind-numa.patch -Patch9221: 0221-waiting-when-primary-process-not-start-already.patch -Patch9222: 0222-do-not-transfer-broadcast-arp-pkts-to-other-process.patch -Patch9223: 0223-revert-select_thread_path-and-optimize-app-thread-wh.patch -Patch9224: 0224-sepeate_string_to-array-add-error-args-handle.patch -Patch9225: 0225-check-primary-process-idx-and-secondary-lstack-num.patch -Patch9226: 0226-optimite-select_path-and-pbuf_take.patch -Patch9227: 0227-fix-build-err-on-select_path.patch -Patch9228: 0228-set-kni_switch-valid-only-in-primary-process.patch -Patch9229: 0229-add-socket-check-before-write-it.patch -Patch9230: 0230-optimize-do_close.patch -Patch9231: 0231-fix-config-flow-rule-race.patch -Patch9232: 0232-update-lstack.Makefile.patch -Patch9233: 0233-fix-gazellectl-x-error-when-multiplt-user-nic-config.patch -Patch9234: 0234-fix-client-connect-number-unbalance-on-lstack.patch -Patch9235: 0235-set-client-nonblock-to-fix-example-connect-error.patch -Patch9236: 0236-kni-down-not-stop-nic.patch -Patch9237: 0237-fix-rpc-msg-alloc-failed.patch -Patch9238: 0238-add-parentheses-to-fix-build-error.patch -Patch9239: 0239-add-udp-protocol-support-in-example.patch -Patch9240: 0240-fix-bond_ports-parse-error.patch -Patch9241: 0241-dfx-set-g_unix_fd-to-1-after-abnormal-close-fd-to-av.patch -Patch9242: 0242-dfx-security-function-failed-return-error-directly.patch -Patch9243: 0243-add-bond4-suport.patch -Patch9244: 0244-clean-code.patch -Patch9245: 0245-add-udp-multicast-support-in-gazelle.patch +Patch9040: 0040-fix-sock-invalid-address.patch +Patch9041: 0041-exit-lstack-process-after-ltran-instance-logout.patch +Patch9042: 0042-use-atomic-variales-to-count.patch +Patch9043: 0043-re-arrange-the-program-to-invoke-rte_eth_dev_start-b.patch +Patch9044: 0044-delete-redundant-file.patch +Patch9045: 0045-lstack-all-exit-move-to-init.patch +Patch9046: 0046-clean-code-fix-huge-func.patch +Patch9047: 0047-add-kernel-path-in-epoll-funcs.patch +Patch9048: 0048-refactor-kernel-event-poll-epoll.patch +Patch9049: 0049-post-thread_phase1-sem-to-avoid-block-main-thread-wh.patch +Patch9050: 0050-adjust-the-number-of-RX-TX-mbufs-of-each-stack-threa.patch +Patch9051: 0051-modify-README.patch +Patch9052: 0052-bugfix-https-gitee.com-src-openeuler-gazelle-issues-.patch +Patch9053: 0053-update-README.md.patch +Patch9054: 0054-ltran-fix-use-after-free-issue.patch +Patch9055: 0055-refactor-pkt-read-send-performance.patch +Patch9056: 0056-ltran-support-checksum.patch +Patch9057: 0057-add-examples-readme-compile-components-main-file-and.patch +Patch9058: 0058-add-examples-parameter-parsing.patch +Patch9059: 0059-lstack-core-fix-reta_conf-array-size-calculation.patch +Patch9060: 0060-Replace-gettid-with-rte_gettid.patch +Patch9061: 0061-modify-the-code-for-canonical-and-update-the-cmake-b.patch +Patch9062: 0062-enable-secure-compile-and-open-compile-log.patch +Patch9063: 0063-support-epoll-et-trig-mode.patch +Patch9064: 0064-lstack-support-low-power.patch +Patch9065: 0065-add-port-mask-range-check.patch +Patch9066: 0066-release-kni-device.patch +Patch9067: 0067-optimize-check-ltran-exist.patch +Patch9068: 0068-clean-code.patch +Patch9069: 0069-clean-code.patch +Patch9070: 0070-Support-build-gazelle-with-clang.patch +Patch9071: 0071-Allow-dynamic-load-PMDs.patch +Patch9072: 0072-support-epoll-oneshot.patch +Patch9073: 0073-modify-readme-and-clean-code.patch +Patch9074: 0074-ltran-support-muti-proc-with-same-ip.patch +Patch9075: 0075-fix-rpc-msg-out-of-bound.patch +Patch9076: 0076-fix-traversal-array-use-NULL-pointer.patch +Patch9077: 0077-same-stack-thread-don-t-repeate-send-msg.patch +Patch9078: 0078-fix-memcpy-out-bounds.patch +Patch9079: 0079-fix-miss-send-rpc-msg-err.patch +Patch9080: 0080-fix-proc-can-not-exit-due-to-lack-of-mem-startup-fai.patch +Patch9081: 0081-read-data-with-err-event.patch +Patch9082: 0082-del-gazelle-ring-cons.tail-atomic-protect.patch +Patch9083: 0083-fix-send-return-vale.patch +Patch9084: 0084-add-examples.patch +Patch9085: 0085-expand-thread-rpc-msg-pool-size.patch +Patch9086: 0086-fix-fd-leak.patch +Patch9087: 0087-fix-del-conn-use-after-free.patch +Patch9088: 0088-init-g_gazelle_errno-before-use.patch +Patch9089: 0089-code-format-specification.patch +Patch9090: 0090-fix-gazelle-kernel-event-thread-affinity-same-with-s.patch +Patch9091: 0091-have_corelist_arg.patch +Patch9092: 0092-ltran-update-list.patch +Patch9093: 0093-remove-get_reg_ring_free_count.patch +Patch9094: 0094-add-errorno-EISCONN.patch +Patch9095: 0095-fix-sendmsg-data-write-wrong.patch +Patch9096: 0096-lstack-restore-pci-bus-after-init.patch +Patch9097: 0097-fix-malloc-rpc-msg-fail.patch +Patch9098: 0098-support-dpdk-dynamic-memory.patch +Patch9099: 0099-fix-lwip_send-fail-free-pbuf-miss-data.patch +Patch9100: 0100-merger-wakeup.patch +Patch9101: 0101-conenct-support-multi-queues.patch +Patch9102: 0102-merge-sendmsg-write.patch +Patch9103: 0103-add-thread-select-path.patch +Patch9104: 0104-support-conf-control-app-bind-numa.patch +Patch9105: 0105-fix-epoll_wait-cover-kernel-event.patch +Patch9106: 0106-fix-read-stack-data-return-0-when-no-data.patch +Patch9107: 0107-fix-stack-wakeup-node-del.patch +Patch9108: 0108-avoid-useless-stack-check-wakeup-event.patch +Patch9109: 0109-fix-mesg-loss.patch +Patch9110: 0110-add-accept4-and-epoll_create1.patch +Patch9111: 0111-refactor-event-notice.patch +Patch9112: 0112-add-writev-and-readv.patch +Patch9113: 0113-optimized-some-function-in-lstack.patch +Patch9114: 0114-fix-gazellectl-stats-err-when-donot-bind-numa.patch +Patch9115: 0115-add-usleep-when-write_ring-is-busy.patch +Patch9116: 0116-optimize-variable-access.patch +Patch9117: 0117-add-gro.patch +Patch9118: 0118-expand-nic-rx-desc-size.patch +Patch9119: 0119-add-kni-local-support-in-lstack.patch +Patch9120: 0120-resolve-the-conflict-between-the-eth_dev_ops-variabl.patch +Patch9121: 0121-add-pdump-support-in-lstack.patch +Patch9122: 0122-fix-uninit-stack-port_id-when-use-mutil-NIC.patch +Patch9123: 0123-fix-memleak-in-dpdk_ethdev_init-unlikely-path.patch +Patch9124: 0124-fix-epoll_wait-return-when-timeout-is-0.patch +Patch9125: 0125-fix-gazelle-pdump-init-fail-with-dpdk-21.11.patch +Patch9126: 0126-fix-add-outdated-event.patch +Patch9127: 0127-revert-write-usleep.patch +Patch9128: 0128-reduce-thread-variable-access.patch +Patch9129: 0129-add-readv-and-readv-kernel.patch +Patch9130: 0130-add-unlock-before-after.patch +Patch9131: 0131-add-mutil-NIC-support-in-gazelle.patch +Patch9132: 0132-remove-filename_check-in-gazellectl-to-fix-build-err.patch +Patch9133: 0133-cancel-kernel-sock-epoll-ctl-when-lwip-sock-connect.patch +Patch9134: 0134-modify-readv-and-writev-first-buf-is-null.patch +Patch9135: 0135-fix-pdump-and-mutil-NIC-init-fail.patch +Patch9136: 0136-modify-duplicate-code.patch +Patch9137: 0137-merge-lstack-rx-tx-mbuf-pool.patch +Patch9138: 0138-avoid-send-stop-when-mbuf-pool-empty.patch +Patch9139: 0139-fix-pcb-snd_buf-flip.patch +Patch9140: 0140-fix-lwip-send-return-0-add-err-event.patch +Patch9141: 0141-fix-data-flow-error-when-use-NIC-in-kernel.patch +Patch9142: 0142-fix-write-event-error.patch +Patch9143: 0143-add-malloc-init-zero.patch +Patch9144: 0144-modify-event-error.patch +Patch9145: 0145-add-unix_prefix-in-gazellectl.patch +Patch9146: 0146-fix-epoll_wait-report-event0.patch +Patch9147: 0147-add-TSO.patch +Patch9148: 0148-optimize-app-thread-write-buff-block.patch +Patch9149: 0149-expand-rxtx-mbuf-pool.patch +Patch9150: 0150-add-pdump-support-in-ltran.patch +Patch9151: 0151-dfx-gazellectl-add-pcb-wins-info.patch +Patch9152: 0152-fix-genarate-out-event-untimely.patch +Patch9153: 0153-rxtx-mbuf-pool-size-config-by-conf.patch +Patch9154: 0154-fix-kernel-event-thread-bind-numa-failed.patch +Patch9155: 0155-stack-thread-parms-config-by-conf.patch +Patch9156: 0156-ltran-rxtx-mbuf-pool-size-config-by-conf.patch +Patch9157: 0157-move-select_thread_path-after-posix_api_init.patch +Patch9158: 0158-add-RXTX_NB_MBUF_MAX-to-limit-mbuf_pool_size-to-its-.patch +Patch9159: 0159-stack-thread-params-default-val.patch +Patch9160: 0160-optimite-net-type.patch +Patch9161: 0161-app-bind-numa-when-epoll-poll-create.patch +Patch9162: 0162-remove-mbuf-reserve-in-mbuf-alloc.patch +Patch9163: 0163-pkts-bulk-send-to-nic.patch +Patch9164: 0164-rpc-dont-send.patch +Patch9165: 0165-recv-pbuf-free-timely.patch +Patch9166: 0166-optimite-send-pkts-dul-index.patch +Patch9167: 0167-expand-data-recv-buff.patch +Patch9168: 0168-dfx-add-mempool-count-info.patch +Patch9169: 0169--write-support-without-epoll-poll.patch +Patch9170: 0170-add-rcv-nxt-dfx-info.patch +Patch9171: 0171-mbuf-private-data-size-align-cache-line.patch +Patch9172: 0172-fix-send-pkts-bluk-err.patch +Patch9173: 0173-free-recv-pkts-bluks.patch +Patch9174: 0174-fix-lstack-Makefile-warning.patch +Patch9175: 0175-fix-null-pointer-deref-in-stack_broadcast_close.patch +Patch9176: 0176-pbuf-align-cache-line.patch +Patch9177: 0177-support-set-main-thread-affinity.patch +Patch9178: 0178-reduce-epoll-wakeup.patch +Patch9179: 0179-revert-expand-recv-data-buff.patch +Patch9180: 0180-add-the-suggestion-of-using-the-u-parameter-when-the.patch +Patch9181: 0181-move-control_client_thread-creation-after-control_in.patch +Patch9182: 0182-add-ret-check-in-pthread_create-and-fix-example-bug.patch +Patch9183: 0183-add-log-message-when-wait-for-connecting-to-ltran.patch +Patch9184: 0184-add-gazelle-fuzz.patch +Patch9185: 0185-add-unitest.patch +Patch9186: 0186-add-gazelle-setup-tools.patch +Patch9187: 0187-test-readv-writev-epoll_create1-accept4.patch +Patch9188: 0188-add-fucntest.patch +Patch9189: 0189-fix-coredump-in-example-server-mum-mode.patch +Patch9190: 0190-bring-up-kni-when-init.patch +Patch9191: 0191-change-mbuf_pool_size-in-lstack.conf-to-tcp_conn_cou.patch +Patch9192: 0192-fix-build-error-in-lstack.patch +Patch9193: 0193-check-and-fix-wakeup_list-when-null-appears.patch +Patch9194: 0194-eneble-TSO-and-fix-TSO-mbuf-pktlen-error.patch +Patch9195: 0195-adapt-unsupport-sock-optname.patch +Patch9196: 0196-reduce-duplicate-code-in-lstack_cfg.c.patch +Patch9197: 0197-fix-private-data-offset-error.patch +Patch9198: 0198-fix-do_close-core-dump.patch +Patch9199: 0199-remove-rxtx-driver-cache.patch +Patch9200: 0200-send-ring-size-is-configure.patch +Patch9201: 0201-send-should-return-1-errno-EAGAIN-when-ring-full.patch +Patch9202: 0202-when-send-ring-full-whether-dynamic-alloc-mbuf-is-co.patch +Patch9203: 0203-add-pbuf-lock-when-aggregate-pbuf.patch +Patch9204: 0204-supprot-multi-process.patch +Patch9205: 0205-add-gazellectl-x-to-show-nic-stats.patch +Patch9206: 0206-add-same-node-ring-for-inter-proces-communication.patch +Patch9207: 0207-fix-send-reset-by-peer-when-not-sleep-after-connect.patch +Patch9208: 0208-add-tuple-filter-in-conf-to-diff-rss-rule-and-tuple-.patch +Patch9209: 0210-disable-tso-without-ipv4-checksum.patch +Patch9210: 0210-support-tuple-rule-add-delete.patch +Patch9211: 0211-refactor-mbuf-private-data.patch +Patch9212: 0212-fix-kernel-scoket-select-path-error.patch +Patch9213: 0213-discard-wakeup_num-parameter.patch +Patch9214: 0214-fix-parse-args-error.patch +Patch9215: 0215-gazelle-send-recv-thread-bind-numa.patch +Patch9216: 0216-waiting-when-primary-process-not-start-already.patch +Patch9217: 0217-sepeate_string_to-array-add-error-args-handle.patch +Patch9218: 0218-do-not-transfer-broadcast-arp-pkts-to-other-process.patch +Patch9219: 0219-revert-select_thread_path-and-optimize-app-thread-wh.patch +Patch9220: 0220-check-primary-process-idx-and-secondary-lstack-num.patch +Patch9221: 0221-optimite-select_path-and-pbuf_take.patch +Patch9222: 0222-fix-build-err-on-select_path.patch +Patch9223: 0223-set-kni_switch-valid-only-in-primary-process.patch +Patch9224: 0224-optimize-do_close.patch +Patch9225: 0225-add-socket-check-before-write-it.patch +Patch9226: 0226-update-lstack.Makefile.patch +Patch9227: 0227-fix-config-flow-rule-race.patch +Patch9228: 0228-fix-build-err-with-dpdk-21.11.patch +Patch9229: 0229-fix-gazellectl-x-error-when-multiplt-user-nic-config.patch +Patch9230: 0230-fix-client-connect-number-unbalance-on-lstack.patch +Patch9231: 0231-kni-down-not-stop-nic.patch +Patch9232: 0232-fix-rpc-msg-alloc-failed.patch +Patch9233: 0233-add-parentheses-to-fix-build-error.patch +Patch9234: 0234-fix-bond_ports-parse-error.patch +Patch9235: 0235-dfx-set-g_unix_fd-to-1-after-abnormal-close-fd-to-av.patch +Patch9236: 0236-dfx-security-function-failed-return-error-directly.patch +Patch9237: 0237-add-bond4-suport.patch +Patch9238: 0238-clean-code.patch +Patch9239: 0239-add-udp-multicast-support-in-gazelle.patch +Patch9240: 0240-modify-huge-dir-dir-name.patch +Patch9241: 0241-drop-netbuf-in-read_lwip_data-to-fix-mem-overflow.patch +Patch9242: 0242-send-recv-thread-bind-numa-only-app_bind_numa-set-to.patch +Patch9243: 0243-fix-change-low-power-mod-invalid.patch +Patch9244: 0244-add-exception-handling-for-is_dst_ip_localhost.patch +Patch9245: 0245-fix-gazellectl-block-before-lstack-registration-is-c.patch +Patch9246: 0246-fix-udp-send-recv-in-muliple-queue.patch +Patch9247: 0247-set-sock-when-select-path-is-PATH_UNKNOW.patch +Patch9248: 0248-rpc-pool-use-dpdk-mempool-replace-array.patch +Patch9249: 0249-fix-t_params-use-after-free-in-kernel-event-thread.patch +Patch9250: 0250-adapt-to-dpdk-19.11-and-dpdk-21.11.patch +Patch9251: 0251-change-send_ring_size-32-in-lstack-conf.patch %description %{name} is a high performance user-mode stack. @@ -270,6 +276,7 @@ ExclusiveArch: x86_64 aarch64 %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} @@ -300,65 +307,93 @@ install -Dpm 0640 %{_builddir}/%{name}-%{version}/src/ltran/ltran.conf %{b %config(noreplace) %{conf_path}/ltran.conf %changelog -* Tue May 16 2023 kircher - 1.0.1-63 +* Thu Jun 15 2023 jiangheng12 - 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 - 1.0.1-63 +- set sock when select path is PATH_UNKNOW + +* Wed Jun 14 2023 jiangheng12 - 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 - 1.0.1-61 +- revert cleancode series patches + +* Fri Jun 2 2023 LemmyHuang - 1.0.1-60 +- fix socket init and clean +- fix coredump caused by lwip_get_socket_nouse + +* Mon May 29 2023 LemmyHuang - 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 - 1.0.1-58 +- modify hugepage directory name + +* Tue May 16 2023 kircher - 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 - -* Mon Apr 10 2023 jiangheng12 - 1.0.1-62 - 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 udp protocol support in example - 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 -- set client nonblock to fix example connect error - -* Fri Mar 31 2023 jiangheng12 - 1.0.1-61 -- fix gazellectl -x error when multiplt user nic config -- update lstack.Makefile -- fix config flow rule race -- optimize do_close - fix client connect number unbalance on lstack +- fix gazellectl -x error when multiplt user nic config -* Tue Mar 28 2023 jiangheng12 - 1.0.1-60 +* Sat May 13 2023 jiangheng12 - 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 - -* Mon Mar 27 2023 kircher - 1.0.1-59 - optimite select_path and pbuf_take - check primary process idx and secondary lstack num -- sepeate_string_to array add error args handle - revert select_thread_path and optimize app thread when sendmsg - -* Wed Mar 22 2023 kircher - 1.0.1-58 - do not transfer broadcast arp pkts to other process + +* Thu Apr 20 2023 sunsuwan - 1.0.1-55 +- sepeate_string_to array add error args handle + +* Thu Apr 20 UTC wu-changsheng - 1.0.1-54 - waiting when primary process not start already - gazelle send/recv thread bind numa -* Tue Mar 21 2023 jiangheng12 - 1.0.1-57 -- discard wakeup_num parameter +* Tue Mar 21 2023 jiangheng12 - 1.0.1-53 - fix parse args error - -* Sat Mar 18 2023 jiangheng12 - 1.0.1-56 +- discard wakeup_num parameter - fix kernel scoket select path error -* Fri Mar 17 UTC wu-changsheng - 1.0.1-55 -- refactor mbuf private data -- disable tso without ipv4 checksum - -* Mon Mar 13 2023 jiangheng - 1.0.1-54 +* Sat Mar 18 2023 jiangheng - 1.0.1-52 - add pbuf lock when aggregate pbuf - support multi process -- add gazellectl x to show nic stats -- add same node ring for inter process communication +- 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 and tuple filter +- 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 - 1.0.1-53 +* Sat Mar 11 2023 kircher - 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 @@ -366,109 +401,108 @@ install -Dpm 0640 %{_builddir}/%{name}-%{version}/src/ltran/ltran.conf %{b - fix do_close core dump - fix private data offset error -* Mon Feb 27 2023 wu-changsheng - 1.0.1-52 +* Mon Feb 27 2023 wu-changsheng - 1.0.1-50 - reduce duplicate code in lstack_cfg.c - adapt unsupport sock optname -* Wed Feb 22 2023 kircher - 1.0.1-51 +* Wed Feb 22 2023 kircher - 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 - 1.0.1-50 +* Mon Feb 13 2023 net - 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 - 1.0.1-49 +* Mon Feb 6 2023 jiangheng12 - 1.0.1-47 - add gazelle setup tools - add unitest -* Tue Jan 31 2023 kircher - 1.0.1-48 +* Tue Jan 31 2023 kircher - 1.0.1-46 - add gazelle fuzz - add log message when wait for connecting to ltran -* Mon Jan 16 2023 kircher - 1.0.1-47 +* Mon Jan 16 2023 kircher - 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 - 1.0.1-46 +* Fri Jan 6 2023 kircher - 1.0.1-44 - add the suggestion of using the -u parameter when the connection to unix socket fails -* Fri Dec 30 2022 wuchangsheng - 1.0.1-45 +* Fri Dec 30 2022 wuchangsheng - 1.0.1-43 - revert expand recv data buff -* Wed Dec 28 2022 wuchangsheng - 1.0.1-44 +* Wed Dec 28 2022 wuchangsheng - 1.0.1-42 - pbuf cacheline align support main thread affinity reduce epoll wakeup -* Fri Dec 23 2022 kircher - 1.0.1-43 +* Fri Dec 23 2022 kircher - 1.0.1-41 - fix null pointer deref in stack_broadcast_close - fix lstack Makefile warning -* Thu Dec 22 2022 wuchangsheng - 1.0.1-42 +* Thu Dec 22 2022 wuchangsheng - 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 - 1.0.1-41 -- add dfx mempool info - write without epoll/poll +* Wed Dec 21 2022 wuchangsheng - 1.0.1-39 +- add mempool dfx info + write support without epoll/poll -* Tue Dec 20 2022 wuchangsheng - 1.0.1-40 +* Tue Dec 20 2022 wuchangsheng - 1.0.1-38 - optimite recv data buff and send pkts index -* Sun Dec 18 2022 wuchangsheng - 1.0.1-39 -- send pkts bluk to nic - rpc dont send +* Sun Dec 18 2022 wuchangsheng - 1.0.1-37 +- pkts-bulk-send-to-nic and rpc-dont-send -* Sat Dec 17 2022 jiangheng - 1.0.1-38 +* Sat Dec 17 2022 jiangheng - 1.0.1-36 - remove mbuf reserve in mbuf alloc -* Sat Dec 17 2022 jiangheng - 1.0.1-38 +* Sat Dec 17 2022 jiangheng - 1.0.1-35 - optimite net type app bind numa when epoll/poll create - stack thread params set dafault value + stack thread params set dafult value -* Sat Dec 17 2022 kircher - 1.0.1-37 +* Sat Dec 17 2022 kircher - 1.0.1-34 - add RXTX_NB_MBUF_MAX to limit mbuf_pool_size to its range -* Fri Dec 16 2022 kircher - 1.0.1-36 +* Fri Dec 16 2022 kircher - 1.0.1-33 - move select_thread_path after posix_api_init -* Thu Dec 15 2022 jiangheng - 1.0.1-35 -- ltran rxtx mbuf pool config by conf +* Thu Dec 15 2022 jiangheng - 1.0.1-32 +- ltran rxtx mbuf pool size config by conf -* Thu Dec 15 2022 wuchangsheng - 1.0.1-34 +* Thu Dec 15 2022 wuchangsheng - 1.0.1-31 - stack thread params config by lstack.conf -* Wed Dec 14 2022 jiangheng - 1.0.1-33 -- fix kernel event thread bind numa failed +* Wed Dec 14 2022 jiangheng - 1.0.1-30 +- fix kernel event thread bind nuam failed -* Tue Dec 13 2022 wuchangsheng - 1.0.1-32 -- dfx add pcb windows snd buf info - rxtx mbuf pool config by conf +* Tue Dec 13 2022 wuchangsheng - 1.0.1-29 +- dfx add pcb windows info + rxtx mbuf pool size config by conf -* Mon Dec 12 2022 kircher - 1.0.1-31 +* Mon Dec 12 2022 kircher - 1.0.1-28 - add pdump support in ltran -* Sat Dec 3 2022 wuchangsheng - 1.0.1-30 +* Sat Dec 3 2022 wuchangsheng - 1.0.1-27 - optimize app thread write buff block -* Fri Dec 2 2022 wuchangsheng - 1.0.1-29 -- fix epoll_wait report 0 events +* Fri Dec 2 2022 wuchangsheng - 1.0.1-26 +- fix epoll_wait report events 0 -* Thu Dec 1 UTC compile_success <980965867@qq.com> - 1.0.1-28 +* Thu Dec 1 UTC compile_success <980965867@qq.com> - 1.0.1-25 - add malloc init zero -- modify EPOLLOUT event is overwritten +- modify EPOLLOUT event is overwritten. -* Mon Nov 28 UTC compile_success <980965867@qq.com> - 1.0.1-27 +* Sat Nov 26 UTC compile_success <980965867@qq.com> - 1.0.1-24 - fix write event error -* Wed Nov 16 2022 kircher - 1.0.1-26 +* Wed Nov 16 2022 kircher - 1.0.1-23 - modify duplicate code - fix data flow error when use NIC in kernel - fix lwip send return 0 add err event @@ -476,54 +510,45 @@ install -Dpm 0640 %{_builddir}/%{name}-%{version}/src/ltran/ltran.conf %{b - avoid send stop when mbuf pool empty - merge lstack rx tx mbuf pool -* Tue Nov 15 2022 kircher - 1.0.1-25 +* Tue Nov 15 2022 kircher - 1.0.1-22 - fix pdump and mutil NIC init fail -* Mon Nov 14 2022 wuchangsheng - 1.0.1-24 -- support muti nic and fix bugs +* Mon Nov 14 2022 wuchangsheng - 1.0.1-21 +- support muti-nic + fix some bugs -* Tue Nov 8 2022 kircher - 1.0.1-23 +* Tue Nov 8 2022 kircher - 1.0.1-20 - add pdump support in lstack -* Sat Nov 07 2022 wuchangsheng - 1.0.1-22 +* Sat Nov 07 2022 wuchangsheng - 1.0.1-19 - resolve the conflict between the eth_dev_ops variable and the dpdk-19.11 -* Sat Nov 05 2022 kircher - 1.0.1-21 -- add kni local support in lstack +* Sat Nov 05 2022 kircher - 1.0.1-18 +- Add kni local support in lstack -* Wed Nov 02 2022 wuchangsheng - 1.0.1-20 -- add gro - optimize variable access +* Fri Nov 04 2022 wuchangsheng - 1.0.1-17 +- Optimize ceph client performance -* Sat Oct 08 2022 wuchangsheng - 1.0.1-19 +* Sat Oct 08 2022 wuchangsheng - 1.0.1-16 - refactor event addapt for ceph client -* Mon Sep 05 2022 wuchangsheng - 1.0.1-18 +* Mon Sep 05 2022 wuchangsheng - 1.0.1-15 +- expand rpc msg pool size + +* Mon Sep 05 2022 wuchangsheng - 1.0.1-14 - backport bugfix and doc -* Mon Aug 08 2022 fushanqing - 1.0.1-17 +* Mon Aug 08 2022 fushanqing - 1.0.1-13 - Unified license name specification -* Tue Aug 2 2022 wuchangsheng - 1.0.1-16 -- ltran support muti proc with same ip -- same bugfix and clean code -- modify huge dir dir name +* Tue Jul 26 2022 wuchangsheng - 1.0.1-12 +- support epoll oneshot -* Thu Jul 26 2022 wuchangsheng - 1.0.1-15 -- support epoll oneshot +* Tue Jul 19 2022 xiusailong - 1.0.1-11 +- reconstruct packet sending and receiving to improve performance -* Thu Jul 21 2022 xiusailong - 1.0.1-14 -- backport upstream patches from repository - -* Fri Jul 8 2022 jiangheng - 1.0.1-13 -- Type:bugfix -- CVE: -- SUG:NA -- DESC:modify eth_dev_ops to lstack_eth_dev_ops - adapt dpdk19.11 - -* Thu Jul 7 2022 jiangheng - 1.0.1-12 +* Thu Jul 7 2022 jiangheng - 1.0.1-10 - Type:bugfix - CVE: - SUG:NA @@ -532,12 +557,6 @@ install -Dpm 0640 %{_builddir}/%{name}-%{version}/src/ltran/ltran.conf %{b refactor pkt read send to improve performance refactoe kernle event to improve performanc -* Thu Jul 7 2022 xiusailong - 1.0.1-11 -- modify the required dpdk version number - -* Tue Jun 14 2022 xiusailong - 1.0.1-10 -- adapt to gazelle - * Fri May 27 2022 xiusailong - 1.0.1-9 - update license lockless queue