net/sfc: add Rx datapath method to get pushed buffers count
[dpdk.git] / drivers / net / cnxk / cnxk_ethdev.c
index b2a8f3a..0e3652e 100644 (file)
@@ -1096,6 +1096,7 @@ cnxk_nix_dev_stop(struct rte_eth_dev *eth_dev)
        struct cnxk_eth_dev *dev = cnxk_eth_pmd_priv(eth_dev);
        const struct eth_dev_ops *dev_ops = eth_dev->dev_ops;
        struct rte_mbuf *rx_pkts[32];
+       struct rte_eth_link link;
        int count, i, j, rc;
        void *rxq;
 
@@ -1128,6 +1129,10 @@ cnxk_nix_dev_stop(struct rte_eth_dev *eth_dev)
        for (i = 0; i < eth_dev->data->nb_tx_queues; i++)
                dev_ops->tx_queue_stop(eth_dev, i);
 
+       /* Bring down link status internally */
+       memset(&link, 0, sizeof(link));
+       rte_eth_linkstatus_set(eth_dev, &link);
+
        return 0;
 }
 
@@ -1266,6 +1271,11 @@ struct eth_dev_ops cnxk_eth_dev_ops = {
        .timesync_write_time = cnxk_nix_timesync_write_time,
        .timesync_adjust_time = cnxk_nix_timesync_adjust_time,
        .read_clock = cnxk_nix_read_clock,
+       .reta_update = cnxk_nix_reta_update,
+       .reta_query = cnxk_nix_reta_query,
+       .rss_hash_update = cnxk_nix_rss_hash_update,
+       .rss_hash_conf_get = cnxk_nix_rss_hash_conf_get,
+       .set_mc_addr_list = cnxk_nix_mc_addr_list_configure,
 };
 
 static int
@@ -1294,6 +1304,7 @@ cnxk_eth_dev_init(struct rte_eth_dev *eth_dev)
 
        /* Initialize base roc nix */
        nix->pci_dev = pci_dev;
+       nix->hw_vlan_ins = true;
        rc = roc_nix_dev_init(nix);
        if (rc) {
                plt_err("Failed to initialize roc nix rc=%d", rc);
@@ -1330,6 +1341,7 @@ cnxk_eth_dev_init(struct rte_eth_dev *eth_dev)
        }
 
        dev->max_mac_entries = max_entries;
+       dev->dmac_filter_count = 1;
 
        /* Get mac address */
        rc = roc_nix_npc_mac_addr_get(nix, dev->mac_addr);