net/mana: report device info
Add the function to get device info. Signed-off-by: Long Li <longli@microsoft.com>
This commit is contained in:
parent
bd15f237f2
commit
d878cb0950
@ -4,6 +4,7 @@
|
||||
; Refer to default.ini for the full list of available PMD features.
|
||||
;
|
||||
[Features]
|
||||
Speed capabilities = P
|
||||
Link status = P
|
||||
Removal event = Y
|
||||
Multiprocess aware = Y
|
||||
|
@ -124,6 +124,87 @@ mana_dev_close(struct rte_eth_dev *dev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
mana_dev_info_get(struct rte_eth_dev *dev,
|
||||
struct rte_eth_dev_info *dev_info)
|
||||
{
|
||||
struct mana_priv *priv = dev->data->dev_private;
|
||||
|
||||
dev_info->max_mtu = RTE_ETHER_MTU;
|
||||
|
||||
/* RX params */
|
||||
dev_info->min_rx_bufsize = MIN_RX_BUF_SIZE;
|
||||
dev_info->max_rx_pktlen = MAX_FRAME_SIZE;
|
||||
|
||||
dev_info->max_rx_queues = priv->max_rx_queues;
|
||||
dev_info->max_tx_queues = priv->max_tx_queues;
|
||||
|
||||
dev_info->max_mac_addrs = MANA_MAX_MAC_ADDR;
|
||||
dev_info->max_hash_mac_addrs = 0;
|
||||
|
||||
dev_info->max_vfs = 1;
|
||||
|
||||
/* Offload params */
|
||||
dev_info->rx_offload_capa = MANA_DEV_RX_OFFLOAD_SUPPORT;
|
||||
|
||||
dev_info->tx_offload_capa = MANA_DEV_TX_OFFLOAD_SUPPORT;
|
||||
|
||||
/* RSS */
|
||||
dev_info->reta_size = INDIRECTION_TABLE_NUM_ELEMENTS;
|
||||
dev_info->hash_key_size = TOEPLITZ_HASH_KEY_SIZE_IN_BYTES;
|
||||
dev_info->flow_type_rss_offloads = MANA_ETH_RSS_SUPPORT;
|
||||
|
||||
/* Thresholds */
|
||||
dev_info->default_rxconf = (struct rte_eth_rxconf){
|
||||
.rx_thresh = {
|
||||
.pthresh = 8,
|
||||
.hthresh = 8,
|
||||
.wthresh = 0,
|
||||
},
|
||||
.rx_free_thresh = 32,
|
||||
/* If no descriptors available, pkts are dropped by default */
|
||||
.rx_drop_en = 1,
|
||||
};
|
||||
|
||||
dev_info->default_txconf = (struct rte_eth_txconf){
|
||||
.tx_thresh = {
|
||||
.pthresh = 32,
|
||||
.hthresh = 0,
|
||||
.wthresh = 0,
|
||||
},
|
||||
.tx_rs_thresh = 32,
|
||||
.tx_free_thresh = 32,
|
||||
};
|
||||
|
||||
/* Buffer limits */
|
||||
dev_info->rx_desc_lim.nb_min = MIN_BUFFERS_PER_QUEUE;
|
||||
dev_info->rx_desc_lim.nb_max = priv->max_rx_desc;
|
||||
dev_info->rx_desc_lim.nb_align = MIN_BUFFERS_PER_QUEUE;
|
||||
dev_info->rx_desc_lim.nb_seg_max = priv->max_recv_sge;
|
||||
dev_info->rx_desc_lim.nb_mtu_seg_max = priv->max_recv_sge;
|
||||
|
||||
dev_info->tx_desc_lim.nb_min = MIN_BUFFERS_PER_QUEUE;
|
||||
dev_info->tx_desc_lim.nb_max = priv->max_tx_desc;
|
||||
dev_info->tx_desc_lim.nb_align = MIN_BUFFERS_PER_QUEUE;
|
||||
dev_info->tx_desc_lim.nb_seg_max = priv->max_send_sge;
|
||||
dev_info->rx_desc_lim.nb_mtu_seg_max = priv->max_recv_sge;
|
||||
|
||||
/* Speed */
|
||||
dev_info->speed_capa = RTE_ETH_LINK_SPEED_100G;
|
||||
|
||||
/* RX params */
|
||||
dev_info->default_rxportconf.burst_size = 1;
|
||||
dev_info->default_rxportconf.ring_size = MAX_RECEIVE_BUFFERS_PER_QUEUE;
|
||||
dev_info->default_rxportconf.nb_queues = 1;
|
||||
|
||||
/* TX params */
|
||||
dev_info->default_txportconf.burst_size = 1;
|
||||
dev_info->default_txportconf.ring_size = MAX_SEND_BUFFERS_PER_QUEUE;
|
||||
dev_info->default_txportconf.nb_queues = 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const uint32_t *
|
||||
mana_supported_ptypes(struct rte_eth_dev *dev __rte_unused)
|
||||
{
|
||||
@ -160,11 +241,13 @@ mana_dev_link_update(struct rte_eth_dev *dev,
|
||||
static const struct eth_dev_ops mana_dev_ops = {
|
||||
.dev_configure = mana_dev_configure,
|
||||
.dev_close = mana_dev_close,
|
||||
.dev_infos_get = mana_dev_info_get,
|
||||
.dev_supported_ptypes_get = mana_supported_ptypes,
|
||||
.link_update = mana_dev_link_update,
|
||||
};
|
||||
|
||||
static const struct eth_dev_ops mana_dev_secondary_ops = {
|
||||
.dev_infos_get = mana_dev_info_get,
|
||||
};
|
||||
|
||||
uint16_t
|
||||
|
@ -16,6 +16,34 @@ struct mana_shared_data {
|
||||
unsigned int secondary_cnt;
|
||||
};
|
||||
|
||||
#define MIN_RX_BUF_SIZE 1024
|
||||
#define MAX_FRAME_SIZE RTE_ETHER_MAX_LEN
|
||||
#define MANA_MAX_MAC_ADDR 1
|
||||
|
||||
#define MANA_DEV_RX_OFFLOAD_SUPPORT ( \
|
||||
RTE_ETH_RX_OFFLOAD_CHECKSUM | \
|
||||
RTE_ETH_RX_OFFLOAD_RSS_HASH)
|
||||
|
||||
#define MANA_DEV_TX_OFFLOAD_SUPPORT ( \
|
||||
RTE_ETH_TX_OFFLOAD_MULTI_SEGS | \
|
||||
RTE_ETH_TX_OFFLOAD_IPV4_CKSUM | \
|
||||
RTE_ETH_TX_OFFLOAD_TCP_CKSUM | \
|
||||
RTE_ETH_TX_OFFLOAD_UDP_CKSUM)
|
||||
|
||||
#define INDIRECTION_TABLE_NUM_ELEMENTS 64
|
||||
#define TOEPLITZ_HASH_KEY_SIZE_IN_BYTES 40
|
||||
#define MANA_ETH_RSS_SUPPORT ( \
|
||||
RTE_ETH_RSS_IPV4 | \
|
||||
RTE_ETH_RSS_NONFRAG_IPV4_TCP | \
|
||||
RTE_ETH_RSS_NONFRAG_IPV4_UDP | \
|
||||
RTE_ETH_RSS_IPV6 | \
|
||||
RTE_ETH_RSS_NONFRAG_IPV6_TCP | \
|
||||
RTE_ETH_RSS_NONFRAG_IPV6_UDP)
|
||||
|
||||
#define MIN_BUFFERS_PER_QUEUE 64
|
||||
#define MAX_RECEIVE_BUFFERS_PER_QUEUE 256
|
||||
#define MAX_SEND_BUFFERS_PER_QUEUE 256
|
||||
|
||||
struct mana_process_priv {
|
||||
void *db_page;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user