ethdev: change promiscuous callbacks to return status
[dpdk.git] / drivers / net / octeontx2 / otx2_ethdev.h
index 720386f..8814622 100644 (file)
@@ -66,7 +66,8 @@
        (NIX_MAX_FRS - NIX_L2_OVERHEAD)
 
 #define NIX_MAX_SQB                    512
-#define NIX_MIN_SQB                    32
+#define NIX_DEF_SQB                    16
+#define NIX_MIN_SQB                    8
 #define NIX_SQB_LIST_SPACE             2
 #define NIX_RSS_RETA_SIZE_MAX          256
 /* Group 0 will be used for RSS, 1 -7 will be used for rte_flow RSS action*/
@@ -80,6 +81,7 @@
 #define NIX_CQ_ALIGN                   512
 #define NIX_SQB_LOWER_THRESH           90
 #define LMT_SLOT_MASK                  0x7f
+#define NIX_RX_DEFAULT_RING_SZ         4096
 
 /* If PTP is enabled additional SEND MEM DESC is required which
  * takes 2 words, hence max 7 iova address are possible
@@ -94,8 +96,9 @@
        ((RTE_ALIGN_MUL_CEIL(NIX_TX_NB_SEG_MAX, 3) / 3) \
         + NIX_TX_NB_SEG_MAX)
 
-/* Apply BP when CQ is 75% full */
-#define NIX_CQ_BP_LEVEL (25 * 256 / 100)
+/* Apply BP/DROP when CQ is 95% full */
+#define NIX_CQ_THRESH_LEVEL    (5 * 256 / 100)
+#define NIX_CQ_FULL_ERRATA_SKID        (1024ull * 256)
 
 #define CQ_OP_STAT_OP_ERR      63
 #define CQ_OP_STAT_CQ_ERR      46
@@ -344,6 +347,7 @@ struct otx2_eth_rxq {
        enum nix_q_size_e qsize;
        struct rte_eth_dev *eth_dev;
        struct otx2_eth_qconf qconf;
+       uint16_t cq_drop;
 } __rte_cache_aligned;
 
 static inline struct otx2_eth_dev *
@@ -353,8 +357,8 @@ otx2_eth_pmd_priv(struct rte_eth_dev *eth_dev)
 }
 
 /* Ops */
-void otx2_nix_info_get(struct rte_eth_dev *eth_dev,
-                      struct rte_eth_dev_info *dev_info);
+int otx2_nix_info_get(struct rte_eth_dev *eth_dev,
+                     struct rte_eth_dev_info *dev_info);
 int otx2_nix_dev_filter_ctrl(struct rte_eth_dev *eth_dev,
                             enum rte_filter_type filter_type,
                             enum rte_filter_op filter_op, void *arg);
@@ -375,8 +379,8 @@ int otx2_nix_rx_descriptor_done(void *rxq, uint16_t offset);
 int otx2_nix_rx_descriptor_status(void *rx_queue, uint16_t offset);
 
 void otx2_nix_promisc_config(struct rte_eth_dev *eth_dev, int en);
-void otx2_nix_promisc_enable(struct rte_eth_dev *eth_dev);
-void otx2_nix_promisc_disable(struct rte_eth_dev *eth_dev);
+int otx2_nix_promisc_enable(struct rte_eth_dev *eth_dev);
+int otx2_nix_promisc_disable(struct rte_eth_dev *eth_dev);
 void otx2_nix_allmulticast_enable(struct rte_eth_dev *eth_dev);
 void otx2_nix_allmulticast_disable(struct rte_eth_dev *eth_dev);
 int otx2_nix_tx_queue_start(struct rte_eth_dev *eth_dev, uint16_t qidx);