DPDK  25.03.0
rte_reorder.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2010-2014 Intel Corporation
3  */
4 
5 #ifndef _RTE_REORDER_H_
6 #define _RTE_REORDER_H_
7 
17 #include <rte_common.h>
18 #include <rte_compat.h>
19 #include <rte_mbuf.h>
20 #include <rte_mbuf_dyn.h>
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
26 struct rte_reorder_buffer;
27 
28 typedef uint32_t rte_reorder_seqn_t;
29 extern int rte_reorder_seqn_dynfield_offset;
30 
40 __rte_experimental
41 static inline rte_reorder_seqn_t *
43 {
44  return RTE_MBUF_DYNFIELD(mbuf, rte_reorder_seqn_dynfield_offset,
45  rte_reorder_seqn_t *);
46 }
47 
55 void
56 rte_reorder_free(struct rte_reorder_buffer *b);
57 
77 struct rte_reorder_buffer *
78 rte_reorder_create(const char *name, unsigned int socket_id, unsigned int size)
80 
98 struct rte_reorder_buffer *
99 rte_reorder_init(struct rte_reorder_buffer *b, unsigned int bufsize,
100  const char *name, unsigned int size);
101 
114 struct rte_reorder_buffer *
115 rte_reorder_find_existing(const char *name);
116 
123 void
124 rte_reorder_reset(struct rte_reorder_buffer *b);
125 
148 int
149 rte_reorder_insert(struct rte_reorder_buffer *b, struct rte_mbuf *mbuf);
150 
168 unsigned int
169 rte_reorder_drain(struct rte_reorder_buffer *b, struct rte_mbuf **mbufs,
170  unsigned max_mbufs);
171 
193 __rte_experimental
194 unsigned int
195 rte_reorder_drain_up_to_seqn(struct rte_reorder_buffer *b, struct rte_mbuf **mbufs,
196  unsigned int max_mbufs, rte_reorder_seqn_t seqn);
197 
213 __rte_experimental
214 unsigned int
215 rte_reorder_min_seqn_set(struct rte_reorder_buffer *b, rte_reorder_seqn_t min_seqn);
216 
230 __rte_experimental
231 unsigned int
232 rte_reorder_memory_footprint_get(unsigned int size);
233 
234 #ifdef __cplusplus
235 }
236 #endif
237 
238 #endif /* _RTE_REORDER_H_ */
unsigned int rte_reorder_drain(struct rte_reorder_buffer *b, struct rte_mbuf **mbufs, unsigned max_mbufs)
struct rte_reorder_buffer struct rte_reorder_buffer * rte_reorder_init(struct rte_reorder_buffer *b, unsigned int bufsize, const char *name, unsigned int size)
static __rte_experimental rte_reorder_seqn_t * rte_reorder_seqn(struct rte_mbuf *mbuf)
Definition: rte_reorder.h:42
int rte_reorder_insert(struct rte_reorder_buffer *b, struct rte_mbuf *mbuf)
struct rte_reorder_buffer * rte_reorder_find_existing(const char *name)
void rte_reorder_free(struct rte_reorder_buffer *b)
#define RTE_MBUF_DYNFIELD(m, offset, type)
Definition: rte_mbuf_dyn.h:227
__rte_experimental unsigned int rte_reorder_min_seqn_set(struct rte_reorder_buffer *b, rte_reorder_seqn_t min_seqn)
#define __rte_dealloc(dealloc, argno)
Definition: rte_common.h:305
#define __rte_malloc
Definition: rte_common.h:294
__rte_experimental unsigned int rte_reorder_memory_footprint_get(unsigned int size)
struct rte_reorder_buffer * rte_reorder_create(const char *name, unsigned int socket_id, unsigned int size) __rte_malloc __rte_dealloc(rte_reorder_free
__rte_experimental unsigned int rte_reorder_drain_up_to_seqn(struct rte_reorder_buffer *b, struct rte_mbuf **mbufs, unsigned int max_mbufs, rte_reorder_seqn_t seqn)
void rte_reorder_reset(struct rte_reorder_buffer *b)