Projects
Eulaceura:Mainline
lwip
_service:obs_scm:0100-replace-qtuple-addr-with-...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:obs_scm:0100-replace-qtuple-addr-with-gz_addr_t.patch of Package lwip
From 430469b1fa14ed689781eeed14dc8ce7cadd22a3 Mon Sep 17 00:00:00 2001 From: jiangheng <jiangheng14@huawei.com> Date: Mon, 5 Feb 2024 19:16:07 +0800 Subject: replace qtuple addr with gz_addr_t --- src/include/lwip/priv/tcp_priv.h | 24 ++++++------------------ src/include/reg_sock.h | 19 ++++++++++++------- 2 files changed, 18 insertions(+), 25 deletions(-) diff --git a/src/include/lwip/priv/tcp_priv.h b/src/include/lwip/priv/tcp_priv.h index 75c67ee..8d7b9df 100644 --- a/src/include/lwip/priv/tcp_priv.h +++ b/src/include/lwip/priv/tcp_priv.h @@ -347,24 +347,12 @@ static inline int vdev_reg_done(enum reg_ring_type reg_type, const struct tcp_pc LWIP_ASSERT("Invalid parameter", pcb != NULL); struct gazelle_quintuple qtuple; - if (IP_IS_V4_VAL(pcb->local_ip)) { - qtuple.protocol = 0; - qtuple.src_ip = ip_2_ip4(&pcb->local_ip)->addr; - qtuple.src_port = lwip_htons(pcb->local_port); - qtuple.dst_ip = ip_2_ip4(&pcb->remote_ip)->addr; - qtuple.dst_port = lwip_htons(pcb->remote_port); - } else { -#if LWIP_IPV6 - qtuple.protocol = 1; - qtuple.src_port = lwip_htons(pcb->local_port); - qtuple.dst_port = lwip_htons(pcb->remote_port); - - for (int i = 0; i < 4; i++) { - qtuple.src_ip6[i] = pcb->local_ip.u_addr.ip6.addr[i]; - qtuple.dst_ip6[i] = pcb->remote_ip.u_addr.ip6.addr[i]; - } -#endif - } + + qtuple.protocol = IP_IS_V4_VAL(pcb->local_ip) ? GZ_ADDR_TYPE_V4 : GZ_ADDR_TYPE_V6; + qtuple.src_ip = *((gz_addr_t *)&pcb->local_ip); + qtuple.src_port = lwip_htons(pcb->local_port); + qtuple.dst_ip = *((gz_addr_t *)&pcb->remote_ip); + qtuple.dst_port = lwip_htons(pcb->remote_port); #if GAZELLE_TCP_REUSE_IPPORT if (reg_type == REG_RING_TCP_CONNECT_CLOSE) { diff --git a/src/include/reg_sock.h b/src/include/reg_sock.h index a11102e..466a2c2 100644 --- a/src/include/reg_sock.h +++ b/src/include/reg_sock.h @@ -37,6 +37,16 @@ #include "lwipopts.h" +/* compatible with lwip_ip_addr_type */ +enum gz_ip_addr_type { + /** IPv4 */ + GZ_ADDR_TYPE_V4 = 0U, + /** IPv6 */ + GZ_ADDR_TYPE_V6 = 6U, + /** IPv4+IPv6 ("dual-stack") */ + GZ_ADDR_TYPE_ANY = 46U +}; + /* compatible with ip4_addr_t */ struct gz_ip4 { uint32_t addr; @@ -78,13 +88,8 @@ struct gazelle_quintuple { uint16_t src_port; uint16_t dst_port; - /* TODO: replace with gz_addr_t */ - uint32_t src_ip; - uint32_t dst_ip; -#if LWIP_IPV6 - uint32_t src_ip6[4]; - uint32_t dst_ip6[4]; -#endif + gz_addr_t src_ip; + gz_addr_t dst_ip; }; struct reg_ring_msg { -- 2.33.0
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
.
浙ICP备2022010568号-2