aboutsummaryrefslogtreecommitdiffstats
path: root/lib/librte_mbuf/rte_mbuf_pool_ops.h
blob: 7ed95a49a44ed99bd60e8bbd85faf0bf8f8c5822 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/* SPDX-License-Identifier: BSD-3-Clause
 * Copyright 2018 NXP
 */

#ifndef _RTE_MBUF_POOL_OPS_H_
#define _RTE_MBUF_POOL_OPS_H_

/**
 * @file
 * RTE Mbuf Pool Ops
 *
 * These APIs are for configuring the mbuf pool ops names to be largely used by
 * rte_pktmbuf_pool_create(). However, this can also be used to set and inquire
 * the best mempool ops available.
 */

#include <rte_compat.h>

#ifdef __cplusplus
extern "C" {
#endif

/**
 * Set the platform supported pktmbuf HW mempool ops name
 *
 * This function allow the HW to register the actively supported HW mempool
 * ops_name. Only one HW mempool ops can be registered at any point of time.
 *
 * @param ops_name
 * @return
 *   - On success, zero.
 *   - On failure, a negative value.
 */
int
rte_mbuf_set_platform_mempool_ops(const char *ops_name);

/**
 * Get configured platform supported pktmbuf HW mempool ops name
 *
 * This function returns the platform supported mempool ops name.
 *
 * @return
 *   - On success, platform pool ops name.
 *   - On failure, NULL.
 */
const char *
rte_mbuf_platform_mempool_ops(void);

/**
 * Set the user preferred pktmbuf mempool ops name
 *
 * This function can be used by the user to configure user preferred
 * mempool ops name.
 *
 * @param ops_name
 * @return
 *   - On success, zero.
 *   - On failure, a negative value.
 */
int
rte_mbuf_set_user_mempool_ops(const char *ops_name);

/**
 * Get user preferred pool ops name for mbuf
 *
 * This function returns the user configured mempool ops name.
 *
 * @return
 *   - On success, user pool ops name..
 *   - On failure, NULL.
 */
const char *
rte_mbuf_user_mempool_ops(void);

/**
 * Get the best mempool ops name for pktmbuf.
 *
 * This function is used to determine the best options for mempool ops for
 * pktmbuf allocations. Following are the priority order:
 * 1. User defined, 2. Platform HW supported, 3. Compile time configured.
 * This function is also used by the rte_pktmbuf_pool_create to get the best
 * mempool ops name.
 *
 * @return
 *   returns preferred mbuf pool ops name
 */
const char *
rte_mbuf_best_mempool_ops(void);


#ifdef __cplusplus
}
#endif

#endif /* _RTE_MBUF_POOL_OPS_H_ */