ethdev: promote sibling iterators to stable
[dpdk.git] / drivers / net / bnxt / tf_ulp / ulp_fc_mgr.h
index 9c317b0..448d05c 100644 (file)
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2014-2019 Broadcom
+ * Copyright(c) 2014-2021 Broadcom
  * All rights reserved.
  */
 
@@ -26,6 +26,7 @@ struct sw_acc_counter {
        uint64_t byte_count;
        bool    valid;
        uint32_t hw_cntr_id;
+       uint32_t parent_flow_id;
 };
 
 struct hw_fc_mem_info {
@@ -38,6 +39,7 @@ struct hw_fc_mem_info {
         */
        void *mem_pa;
        uint32_t start_idx;
+       bool start_idx_is_set;
 };
 
 struct bnxt_ulp_fc_info {
@@ -46,6 +48,7 @@ struct bnxt_ulp_fc_info {
        uint32_t                flags;
        uint32_t                num_entries;
        pthread_mutex_t         fc_lock;
+       uint32_t                num_counters;
 };
 
 int32_t
@@ -162,4 +165,22 @@ bool ulp_fc_mgr_thread_isstarted(struct bnxt_ulp_context *ctxt);
 int ulp_fc_mgr_query_count_get(struct bnxt_ulp_context *ulp_ctx,
                               uint32_t flow_id,
                               struct rte_flow_query_count *count);
+
+/*
+ * Set the parent flow if in the SW accumulator table entry
+ *
+ * ctxt [in] The ulp context for the flow counter manager
+ *
+ * dir [in] The direction of the flow
+ *
+ * hw_cntr_id [in] The HW flow counter ID
+ *
+ * fid [in] parent flow id
+ *
+ */
+int32_t ulp_fc_mgr_cntr_parent_flow_set(struct bnxt_ulp_context *ctxt,
+                                       enum tf_dir dir,
+                                       uint32_t hw_cntr_id,
+                                       uint32_t fid);
+
 #endif /* _ULP_FC_MGR_H_ */