]> git.proxmox.com Git - ceph.git/blob - ceph/src/spdk/dpdk/drivers/net/dpaa2/rte_pmd_dpaa2.h
import 15.2.0 Octopus source
[ceph.git] / ceph / src / spdk / dpdk / 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 /**
63 * @warning
64 * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
65 *
66 * Create a custom hash key on basis of offset of start of packet and size.
67 * for e.g. if we need GRE packets (non-vlan and without any extra headers)
68 * to be hashed on basis of inner IP header, we will provide offset as:
69 * 14 (eth) + 20 (IP) + 4 (GRE) + 12 (Inner Src offset) = 50 and size
70 * as 8 bytes.
71 *
72 * @param port_id
73 * The port identifier of the Ethernet device.
74 * @param offset
75 * Offset from the start of packet which needs to be included to
76 * calculate hash
77 * @param size
78 * Size of the hash input key
79 *
80 * @return
81 * - 0 if successful.
82 * - Negative in case of failure.
83 */
84 __rte_experimental
85 int
86 rte_pmd_dpaa2_set_custom_hash(uint16_t port_id,
87 uint16_t offset,
88 uint8_t size);
89
90 #endif /* _RTE_PMD_DPAA2_H */