igb: set default Rx/Tx configuration
authorPablo de Lara <pablo.de.lara.guarch@intel.com>
Wed, 1 Oct 2014 09:49:04 +0000 (10:49 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Fri, 10 Oct 2014 10:54:13 +0000 (12:54 +0200)
Many sample apps use duplicated code to set rte_eth_txconf and rte_eth_rxconf
structures. This patch allows the user to get a default optimal RX/TX configuration
through rte_eth_dev_info get, and still any parameters may be tweaked as wished,
before setting up queues.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Reviewed-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: David Marchand <david.marchand@6wind.com>
[Thomas: split patch]

lib/librte_pmd_e1000/igb_ethdev.c

index 0117d1a..9e5665f 100644 (file)
 #include "e1000/e1000_api.h"
 #include "e1000_ethdev.h"
 
+/*
+ * Default values for port configuration
+ */
+#define IGB_DEFAULT_RX_FREE_THRESH  32
+#define IGB_DEFAULT_RX_PTHRESH      8
+#define IGB_DEFAULT_RX_HTHRESH      8
+#define IGB_DEFAULT_RX_WTHRESH      0
+
+#define IGB_DEFAULT_TX_PTHRESH      32
+#define IGB_DEFAULT_TX_HTHRESH      0
+#define IGB_DEFAULT_TX_WTHRESH      0
+
 static int  eth_igb_configure(struct rte_eth_dev *dev);
 static int  eth_igb_start(struct rte_eth_dev *dev);
 static void eth_igb_stop(struct rte_eth_dev *dev);
@@ -1336,6 +1348,25 @@ eth_igb_infos_get(struct rte_eth_dev *dev,
                dev_info->max_tx_queues = 0;
                dev_info->max_vmdq_pools = 0;
        }
+
+       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,
+       };
 }
 
 /* return 0 means link status changed, -1 means not changed */