1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright 2018-2021 NXP
5 #ifndef _RTE_PMD_DPAA2_H
6 #define _RTE_PMD_DPAA2_H
9 * @file rte_pmd_dpaa2.h
11 * NXP dpaa2 PMD specific functions.
17 * Create a flow rule to demultiplex ethernet traffic to separate network
21 * ID of the DPDMUX MC object.
23 * Pattern specification.
28 * A valid handle in case of success, NULL otherwise.
31 rte_pmd_dpaa2_mux_flow_create(uint32_t dpdmux_id,
32 struct rte_flow_item *pattern[],
33 struct rte_flow_action *actions[]);
37 * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
39 * demultiplex interface max rx frame length configure
42 * ID of the DPDMUX MC object.
43 * @param max_rx_frame_len
44 * maximum receive frame length (will be checked to be minimux of all dpnis)
49 rte_pmd_dpaa2_mux_rx_frame_len(uint32_t dpdmux_id, uint16_t max_rx_frame_len);
52 * Create a custom hash key on basis of offset of start of packet and size.
53 * for e.g. if we need GRE packets (non-vlan and without any extra headers)
54 * to be hashed on basis of inner IP header, we will provide offset as:
55 * 14 (eth) + 20 (IP) + 4 (GRE) + 12 (Inner Src offset) = 50 and size
59 * The port identifier of the Ethernet device.
61 * Offset from the start of packet which needs to be included to
64 * Size of the hash input key
68 * - Negative in case of failure.
71 rte_pmd_dpaa2_set_custom_hash(uint16_t port_id,
77 * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
79 * Do thread specific initialization
83 rte_pmd_dpaa2_thread_init(void);
87 * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
89 * Generate the DPAA2 WRIOP based hash value
94 * Size of the hash input key in bytes
98 * - Negative in case of failure.
103 rte_pmd_dpaa2_get_tlu_hash(uint8_t *key, int size);
104 #endif /* _RTE_PMD_DPAA2_H */