net/enic: generate VXLAN src port if it is zero in template
[dpdk.git] / drivers / net / cxgbe / cxgbevf_ethdev.c
index 60e96aa..947fcdd 100644 (file)
@@ -55,7 +55,7 @@ static int cxgbevf_dev_stats_get(struct rte_eth_dev *eth_dev,
 
        for (i = 0; i < pi->n_rx_qsets; i++) {
                struct sge_eth_rxq *rxq =
-                       &s->ethrxq[pi->first_qset + i];
+                       &s->ethrxq[pi->first_rxqset + i];
 
                eth_stats->q_ipackets[i] = rxq->stats.pkts;
                eth_stats->q_ibytes[i] = rxq->stats.rx_bytes;
@@ -65,7 +65,7 @@ static int cxgbevf_dev_stats_get(struct rte_eth_dev *eth_dev,
 
        for (i = 0; i < pi->n_tx_qsets; i++) {
                struct sge_eth_txq *txq =
-                       &s->ethtxq[pi->first_qset + i];
+                       &s->ethtxq[pi->first_txqset + i];
 
                eth_stats->q_opackets[i] = txq->stats.pkts;
                eth_stats->q_obytes[i] = txq->stats.tx_bytes;
@@ -162,6 +162,9 @@ static int eth_cxgbevf_dev_init(struct rte_eth_dev *eth_dev)
        adapter->pdev = pci_dev;
        adapter->eth_dev = eth_dev;
        pi->adapter = adapter;
+
+       cxgbe_process_devargs(adapter);
+
        err = cxgbevf_probe(adapter);
        if (err) {
                dev_err(adapter, "%s: cxgbevf probe failed with err %d\n",
@@ -178,11 +181,13 @@ out_free_adapter:
 
 static int eth_cxgbevf_dev_uninit(struct rte_eth_dev *eth_dev)
 {
-       struct port_info *pi = eth_dev->data->dev_private;
-       struct adapter *adap = pi->adapter;
+       struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
+       uint16_t port_id;
 
        /* Free up other ports and all resources */
-       cxgbe_close(adap);
+       RTE_ETH_FOREACH_DEV_OF(port_id, &pci_dev->device)
+               rte_eth_dev_close(port_id);
+
        return 0;
 }
 
@@ -208,3 +213,7 @@ static struct rte_pci_driver rte_cxgbevf_pmd = {
 RTE_PMD_REGISTER_PCI(net_cxgbevf, rte_cxgbevf_pmd);
 RTE_PMD_REGISTER_PCI_TABLE(net_cxgbevf, cxgb4vf_pci_tbl);
 RTE_PMD_REGISTER_KMOD_DEP(net_cxgbevf, "* igb_uio | vfio-pci");
+RTE_PMD_REGISTER_PARAM_STRING(net_cxgbevf,
+                             CXGBE_DEVARG_CMN_KEEP_OVLAN "=<0|1> "
+                             CXGBE_DEVARG_CMN_TX_MODE_LATENCY "=<0|1> "
+                             CXGBE_DEVARG_VF_FORCE_LINK_UP "=<0|1> ");