1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright 2018-2019 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 */ 91