!683 [sync] PR-675: sync replace with gz_addr_t

From: @openeuler-sync-bot 
Reviewed-by: @jiangheng12 
Signed-off-by: @jiangheng12
This commit is contained in:
openeuler-ci-bot 2024-01-20 07:00:15 +00:00 committed by Gitee
commit 003d93fc45
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
5 changed files with 434 additions and 2 deletions

View File

@ -0,0 +1,224 @@
From fa28c2bf790466ab3a4cfc8fa39ed14764797e87 Mon Sep 17 00:00:00 2001
From: zhengjiebing <zhengjiebing_yewu@cmss.chinamobile.com>
Date: Tue, 2 Jan 2024 17:10:44 +0800
Subject: [PATCH] replace with gz_addr_t
---
src/common/gazelle_opt.h | 5 +----
src/lstack/core/lstack_control_plane.c | 6 +++---
src/lstack/core/lstack_lwip.c | 3 +--
src/lstack/netif/lstack_vdev.c | 16 +++++++++-------
src/ltran/ltran_forward.c | 10 +++++-----
src/ltran/ltran_stat.c | 4 ++--
src/ltran/ltran_tcp_conn.c | 4 ++--
src/ltran/ltran_tcp_sock.c | 4 ++--
src/ltran/ltran_timer.c | 4 ++--
9 files changed, 27 insertions(+), 29 deletions(-)
diff --git a/src/common/gazelle_opt.h b/src/common/gazelle_opt.h
index bb540f4..36915c6 100644
--- a/src/common/gazelle_opt.h
+++ b/src/common/gazelle_opt.h
@@ -27,6 +27,7 @@
#define KERNEL_EPOLL_MAX 512
#define ETHER_ADDR_LEN 6
+#define IPV6_ADDR_LEN 16
#define DEFAULT_RING_SIZE (512)
#define DEFAULT_RING_MASK (511)
@@ -52,10 +53,6 @@
#define STACK_THREAD_DEFAULT 4
#define STACK_NIC_READ_DEFAULT 128
-/* same as define in lwip/ip_addr.h */
-#define GZ_ADDR_TYPE_V4 0
-#define GZ_ADDR_TYPE_V6 6
-
#define MTU_DEFAULT_DATA_LEN 1460
#define VLAN_HEAD_LEN 4
#define IPV6_EXTRA_HEAD_LEN 20
diff --git a/src/lstack/core/lstack_control_plane.c b/src/lstack/core/lstack_control_plane.c
index 668ff80..2d629c8 100644
--- a/src/lstack/core/lstack_control_plane.c
+++ b/src/lstack/core/lstack_control_plane.c
@@ -361,12 +361,12 @@ static int32_t reg_conn(enum tcp_list_state table_state, enum reg_ring_type reg_
continue;
}
qtuple.protocol = 0;
- qtuple.src_ip = conn->conn_list[i].lip.u_addr.ip4.addr;
+ qtuple.src_ip = conn->conn_list[i].lip;
qtuple.src_port = lwip_htons(conn->conn_list[i].l_port);
- qtuple.dst_ip = conn->conn_list[i].rip.u_addr.ip4.addr;
+ qtuple.dst_ip = conn->conn_list[i].rip;
qtuple.dst_port = lwip_htons(conn->conn_list[i].r_port);
- if ((table_state == LISTEN_LIST) && (!match_host_addr(qtuple.src_ip))) {
+ if ((table_state == LISTEN_LIST) && (!match_host_addr(qtuple.src_ip.u_addr.ip4.addr))) {
continue;
}
diff --git a/src/lstack/core/lstack_lwip.c b/src/lstack/core/lstack_lwip.c
index 4953f3d..87ec1f5 100644
--- a/src/lstack/core/lstack_lwip.c
+++ b/src/lstack/core/lstack_lwip.c
@@ -446,8 +446,7 @@ static inline ssize_t app_buff_write(struct lwip_sock *sock, void *buf, size_t l
} else if (addr->sa_family == AF_INET6) {
struct sockaddr_in6 *saddr = (struct sockaddr_in6 *)addr;
for (int i = 0; i < write_num; i++) {
- memcpy_s(pbufs[i]->addr.u_addr.ip6.addr, sizeof(pbufs[i]->addr.u_addr.ip6.addr),
- saddr->sin6_addr.s6_addr, sizeof(saddr->sin6_addr.s6_addr));
+ memcpy_s(pbufs[i]->addr.u_addr.ip6.addr, IPV6_ADDR_LEN, saddr->sin6_addr.s6_addr, IPV6_ADDR_LEN);
pbufs[i]->port = lwip_ntohs((saddr)->sin6_port);
IP_SET_TYPE(&pbufs[i]->addr, IPADDR_TYPE_V6);
}
diff --git a/src/lstack/netif/lstack_vdev.c b/src/lstack/netif/lstack_vdev.c
index ccf664a..9a79dc3 100644
--- a/src/lstack/netif/lstack_vdev.c
+++ b/src/lstack/netif/lstack_vdev.c
@@ -185,10 +185,12 @@ int32_t vdev_reg_xmit(enum reg_ring_type type, struct gazelle_quintuple *qtuple)
delete_user_process_port(qtuple->src_port, PORT_CONNECT);
uint16_t queue_id = get_protocol_stack()->queue_id;
if (queue_id != 0) {
- transfer_delete_rule_info_to_process0(qtuple->dst_ip, qtuple->src_port, qtuple->dst_port);
+ transfer_delete_rule_info_to_process0(qtuple->dst_ip.u_addr.ip4.addr,
+ qtuple->src_port, qtuple->dst_port);
}
} else {
- transfer_delete_rule_info_to_process0(qtuple->dst_ip, qtuple->src_port, qtuple->dst_port);
+ transfer_delete_rule_info_to_process0(qtuple->dst_ip.u_addr.ip4.addr,
+ qtuple->src_port, qtuple->dst_port);
}
}
@@ -197,12 +199,12 @@ int32_t vdev_reg_xmit(enum reg_ring_type type, struct gazelle_quintuple *qtuple)
if (get_global_cfg_params()->is_primary) {
add_user_process_port(qtuple->src_port, get_global_cfg_params()->process_idx, PORT_CONNECT);
if (queue_id != 0) {
- transfer_create_rule_info_to_process0(queue_id, qtuple->src_ip, qtuple->dst_ip,
- qtuple->src_port, qtuple->dst_port);
+ transfer_create_rule_info_to_process0(queue_id, qtuple->src_ip.u_addr.ip4.addr,
+ qtuple->dst_ip.u_addr.ip4.addr, qtuple->src_port, qtuple->dst_port);
}
} else {
- transfer_create_rule_info_to_process0(queue_id, qtuple->src_ip, qtuple->dst_ip,
- qtuple->src_port, qtuple->dst_port);
+ transfer_create_rule_info_to_process0(queue_id, qtuple->src_ip.u_addr.ip4.addr,
+ qtuple->dst_ip.u_addr.ip4.addr, qtuple->src_port, qtuple->dst_port);
}
}
@@ -228,7 +230,7 @@ int32_t vdev_reg_xmit(enum reg_ring_type type, struct gazelle_quintuple *qtuple)
struct protocol_stack *stack = get_protocol_stack();
if (type == REG_RING_TCP_LISTEN || type == REG_RING_TCP_LISTEN_CLOSE) {
- if (!match_host_addr(qtuple->src_ip)) {
+ if (!match_host_addr(qtuple->src_ip.u_addr.ip4.addr)) {
LSTACK_LOG(INFO, LSTACK, "lstack ip not match in conf.\n");
return 0;
}
diff --git a/src/ltran/ltran_forward.c b/src/ltran/ltran_forward.c
index a6f2d71..ee379b5 100644
--- a/src/ltran/ltran_forward.c
+++ b/src/ltran/ltran_forward.c
@@ -246,8 +246,8 @@ static __rte_always_inline int32_t tcp_handle(struct rte_mbuf *m, const struct r
struct gazelle_tcp_sock *tcp_sock = NULL;
struct gazelle_quintuple quintuple;
- quintuple.dst_ip = ipv4_hdr->dst_addr;
- quintuple.src_ip = ipv4_hdr->src_addr;
+ quintuple.dst_ip.u_addr.ip4.addr = ipv4_hdr->dst_addr;
+ quintuple.src_ip.u_addr.ip4.addr = ipv4_hdr->src_addr;
quintuple.dst_port = tcp_hdr->dst_port;
quintuple.src_port = tcp_hdr->src_port;
quintuple.protocol = 0;
@@ -260,7 +260,7 @@ static __rte_always_inline int32_t tcp_handle(struct rte_mbuf *m, const struct r
}
tcp_sock = gazelle_sock_get_by_min_conn(gazelle_get_tcp_sock_htable(),
- quintuple.dst_ip, quintuple.dst_port);
+ quintuple.dst_ip.u_addr.ip4.addr, quintuple.dst_port);
if (unlikely(tcp_sock == NULL)) {
return GAZELLE_ERR;
}
@@ -494,7 +494,7 @@ static void tcp_hash_table_modify(struct gazelle_stack *stack, const struct reg_
case REG_RING_TCP_LISTEN:
/* add sock htable */
tcp_sock = gazelle_sock_add_by_ipporttid(gazelle_get_tcp_sock_htable(),
- transfer_qtuple.dst_ip, transfer_qtuple.dst_port, msg->tid);
+ transfer_qtuple.dst_ip.u_addr.ip4.addr, transfer_qtuple.dst_port, msg->tid);
if (tcp_sock == NULL) {
LTRAN_ERR("add tcp sock htable failed\n");
break;
@@ -506,7 +506,7 @@ static void tcp_hash_table_modify(struct gazelle_stack *stack, const struct reg_
case REG_RING_TCP_LISTEN_CLOSE:
/* del sock htable */
gazelle_sock_del_by_ipporttid(gazelle_get_tcp_sock_htable(),
- transfer_qtuple.dst_ip, transfer_qtuple.dst_port, msg->tid);
+ transfer_qtuple.dst_ip.u_addr.ip4.addr, transfer_qtuple.dst_port, msg->tid);
break;
case REG_RING_TCP_CONNECT:
/* add conn htable */
diff --git a/src/ltran/ltran_stat.c b/src/ltran/ltran_stat.c
index 2a0c03a..dfd5fc9 100644
--- a/src/ltran/ltran_stat.c
+++ b/src/ltran/ltran_stat.c
@@ -267,8 +267,8 @@ void handle_resp_ltran_conn(int32_t fd)
if (index < GAZELLE_LSTACK_MAX_CONN) {
forward_table.conn_list[index].protocol = conn->quintuple.protocol;
forward_table.conn_list[index].tid = conn->tid;
- forward_table.conn_list[index].dst_ip = conn->quintuple.dst_ip;
- forward_table.conn_list[index].src_ip = conn->quintuple.src_ip;
+ forward_table.conn_list[index].dst_ip = conn->quintuple.dst_ip.u_addr.ip4.addr;
+ forward_table.conn_list[index].src_ip = conn->quintuple.src_ip.u_addr.ip4.addr;
forward_table.conn_list[index].dst_port = ntohs(conn->quintuple.dst_port);
forward_table.conn_list[index].src_port = ntohs(conn->quintuple.src_port);
}
diff --git a/src/ltran/ltran_tcp_conn.c b/src/ltran/ltran_tcp_conn.c
index e0ad562..026d22a 100644
--- a/src/ltran/ltran_tcp_conn.c
+++ b/src/ltran/ltran_tcp_conn.c
@@ -78,8 +78,8 @@ struct gazelle_tcp_conn_hbucket *gazelle_conn_hbucket_get(struct gazelle_tcp_con
const struct gazelle_quintuple *quintuple)
{
uint32_t index;
- index = tuple_hash_fn(quintuple->src_ip, quintuple->src_port, quintuple->dst_ip, quintuple->dst_port) %
- GAZELLE_MAX_CONN_HTABLE_SIZE;
+ index = tuple_hash_fn(quintuple->src_ip.u_addr.ip4.addr, quintuple->src_port, quintuple->dst_ip.u_addr.ip4.addr,
+ quintuple->dst_port) % GAZELLE_MAX_CONN_HTABLE_SIZE;
return &conn_htable->array[index];
}
diff --git a/src/ltran/ltran_tcp_sock.c b/src/ltran/ltran_tcp_sock.c
index d6a0d17..940ded8 100644
--- a/src/ltran/ltran_tcp_sock.c
+++ b/src/ltran/ltran_tcp_sock.c
@@ -104,8 +104,8 @@ static void recover_sock_info_from_conn(struct gazelle_tcp_sock *tcp_sock)
head = &conn_htable->array[i].chain;
hlist_for_each_entry(conn, node, head, conn_node) {
- if ((conn->quintuple.dst_ip != tcp_sock->ip) || (conn->quintuple.dst_port != tcp_sock->port) ||
- (conn->tid != tcp_sock->tid)) {
+ if ((conn->quintuple.dst_ip.u_addr.ip4.addr != tcp_sock->ip) ||
+ (conn->quintuple.dst_port != tcp_sock->port) || (conn->tid != tcp_sock->tid)) {
continue;
}
count++;
diff --git a/src/ltran/ltran_timer.c b/src/ltran/ltran_timer.c
index 85ea324..96c622e 100644
--- a/src/ltran/ltran_timer.c
+++ b/src/ltran/ltran_timer.c
@@ -103,8 +103,8 @@ void gazelle_detect_conn_logout(struct gazelle_tcp_conn_htable *conn_htable)
conn_htable->array[i].chain_size--;
LTRAN_DEBUG("delete the tcp conn htable: tid %u quintuple[%u %u %u %u %u]\n",
conn->tid, conn->quintuple.protocol,
- conn->quintuple.src_ip, (uint32_t)ntohs(conn->quintuple.src_port),
- conn->quintuple.dst_ip, (uint32_t)ntohs(conn->quintuple.dst_port));
+ conn->quintuple.src_ip.u_addr.ip4.addr, (uint32_t)ntohs(conn->quintuple.src_port),
+ conn->quintuple.dst_ip.u_addr.ip4.addr, (uint32_t)ntohs(conn->quintuple.dst_port));
rte_free(conn);
}
}
--
2.33.0

View File

@ -0,0 +1,103 @@
From 2489b4b21632c9016f87c6fe963d27ef3e20951b Mon Sep 17 00:00:00 2001
From: zhengjiebing <zhengjiebing_yewu@cmss.chinamobile.com>
Date: Fri, 5 Jan 2024 14:32:48 +0800
Subject: [PATCH] match_host_addr func support ipv6
---
src/lstack/api/lstack_wrap.c | 12 +++++++++++-
src/lstack/core/lstack_cfg.c | 12 +++++++++---
src/lstack/core/lstack_control_plane.c | 2 +-
src/lstack/include/lstack_cfg.h | 2 +-
src/lstack/netif/lstack_vdev.c | 2 +-
5 files changed, 23 insertions(+), 7 deletions(-)
diff --git a/src/lstack/api/lstack_wrap.c b/src/lstack/api/lstack_wrap.c
index 56f89b2..3db62c7 100644
--- a/src/lstack/api/lstack_wrap.c
+++ b/src/lstack/api/lstack_wrap.c
@@ -217,7 +217,17 @@ static int32_t do_bind(int32_t s, const struct sockaddr *name, socklen_t namelen
return g_wrap_api->bind_fn(s, name, namelen);
}
- if (match_host_addr(((struct sockaddr_in *)name)->sin_addr.s_addr)) {
+ ip_addr_t sock_addr = IPADDR_ANY_TYPE_INIT;
+ if (name->sa_family == AF_INET) {
+ sock_addr.type = IPADDR_TYPE_V4;
+ sock_addr.u_addr.ip4.addr = ((struct sockaddr_in *)name)->sin_addr.s_addr;
+ } else if (name->sa_family == AF_INET6) {
+ sock_addr.type = IPADDR_TYPE_V6;
+ memcpy_s(sock_addr.u_addr.ip6.addr, IPV6_ADDR_LEN,
+ ((struct sockaddr_in6 *)name)->sin6_addr.s6_addr, IPV6_ADDR_LEN);
+ }
+
+ if (match_host_addr(&sock_addr)) {
/* maybe kni addr */
if (posix_api->bind_fn(s, name, namelen) != 0) {
SET_CONN_TYPE_LIBOS(sock->conn);
diff --git a/src/lstack/core/lstack_cfg.c b/src/lstack/core/lstack_cfg.c
index d9c23fb..c1f5680 100644
--- a/src/lstack/core/lstack_cfg.c
+++ b/src/lstack/core/lstack_cfg.c
@@ -253,11 +253,17 @@ static int32_t parse_host_addr6(void)
return 0;
}
-int32_t match_host_addr(uint32_t addr)
+int32_t match_host_addr(ip_addr_t *addr)
{
/* network byte order */
- if (addr == g_config_params.host_addr.addr || addr == INADDR_ANY) {
- return 1;
+ if (IP_IS_V4_VAL(*addr)) {
+ if (ip4_addr_cmp(&addr->u_addr.ip4, &g_config_params.host_addr) || ip4_addr_isany_val(addr->u_addr.ip4)) {
+ return 1;
+ }
+ } else if (IP_IS_V6_VAL(*addr)) {
+ if (ip6_addr_cmp(&addr->u_addr.ip6, &g_config_params.host_addr6) || ip6_addr_isany_val(addr->u_addr.ip6)) {
+ return 1;
+ }
}
return 0;
}
diff --git a/src/lstack/core/lstack_control_plane.c b/src/lstack/core/lstack_control_plane.c
index 2d629c8..a9a3814 100644
--- a/src/lstack/core/lstack_control_plane.c
+++ b/src/lstack/core/lstack_control_plane.c
@@ -366,7 +366,7 @@ static int32_t reg_conn(enum tcp_list_state table_state, enum reg_ring_type reg_
qtuple.dst_ip = conn->conn_list[i].rip;
qtuple.dst_port = lwip_htons(conn->conn_list[i].r_port);
- if ((table_state == LISTEN_LIST) && (!match_host_addr(qtuple.src_ip.u_addr.ip4.addr))) {
+ if ((table_state == LISTEN_LIST) && (!match_host_addr((ip_addr_t *)&qtuple.src_ip))) {
continue;
}
diff --git a/src/lstack/include/lstack_cfg.h b/src/lstack/include/lstack_cfg.h
index 82e96d8..c1074f8 100644
--- a/src/lstack/include/lstack_cfg.h
+++ b/src/lstack/include/lstack_cfg.h
@@ -133,7 +133,7 @@ int gazelle_param_init(int *argc, char **argv);
int gazelle_copy_param(const char *param, bool is_double,
int *argc, char argv[][PATH_MAX]);
-int match_host_addr(uint32_t ipv4);
+int match_host_addr(ip_addr_t *addr);
int32_t init_stack_numa_cpuset(struct protocol_stack *stack);
#endif /* GAZELLE_NET_CFG_H */
diff --git a/src/lstack/netif/lstack_vdev.c b/src/lstack/netif/lstack_vdev.c
index 9a79dc3..c845f7a 100644
--- a/src/lstack/netif/lstack_vdev.c
+++ b/src/lstack/netif/lstack_vdev.c
@@ -230,7 +230,7 @@ int32_t vdev_reg_xmit(enum reg_ring_type type, struct gazelle_quintuple *qtuple)
struct protocol_stack *stack = get_protocol_stack();
if (type == REG_RING_TCP_LISTEN || type == REG_RING_TCP_LISTEN_CLOSE) {
- if (!match_host_addr(qtuple->src_ip.u_addr.ip4.addr)) {
+ if (!match_host_addr((ip_addr_t *)&qtuple->src_ip)) {
LSTACK_LOG(INFO, LSTACK, "lstack ip not match in conf.\n");
return 0;
}
--
2.33.0

View File

@ -0,0 +1,27 @@
From f2770a0dd75007d152bdb346e16009227a6d55fa Mon Sep 17 00:00:00 2001
From: hantwofish <hankangkang5@huawei.com>
Date: Thu, 4 Jan 2024 16:08:02 +0800
Subject: [PATCH] add example keep-alive interval para
---
src/ltran/ltran_dfx.c | 4 ++--
8 files changed, 47 insertions(+), 8 deletions(-)
diff --git a/src/ltran/ltran_dfx.c b/src/ltran/ltran_dfx.c
index 08c9da3..5e22e20 100644
--- a/src/ltran/ltran_dfx.c
+++ b/src/ltran/ltran_dfx.c
@@ -1002,8 +1002,8 @@ static void gazelle_keepalive_string(char* str, int buff_len, struct gazelle_sta
if (conn_info->keepalive == 0) {
return;
}
- int ret = sprintf_s(str, buff_len, "(%u,%u,%u)", conn_info->keep_idle, conn_info->keep_intvl,
- conn_info->keep_cnt);
+ int ret = sprintf_s(str, buff_len, "(%u,%u,%u)", (conn_info->keep_idle) / 1000,
+ (conn_info->keep_intvl) / 1000, conn_info->keep_cnt);
if (ret < 0) {
printf("gazelle_keepalive_string sprintf_s fail ret=%d\n", ret);
return;
--
2.33.0

View File

@ -0,0 +1,68 @@
From c6a7e8224dd9faff9120be8814638fe939570908 Mon Sep 17 00:00:00 2001
From: Caohongtao <caohongtao_yewu@cmss.chinamobile.com>
Date: Thu, 4 Jan 2024 09:34:04 +0000
Subject: [PATCH] update src/common/dpdk_common.c.
Signed-off-by: Caohongtao <caohongtao_yewu@cmss.chinamobile.com>
---
src/common/dpdk_common.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/common/dpdk_common.c b/src/common/dpdk_common.c
index 50f0bf0..62278c2 100644
--- a/src/common/dpdk_common.c
+++ b/src/common/dpdk_common.c
@@ -65,13 +65,13 @@ static int32_t kni_config_network_interface(uint16_t port_id, uint8_t if_up)
g_bond_dev_started = true;
}
} else {
- COMMON_INFO("trying to start a started dev. \n");
+ COMMON_INFO("Trying to start a started dev. \n");
}
} else { /* Configure network interface down */
if (g_kni_started) {
g_kni_started = false;
} else {
- COMMON_INFO("trying to stop a stopped dev. \n");
+ COMMON_INFO("Trying to stop a stopped dev. \n");
}
}
@@ -154,7 +154,7 @@ void eth_params_checksum(struct rte_eth_conf *conf, struct rte_eth_dev_info *dev
conf->rxmode.offloads = rx_ol;
conf->txmode.offloads = tx_ol;
- COMMON_INFO("set checksum offloads\n");
+ COMMON_INFO("Set checksum offloads\n");
}
int32_t dpdk_kni_init(uint16_t port, struct rte_mempool *pool)
@@ -179,14 +179,14 @@ int32_t dpdk_kni_init(uint16_t port, struct rte_mempool *pool)
ret = snprintf_s(conf.name, RTE_KNI_NAMESIZE, RTE_KNI_NAMESIZE - 1, "%s", GAZELLE_KNI_NAME);
if (ret < 0) {
- COMMON_ERR("snprintf_s failed. ret=%d\n", ret);
+ COMMON_ERR("Snprintf_s failed. ret=%d\n", ret);
return -1;
}
conf.mbuf_size = GAZELLE_MAX_PKT_SZ;
conf.group_id = port;
if (rte_eth_dev_info_get(port, &dev_info) != 0) {
- COMMON_ERR("Fail rte_eth_dev_info_get\n");
+ COMMON_ERR("Failed rte_eth_dev_info_get\n");
return -1;
}
@@ -204,7 +204,7 @@ int32_t dpdk_kni_init(uint16_t port, struct rte_mempool *pool)
ops.port_id = port;
g_pkni = rte_kni_alloc(pool, &conf, &ops);
if (g_pkni == NULL) {
- COMMON_ERR("Fail to create kni for port: %hu \n", port);
+ COMMON_ERR("Failed to create kni for port: %hu \n", port);
return -1;
}
return 0;
--
2.33.0

View File

@ -2,7 +2,7 @@
Name: gazelle
Version: 1.0.2
Release: 23
Release: 24
Summary: gazelle is a high performance user-mode stack
License: MulanPSL-2.0
URL: https://gitee.com/openeuler/gazelle
@ -121,6 +121,10 @@ Patch9104: 0104-fix-stack_setup_thread-array-range.patch
Patch9105: 0105-fix-func-separate_str_to_array-overflow-problem.patch
Patch9106: 0106-fix-dpdk_alloc_pktmbuf-time-consuming.patch
Patch9107: 0107-ltran-optimize-config-file-error-message.patch
Patch9108: 0108-replace-with-gz_addr_t.patch
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
%description
%{name} is a high performance user-mode stack.
@ -162,7 +166,13 @@ install -Dpm 0640 %{_builddir}/%{name}-%{version}/src/ltran/ltran.conf %{b
%config(noreplace) %{conf_path}/ltran.conf
%changelog
* Sat Jan 27 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-23
* Sat Jan 06 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-24
- replace with gz_addr_t
- update src/common/dpdk_common.c
- match_host_addr func support ipv6
- add example keep-alive interval para
* Sat Jan 06 2024 yinbin6 <yinbin8@huawei.com> - 1.0.2-23
- fix dpdk_alloc_pktmbuf time-consuming
- ltran: optimize config file error message