From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id E0694A034F; Tue, 9 Nov 2021 13:32:11 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A1D9340E28; Tue, 9 Nov 2021 13:32:11 +0100 (CET) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mails.dpdk.org (Postfix) with ESMTP id C341C40E03 for ; Tue, 9 Nov 2021 13:32:09 +0100 (CET) X-IronPort-AV: E=McAfee;i="6200,9189,10162"; a="212464651" X-IronPort-AV: E=Sophos;i="5.87,220,1631602800"; d="scan'208";a="212464651" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Nov 2021 04:32:08 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,220,1631602800"; d="scan'208";a="545292165" Received: from sivswdev08.ir.intel.com ([10.237.217.47]) by fmsmga008.fm.intel.com with ESMTP; 09 Nov 2021 04:32:07 -0800 From: Konstantin Ananyev To: dev@dpdk.org Cc: Konstantin Ananyev Date: Tue, 9 Nov 2021 12:32:04 +0000 Message-Id: <20211109123204.3296-1-konstantin.ananyev@intel.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20211108135555.24164-3-konstantin.ananyev@intel.com> References: <20211108135555.24164-3-konstantin.ananyev@intel.com> Subject: [dpdk-dev] [PATCH v5] ip_frag: add namespace X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Update public macros to have RTE_IP_FRAG_ prefix. Update DPDK components to use new names. Keep obsolete macro for compatibility reasons. Renamed experimental function ``rte_frag_table_del_expired_entries``to ``rte_ip_frag_table_del_expired_entries`` to comply with other public API naming convention. Signed-off-by: Konstantin Ananyev --- doc/guides/rel_notes/release_21_11.rst | 6 ++++++ examples/ip_reassembly/main.c | 2 +- examples/ipsec-secgw/ipsec-secgw.c | 2 +- lib/ip_frag/rte_ip_frag.h | 29 ++++++++++++++++---------- lib/ip_frag/rte_ip_frag_common.c | 5 +++-- lib/ip_frag/rte_ipv6_fragmentation.c | 12 +++++------ lib/ip_frag/rte_ipv6_reassembly.c | 6 +++--- lib/ip_frag/version.map | 2 +- lib/port/rte_port_ras.c | 2 +- 9 files changed, 40 insertions(+), 26 deletions(-) diff --git a/doc/guides/rel_notes/release_21_11.rst b/doc/guides/rel_notes/release_21_11.rst index 01923e2deb..226dbb5bf0 100644 --- a/doc/guides/rel_notes/release_21_11.rst +++ b/doc/guides/rel_notes/release_21_11.rst @@ -565,6 +565,12 @@ API Changes * fib: Added the ``rib_ext_sz`` field to ``rte_fib_conf`` and ``rte_fib6_conf`` so that user can specify the size of the RIB extension inside the FIB. +* ip_frag: All macros updated to have ``RTE_IP_FRAG_`` prefix. Obsolete + macros are kept for compatibility. DPDK components updated to use new names. + Experimental function ``rte_frag_table_del_expired_entries`` was renamed to + ``rte_ip_frag_table_del_expired_entries`` to comply with other public + API naming convention. + ABI Changes ----------- diff --git a/examples/ip_reassembly/main.c b/examples/ip_reassembly/main.c index 547b47276e..fb3cac3bd0 100644 --- a/examples/ip_reassembly/main.c +++ b/examples/ip_reassembly/main.c @@ -371,7 +371,7 @@ reassemble(struct rte_mbuf *m, uint16_t portid, uint32_t queue, eth_hdr->ether_type = rte_be_to_cpu_16(RTE_ETHER_TYPE_IPV4); } else if (RTE_ETH_IS_IPV6_HDR(m->packet_type)) { /* if packet is IPv6 */ - struct ipv6_extension_fragment *frag_hdr; + struct rte_ipv6_fragment_ext *frag_hdr; struct rte_ipv6_hdr *ip_hdr; ip_hdr = (struct rte_ipv6_hdr *)(eth_hdr + 1); diff --git a/examples/ipsec-secgw/ipsec-secgw.c b/examples/ipsec-secgw/ipsec-secgw.c index 0a1c5bcaaa..86bb7e9064 100644 --- a/examples/ipsec-secgw/ipsec-secgw.c +++ b/examples/ipsec-secgw/ipsec-secgw.c @@ -2647,7 +2647,7 @@ rx_callback(__rte_unused uint16_t port, __rte_unused uint16_t queue, rte_cpu_to_be_16(RTE_ETHER_TYPE_IPV6)) { struct rte_ipv6_hdr *iph; - struct ipv6_extension_fragment *fh; + struct rte_ipv6_fragment_ext *fh; iph = (struct rte_ipv6_hdr *)(eth + 1); fh = rte_ipv6_frag_get_ipv6_fragment_header(iph); diff --git a/lib/ip_frag/rte_ip_frag.h b/lib/ip_frag/rte_ip_frag.h index b469bb5f4e..9493021428 100644 --- a/lib/ip_frag/rte_ip_frag.h +++ b/lib/ip_frag/rte_ip_frag.h @@ -27,22 +27,19 @@ extern "C" { struct rte_mbuf; -#define IP_FRAG_DEATH_ROW_LEN 32 /**< death row size (in packets) */ +#define RTE_IP_FRAG_DEATH_ROW_LEN 32 /**< death row size (in packets) */ /* death row size in mbufs */ -#define IP_FRAG_DEATH_ROW_MBUF_LEN \ - (IP_FRAG_DEATH_ROW_LEN * (RTE_LIBRTE_IP_FRAG_MAX_FRAG + 1)) +#define RTE_IP_FRAG_DEATH_ROW_MBUF_LEN \ + (RTE_IP_FRAG_DEATH_ROW_LEN * (RTE_LIBRTE_IP_FRAG_MAX_FRAG + 1)) /** mbuf death row (packets to be freed) */ struct rte_ip_frag_death_row { uint32_t cnt; /**< number of mbufs currently on death row */ - struct rte_mbuf *row[IP_FRAG_DEATH_ROW_MBUF_LEN]; + struct rte_mbuf *row[RTE_IP_FRAG_DEATH_ROW_MBUF_LEN]; /**< mbufs to be freed */ }; -/* struct ipv6_extension_fragment moved to librte_net/rte_ip.h and renamed. */ -#define ipv6_extension_fragment rte_ipv6_fragment_ext - /** * Create a new IP fragmentation table. * @@ -128,7 +125,7 @@ rte_ipv6_fragment_packet(struct rte_mbuf *pkt_in, struct rte_mbuf *rte_ipv6_frag_reassemble_packet(struct rte_ip_frag_tbl *tbl, struct rte_ip_frag_death_row *dr, struct rte_mbuf *mb, uint64_t tms, struct rte_ipv6_hdr *ip_hdr, - struct ipv6_extension_fragment *frag_hdr); + struct rte_ipv6_fragment_ext *frag_hdr); /** * Return a pointer to the packet's fragment header, if found. @@ -141,11 +138,11 @@ struct rte_mbuf *rte_ipv6_frag_reassemble_packet(struct rte_ip_frag_tbl *tbl, * Pointer to the IPv6 fragment extension header, or NULL if it's not * present. */ -static inline struct ipv6_extension_fragment * +static inline struct rte_ipv6_fragment_ext * rte_ipv6_frag_get_ipv6_fragment_header(struct rte_ipv6_hdr *hdr) { if (hdr->proto == IPPROTO_FRAGMENT) { - return (struct ipv6_extension_fragment *) ++hdr; + return (struct rte_ipv6_fragment_ext *) ++hdr; } else return NULL; @@ -258,9 +255,19 @@ rte_ip_frag_table_statistics_dump(FILE * f, const struct rte_ip_frag_tbl *tbl); */ __rte_experimental void -rte_frag_table_del_expired_entries(struct rte_ip_frag_tbl *tbl, +rte_ip_frag_table_del_expired_entries(struct rte_ip_frag_tbl *tbl, struct rte_ip_frag_death_row *dr, uint64_t tms); +/**@{*/ +/** + * Obsolete macros, kept here for compatibility reasons. + * Will be deprecated/removed in future DPDK releases. + */ +#define IP_FRAG_DEATH_ROW_LEN RTE_IP_FRAG_DEATH_ROW_LEN +#define IP_FRAG_DEATH_ROW_MBUF_LEN RTE_IP_FRAG_DEATH_ROW_MBUF_LEN +#define ipv6_extension_fragment rte_ipv6_fragment_ext +/**@}*/ + #ifdef __cplusplus } #endif diff --git a/lib/ip_frag/rte_ip_frag_common.c b/lib/ip_frag/rte_ip_frag_common.c index 6b29e9d7ed..2c781a6d33 100644 --- a/lib/ip_frag/rte_ip_frag_common.c +++ b/lib/ip_frag/rte_ip_frag_common.c @@ -124,7 +124,7 @@ rte_ip_frag_table_statistics_dump(FILE *f, const struct rte_ip_frag_tbl *tbl) /* Delete expired fragments */ void -rte_frag_table_del_expired_entries(struct rte_ip_frag_tbl *tbl, +rte_ip_frag_table_del_expired_entries(struct rte_ip_frag_tbl *tbl, struct rte_ip_frag_death_row *dr, uint64_t tms) { uint64_t max_cycles; @@ -135,7 +135,8 @@ rte_frag_table_del_expired_entries(struct rte_ip_frag_tbl *tbl, TAILQ_FOREACH(fp, &tbl->lru, lru) if (max_cycles + fp->start < tms) { /* check that death row has enough space */ - if (IP_FRAG_DEATH_ROW_MBUF_LEN - dr->cnt >= fp->last_idx) + if (RTE_IP_FRAG_DEATH_ROW_MBUF_LEN - dr->cnt >= + fp->last_idx) ip_frag_tbl_del(tbl, dr, fp); else return; diff --git a/lib/ip_frag/rte_ipv6_fragmentation.c b/lib/ip_frag/rte_ipv6_fragmentation.c index 5d67336f2d..88f29c158c 100644 --- a/lib/ip_frag/rte_ipv6_fragmentation.c +++ b/lib/ip_frag/rte_ipv6_fragmentation.c @@ -22,13 +22,13 @@ __fill_ipv6hdr_frag(struct rte_ipv6_hdr *dst, const struct rte_ipv6_hdr *src, uint16_t len, uint16_t fofs, uint32_t mf) { - struct ipv6_extension_fragment *fh; + struct rte_ipv6_fragment_ext *fh; rte_memcpy(dst, src, sizeof(*dst)); dst->payload_len = rte_cpu_to_be_16(len); dst->proto = IPPROTO_FRAGMENT; - fh = (struct ipv6_extension_fragment *) ++dst; + fh = (struct rte_ipv6_fragment_ext *) ++dst; fh->next_header = src->proto; fh->reserved = 0; fh->frag_data = rte_cpu_to_be_16(RTE_IPV6_SET_FRAG_DATA(fofs, mf)); @@ -94,7 +94,7 @@ rte_ipv6_fragment_packet(struct rte_mbuf *pkt_in, */ frag_size = mtu_size - sizeof(struct rte_ipv6_hdr) - - sizeof(struct ipv6_extension_fragment); + sizeof(struct rte_ipv6_fragment_ext); frag_size = RTE_ALIGN_FLOOR(frag_size, RTE_IPV6_EHDR_FO_ALIGN); /* Check that pkts_out is big enough to hold all fragments */ @@ -124,9 +124,9 @@ rte_ipv6_fragment_packet(struct rte_mbuf *pkt_in, /* Reserve space for the IP header that will be built later */ out_pkt->data_len = sizeof(struct rte_ipv6_hdr) + - sizeof(struct ipv6_extension_fragment); + sizeof(struct rte_ipv6_fragment_ext); out_pkt->pkt_len = sizeof(struct rte_ipv6_hdr) + - sizeof(struct ipv6_extension_fragment); + sizeof(struct rte_ipv6_fragment_ext); frag_bytes_remaining = frag_size; out_seg_prev = out_pkt; @@ -184,7 +184,7 @@ rte_ipv6_fragment_packet(struct rte_mbuf *pkt_in, fragment_offset = (uint16_t)(fragment_offset + out_pkt->pkt_len - sizeof(struct rte_ipv6_hdr) - - sizeof(struct ipv6_extension_fragment)); + - sizeof(struct rte_ipv6_fragment_ext)); /* Write the fragment to the output list */ pkts_out[out_pkt_pos] = out_pkt; diff --git a/lib/ip_frag/rte_ipv6_reassembly.c b/lib/ip_frag/rte_ipv6_reassembly.c index 6bc0bf792a..d4019e87e6 100644 --- a/lib/ip_frag/rte_ipv6_reassembly.c +++ b/lib/ip_frag/rte_ipv6_reassembly.c @@ -33,7 +33,7 @@ struct rte_mbuf * ipv6_frag_reassemble(struct ip_frag_pkt *fp) { struct rte_ipv6_hdr *ip_hdr; - struct ipv6_extension_fragment *frag_hdr; + struct rte_ipv6_fragment_ext *frag_hdr; struct rte_mbuf *m, *prev; uint32_t i, n, ofs, first_len; uint32_t last_len, move_len, payload_len; @@ -102,7 +102,7 @@ ipv6_frag_reassemble(struct ip_frag_pkt *fp) * the main IPv6 header instead. */ move_len = m->l2_len + m->l3_len - sizeof(*frag_hdr); - frag_hdr = (struct ipv6_extension_fragment *) (ip_hdr + 1); + frag_hdr = (struct rte_ipv6_fragment_ext *) (ip_hdr + 1); ip_hdr->proto = frag_hdr->next_header; ip_frag_memmove(rte_pktmbuf_mtod_offset(m, char *, sizeof(*frag_hdr)), @@ -136,7 +136,7 @@ ipv6_frag_reassemble(struct ip_frag_pkt *fp) struct rte_mbuf * rte_ipv6_frag_reassemble_packet(struct rte_ip_frag_tbl *tbl, struct rte_ip_frag_death_row *dr, struct rte_mbuf *mb, uint64_t tms, - struct rte_ipv6_hdr *ip_hdr, struct ipv6_extension_fragment *frag_hdr) + struct rte_ipv6_hdr *ip_hdr, struct rte_ipv6_fragment_ext *frag_hdr) { struct ip_frag_pkt *fp; struct ip_frag_key key; diff --git a/lib/ip_frag/version.map b/lib/ip_frag/version.map index 33f231fb31..e537224293 100644 --- a/lib/ip_frag/version.map +++ b/lib/ip_frag/version.map @@ -16,5 +16,5 @@ DPDK_22 { EXPERIMENTAL { global: - rte_frag_table_del_expired_entries; + rte_ip_frag_table_del_expired_entries; }; diff --git a/lib/port/rte_port_ras.c b/lib/port/rte_port_ras.c index 403028f8d6..8508814bb2 100644 --- a/lib/port/rte_port_ras.c +++ b/lib/port/rte_port_ras.c @@ -186,7 +186,7 @@ process_ipv6(struct rte_port_ring_writer_ras *p, struct rte_mbuf *pkt) struct rte_ipv6_hdr *pkt_hdr = rte_pktmbuf_mtod(pkt, struct rte_ipv6_hdr *); - struct ipv6_extension_fragment *frag_hdr; + struct rte_ipv6_fragment_ext *frag_hdr; uint16_t frag_data = 0; frag_hdr = rte_ipv6_frag_get_ipv6_fragment_header(pkt_hdr); if (frag_hdr != NULL) -- 2.25.1