1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright 2018-2021 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 /** 21 * @warning 22 * @b EXPERIMENTAL: this API may change, or be removed, without prior notice 23 * 24 * Create a flow rule to demultiplex ethernet traffic to separate network 25 * interfaces. 26 * 27 * @param dpdmux_id 28 * ID of the DPDMUX MC object. 29 * @param[in] pattern 30 * Pattern specification. 31 * @param[in] actions 32 * Associated actions. 33 * 34 * @return 35 * A valid handle in case of success, NULL otherwise. 36 */ 37 __rte_experimental 38 struct rte_flow * 39 rte_pmd_dpaa2_mux_flow_create(uint32_t dpdmux_id, 40 struct rte_flow_item *pattern[], 41 struct rte_flow_action *actions[]); 42 43 /** 44 * @warning 45 * @b EXPERIMENTAL: this API may change, or be removed, without prior notice 46 * 47 * demultiplex interface max rx frame length configure 48 * 49 * @param dpdmux_id 50 * ID of the DPDMUX MC object. 51 * @param max_rx_frame_len 52 * maximum receive frame length (will be checked to be minimux of all dpnis) 53 * 54 */ 55 __rte_experimental 56 int 57 rte_pmd_dpaa2_mux_rx_frame_len(uint32_t dpdmux_id, uint16_t max_rx_frame_len); 58 59 /** 60 * @warning 61 * @b EXPERIMENTAL: this API may change, or be removed, without prior notice 62 * 63 * Create a custom hash key on basis of offset of start of packet and size. 64 * for e.g. if we need GRE packets (non-vlan and without any extra headers) 65 * to be hashed on basis of inner IP header, we will provide offset as: 66 * 14 (eth) + 20 (IP) + 4 (GRE) + 12 (Inner Src offset) = 50 and size 67 * as 8 bytes. 68 * 69 * @param port_id 70 * The port identifier of the Ethernet device. 71 * @param offset 72 * Offset from the start of packet which needs to be included to 73 * calculate hash 74 * @param size 75 * Size of the hash input key 76 * 77 * @return 78 * - 0 if successful. 79 * - Negative in case of failure. 80 */ 81 __rte_experimental 82 int 83 rte_pmd_dpaa2_set_custom_hash(uint16_t port_id, 84 uint16_t offset, 85 uint8_t size); 86 87 #endif /* _RTE_PMD_DPAA2_H */ 88