X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fdpaa2%2Fdpaa2_ethdev.h;h=7b76ca7b2d5c90174d33e1c31b4f1c1f638458c4;hb=db94014c4c6084d4797b514c6d0f517cdd546076;hp=c7fb6539ff5bfde8ddf48641fc1a0621c154505e;hpb=6b6ca75191c705f74c905c3400bdc76c68576946;p=dpdk.git diff --git a/drivers/net/dpaa2/dpaa2_ethdev.h b/drivers/net/dpaa2/dpaa2_ethdev.h index c7fb6539ff..7b76ca7b2d 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.h +++ b/drivers/net/dpaa2/dpaa2_ethdev.h @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: BSD-3-Clause * * Copyright (c) 2015-2016 Freescale Semiconductor, Inc. All rights reserved. - * Copyright 2016-2019 NXP + * Copyright 2016-2021 NXP * */ @@ -12,6 +12,7 @@ #include #include +#include "dpaa2_tm.h" #include #include @@ -26,6 +27,10 @@ #define DPAA2_RX_DEFAULT_NBDESC 512 +#define DPAA2_ETH_MAX_LEN (RTE_ETHER_MTU + \ + RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN + \ + VLAN_TAG_SIZE) + /*default tc to be used for ,congestion, distribution etc configuration. */ #define DPAA2_DEF_TC 0 @@ -55,13 +60,16 @@ /* Disable RX tail drop, default is enable */ #define DPAA2_RX_TAILDROP_OFF 0x04 +/* Tx confirmation enabled */ +#define DPAA2_TX_CONF_ENABLE 0x08 #define DPAA2_RSS_OFFLOAD_ALL ( \ ETH_RSS_L2_PAYLOAD | \ ETH_RSS_IP | \ ETH_RSS_UDP | \ ETH_RSS_TCP | \ - ETH_RSS_SCTP) + ETH_RSS_SCTP | \ + ETH_RSS_MPLS) /* LX2 FRC Parsed values (Little Endian) */ #define DPAA2_PKT_TYPE_ETHER 0x0060 @@ -91,14 +99,49 @@ #define DPAA2_PKT_TYPE_VLAN_2 0x0260 /* enable timestamp in mbuf*/ -extern enum pmd_dpaa2_ts dpaa2_enable_ts; +extern bool dpaa2_enable_ts[]; +extern uint64_t dpaa2_timestamp_rx_dynflag; +extern int dpaa2_timestamp_dynfield_offset; #define DPAA2_QOS_TABLE_RECONFIGURE 1 #define DPAA2_FS_TABLE_RECONFIGURE 2 +#define DPAA2_QOS_TABLE_IPADDR_EXTRACT 4 +#define DPAA2_FS_TABLE_IPADDR_EXTRACT 8 + +#define DPAA2_FLOW_MAX_KEY_SIZE 16 + /*Externaly defined*/ extern const struct rte_flow_ops dpaa2_flow_ops; -extern enum rte_filter_type dpaa2_filter_type; + +extern const struct rte_tm_ops dpaa2_tm_ops; + +extern bool dpaa2_enable_err_queue; + +#define IP_ADDRESS_OFFSET_INVALID (-1) + +struct dpaa2_key_info { + uint8_t key_offset[DPKG_MAX_NUM_OF_EXTRACTS]; + uint8_t key_size[DPKG_MAX_NUM_OF_EXTRACTS]; + /* Special for IP address. */ + int ipv4_src_offset; + int ipv4_dst_offset; + int ipv6_src_offset; + int ipv6_dst_offset; + uint8_t key_total_size; +}; + +struct dpaa2_key_extract { + struct dpkg_profile_cfg dpkg; + struct dpaa2_key_info key_info; +}; + +struct extract_s { + struct dpaa2_key_extract qos_key_extract; + struct dpaa2_key_extract tc_key_extract[MAX_TCS]; + uint64_t qos_extract_param; + uint64_t tc_extract_param[MAX_TCS]; +}; struct dpaa2_dev_priv { void *hw; @@ -112,32 +155,24 @@ struct dpaa2_dev_priv { void *tx_vq[MAX_TX_QUEUES]; struct dpaa2_bp_list *bp_list; /**