From: Helin Zhang <helin.zhang@intel.com> To: dev@dpdk.org Subject: [dpdk-dev] [PATCH v3 4/8] igb: implement ops of 'dev_infos_get' for PF and VF respectively Date: Wed, 22 Oct 2014 19:53:26 +0800 Message-ID: <1413978810-24610-5-git-send-email-helin.zhang@intel.com> (raw) In-Reply-To: <1413978810-24610-1-git-send-email-helin.zhang@intel.com> As more and more information are different between PF and VF, ops of 'dev_infos_get' has been implemented respectively. In addition, new field of 'reta_size' has been added in 'struct rte_eth_dev_info' for returning redirection table size. Signed-off-by: Helin Zhang <helin.zhang@intel.com> --- lib/librte_ether/rte_ethdev.h | 2 ++ lib/librte_pmd_e1000/igb_ethdev.c | 61 ++++++++++++++++++++++++++++++++------- 2 files changed, 52 insertions(+), 11 deletions(-) v2 changes: * Added new function for ops of 'dev_infos_get' specifically for igb VF. v3 changes: * Put the adding new element of 'reta_size' in ethdev into this patch, as it is needed. * Returning default RX/TX configurations has been added in ops of 'dev_infos_get', as it was accepted recently in another patches. diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h index 7db08c2..ed2f15a 100644 --- a/lib/librte_ether/rte_ethdev.h +++ b/lib/librte_ether/rte_ethdev.h @@ -911,6 +911,8 @@ struct rte_eth_dev_info { uint16_t max_vmdq_pools; /**< Maximum number of VMDq pools. */ uint32_t rx_offload_capa; /**< Device RX offload capabilities. */ uint32_t tx_offload_capa; /**< Device TX offload capabilities. */ + uint16_t reta_size; + /**< Device redirection table size, the total number of entries. */ struct rte_eth_rxconf default_rxconf; /**< Default RX configuration */ struct rte_eth_txconf default_txconf; /**< Default TX configuration */ }; diff --git a/lib/librte_pmd_e1000/igb_ethdev.c b/lib/librte_pmd_e1000/igb_ethdev.c index 9e5665f..79998cf 100644 --- a/lib/librte_pmd_e1000/igb_ethdev.c +++ b/lib/librte_pmd_e1000/igb_ethdev.c @@ -83,6 +83,8 @@ static void eth_igb_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *rte_stats); static void eth_igb_stats_reset(struct rte_eth_dev *dev); static void eth_igb_infos_get(struct rte_eth_dev *dev, + struct rte_eth_dev_info *dev_info); +static void eth_igbvf_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info); static int eth_igb_flow_ctrl_get(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf); @@ -282,7 +284,7 @@ static struct eth_dev_ops igbvf_eth_dev_ops = { .stats_get = eth_igbvf_stats_get, .stats_reset = eth_igbvf_stats_reset, .vlan_filter_set = igbvf_vlan_filter_set, - .dev_infos_get = eth_igb_infos_get, + .dev_infos_get = eth_igbvf_infos_get, .rx_queue_setup = eth_igb_rx_queue_setup, .rx_queue_release = eth_igb_rx_queue_release, .tx_queue_setup = eth_igb_tx_queue_setup, @@ -1268,8 +1270,7 @@ eth_igbvf_stats_reset(struct rte_eth_dev *dev) } static void -eth_igb_infos_get(struct rte_eth_dev *dev, - struct rte_eth_dev_info *dev_info) +eth_igb_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) { struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private); @@ -1330,23 +1331,61 @@ eth_igb_infos_get(struct rte_eth_dev *dev, dev_info->max_vmdq_pools = 0; break; + default: + /* Should not happen */ + break; + } + dev_info->reta_size = ETH_RSS_RETA_SIZE_128; + + dev_info->default_rxconf = (struct rte_eth_rxconf) { + .rx_thresh = { + .pthresh = IGB_DEFAULT_RX_PTHRESH, + .hthresh = IGB_DEFAULT_RX_HTHRESH, + .wthresh = IGB_DEFAULT_RX_WTHRESH, + }, + .rx_free_thresh = IGB_DEFAULT_RX_FREE_THRESH, + .rx_drop_en = 0, + }; + + dev_info->default_txconf = (struct rte_eth_txconf) { + .tx_thresh = { + .pthresh = IGB_DEFAULT_TX_PTHRESH, + .hthresh = IGB_DEFAULT_TX_HTHRESH, + .wthresh = IGB_DEFAULT_TX_WTHRESH, + }, + .txq_flags = 0, + }; +} + +static void +eth_igbvf_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) +{ + struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private); + + dev_info->min_rx_bufsize = 256; /* See BSIZE field of RCTL register. */ + dev_info->max_rx_pktlen = 0x3FFF; /* See RLPML register. */ + dev_info->max_mac_addrs = hw->mac.rar_entry_count; + 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_info->tx_offload_capa = DEV_TX_OFFLOAD_VLAN_INSERT | + DEV_TX_OFFLOAD_IPV4_CKSUM | + DEV_TX_OFFLOAD_UDP_CKSUM | + DEV_TX_OFFLOAD_TCP_CKSUM | + DEV_TX_OFFLOAD_SCTP_CKSUM; + switch (hw->mac.type) { case e1000_vfadapt: dev_info->max_rx_queues = 2; dev_info->max_tx_queues = 2; - dev_info->max_vmdq_pools = 0; break; - case e1000_vfadapt_i350: dev_info->max_rx_queues = 1; dev_info->max_tx_queues = 1; - dev_info->max_vmdq_pools = 0; break; - default: /* Should not happen */ - dev_info->max_rx_queues = 0; - dev_info->max_tx_queues = 0; - dev_info->max_vmdq_pools = 0; + break; } dev_info->default_rxconf = (struct rte_eth_rxconf) { @@ -2048,7 +2087,7 @@ igbvf_stop_adapter(struct rte_eth_dev *dev) struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private); memset(&dev_info, 0, sizeof(dev_info)); - eth_igb_infos_get(dev, &dev_info); + eth_igbvf_infos_get(dev, &dev_info); /* Clear interrupt mask to stop from interrupts being generated */ igbvf_intr_disable(hw); -- 1.8.1.4
next prev parent reply other threads:[~2014-10-22 11:45 UTC|newest] Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top 2014-09-25 8:40 [dpdk-dev] [PATCH v2 00/13] support of multiple sizes of redirection table Helin Zhang 2014-09-25 8:40 ` [dpdk-dev] [PATCH v2 01/13] app/testpmd: code style fix Helin Zhang 2014-09-25 8:40 ` [dpdk-dev] [PATCH v2 02/13] i40evf: " Helin Zhang 2014-09-25 8:40 ` [dpdk-dev] [PATCH v2 03/13] ethdev: add more annotation Helin Zhang 2014-10-21 20:38 ` Thomas Monjalon 2014-10-21 22:20 ` Zhang, Helin 2014-09-25 8:40 ` [dpdk-dev] [PATCH v2 04/13] ethdev: support of multiple sizes of redirection table Helin Zhang 2014-10-21 20:53 ` Thomas Monjalon 2014-10-28 0:33 ` Zhang, Helin 2014-10-28 10:10 ` Thomas Monjalon 2014-10-28 10:18 ` Richardson, Bruce 2014-10-28 13:20 ` Zhang, Helin 2014-10-28 14:22 ` Thomas Monjalon 2014-10-29 8:18 ` Zhang, Helin 2014-10-28 12:00 ` Zhang, Helin 2014-10-28 12:13 ` Thomas Monjalon 2014-10-28 12:36 ` Zhang, Helin 2014-10-29 8:24 ` Zhang, Helin 2014-10-29 10:00 ` Thomas Monjalon 2014-09-25 8:40 ` [dpdk-dev] [PATCH v2 05/13] igb: add new function for VF ops of 'dev_infos_get' Helin Zhang 2014-09-25 8:40 ` [dpdk-dev] [PATCH v2 06/13] igb: rework of updating/querying reta Helin Zhang 2014-09-25 8:40 ` [dpdk-dev] [PATCH v2 07/13] ixgbe: add new function for VF ops of 'dev_infos_get' Helin Zhang 2014-09-25 8:40 ` [dpdk-dev] [PATCH v2 08/13] ixgbe: rework of updating/querying reta Helin Zhang 2014-09-25 8:40 ` [dpdk-dev] [PATCH v2 09/13] i40e: support of setting hash lookup table size Helin Zhang 2014-09-25 8:40 ` [dpdk-dev] [PATCH v2 10/13] i40e: support of getting redirection " Helin Zhang 2014-09-25 8:40 ` [dpdk-dev] [PATCH v2 11/13] i40e: rework of updating/querying reta Helin Zhang 2014-09-25 8:40 ` [dpdk-dev] [PATCH v2 12/13] i40evf: support of updating/querying redirection table Helin Zhang 2014-09-25 8:40 ` [dpdk-dev] [PATCH v2 13/13] app/testpmd: rework of commands for updating/querying reta Helin Zhang 2014-10-10 3:11 ` [dpdk-dev] [PATCH v2 00/13] support of multiple sizes of redirection table Liang, Cunming 2014-10-22 11:53 ` [dpdk-dev] [PATCH v3 0/8] " Helin Zhang 2014-10-22 11:53 ` [dpdk-dev] [PATCH v3 1/8] app/testpmd: code style fix Helin Zhang 2014-10-22 11:53 ` [dpdk-dev] [PATCH v3 2/8] i40evf: " Helin Zhang 2014-10-22 11:53 ` [dpdk-dev] [PATCH v3 3/8] i40e: support of setting hash lookup table size Helin Zhang 2014-10-27 14:13 ` Thomas Monjalon 2014-10-27 20:21 ` Matthew Hall 2014-10-27 21:41 ` Thomas Monjalon 2014-10-22 11:53 ` Helin Zhang [this message] 2014-10-22 11:53 ` [dpdk-dev] [PATCH v3 5/8] ixgbe: implement ops of 'dev_infos_get' for PF and VF respectively Helin Zhang 2014-10-22 11:53 ` [dpdk-dev] [PATCH v3 6/8] i40e: rework of ops of 'dev_infos_get' for both PF and VF Helin Zhang 2014-10-22 11:53 ` [dpdk-dev] [PATCH v3 7/8] ethdev: support of multiple sizes of redirection table Helin Zhang 2014-10-27 14:23 ` Thomas Monjalon 2014-10-28 0:37 ` Zhang, Helin 2014-10-28 10:04 ` Thomas Monjalon 2014-10-31 1:39 ` Zhang, Helin 2014-10-31 8:46 ` Thomas Monjalon 2014-10-22 11:53 ` [dpdk-dev] [PATCH v3 8/8] i40evf: support of updating/querying " Helin Zhang 2014-10-31 9:03 ` [dpdk-dev] [PATCH v4 0/8] support of multiple sizes of " Helin Zhang 2014-10-31 9:03 ` [dpdk-dev] [PATCH v4 1/8] app/testpmd: code style fix Helin Zhang 2014-10-31 9:03 ` [dpdk-dev] [PATCH v4 2/8] i40evf: " Helin Zhang 2014-10-31 9:03 ` [dpdk-dev] [PATCH v4 3/8] i40e: support of setting hash lookup table size Helin Zhang 2014-10-31 9:03 ` [dpdk-dev] [PATCH v4 4/8] igb: implement ops of 'dev_infos_get' for PF and VF respectively Helin Zhang 2014-10-31 9:03 ` [dpdk-dev] [PATCH v4 5/8] ixgbe: " Helin Zhang 2014-10-31 9:03 ` [dpdk-dev] [PATCH v4 6/8] i40e: rework of ops of 'dev_infos_get' for both PF and VF Helin Zhang 2014-10-31 9:03 ` [dpdk-dev] [PATCH v4 7/8] ethdev: support of multiple sizes of redirection table Helin Zhang 2014-11-05 20:52 ` Thomas Monjalon 2014-11-06 1:02 ` Zhang, Helin 2014-11-06 8:33 ` Thomas Monjalon 2014-11-06 8:52 ` Zhang, Helin 2014-10-31 9:03 ` [dpdk-dev] [PATCH v4 8/8] i40evf: support of updating/querying " Helin Zhang 2014-11-06 14:25 ` [dpdk-dev] [PATCH v5 0/8] support of multiple sizes of " Helin Zhang 2014-11-06 14:25 ` [dpdk-dev] [PATCH v5 1/8] app/testpmd: code style fix Helin Zhang 2014-11-06 14:25 ` [dpdk-dev] [PATCH v5 2/8] i40evf: " Helin Zhang 2014-11-06 14:25 ` [dpdk-dev] [PATCH v5 3/8] i40e: support of setting hash lookup table size Helin Zhang 2014-11-06 14:25 ` [dpdk-dev] [PATCH v5 4/8] igb: implement ops of 'dev_infos_get' for PF and VF respectively Helin Zhang 2014-11-06 14:25 ` [dpdk-dev] [PATCH v5 5/8] ixgbe: " Helin Zhang 2014-11-06 14:25 ` [dpdk-dev] [PATCH v5 6/8] i40e: rework of ops of 'dev_infos_get' for both PF and VF Helin Zhang 2014-11-06 14:25 ` [dpdk-dev] [PATCH v5 7/8] ethdev: support of multiple sizes of redirection table Helin Zhang 2014-11-06 14:25 ` [dpdk-dev] [PATCH v5 8/8] i40evf: support of updating/querying " Helin Zhang 2014-11-15 16:03 ` [dpdk-dev] [PATCH v6 0/8] support of multiple sizes of " Helin Zhang 2014-11-15 16:03 ` [dpdk-dev] [PATCH v6 1/8] app/testpmd: code style fix Helin Zhang 2014-11-15 16:03 ` [dpdk-dev] [PATCH v6 2/8] i40evf: " Helin Zhang 2014-11-15 16:03 ` [dpdk-dev] [PATCH v6 3/8] i40e: support of setting hash lookup table size Helin Zhang 2014-11-15 16:03 ` [dpdk-dev] [PATCH v6 4/8] igb: implement ops of 'dev_infos_get' for PF and VF respectively Helin Zhang 2014-11-15 16:03 ` [dpdk-dev] [PATCH v6 5/8] ixgbe: " Helin Zhang 2014-11-15 16:03 ` [dpdk-dev] [PATCH v6 6/8] i40e: rework of ops of 'dev_infos_get' for both PF and VF Helin Zhang 2014-11-15 16:03 ` [dpdk-dev] [PATCH v6 7/8] ethdev: support of multiple sizes of redirection table Helin Zhang 2014-11-15 16:03 ` [dpdk-dev] [PATCH v6 8/8] i40evf: support of updating/querying " Helin Zhang 2014-11-24 22:20 ` Thomas Monjalon 2014-11-25 0:28 ` Zhang, Helin 2014-11-17 13:39 ` [dpdk-dev] [PATCH v6 0/8] support of multiple sizes of " Ananyev, Konstantin 2014-11-24 22:00 ` Thomas Monjalon 2014-11-19 9:28 ` Chen, Erlu
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1413978810-24610-5-git-send-email-helin.zhang@intel.com \ --to=helin.zhang@intel.com \ --cc=dev@dpdk.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
DPDK patches and discussions This inbox may be cloned and mirrored by anyone: git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \ dev@dpdk.org public-inbox-index dev Example config snippet for mirrors. Newsgroup available over NNTP: nntp://inbox.dpdk.org/inbox.dpdk.dev AGPL code for this site: git clone https://public-inbox.org/public-inbox.git