19948a064SJiri Pirko /* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */ 29948a064SJiri Pirko /* Copyright (c) 2017-2018 Mellanox Technologies. All rights reserved */ 3ff7b0d27SArkadi Sharshevsky 4ff7b0d27SArkadi Sharshevsky #ifndef _MLXSW_SPECTRUM_CNT_H 5ff7b0d27SArkadi Sharshevsky #define _MLXSW_SPECTRUM_CNT_H 6ff7b0d27SArkadi Sharshevsky 7d53cdbb8SJiri Pirko #include "core.h" 8ff7b0d27SArkadi Sharshevsky #include "spectrum.h" 9ff7b0d27SArkadi Sharshevsky 10ff7b0d27SArkadi Sharshevsky enum mlxsw_sp_counter_sub_pool_id { 11e0c0afd8SArkadi Sharshevsky MLXSW_SP_COUNTER_SUB_POOL_RIF, 12*4b7a632aSPetr Machata MLXSW_SP_COUNTER_SUB_POOL_FLOW, 13ff7b0d27SArkadi Sharshevsky }; 14ff7b0d27SArkadi Sharshevsky 15ff7b0d27SArkadi Sharshevsky int mlxsw_sp_counter_alloc(struct mlxsw_sp *mlxsw_sp, 16ff7b0d27SArkadi Sharshevsky enum mlxsw_sp_counter_sub_pool_id sub_pool_id, 17ff7b0d27SArkadi Sharshevsky unsigned int *p_counter_index); 18ff7b0d27SArkadi Sharshevsky void mlxsw_sp_counter_free(struct mlxsw_sp *mlxsw_sp, 19ff7b0d27SArkadi Sharshevsky enum mlxsw_sp_counter_sub_pool_id sub_pool_id, 20ff7b0d27SArkadi Sharshevsky unsigned int counter_index); 21ff7b0d27SArkadi Sharshevsky int mlxsw_sp_counter_pool_init(struct mlxsw_sp *mlxsw_sp); 22ff7b0d27SArkadi Sharshevsky void mlxsw_sp_counter_pool_fini(struct mlxsw_sp *mlxsw_sp); 23d53cdbb8SJiri Pirko int mlxsw_sp_counter_resources_register(struct mlxsw_core *mlxsw_core); 24ff7b0d27SArkadi Sharshevsky 25ff7b0d27SArkadi Sharshevsky #endif 26