Projects
openEuler:20.03:LTS:SP1
gazelle
Sign Up
Log In
Username
Password
We truncated the diff of some files because they were too big. If you want to see the full diff for every file,
click here
.
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 89
View file
_service:tar_scm_kernel_repo:gazelle.spec
Changed
@@ -2,7 +2,7 @@ Name: gazelle Version: 1.0.2 -Release: 24 +Release: 25 Summary: gazelle is a high performance user-mode stack License: MulanPSL-2.0 URL: https://gitee.com/openeuler/gazelle @@ -125,6 +125,14 @@ Patch9109: 0109-match_host_addr-func-support-ipv6.patch Patch9110: 0110-add-example-keep-alive-interval-para.patch Patch9111: 0111-update-src-common-dpdk_common.c.patch +Patch9112: 0112-listen_shadow-support-ipv6.patch +Patch9113: 0113-lstack_dpdk-limit-mbuf-max-num.patch +Patch9114: 0114-gazellectl-add-tcp_input-empty-ack-cnt.patch +Patch9115: 0115-add-socket-accept-fail-cnt.patch +Patch9116: 0116-diff-lstack-and-ltran-dfx-sock.patch +Patch9117: 0117-fix-host_addr6-can-be-assigned-a-multicast-address.patch +Patch9118: 0118-udp-do-not-merge-data-into-last-pbuf.patch +Patch9119: 0119-adpat-dpdk-23.11.patch %description %{name} is a high performance user-mode stack. @@ -166,6 +174,16 @@ %config(noreplace) %{conf_path}/ltran.conf %changelog +* Sat Jan 20 CST yinbin6 <yinbin8@huawei.com> - 1.0.2-25 +- adpat dpdk 23.11 +- udp: do not merge data into last pbuf +- fix host_addr6 can be assigned a multicast address +- diff lstack and ltran dfx sock +- add socket accept fail cnt +- gazellectl: add tcp_input empty ack cnt +- lstack_dpdk: limit mbuf max num +- listen_shadow support ipv6 + * Sat Jan 06 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-24 - replace with gz_addr_t - update src/common/dpdk_common.c
View file
_service:tar_scm_kernel_repo:0112-listen_shadow-support-ipv6.patch
Added
@@ -0,0 +1,51 @@ +From 0fddaa74aa71ec25ee9cb1db141dd8a778e6e76d Mon Sep 17 00:00:00 2001 +From: zhengjiebing <zhengjiebing_yewu@cmss.chinamobile.com> +Date: Mon, 8 Jan 2024 15:08:24 +0800 +Subject: [PATCH] listen_shadow support ipv6 + +--- + src/lstack/core/lstack_protocol_stack.c | 12 +++++++++--- + 1 file changed, 9 insertions(+), 3 deletions(-) + +diff --git a/src/lstack/core/lstack_protocol_stack.c b/src/lstack/core/lstack_protocol_stack.c +index f849bcd..e7b541e 100644 +--- a/src/lstack/core/lstack_protocol_stack.c ++++ b/src/lstack/core/lstack_protocol_stack.c +@@ -1128,9 +1128,15 @@ int32_t stack_single_listen(int32_t fd, int32_t backlog) + /* listen sync to all protocol stack thread, so that any protocol stack thread can build connect */ + int32_t stack_broadcast_listen(int32_t fd, int32_t backlog) + { ++ typedef union sockaddr_union { ++ struct sockaddr sa; ++ struct sockaddr_in in; ++ struct sockaddr_in6 in6; ++ } sockaddr_t; ++ + struct protocol_stack *cur_stack = get_protocol_stack_by_fd(fd); + struct protocol_stack *stack = NULL; +- struct sockaddr addr; ++ sockaddr_t addr; + socklen_t addr_len = sizeof(addr); + int32_t ret, clone_fd; + +@@ -1140,7 +1146,7 @@ int32_t stack_broadcast_listen(int32_t fd, int32_t backlog) + GAZELLE_RETURN(EINVAL); + } + +- ret = rpc_call_getsockname(fd, &addr, &addr_len); ++ ret = rpc_call_getsockname(fd, (struct sockaddr *)&addr, &addr_len); + if (ret != 0) { + return ret; + } +@@ -1154,7 +1160,7 @@ int32_t stack_broadcast_listen(int32_t fd, int32_t backlog) + continue; + } + if (stack != cur_stack) { +- clone_fd = rpc_call_shadow_fd(stack, fd, &addr, sizeof(addr)); ++ clone_fd = rpc_call_shadow_fd(stack, fd, (struct sockaddr *)&addr, addr_len); + if (clone_fd < 0) { + stack_broadcast_close(fd); + return clone_fd; +-- +2.33.0 +
View file
_service:tar_scm_kernel_repo:0113-lstack_dpdk-limit-mbuf-max-num.patch
Added
@@ -0,0 +1,78 @@ +From aa0bd688a6dae115e136771fda747c9428e65561 Mon Sep 17 00:00:00 2001 +From: yangchen <yangchen145@huawei.com> +Date: Tue, 2 Jan 2024 09:32:00 +0800 +Subject: [PATCH] lstack_dpdk: limit mbuf max num + +--- + src/lstack/core/lstack_dpdk.c | 5 +++++ + src/lstack/include/lstack_dpdk.h | 18 ++++++++---------- + src/ltran/main.c | 2 +- + 3 files changed, 14 insertions(+), 11 deletions(-) + +diff --git a/src/lstack/core/lstack_dpdk.c b/src/lstack/core/lstack_dpdk.c +index 729a84c..580dd1d 100644 +--- a/src/lstack/core/lstack_dpdk.c ++++ b/src/lstack/core/lstack_dpdk.c +@@ -155,6 +155,11 @@ struct rte_mempool *create_pktmbuf_mempool(const char *name, uint32_t nb_mbuf, + LSTACK_LOG(ERR, LSTACK, "snprintf_s fail ret=%d \n", ret); + return NULL; + } ++ /* limit mbuf max num based on the dpdk capability */ ++ if (nb_mbuf > MBUF_MAX_NUM) { ++ LSTACK_LOG(ERR, LSTACK, "out of the dpdk mbuf quantity range\n"); ++ return NULL; ++ } + + /* time stamp before pbuf_custom as priv_data */ + uint16_t private_size = RTE_ALIGN(sizeof(struct mbuf_private), RTE_CACHE_LINE_SIZE); +diff --git a/src/lstack/include/lstack_dpdk.h b/src/lstack/include/lstack_dpdk.h +index 4a160e0..2a44c6e 100644 +--- a/src/lstack/include/lstack_dpdk.h ++++ b/src/lstack/include/lstack_dpdk.h +@@ -17,22 +17,20 @@ + #include "gazelle_opt.h" + #include "gazelle_dfx_msg.h" + +-#define RXTX_CACHE_SZ (VDEV_RX_QUEUE_SZ) +-#define KNI_NB_MBUF (DEFAULT_RING_SIZE << 4) ++#define RXTX_CACHE_SZ (VDEV_RX_QUEUE_SZ) + +-#define RESERVE_NIC_RECV (1024) ++#define KNI_NB_MBUF (DEFAULT_RING_SIZE << 4) + +-#define MBUF_HEADER_LEN 64 +- +-#define MAX_PACKET_SZ 2048 ++#define MAX_PACKET_SZ 2048 + + #define RING_SIZE(x) ((x) - 1) + +-#define MBUF_SZ (MAX_PACKET_SZ + RTE_PKTMBUF_HEADROOM) ++#define MBUF_SZ (MAX_PACKET_SZ + RTE_PKTMBUF_HEADROOM) + +-#define MAX_CORE_NUM 256 +-#define CALL_MSG_RING_SIZE (unsigned long long)32 +-#define CALL_CACHE_SZ 0 ++/* DPDK limit ring head-tail distance in rte_ring_init. ++ * Max value is RTE_RING_SZ_MASK / HTD_MAX_DEF, RTE_RING_SZ_MASK is 0x7fffffff, HTD_MAX_DEF is 8. ++ */ ++#define MBUF_MAX_NUM 0xfffffff + + int thread_affinity_default(void); + int thread_affinity_init(int cpu_id); +diff --git a/src/ltran/main.c b/src/ltran/main.c +index 87f1e14..c2598a7 100644 +--- a/src/ltran/main.c ++++ b/src/ltran/main.c +@@ -55,7 +55,7 @@ static void print_stack(void) + + static void sig_default_handler(int32_t sig) + { +- LTRAN_ERR("ltran dumped,caught signal:%d.\n", sig); ++ LTRAN_ERR("ltran dumped, caught signal: %d.\n", sig); + print_stack(); + dpdk_kni_release(); + int ret = 0; +-- +2.33.0 +
View file
_service:tar_scm_kernel_repo:0114-gazellectl-add-tcp_input-empty-ack-cnt.patch
Added
@@ -0,0 +1,66 @@ +From 295ad7d27233404457488089453a51d39e4d8038 Mon Sep 17 00:00:00 2001 +From: yangchen <yangchen145@huawei.com> +Date: Mon, 8 Jan 2024 09:12:59 +0800 +Subject: [PATCH] gazellectl: add tcp_input empty ack cnt + +--- + src/common/gazelle_dfx_msg.h | 1 + + src/ltran/ltran_dfx.c | 29 +++++++++++++++-------------- + 2 files changed, 16 insertions(+), 14 deletions(-) + +diff --git a/src/common/gazelle_dfx_msg.h b/src/common/gazelle_dfx_msg.h +index 478c440..d58a072 100644 +--- a/src/common/gazelle_dfx_msg.h ++++ b/src/common/gazelle_dfx_msg.h +@@ -143,6 +143,7 @@ struct gazelle_stat_lstack_snmp { + uint32_t tcp_out_of_seq; + uint32_t tcp_acceptmbox_full; + uint32_t tcp_listen_drops; ++ uint32_t tcp_in_empty_acks; + + /* UDP */ + uint32_t udp_in_datagrams; +diff --git a/src/ltran/ltran_dfx.c b/src/ltran/ltran_dfx.c +index 08c9da3..5d4e74c 100644 +--- a/src/ltran/ltran_dfx.c ++++ b/src/ltran/ltran_dfx.c +@@ -855,21 +855,22 @@ static void gazelle_print_lstack_stat_rate(void *buf, const struct gazelle_stat_ + + static void gazelle_print_lstack_tcp_stat(const struct gazelle_stat_lstack_snmp *snmp) + { +- printf("tcp_act_open: %u\n", snmp->tcp_act_open); +- printf("tcp_passive_open: %u\n", snmp->tcp_passive_open); +- printf("tcp_attempt_fail: %u\n", snmp->tcp_attempt_fail); +- printf("tcp_estab_rst: %u\n", snmp->tcp_estab_rst); +- printf("tcp_out_seg: %u\n", snmp->tcp_out_seg); +- printf("tcp_retran_seg: %u\n", snmp->tcp_retran_seg); +- printf("tcp_in_seg: %u\n", snmp->tcp_in_seg); +- printf("tcp_in_err: %u\n", snmp->tcp_in_err); +- printf("tcp_out_rst: %u\n", snmp->tcp_out_rst); +- printf("tcp_fin_ack_cnt: %u\n", snmp->tcp_fin_ack_cnt); +- printf("tcp_delay_ack_cnt: %u\n", snmp->tcp_delay_ack_cnt); +- printf("tcp_refused_cnt: %u\n", snmp->tcp_refused_cnt); +- printf("tcp_out_of_seq: %u\n", snmp->tcp_out_of_seq); ++ printf("tcp_act_open: %u\n", snmp->tcp_act_open); ++ printf("tcp_passive_open: %u\n", snmp->tcp_passive_open); ++ printf("tcp_attempt_fail: %u\n", snmp->tcp_attempt_fail); ++ printf("tcp_estab_rst: %u\n", snmp->tcp_estab_rst); ++ printf("tcp_out_seg: %u\n", snmp->tcp_out_seg); ++ printf("tcp_retran_seg: %u\n", snmp->tcp_retran_seg); ++ printf("tcp_in_seg: %u\n", snmp->tcp_in_seg); ++ printf("tcp_in_err: %u\n", snmp->tcp_in_err); ++ printf("tcp_out_rst: %u\n", snmp->tcp_out_rst); ++ printf("tcp_fin_ack_cnt: %u\n", snmp->tcp_fin_ack_cnt); ++ printf("tcp_delay_ack_cnt: %u\n", snmp->tcp_delay_ack_cnt); ++ printf("tcp_refused_cnt: %u\n", snmp->tcp_refused_cnt); ++ printf("tcp_out_of_seq: %u\n", snmp->tcp_out_of_seq); + printf("tcp_acceptmbox_full: %u\n", snmp->tcp_acceptmbox_full); +- printf("tcp_listen_drops: %u\n", snmp->tcp_listen_drops); ++ printf("tcp_listen_drops: %u\n", snmp->tcp_listen_drops); ++ printf("tcp_in_empty_acks: %u\n", snmp->tcp_in_empty_acks); + } + + static void gazelle_print_ltran_stat_lb_rate(void *buf, const struct gazelle_stat_msg_request *req_msg) +-- +2.33.0 +
View file
_service:tar_scm_kernel_repo:0115-add-socket-accept-fail-cnt.patch
Added
@@ -0,0 +1,54 @@ +From 53457e3ab329eb944579ffe55ddc4435e0bca0a1 Mon Sep 17 00:00:00 2001 +From: hantwofish <hankangkang5@huawei.com> +Date: Wed, 10 Jan 2024 09:12:34 +0800 +Subject: [PATCH] add socket accept fail cnt + +--- + src/common/gazelle_dfx_msg.h | 1 + + src/lstack/core/lstack_protocol_stack.c | 2 ++ + src/ltran/ltran_dfx.c | 1 + + 3 files changed, 4 insertions(+) + +diff --git a/src/common/gazelle_dfx_msg.h b/src/common/gazelle_dfx_msg.h +index 478c440..1d3249d 100644 +--- a/src/common/gazelle_dfx_msg.h ++++ b/src/common/gazelle_dfx_msg.h +@@ -72,6 +72,7 @@ struct gazelle_stack_stat { + uint64_t tx_drop; + uint64_t tx; + uint64_t tx_prepare_fail; ++ uint64_t accept_fail; + }; + + struct gazelle_wakeup_stat { +diff --git a/src/lstack/core/lstack_protocol_stack.c b/src/lstack/core/lstack_protocol_stack.c +index f849bcd..0d845dd 100644 +--- a/src/lstack/core/lstack_protocol_stack.c ++++ b/src/lstack/core/lstack_protocol_stack.c +@@ -792,9 +792,11 @@ void stack_accept(struct rpc_msg *msg) + { + int32_t fd = msg->args[MSG_ARG_0].i; + msg->result = -1; ++ struct protocol_stack *stack = get_protocol_stack(); + + int32_t accept_fd = lwip_accept4(fd, msg->args[MSG_ARG_1].p, msg->args[MSG_ARG_2].p, msg->args[MSG_ARG_3].i); + if (accept_fd < 0) { ++ stack->stats.accept_fail++; + LSTACK_LOG(ERR, LSTACK, "fd %d ret %d\n", fd, accept_fd); + return; + } +diff --git a/src/ltran/ltran_dfx.c b/src/ltran/ltran_dfx.c +index 5e22e20..461912f 100644 +--- a/src/ltran/ltran_dfx.c ++++ b/src/ltran/ltran_dfx.c +@@ -646,6 +646,7 @@ static void show_lstack_stats(struct gazelle_stack_dfx_data *lstack_stat) + printf("send_pkts_fail: %-13"PRIu64" ", lstack_stat->data.pkts.stack_stat.send_pkts_fail); + printf("mbuf_pool_freecnt: %-10"PRIu32" ", lstack_stat->data.pkts.mbufpool_avail_cnt); + printf("rpc_pool_freecnt: %-12"PRIu32" \n", lstack_stat->data.pkts.rpcpool_avail_cnt); ++ printf("accpet_fail: %-12"PRIu64" \n", lstack_stat->data.pkts.stack_stat.accept_fail); + } + + static void gazelle_print_lstack_stat_detail(struct gazelle_stack_dfx_data *lstack_stat, +-- +2.33.0 +
View file
_service:tar_scm_kernel_repo:0116-diff-lstack-and-ltran-dfx-sock.patch
Added
@@ -0,0 +1,137 @@ +From db89062f34f8bcccf80a82d6589e5f3b5bc63cfe Mon Sep 17 00:00:00 2001 +From: yinbin <yinbin8@huawei.com> +Date: Sat, 13 Jan 2024 17:03:07 +0800 +Subject: [PATCH] diff lstack and ltran dfx sock + +--- + src/common/gazelle_opt.h | 9 +++++++-- + src/lstack/core/lstack_cfg.c | 10 ++++++++-- + src/ltran/ltran_base.h | 3 --- + src/ltran/ltran_dfx.c | 8 ++++---- + src/ltran/ltran_monitor.c | 8 ++++---- + src/ltran/ltran_param.c | 4 ++-- + 6 files changed, 25 insertions(+), 17 deletions(-) + +diff --git a/src/common/gazelle_opt.h b/src/common/gazelle_opt.h +index 36915c6..1d1c5f5 100644 +--- a/src/common/gazelle_opt.h ++++ b/src/common/gazelle_opt.h +@@ -85,8 +85,13 @@ + + #define GAZELLE_MAX_STACK_ARRAY_SIZE GAZELLE_CLIENT_NUM + +-#define GAZELLE_REG_SOCK_PATHNAME "/var/run/gazelle/gazelle_client.sock" +-#define GAZELLE_REG_SOCK_FILENAME "gazelle_client.sock" ++#define LTRAN_REG_SOCK_PATHNAME "/var/run/gazelle/ltran_client.sock" ++#define LTRAN_REG_SOCK_FILENAME "ltran_client.sock" ++#define LTRAN_DFX_SOCK_PATHNAME "/var/run/gazelle/ltran_cmd.sock" ++#define LTRAN_DFX_SOCK_FILENAME "ltran_cmd.sock" ++#define LSTACK_DFX_SOCK_PATHNAME "/var/run/gazelle/lstack_cmd.sock" ++#define LSTACK_DFX_SOCK_FILENAME "lstack_cmd.sock" ++ + #define GAZELLE_SOCK_FILENAME_MAXLEN 128 + + #define GAZELLE_RUN_DIR "/var/run/gazelle/" +diff --git a/src/lstack/core/lstack_cfg.c b/src/lstack/core/lstack_cfg.c +index c1f5680..87df790 100644 +--- a/src/lstack/core/lstack_cfg.c ++++ b/src/lstack/core/lstack_cfg.c +@@ -1043,8 +1043,14 @@ static int32_t parse_unix_prefix(void) + } + } + +- ret = strncat_s(g_config_params.unix_socket_filename, sizeof(g_config_params.unix_socket_filename), +- GAZELLE_REG_SOCK_FILENAME, strlen(GAZELLE_REG_SOCK_FILENAME) + 1); ++ if (g_config_params.use_ltran) { ++ ret = strncat_s(g_config_params.unix_socket_filename, sizeof(g_config_params.unix_socket_filename), ++ LTRAN_REG_SOCK_FILENAME, strlen(LTRAN_REG_SOCK_FILENAME) + 1); ++ } else { ++ ret = strncat_s(g_config_params.unix_socket_filename, sizeof(g_config_params.unix_socket_filename), ++ LSTACK_DFX_SOCK_FILENAME, strlen(LSTACK_DFX_SOCK_FILENAME) + 1); ++ } ++ + if (ret != EOK) { + return ret; + } +diff --git a/src/ltran/ltran_base.h b/src/ltran/ltran_base.h +index 6be9152..f174a40 100644 +--- a/src/ltran/ltran_base.h ++++ b/src/ltran/ltran_base.h +@@ -98,7 +98,4 @@ + + #define GAZELLE_INET_ADDRSTRLEN 16 + +-#define GAZELLE_DFX_SOCK_PATHNAME "/var/run/gazelle/gazelle_cmd.sock" +-#define GAZELLE_DFX_SOCK_FILENAME "gazelle_cmd.sock" +- + #endif /* ifndef __GAZELLE_BASE_H__ */ +diff --git a/src/ltran/ltran_dfx.c b/src/ltran/ltran_dfx.c +index a64c1d5..05234de 100644 +--- a/src/ltran/ltran_dfx.c ++++ b/src/ltran/ltran_dfx.c +@@ -254,15 +254,15 @@ static int32_t dfx_connect_ltran(bool use_ltran, bool probe) + + addr.sun_family = AF_UNIX; + if (use_ltran) { +- ret = strncat_s(addr.sun_path, sizeof(addr.sun_path), GAZELLE_DFX_SOCK_FILENAME, +- strlen(GAZELLE_DFX_SOCK_FILENAME) + 1); ++ ret = strncat_s(addr.sun_path, sizeof(addr.sun_path), LTRAN_DFX_SOCK_FILENAME, ++ strlen(LTRAN_DFX_SOCK_FILENAME) + 1); + if (ret != EOK) { + printf("%s:%d strncat_s fail ret=%d\n", __FUNCTION__, __LINE__, ret); + goto END; + } + } else { +- ret = strncat_s(addr.sun_path, sizeof(addr.sun_path), GAZELLE_REG_SOCK_FILENAME, +- strlen(GAZELLE_REG_SOCK_FILENAME) + 1); ++ ret = strncat_s(addr.sun_path, sizeof(addr.sun_path), LSTACK_DFX_SOCK_FILENAME, ++ strlen(LSTACK_DFX_SOCK_FILENAME) + 1); + if (ret != EOK) { + printf("%s:%d strncat_s fail ret=%d\n", __FUNCTION__, __LINE__, ret); + goto END; +diff --git a/src/ltran/ltran_monitor.c b/src/ltran/ltran_monitor.c +index b2bcc07..ea31e84 100644 +--- a/src/ltran/ltran_monitor.c ++++ b/src/ltran/ltran_monitor.c +@@ -238,13 +238,13 @@ static void gazelle_ctl_destroy(void) + close(g_epoll_fd); + g_epoll_fd = -1; + +- ret = unlink(GAZELLE_DFX_SOCK_PATHNAME); ++ ret = unlink(LTRAN_DFX_SOCK_PATHNAME); + if (ret != 0) { +- LTRAN_WARN("unlink %s ERROR. errno: %d. ret=%d\n", GAZELLE_DFX_SOCK_PATHNAME, errno, ret); ++ LTRAN_WARN("unlink %s ERROR. errno: %d. ret=%d\n", LTRAN_DFX_SOCK_PATHNAME, errno, ret); + } +- ret = unlink(GAZELLE_REG_SOCK_PATHNAME); ++ ret = unlink(LTRAN_REG_SOCK_PATHNAME); + if (ret != 0) { +- LTRAN_WARN("unlink %s ERROR. errno: %d. ret=%d\n", GAZELLE_REG_SOCK_PATHNAME, errno, ret); ++ LTRAN_WARN("unlink %s ERROR. errno: %d. ret=%d\n", LTRAN_REG_SOCK_PATHNAME, errno, ret); + } + } + +diff --git a/src/ltran/ltran_param.c b/src/ltran/ltran_param.c +index 1eaace4..bd5a8e1 100644 +--- a/src/ltran/ltran_param.c ++++ b/src/ltran/ltran_param.c +@@ -598,14 +598,14 @@ static int32_t parse_unix_prefix(const config_t *config, const char *key, struct + } + + ret = strncat_s(ltran_config->unix_socket_filename, sizeof(ltran_config->unix_socket_filename), +- GAZELLE_REG_SOCK_FILENAME, strlen(GAZELLE_REG_SOCK_FILENAME) + 1); ++ LTRAN_REG_SOCK_FILENAME, strlen(LTRAN_REG_SOCK_FILENAME) + 1); + if (ret != EOK) { + gazelle_set_errno(GAZELLE_EINETATON); + return GAZELLE_ERR; + } + + ret = strncat_s(ltran_config->dfx_socket_filename, sizeof(ltran_config->dfx_socket_filename), +- GAZELLE_DFX_SOCK_FILENAME, strlen(GAZELLE_DFX_SOCK_FILENAME) + 1); ++ LTRAN_DFX_SOCK_FILENAME, strlen(LTRAN_DFX_SOCK_FILENAME) + 1); + if (ret != EOK) { + gazelle_set_errno(GAZELLE_EINETATON); + return GAZELLE_ERR; +-- +2.33.0 +
View file
_service:tar_scm_kernel_repo:0117-fix-host_addr6-can-be-assigned-a-multicast-address.patch
Added
@@ -0,0 +1,29 @@ +From 7c8d80e76f93029437f9a52f04c9d02b0d55dd78 Mon Sep 17 00:00:00 2001 +From: zhengjiebing <zhengjiebing_yewu@cmss.chinamobile.com> +Date: Tue, 16 Jan 2024 23:52:23 +0800 +Subject: [PATCH] fix host_addr6 can be assigned a multicast address + +--- + src/lstack/core/lstack_cfg.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/src/lstack/core/lstack_cfg.c b/src/lstack/core/lstack_cfg.c +index 87df790..5e30e89 100644 +--- a/src/lstack/core/lstack_cfg.c ++++ b/src/lstack/core/lstack_cfg.c +@@ -250,6 +250,12 @@ static int32_t parse_host_addr6(void) + if (ip6addr_aton(value, &g_config_params.host_addr6) == 0) { + return -EINVAL; + } ++ ++ if (ip6_addr_ismulticast(&g_config_params.host_addr6)) { ++ LSTACK_PRE_LOG(LSTACK_ERR, "cfg: host_addr6 cannot be a multicast address."); ++ return -EINVAL; ++ } ++ + return 0; + } + +-- +2.33.0 +
View file
_service:tar_scm_kernel_repo:0118-udp-do-not-merge-data-into-last-pbuf.patch
Added
@@ -0,0 +1,45 @@ +From b90801a943f140a62761158a058d1076212dccf3 Mon Sep 17 00:00:00 2001 +From: yangchen <yangchen145@huawei.com> +Date: Thu, 18 Jan 2024 10:01:52 +0800 +Subject: [PATCH] udp: do not merge data into last pbuf + +--- + src/lstack/core/lstack_lwip.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/src/lstack/core/lstack_lwip.c b/src/lstack/core/lstack_lwip.c +index 87ec1f5..6ebe589 100644 +--- a/src/lstack/core/lstack_lwip.c ++++ b/src/lstack/core/lstack_lwip.c +@@ -542,14 +542,14 @@ static ssize_t do_lwip_fill_sendring(struct lwip_sock *sock, const void *buf, si + } + + struct protocol_stack *stack = sock->stack; +- if (!stack|| len == 0) { ++ if (!stack || len == 0) { + return 0; + } + + ssize_t send_len = 0; + + /* merge data into last pbuf */ +- if (sock->remain_len) { ++ if (!NETCONN_IS_UDP(sock) && sock->remain_len) { + send_len = merge_data_lastpbuf(sock, (char *)buf, len); + if (send_len >= len) { + send_len = len; +@@ -1045,6 +1045,11 @@ ssize_t do_lwip_read_from_stack(int32_t fd, void *buf, size_t len, int32_t flags + calculate_lstack_latency(&sock->stack->latency, pbuf, GAZELLE_LATENCY_READ); + } + gazelle_ring_read_over(sock->recv_ring); ++ ++ /* in udp, if pbuf remaining len less than copy_len, discard these packets */ ++ if (recvd > 0 && NETCONN_IS_UDP(sock)) { ++ break; ++ } + } + } + +-- +2.33.0 +
View file
_service:tar_scm_kernel_repo:0119-adpat-dpdk-23.11.patch
Added
@@ -0,0 +1,969 @@ +From bbb97803a36a5de0bb6ca6ce0518a6ef0666a22b Mon Sep 17 00:00:00 2001 +From: jiangheng <jiangheng14@huawei.com> +Date: Mon, 15 Jan 2024 09:37:20 +0800 +Subject: [PATCH] adpat dpdk 23.11 + +--- + src/common/dpdk_common.c | 171 +++++++++++---------- + src/common/gazelle_parse_config.c | 1 + + src/lstack/Makefile | 50 +++--- + src/lstack/core/lstack_dpdk.c | 34 ++-- + src/lstack/core/lstack_init.c | 2 + + src/lstack/core/lstack_protocol_stack.c | 12 +- + src/lstack/include/lstack_ethdev.h | 8 + + src/lstack/include/lstack_protocol_stack.h | 1 - + src/lstack/netif/lstack_ethdev.c | 8 + + src/lstack/netif/lstack_vdev.c | 4 +- + src/ltran/CMakeLists.txt | 33 +++- + src/ltran/ltran_dfx.c | 20 +-- + src/ltran/ltran_ethdev.c | 29 +++- + src/ltran/ltran_forward.c | 14 ++ + src/ltran/ltran_stack.c | 1 + + src/ltran/ltran_timer.c | 1 + + src/ltran/main.c | 6 + + 17 files changed, 254 insertions(+), 141 deletions(-) + +diff --git a/src/common/dpdk_common.c b/src/common/dpdk_common.c +index 62278c2..c0c4f63 100644 +--- a/src/common/dpdk_common.c ++++ b/src/common/dpdk_common.c +@@ -10,18 +10,21 @@ + * See the Mulan PSL v2 for more details. + */ + +-#include <rte_kni.h> ++#include <securec.h> + #include <rte_bus_pci.h> + #include <rte_ethdev.h> + #include <rte_bus_pci.h> + #include <rte_mbuf.h> + #include <rte_ethdev.h> +-#include <securec.h> ++#include <rte_version.h> ++#if RTE_VERSION < RTE_VERSION_NUM(23, 11, 0, 0) ++#include <rte_kni.h> ++#endif ++ ++#include <lwip/dpdk_version.h> + + #include "dpdk_common.h" + +-#define GAZELLE_KNI_IFACES_NUM 1 +-#define GAZELLE_KNI_READ_SIZE 32 + #define GAZELLE_MAX_PKT_SZ 2048 + + #ifdef LTRAN_COMPILE +@@ -34,6 +37,9 @@ + #define COMMON_INFO(fmt, ...) LSTACK_LOG(INFO, LSTACK, fmt, ##__VA_ARGS__) + #endif + ++#if RTE_VERSION < RTE_VERSION_NUM(23, 11, 0, 0) ++#define GAZELLE_KNI_IFACES_NUM 1 ++#define GAZELLE_KNI_READ_SIZE 32 + struct rte_kni *g_pkni = NULL; + static volatile bool g_kni_started = false; + +@@ -79,84 +85,6 @@ static int32_t kni_config_network_interface(uint16_t port_id, uint8_t if_up) + return ret; + } + +-void eth_params_checksum(struct rte_eth_conf *conf, struct rte_eth_dev_info *dev_info) +-{ +- uint64_t rx_ol = 0; +- uint64_t tx_ol = 0; +- uint64_t rx_ol_capa = dev_info->rx_offload_capa; +- uint64_t tx_ol_capa = dev_info->tx_offload_capa; +- +- // rx ip +- if (rx_ol_capa & DEV_RX_OFFLOAD_IPV4_CKSUM) { +- rx_ol |= DEV_RX_OFFLOAD_IPV4_CKSUM; +- COMMON_INFO("DEV_RX_OFFLOAD_IPV4_CKSUM\n"); +- } +- +- // rx tcp +- if (rx_ol_capa & DEV_RX_OFFLOAD_TCP_CKSUM) { +- rx_ol |= DEV_RX_OFFLOAD_TCP_CKSUM; +- COMMON_INFO("DEV_RX_OFFLOAD_TCP_CKSUM\n"); +- } +- +- // rx udp +- if (rx_ol_capa & DEV_RX_OFFLOAD_UDP_CKSUM) { +- rx_ol |= DEV_RX_OFFLOAD_UDP_CKSUM; +- COMMON_INFO("DEV_RX_OFFLOAD_UDP_CKSUM\n"); +- } +- +- // rx vlan +- if (rx_ol_capa & DEV_RX_OFFLOAD_VLAN_STRIP) { +- rx_ol |= DEV_RX_OFFLOAD_VLAN_STRIP; +- COMMON_INFO("DEV_RX_OFFLOAD_VLAN_STRIP\n"); +- } +- +- // tx ip +- if (tx_ol_capa & DEV_TX_OFFLOAD_IPV4_CKSUM) { +- tx_ol |= DEV_TX_OFFLOAD_IPV4_CKSUM; +- COMMON_INFO("DEV_TX_OFFLOAD_IPV4_CKSUM\n"); +- } +- +- // tx tcp +- if (tx_ol_capa & DEV_TX_OFFLOAD_TCP_CKSUM) { +- tx_ol |= DEV_TX_OFFLOAD_TCP_CKSUM; +- COMMON_INFO("DEV_TX_OFFLOAD_TCP_CKSUM\n"); +- } +- +- // tx udp +- if (tx_ol_capa & DEV_TX_OFFLOAD_UDP_CKSUM) { +- tx_ol |= DEV_TX_OFFLOAD_UDP_CKSUM; +- COMMON_INFO("DEV_TX_OFFLOAD_UDP_CKSUM\n"); +- } +- +- // tx tso +- if (tx_ol_capa & DEV_TX_OFFLOAD_TCP_TSO) { +- tx_ol |= (DEV_TX_OFFLOAD_TCP_TSO | DEV_TX_OFFLOAD_MULTI_SEGS); +- COMMON_INFO("DEV_TX_OFFLOAD_TCP_TSO\n"); +- } +- +- // tx vlan +- if (tx_ol_capa & DEV_TX_OFFLOAD_VLAN_INSERT) { +- tx_ol |= DEV_TX_OFFLOAD_VLAN_INSERT; +- COMMON_INFO("DEV_TX_OFFLOAD_VLAN_INSERT\n"); +- } +- +- if (!(rx_ol & DEV_RX_OFFLOAD_UDP_CKSUM) || +- !(rx_ol & DEV_RX_OFFLOAD_TCP_CKSUM) || +- !(rx_ol & DEV_RX_OFFLOAD_IPV4_CKSUM)) { +- rx_ol = 0; +- } +- if (!(tx_ol & DEV_TX_OFFLOAD_UDP_CKSUM) || +- !(tx_ol & DEV_TX_OFFLOAD_TCP_CKSUM) || +- !(tx_ol & DEV_TX_OFFLOAD_IPV4_CKSUM)) { +- tx_ol = 0; +- } +- +- conf->rxmode.offloads = rx_ol; +- conf->txmode.offloads = tx_ol; +- +- COMMON_INFO("Set checksum offloads\n"); +-} +- + int32_t dpdk_kni_init(uint16_t port, struct rte_mempool *pool) + { + int32_t ret; +@@ -262,3 +190,82 @@ void kni_process_rx(uint16_t port) + } + } + } ++#endif ++ ++void eth_params_checksum(struct rte_eth_conf *conf, struct rte_eth_dev_info *dev_info) ++{ ++ uint64_t rx_ol = 0; ++ uint64_t tx_ol = 0; ++ uint64_t rx_ol_capa = dev_info->rx_offload_capa; ++ uint64_t tx_ol_capa = dev_info->tx_offload_capa; ++ ++ // rx ip ++ if (rx_ol_capa & RTE_ETH_RX_OFFLOAD_IPV4_CKSUM) { ++ rx_ol |= RTE_ETH_RX_OFFLOAD_IPV4_CKSUM; ++ COMMON_INFO("RTE_ETH_RX_OFFLOAD_IPV4_CKSUM\n"); ++ } ++ ++ // rx tcp ++ if (rx_ol_capa & RTE_ETH_RX_OFFLOAD_TCP_CKSUM) { ++ rx_ol |= RTE_ETH_RX_OFFLOAD_TCP_CKSUM; ++ COMMON_INFO("RTE_ETH_RX_OFFLOAD_TCP_CKSUM\n"); ++ } ++ ++ // rx udp ++ if (rx_ol_capa & RTE_ETH_RX_OFFLOAD_UDP_CKSUM) { ++ rx_ol |= RTE_ETH_RX_OFFLOAD_UDP_CKSUM; ++ COMMON_INFO("RTE_ETH_RX_OFFLOAD_UDP_CKSUM\n"); ++ } ++ ++ // rx vlan ++ if (rx_ol_capa & RTE_ETH_RX_OFFLOAD_VLAN_STRIP) { ++ rx_ol |= RTE_ETH_RX_OFFLOAD_VLAN_STRIP; ++ COMMON_INFO("RTE_ETH_RX_OFFLOAD_VLAN_STRIP\n"); ++ } ++ ++ // tx ip ++ if (tx_ol_capa & RTE_ETH_TX_OFFLOAD_IPV4_CKSUM) { ++ tx_ol |= RTE_ETH_TX_OFFLOAD_IPV4_CKSUM; ++ COMMON_INFO("RTE_ETH_TX_OFFLOAD_IPV4_CKSUM\n"); ++ } ++ ++ // tx tcp ++ if (tx_ol_capa & RTE_ETH_TX_OFFLOAD_TCP_CKSUM) { ++ tx_ol |= RTE_ETH_TX_OFFLOAD_TCP_CKSUM; ++ COMMON_INFO("RTE_ETH_TX_OFFLOAD_TCP_CKSUM\n"); ++ } ++
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.