Projects
Eulaceura:Factory
lwip
_service:obs_scm:0103-adapt-for-dpdk-23.11.patch
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:obs_scm:0103-adapt-for-dpdk-23.11.patch of Package lwip
From 055e167029e3cee7ee8db8f8692efaec0300f374 Mon Sep 17 00:00:00 2001 From: jiangheng <jiangheng14@huawei.com> Date: Sat, 13 Jan 2024 20:52:37 +0800 Subject: [PATCH] adapt for dpdk-23.11 --- src/Makefile | 3 --- src/core/ipv4/icmp.c | 2 +- src/core/ipv4/ip4.c | 6 ++--- src/core/ipv4/ip4_frag.c | 4 ++-- src/core/ipv6/ip6.c | 2 +- src/core/tcp_in.c | 2 +- src/core/tcp_out.c | 6 ++--- src/core/udp.c | 4 ++-- src/include/dpdk_version.h | 46 ++++++++++++++++++++++++++++---------- src/netif/ethernet.c | 4 ++-- 10 files changed, 49 insertions(+), 30 deletions(-) diff --git a/src/Makefile b/src/Makefile index 480470f..ce059e1 100644 --- a/src/Makefile +++ b/src/Makefile @@ -2,7 +2,12 @@ LWIP_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) ROOT_DIR := $(dir $(abspath $(LWIP_DIR))) LWIP_INC = $(LWIP_DIR)/include -DPDK_INCLUDE_FILE ?= /usr/include/dpdk +DPDK_VERSION := $(shell rpm -q --queryformat '%{VERSION}' dpdk) +ifeq ($(DPDK_VERSION),21.11) + DPDK_INCLUDE_FILE := /usr/local/include +else + DPDK_INCLUDE_FILE := /usr/include/dpdk +endif SEC_FLAGS = -fstack-protector-strong -Werror -Wall -Wl,-z,relro,-z,now -Wl,-z,noexecstack -Wtrampolines -fPIC -D_FORTIRY_SOURCE=2 -O2 @@ -19,9 +24,6 @@ ARFLAGS = crDP ifeq ($(shell $(CC) -dumpmachine | cut -d"-" -f1), x86_64) CFLAGS += -mssse3 endif -ifeq ($(DPDK_VERSION_1911), 1) - CFLAGS += -DDPDK_VERSION_1911=1 -endif SRCS = DIRS = api core netif diff --git a/src/core/ipv4/icmp.c b/src/core/ipv4/icmp.c index 2984d24..a3de92d 100644 --- a/src/core/ipv4/icmp.c +++ b/src/core/ipv4/icmp.c @@ -241,7 +241,7 @@ icmp_input(struct pbuf *p, struct netif *inp) #if CHECKSUM_GEN_IP IF__NETIF_CHECKSUM_ENABLED(inp, NETIF_CHECKSUM_GEN_IP) { #if CHECKSUM_GEN_IP_HW - if (netif_get_txol_flags(inp) & DEV_TX_OFFLOAD_IPV4_CKSUM) { + if (netif_get_txol_flags(inp) & RTE_ETH_TX_OFFLOAD_IPV4_CKSUM) { iph_cksum_set(p, hlen, 1); } else { iph_cksum_set(p, hlen, 0); diff --git a/src/core/ipv4/ip4.c b/src/core/ipv4/ip4.c index 4335423..907a2f0 100644 --- a/src/core/ipv4/ip4.c +++ b/src/core/ipv4/ip4.c @@ -543,7 +543,7 @@ ip4_input(struct pbuf *p, struct netif *inp) IF__NETIF_CHECKSUM_ENABLED(inp, NETIF_CHECKSUM_CHECK_IP) { #if CHECKSUM_CHECK_IP_HW u64_t ret; - if (netif_get_rxol_flags(inp) & DEV_RX_OFFLOAD_IPV4_CKSUM) { + if (netif_get_rxol_flags(inp) & RTE_ETH_RX_OFFLOAD_IPV4_CKSUM) { ret = is_cksum_ipbad(p); } else { ret = (u64_t)inet_chksum(iphdr, iphdr_hlen); @@ -1020,7 +1020,7 @@ ip4_output_if_opt_src(struct pbuf *p, const ip4_addr_t *src, const ip4_addr_t *d #if CHECKSUM_GEN_IP IF__NETIF_CHECKSUM_ENABLED(netif, NETIF_CHECKSUM_GEN_IP) { #if CHECKSUM_GEN_IP_HW - if (netif_get_txol_flags(netif) & DEV_TX_OFFLOAD_IPV4_CKSUM) { + if (netif_get_txol_flags(netif) & RTE_ETH_TX_OFFLOAD_IPV4_CKSUM) { iph_cksum_set(p, ip_hlen, 1); } else { iph_cksum_set(p, ip_hlen, 0); @@ -1069,7 +1069,7 @@ ip4_output_if_opt_src(struct pbuf *p, const ip4_addr_t *src, const ip4_addr_t *d #if IP_FRAG /* don't fragment if interface has mtu set to 0 [loopif] */ #if GAZELLE_ENABLE - if (!(netif_get_txol_flags(netif) & DEV_TX_OFFLOAD_TCP_TSO)) { + if (!(netif_get_txol_flags(netif) & RTE_ETH_TX_OFFLOAD_TCP_TSO)) { #endif if (netif->mtu && (p->tot_len > netif->mtu)) { return ip4_frag(p, netif, dest); diff --git a/src/core/ipv4/ip4_frag.c b/src/core/ipv4/ip4_frag.c index 01e3d60..d9bf5cc 100644 --- a/src/core/ipv4/ip4_frag.c +++ b/src/core/ipv4/ip4_frag.c @@ -642,7 +642,7 @@ ip4_reass(struct pbuf *p) #if CHECKSUM_GEN_IP IF__NETIF_CHECKSUM_ENABLED(netif_default, NETIF_CHECKSUM_GEN_IP) { #if CHECKSUM_GEN_IP_HW - if (netif_get_txol_flags(netif_default) & DEV_TX_OFFLOAD_IPV4_CKSUM) { + if (netif_get_txol_flags(netif_default) & RTE_ETH_TX_OFFLOAD_IPV4_CKSUM) { iph_cksum_set(p, IP_HLEN, 1); } else { iph_cksum_set(p, IP_HLEN, 0); @@ -885,7 +885,7 @@ ip4_frag(struct pbuf *p, struct netif *netif, const ip4_addr_t *dest) #if CHECKSUM_GEN_IP IF__NETIF_CHECKSUM_ENABLED(netif, NETIF_CHECKSUM_GEN_IP) { #if CHECKSUM_GEN_IP_HW - if (netif_get_txol_flags(netif) & DEV_TX_OFFLOAD_IPV4_CKSUM) { + if (netif_get_txol_flags(netif) & RTE_ETH_TX_OFFLOAD_IPV4_CKSUM) { iph_cksum_set(p, IP_HLEN, 1); } else { iph_cksum_set(p, IP_HLEN, 0); diff --git a/src/core/ipv6/ip6.c b/src/core/ipv6/ip6.c index 5f16cd0..9017d87 100644 --- a/src/core/ipv6/ip6.c +++ b/src/core/ipv6/ip6.c @@ -1279,7 +1279,7 @@ ip6_output_if_src(struct pbuf *p, const ip6_addr_t *src, const ip6_addr_t *dest, #if LWIP_IPV6_FRAG /* don't fragment if interface has mtu set to 0 [loopif] */ #if GAZELLE_ENABLE - if (!(netif_get_txol_flags(netif) & DEV_TX_OFFLOAD_TCP_TSO)) { + if (!(netif_get_txol_flags(netif) & RTE_ETH_TX_OFFLOAD_TCP_TSO)) { #endif if (netif_mtu6(netif) && (p->tot_len > nd6_get_destination_mtu(dest, netif))) { return ip6_frag(p, netif, dest); diff --git a/src/core/tcp_in.c b/src/core/tcp_in.c index d6f54b6..bdd9a04 100644 --- a/src/core/tcp_in.c +++ b/src/core/tcp_in.c @@ -209,7 +209,7 @@ tcp_input(struct pbuf *p, struct netif *inp) /* Verify TCP checksum. */ #if CHECKSUM_CHECK_TCP_HW u64_t ret; - if (netif_get_rxol_flags(inp) & DEV_RX_OFFLOAD_TCP_CKSUM) { + if (netif_get_rxol_flags(inp) & RTE_ETH_RX_OFFLOAD_TCP_CKSUM) { ret = is_cksum_bad(p); } else { ret = (u64_t)ip_chksum_pseudo(p, IP_PROTO_TCP, p->tot_len, diff --git a/src/core/tcp_out.c b/src/core/tcp_out.c index c5c81ae..30cd215 100644 --- a/src/core/tcp_out.c +++ b/src/core/tcp_out.c @@ -1555,7 +1555,7 @@ tcp_output(struct tcp_pcb *pcb) /* data available and window allows it to be sent? */ #if GAZELLE_ENABLE - if ((netif_get_txol_flags(netif) & DEV_TX_OFFLOAD_TCP_TSO) && pcb->need_tso_send) { + if ((netif_get_txol_flags(netif) & RTE_ETH_TX_OFFLOAD_TCP_TSO) && pcb->need_tso_send) { uint16_t send_pkt = 0; do { @@ -1938,7 +1938,7 @@ tcp_output_segment(struct tcp_seg *seg, struct tcp_pcb *pcb, struct netif *netif #if CHECKSUM_GEN_TCP IF__NETIF_CHECKSUM_ENABLED(netif, NETIF_CHECKSUM_GEN_TCP) { #if CHECKSUM_GEN_TCP_HW - if (netif_get_txol_flags(netif) & DEV_TX_OFFLOAD_TCP_CKSUM) { + if (netif_get_txol_flags(netif) & RTE_ETH_TX_OFFLOAD_TCP_CKSUM) { tcph_cksum_set(seg->p, TCPH_HDRLEN_BYTES(seg->tcphdr)); seg->tcphdr->chksum = ip_chksum_pseudo_offload(IP_PROTO_TCP,seg->p->tot_len, &pcb->local_ip, &pcb->remote_ip); } else { @@ -2398,7 +2398,7 @@ tcp_output_control_segment_netif(const struct tcp_pcb *pcb, struct pbuf *p, IF__NETIF_CHECKSUM_ENABLED(netif, NETIF_CHECKSUM_GEN_TCP) { struct tcp_hdr *tcphdr = (struct tcp_hdr *)p->payload; #if CHECKSUM_GEN_TCP_HW - if (netif_get_txol_flags(netif) & DEV_TX_OFFLOAD_TCP_CKSUM) { + if (netif_get_txol_flags(netif) & RTE_ETH_TX_OFFLOAD_TCP_CKSUM) { tcph_cksum_set(p, TCPH_HDRLEN_BYTES(tcphdr)); tcphdr->chksum = ip_chksum_pseudo_offload(IP_PROTO_TCP, p->tot_len, src, dst); } else { diff --git a/src/core/udp.c b/src/core/udp.c index ca82e51..461ec2d 100644 --- a/src/core/udp.c +++ b/src/core/udp.c @@ -414,7 +414,7 @@ udp_input(struct pbuf *p, struct netif *inp) if (udphdr->chksum != 0) { #if CHECKSUM_CHECK_UDP_HW u64_t ret = 0; - if (netif_get_rxol_flags(inp) & DEV_RX_OFFLOAD_UDP_CKSUM) { + if (netif_get_rxol_flags(inp) & RTE_ETH_RX_OFFLOAD_UDP_CKSUM) { ret = is_cksum_bad(p); } else { ret = ip_chksum_pseudo(p, IP_PROTO_UDP, p->tot_len, @@ -983,7 +983,7 @@ udp_sendto_if_src_chksum(struct udp_pcb *pcb, struct pbuf *p, const ip_addr_t *d #endif /* LWIP_CHECKSUM_ON_COPY */ { #if CHECKSUM_GEN_UDP_HW - if (netif_get_txol_flags(netif) & DEV_TX_OFFLOAD_UDP_CKSUM) { + if (netif_get_txol_flags(netif) & RTE_ETH_TX_OFFLOAD_UDP_CKSUM) { udph_cksum_set(q, UDP_HLEN); udpchksum = ip_chksum_pseudo_offload(IP_PROTO_UDP, q->tot_len, &pcb->local_ip, &pcb->remote_ip); } else { diff --git a/src/include/dpdk_version.h b/src/include/dpdk_version.h index 5efaa39..df3adb5 100644 --- a/src/include/dpdk_version.h +++ b/src/include/dpdk_version.h @@ -33,23 +33,47 @@ #ifndef __DPDK_VERSION_H__ #define __DPDK_VERSION_H__ -#if DPDK_VERSION_1911 +#include <rte_version.h> + +#if RTE_VERSION < RTE_VERSION_NUM(21, 11, 0, 0) #define __rte_ring_enqueue_elems(r, prod_head, obj_table, esize, n) \ ENQUEUE_PTRS(r, &r[1], prod_head, (obj_table), n, void *) #define __rte_ring_dequeue_elems(r, cons_head, obj_table, esize, n) \ DEQUEUE_PTRS(r, &r[1], cons_head, (obj_table), n, void *) -#define RTE_MBUF_F_RX_IP_CKSUM_BAD PKT_RX_IP_CKSUM_BAD -#define RTE_MBUF_F_RX_L4_CKSUM_BAD PKT_RX_L4_CKSUM_BAD -#define RTE_MBUF_F_TX_IPV4 PKT_TX_IPV4 -#define RTE_MBUF_F_TX_IPV6 PKT_TX_IPV6 -#define RTE_MBUF_F_TX_IP_CKSUM PKT_TX_IP_CKSUM -#define RTE_MBUF_F_TX_TCP_CKSUM PKT_TX_TCP_CKSUM -#define RTE_MBUF_F_TX_TCP_SEG PKT_TX_TCP_SEG -#define RTE_MBUF_F_TX_UDP_CKSUM PKT_TX_UDP_CKSUM -#define RTE_MBUF_F_TX_VLAN PKT_TX_VLAN_PKT - -#endif /* DPDK_VERSION_1911 */ +#define RTE_MBUF_F_RX_IP_CKSUM_BAD PKT_RX_IP_CKSUM_BAD +#define RTE_MBUF_F_RX_L4_CKSUM_BAD PKT_RX_L4_CKSUM_BAD +#define RTE_MBUF_F_TX_IPV4 PKT_TX_IPV4 +#define RTE_MBUF_F_TX_IPV6 PKT_TX_IPV6 +#define RTE_MBUF_F_TX_IP_CKSUM PKT_TX_IP_CKSUM +#define RTE_MBUF_F_TX_TCP_CKSUM PKT_TX_TCP_CKSUM +#define RTE_MBUF_F_TX_TCP_SEG PKT_TX_TCP_SEG +#define RTE_MBUF_F_TX_UDP_CKSUM PKT_TX_UDP_CKSUM +#define RTE_MBUF_F_TX_VLAN PKT_TX_VLAN_PKT + +#define RTE_ETH_RX_OFFLOAD_TCP_CKSUM DEV_RX_OFFLOAD_TCP_CKSUM +#define RTE_ETH_RX_OFFLOAD_UDP_CKSUM DEV_RX_OFFLOAD_UDP_CKSUM +#define RTE_ETH_RX_OFFLOAD_IPV4_CKSUM DEV_RX_OFFLOAD_IPV4_CKSUM +#define RTE_ETH_RX_OFFLOAD_VLAN_STRIP DEV_RX_OFFLOAD_VLAN_STRIP + +#define RTE_ETH_TX_OFFLOAD_IPV4_CKSUM DEV_TX_OFFLOAD_IPV4_CKSUM +#define RTE_ETH_TX_OFFLOAD_VLAN_INSERT DEV_TX_OFFLOAD_VLAN_INSERT +#define RTE_ETH_TX_OFFLOAD_TCP_TSO DEV_TX_OFFLOAD_TCP_TSO +#define RTE_ETH_TX_OFFLOAD_TCP_CKSUM DEV_TX_OFFLOAD_TCP_CKSUM +#define RTE_ETH_TX_OFFLOAD_UDP_CKSUM DEV_TX_OFFLOAD_UDP_CKSUM +#define RTE_ETH_TX_OFFLOAD_MULTI_SEGS DEV_TX_OFFLOAD_MULTI_SEGS + +#define RTE_ETH_LINK_SPEED_AUTONEG ETH_LINK_SPEED_AUTONEG + +#define RTE_ETH_MQ_TX_NONE ETH_MQ_TX_NONE +#define RTE_ETH_MQ_RX_NONE ETH_MQ_RX_NONE +#define RTE_ETH_RSS_IP ETH_RSS_IP +#define RTE_ETH_RSS_TCP ETH_RSS_TCP +#define RTE_ETH_RSS_UDP ETH_RSS_UDP +#define RTE_ETH_MQ_RX_RSS ETH_MQ_RX_RSS +#define RTE_ETH_RETA_GROUP_SIZE RTE_RETA_GROUP_SIZE + +#endif /* RTE_VERSION */ #endif /* __DPDK_VERSION_H__ */ diff --git a/src/netif/ethernet.c b/src/netif/ethernet.c index d2960b5..e049cdf 100644 --- a/src/netif/ethernet.c +++ b/src/netif/ethernet.c @@ -289,7 +289,7 @@ ethernet_output(struct netif * netif, struct pbuf * p, } #else if (netif->vlan_enable) { - if (netif->txol_flags & DEV_TX_OFFLOAD_VLAN_INSERT) { + if (netif->txol_flags & RTE_ETH_TX_OFFLOAD_VLAN_INSERT) { p->ol_flags |= RTE_MBUF_F_TX_VLAN; p->vlan_tci = netif->vlan_tci; } else { @@ -332,7 +332,7 @@ ethernet_output(struct netif * netif, struct pbuf * p, ("ethernet_output: sending packet %p\n", (void *)p)); #if CHECKSUM_GEN_IP_HW || CHECKSUM_GEN_TCP_HW - if (netif->vlan_enable && !(netif->txol_flags & DEV_TX_OFFLOAD_VLAN_INSERT)) { + if (netif->vlan_enable && !(netif->txol_flags & RTE_ETH_TX_OFFLOAD_VLAN_INSERT)) { ethh_cksum_set(p, sizeof(*ethhdr) + SIZEOF_VLAN_HDR); } else { ethh_cksum_set(p, sizeof(*ethhdr)); -- 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