[dpdk-dev] [PATCH v3 02/12] net/ice: complete device info get in DCF

Yang, Qiming qiming.yang at intel.com
Thu Jun 18 08:44:51 CEST 2020



> -----Original Message-----
> From: Xu, Ting <ting.xu at intel.com>
> Sent: Tuesday, June 16, 2020 20:41
> To: dev at dpdk.org
> Cc: Zhang, Qi Z <qi.z.zhang at intel.com>; Yang, Qiming
> <qiming.yang at intel.com>; Wu, Jingjing <jingjing.wu at intel.com>; Xing, Beilei
> <beilei.xing at intel.com>; Kovacevic, Marko <marko.kovacevic at intel.com>;
> Mcnamara, John <john.mcnamara at intel.com>; Ye, Xiaolong
> <xiaolong.ye at intel.com>
> Subject: [PATCH v3 02/12] net/ice: complete device info get in DCF
> 
> From: Qi Zhang <qi.z.zhang at intel.com>
> 
> Add support to get complete device information for DCF, including Rx/Tx
> offload capabilities and default configuration.
> 
> Signed-off-by: Qi Zhang <qi.z.zhang at intel.com>
> Signed-off-by: Ting Xu <ting.xu at intel.com>
> ---
>  drivers/net/ice/ice_dcf_ethdev.c | 72
> ++++++++++++++++++++++++++++++--
>  1 file changed, 69 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/net/ice/ice_dcf_ethdev.c
> b/drivers/net/ice/ice_dcf_ethdev.c
> index e5ba1a61f..7f24ef81a 100644
> --- a/drivers/net/ice/ice_dcf_ethdev.c
> +++ b/drivers/net/ice/ice_dcf_ethdev.c
> @@ -24,6 +24,7 @@
> 
>  #include "ice_generic_flow.h"
>  #include "ice_dcf_ethdev.h"
> +#include "ice_rxtx.h"
> 
>  static uint16_t
>  ice_dcf_recv_pkts(__rte_unused void *rx_queue, @@ -66,11 +67,76 @@
> ice_dcf_dev_info_get(struct rte_eth_dev *dev,
>  		     struct rte_eth_dev_info *dev_info)  {
>  	struct ice_dcf_adapter *adapter = dev->data->dev_private;
> +	struct ice_dcf_hw *hw = &adapter->real_hw;
> 
>  	dev_info->max_mac_addrs = 1;
> -	dev_info->max_rx_pktlen = (uint32_t)-1;
> -	dev_info->max_rx_queues = RTE_DIM(adapter->rxqs);
> -	dev_info->max_tx_queues = RTE_DIM(adapter->txqs);
> +	dev_info->max_rx_queues = hw->vsi_res->num_queue_pairs;
> +	dev_info->max_tx_queues = hw->vsi_res->num_queue_pairs;
> +	dev_info->min_rx_bufsize = ICE_BUF_SIZE_MIN;
> +	dev_info->max_rx_pktlen = ICE_FRAME_SIZE_MAX;
> +	dev_info->hash_key_size = hw->vf_res->rss_key_size;
> +	dev_info->reta_size = hw->vf_res->rss_lut_size;
> +	dev_info->flow_type_rss_offloads = ICE_RSS_OFFLOAD_ALL;
> +
> +	dev_info->rx_offload_capa =
> +		DEV_RX_OFFLOAD_VLAN_STRIP |
> +		DEV_RX_OFFLOAD_QINQ_STRIP |

Do we support QINQ in DCF now?

> +		DEV_RX_OFFLOAD_IPV4_CKSUM |
> +		DEV_RX_OFFLOAD_UDP_CKSUM |
> +		DEV_RX_OFFLOAD_TCP_CKSUM |
> +		DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM |
> +		DEV_RX_OFFLOAD_SCATTER |
> +		DEV_RX_OFFLOAD_JUMBO_FRAME |
> +		DEV_RX_OFFLOAD_VLAN_FILTER |
> +		DEV_RX_OFFLOAD_RSS_HASH;
> +	dev_info->tx_offload_capa =
> +		DEV_TX_OFFLOAD_VLAN_INSERT |
> +		DEV_TX_OFFLOAD_QINQ_INSERT |

Same as above

> +		DEV_TX_OFFLOAD_IPV4_CKSUM |
> +		DEV_TX_OFFLOAD_UDP_CKSUM |
> +		DEV_TX_OFFLOAD_TCP_CKSUM |
> +		DEV_TX_OFFLOAD_SCTP_CKSUM |
> +		DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM |
> +		DEV_TX_OFFLOAD_TCP_TSO |
> +		DEV_TX_OFFLOAD_VXLAN_TNL_TSO |
> +		DEV_TX_OFFLOAD_GRE_TNL_TSO |
> +		DEV_TX_OFFLOAD_IPIP_TNL_TSO |
> +		DEV_TX_OFFLOAD_GENEVE_TNL_TSO |
> +		DEV_TX_OFFLOAD_MULTI_SEGS;
> +
> +	dev_info->default_rxconf = (struct rte_eth_rxconf) {
> +		.rx_thresh = {
> +			.pthresh = ICE_DEFAULT_RX_PTHRESH,
> +			.hthresh = ICE_DEFAULT_RX_HTHRESH,
> +			.wthresh = ICE_DEFAULT_RX_WTHRESH,
> +		},
> +		.rx_free_thresh = ICE_DEFAULT_RX_FREE_THRESH,
> +		.rx_drop_en = 0,
> +		.offloads = 0,
> +	};
> +
> +	dev_info->default_txconf = (struct rte_eth_txconf) {
> +		.tx_thresh = {
> +			.pthresh = ICE_DEFAULT_TX_PTHRESH,
> +			.hthresh = ICE_DEFAULT_TX_HTHRESH,
> +			.wthresh = ICE_DEFAULT_TX_WTHRESH,
> +		},
> +		.tx_free_thresh = ICE_DEFAULT_TX_FREE_THRESH,
> +		.tx_rs_thresh = ICE_DEFAULT_TX_RSBIT_THRESH,
> +		.offloads = 0,
> +	};
> +
> +	dev_info->rx_desc_lim = (struct rte_eth_desc_lim) {
> +		.nb_max = ICE_MAX_RING_DESC,
> +		.nb_min = ICE_MIN_RING_DESC,
> +		.nb_align = ICE_ALIGN_RING_DESC,
> +	};
> +
> +	dev_info->tx_desc_lim = (struct rte_eth_desc_lim) {
> +		.nb_max = ICE_MAX_RING_DESC,
> +		.nb_min = ICE_MIN_RING_DESC,
> +		.nb_align = ICE_ALIGN_RING_DESC,
> +	};
> 
>  	return 0;
>  }
> --
> 2.17.1



More information about the dev mailing list