net/ice: support getting device information
Add ops dev_infos_get. Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com> Signed-off-by: Qiming Yang <qiming.yang@intel.com> Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com> Signed-off-by: Jingjing Wu <jingjing.wu@intel.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com> Reviewed-by: Qi Zhang <qi.z.zhang@intel.com>
This commit is contained in:
parent
50370662b7
commit
690175ee51
@ -4,6 +4,7 @@
|
||||
; Refer to default.ini for the full list of available PMD features.
|
||||
;
|
||||
[Features]
|
||||
Speed capabilities = Y
|
||||
Queue start/stop = Y
|
||||
BSD nic_uio = Y
|
||||
Linux UIO = Y
|
||||
|
@ -19,6 +19,8 @@ static int ice_dev_start(struct rte_eth_dev *dev);
|
||||
static void ice_dev_stop(struct rte_eth_dev *dev);
|
||||
static void ice_dev_close(struct rte_eth_dev *dev);
|
||||
static int ice_dev_reset(struct rte_eth_dev *dev);
|
||||
static void ice_dev_info_get(struct rte_eth_dev *dev,
|
||||
struct rte_eth_dev_info *dev_info);
|
||||
|
||||
static const struct rte_pci_id pci_id_ice_map[] = {
|
||||
{ RTE_PCI_DEVICE(ICE_INTEL_VENDOR_ID, ICE_DEV_ID_E810C_BACKPLANE) },
|
||||
@ -41,6 +43,7 @@ static const struct eth_dev_ops ice_eth_dev_ops = {
|
||||
.rx_queue_release = ice_rx_queue_release,
|
||||
.tx_queue_setup = ice_tx_queue_setup,
|
||||
.tx_queue_release = ice_tx_queue_release,
|
||||
.dev_infos_get = ice_dev_info_get,
|
||||
};
|
||||
|
||||
static void
|
||||
@ -790,6 +793,106 @@ ice_dev_reset(struct rte_eth_dev *dev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
ice_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
|
||||
{
|
||||
struct ice_pf *pf = ICE_DEV_PRIVATE_TO_PF(dev->data->dev_private);
|
||||
struct ice_hw *hw = ICE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
|
||||
struct ice_vsi *vsi = pf->main_vsi;
|
||||
struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(dev->device);
|
||||
|
||||
dev_info->min_rx_bufsize = ICE_BUF_SIZE_MIN;
|
||||
dev_info->max_rx_pktlen = ICE_FRAME_SIZE_MAX;
|
||||
dev_info->max_rx_queues = vsi->nb_qps;
|
||||
dev_info->max_tx_queues = vsi->nb_qps;
|
||||
dev_info->max_mac_addrs = vsi->max_macaddrs;
|
||||
dev_info->max_vfs = pci_dev->max_vfs;
|
||||
|
||||
dev_info->rx_offload_capa =
|
||||
DEV_RX_OFFLOAD_VLAN_STRIP |
|
||||
DEV_RX_OFFLOAD_IPV4_CKSUM |
|
||||
DEV_RX_OFFLOAD_UDP_CKSUM |
|
||||
DEV_RX_OFFLOAD_TCP_CKSUM |
|
||||
DEV_RX_OFFLOAD_QINQ_STRIP |
|
||||
DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM |
|
||||
DEV_RX_OFFLOAD_VLAN_EXTEND |
|
||||
DEV_RX_OFFLOAD_JUMBO_FRAME |
|
||||
DEV_RX_OFFLOAD_KEEP_CRC |
|
||||
DEV_RX_OFFLOAD_SCATTER |
|
||||
DEV_RX_OFFLOAD_VLAN_FILTER;
|
||||
dev_info->tx_offload_capa =
|
||||
DEV_TX_OFFLOAD_VLAN_INSERT |
|
||||
DEV_TX_OFFLOAD_QINQ_INSERT |
|
||||
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_MULTI_SEGS |
|
||||
DEV_TX_OFFLOAD_MBUF_FAST_FREE;
|
||||
dev_info->rx_queue_offload_capa = 0;
|
||||
dev_info->tx_queue_offload_capa = 0;
|
||||
|
||||
dev_info->reta_size = hw->func_caps.common_cap.rss_table_size;
|
||||
dev_info->hash_key_size = (VSIQF_HKEY_MAX_INDEX + 1) * sizeof(uint32_t);
|
||||
dev_info->flow_type_rss_offloads = ICE_RSS_OFFLOAD_ALL;
|
||||
|
||||
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,
|
||||
};
|
||||
|
||||
dev_info->speed_capa = ETH_LINK_SPEED_10M |
|
||||
ETH_LINK_SPEED_100M |
|
||||
ETH_LINK_SPEED_1G |
|
||||
ETH_LINK_SPEED_2_5G |
|
||||
ETH_LINK_SPEED_5G |
|
||||
ETH_LINK_SPEED_10G |
|
||||
ETH_LINK_SPEED_20G |
|
||||
ETH_LINK_SPEED_25G |
|
||||
ETH_LINK_SPEED_40G;
|
||||
|
||||
dev_info->nb_rx_queues = dev->data->nb_rx_queues;
|
||||
dev_info->nb_tx_queues = dev->data->nb_tx_queues;
|
||||
|
||||
dev_info->default_rxportconf.burst_size = ICE_RX_MAX_BURST;
|
||||
dev_info->default_txportconf.burst_size = ICE_TX_MAX_BURST;
|
||||
dev_info->default_rxportconf.nb_queues = 1;
|
||||
dev_info->default_txportconf.nb_queues = 1;
|
||||
dev_info->default_rxportconf.ring_size = ICE_BUF_SIZE_MIN;
|
||||
dev_info->default_txportconf.ring_size = ICE_BUF_SIZE_MIN;
|
||||
}
|
||||
|
||||
static int
|
||||
ice_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
|
||||
struct rte_pci_device *pci_dev)
|
||||
|
@ -102,6 +102,19 @@
|
||||
ICE_FLAG_RSS_AQ_CAPABLE | \
|
||||
ICE_FLAG_VF_MAC_BY_PF)
|
||||
|
||||
#define ICE_RSS_OFFLOAD_ALL ( \
|
||||
ETH_RSS_FRAG_IPV4 | \
|
||||
ETH_RSS_NONFRAG_IPV4_TCP | \
|
||||
ETH_RSS_NONFRAG_IPV4_UDP | \
|
||||
ETH_RSS_NONFRAG_IPV4_SCTP | \
|
||||
ETH_RSS_NONFRAG_IPV4_OTHER | \
|
||||
ETH_RSS_FRAG_IPV6 | \
|
||||
ETH_RSS_NONFRAG_IPV6_TCP | \
|
||||
ETH_RSS_NONFRAG_IPV6_UDP | \
|
||||
ETH_RSS_NONFRAG_IPV6_SCTP | \
|
||||
ETH_RSS_NONFRAG_IPV6_OTHER | \
|
||||
ETH_RSS_L2_PAYLOAD)
|
||||
|
||||
struct ice_adapter;
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user