57de27f21b51a69cf7c1eb7585ba8f0f0724ea79
[dpdk.git] / drivers / net / dpaa2 / rte_pmd_dpaa2.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright 2018 NXP
3  */
4
5 #ifndef _RTE_PMD_DPAA2_H
6 #define _RTE_PMD_DPAA2_H
7
8 /**
9  * @file rte_pmd_dpaa2.h
10  *
11  * NXP dpaa2 PMD specific functions.
12  *
13  * @warning
14  * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
15  *
16  */
17
18 #include <rte_flow.h>
19
20 enum pmd_dpaa2_ts {
21         PMD_DPAA2_DISABLE_TS,
22         PMD_DPAA2_ENABLE_TS
23 };
24
25 /**
26  * @warning
27  * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
28  *
29  * Enable/Disable timestamping update in mbuf for LX2160 kind of devices.
30  * For LS2088/LS1088 devices, timestamping will be updated in mbuf without
31  * calling this API.
32  *
33  * @param pmd_dpaa2_ts
34  *    Enum to enable/disable timestamp update in mbuf for LX2160 devices.
35  */
36 __rte_experimental
37 void rte_pmd_dpaa2_set_timestamp(enum pmd_dpaa2_ts);
38
39 /**
40  * @warning
41  * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
42  *
43  * Create a flow rule to demultiplex ethernet traffic to separate network
44  * interfaces.
45  *
46  * @param dpdmux_id
47  *    ID of the DPDMUX MC object.
48  * @param[in] pattern
49  *    Pattern specification.
50  * @param[in] actions
51  *    Associated actions.
52  *
53  * @return
54  *    A valid handle in case of success, NULL otherwise.
55  */
56 __rte_experimental
57 struct rte_flow *
58 rte_pmd_dpaa2_mux_flow_create(uint32_t dpdmux_id,
59                               struct rte_flow_item *pattern[],
60                               struct rte_flow_action *actions[]);
61
62 #endif /* _RTE_PMD_DPAA2_H */