net/bnxt: refactor multi-queue Rx configuration
[dpdk.git] / drivers / net / bnxt / bnxt_vnic.h
index 16a0d57..37b452f 100644 (file)
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2014-2018 Broadcom
+ * Copyright(c) 2014-2021 Broadcom
  * All rights reserved.
  */
 
@@ -9,6 +9,11 @@
 #include <sys/queue.h>
 #include <stdbool.h>
 
+#define INVALID_VNIC_ID                ((uint16_t)-1)
+
+#define BNXT_RSS_LEVEL_INNERMOST        0x2
+#define BNXT_RSS_LEVEL_OUTERMOST        0x1
+
 struct bnxt_vnic_info {
        STAILQ_ENTRY(bnxt_vnic_info)    next;
        uint8_t         ff_pool_idx;
@@ -42,11 +47,11 @@ struct bnxt_vnic_info {
 
        uint16_t        cos_rule;
        uint16_t        lb_rule;
+       uint16_t        rx_queue_cnt;
+       uint16_t        cos_queue_id;
        bool            vlan_strip;
        bool            func_default;
        bool            bd_stall;
-       bool            roce_dual;
-       bool            roce_only;
        bool            rss_dflt_cr;
 
        STAILQ_HEAD(, bnxt_filter_info) filter;
@@ -54,7 +59,6 @@ struct bnxt_vnic_info {
 };
 
 struct bnxt;
-void bnxt_init_vnics(struct bnxt *bp);
 int bnxt_free_vnic(struct bnxt *bp, struct bnxt_vnic_info *vnic,
                          int pool);
 struct bnxt_vnic_info *bnxt_alloc_vnic(struct bnxt *bp);
@@ -63,4 +67,9 @@ void bnxt_free_vnic_attributes(struct bnxt *bp);
 int bnxt_alloc_vnic_attributes(struct bnxt *bp);
 void bnxt_free_vnic_mem(struct bnxt *bp);
 int bnxt_alloc_vnic_mem(struct bnxt *bp);
+int bnxt_vnic_grp_alloc(struct bnxt *bp, struct bnxt_vnic_info *vnic);
+void bnxt_prandom_bytes(void *dest_ptr, size_t len);
+uint16_t bnxt_rte_to_hwrm_hash_types(uint64_t rte_type);
+int bnxt_rte_to_hwrm_hash_level(struct bnxt *bp, uint64_t hash_f, uint32_t lvl);
+uint64_t bnxt_hwrm_to_rte_rss_level(struct bnxt *bp, uint32_t mode);
 #endif