algo_qos.h (2855B)
1 /** 2 * \file algo_qos.h Internal DNX L3 Managment APIs 3 PIs This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file. 4 PIs 5 PIs Copyright 2007-2020 Broadcom Inc. All rights reserved. 6 */ 7 8 #ifndef ALGO_QOS_H_INCLUDED 9 /* 10 * { 11 */ 12 #define ALGO_QOS_H_INCLUDED 13 14 #include <shared/shrextend/shrextend_debug.h> 15 16 #include <bcm_int/dnx/algo/template_mngr/template_manager_types.h> 17 18 #ifndef BCM_DNX_SUPPORT 19 #error "This file is for use by DNX (JR2) family only!" 20 #endif 21 22 /** 23 * Resource name defines for algo qos 24 * { 25 */ 26 27 #define DNX_QOS_INGRESS_RESOURCE "INGRESS QOS" 28 #define DNX_QOS_INGRESS_OPCODE_RESOURCE "INGRESS QOS OPCODE" 29 #define DNX_QOS_INGRESS_ECN_RESOURCE "INGRESS QOS ECN" 30 #define DNX_QOS_INGRESS_POLICER_RESOURCE "INGRESS QOS POLICER" 31 #define DNX_QOS_INGRESS_VLAN_PCP_RESOURCE "INGRESS QOS VLAN PCP" 32 #define DNX_QOS_EGRESS_RESOURCE "EGRESS QOS" 33 #define DNX_QOS_EGRESS_MPLS_PHP_RESOURCE "EGRESS QOS MPLS PHP" 34 #define DNX_QOS_EGRESS_OPCODE_RESOURCE "EGRESS QOS OPCODE" 35 #define DNX_QOS_EGRESS_PHP_OPCODE_RESOURCE "EGRESS QOS PHP OPCODE" 36 #define DNX_QOS_EGRESS_ECN_RESOURCE "EGRESS QOS ECN" 37 #define DNX_QOS_EGRESS_POLICER_RESOURCE "EGRESS QOS POLICER" 38 #define DNX_QOS_EGRESS_OAM_PCP_MAP_RESOURCE "EGRESS QOS OAM PRIORITY MAP" 39 #define DNX_QOS_EGRESS_COS_PROFILES_RESOURCE "EGRESS QOS COS PROFILE" 40 41 #define DNX_ALGO_QOS_EGRESS_TTL_PIPE_PROFILE_TEMPLATE "EGRESS QOS TTL PIPE PROFILE TEMPLATE" 42 #define DNX_ALGO_QOS_INGRESS_PROPAGATION_PROFILE_TEMPLATE "INGRESS PROPAGATION PROFILE TEMPLATE" 43 #define DNX_ALGO_QOS_EGRESS_NETWORK_QOS_PROFILE_TEMPLATE "EGRESS NETWORK_QOS PROFILE TEMPLATE" 44 /** 45 * } 46 */ 47 /** 48 * \brief 49 * allocate resource pool for all QOS profiles types 50 * \param [in] unit - 51 * The unit number. 52 * \return 53 * \retval Negative in case of an error. 54 * \retval Zero in case of NO ERROR 55 */ 56 shr_error_e dnx_algo_qos_init( 57 int unit); 58 59 /** 60 * \brief 61 * Print an entry of qos propagation profile template. 62 * \param [in] unit - the unit number 63 * \param [in] data - Pointer of the struct to be printed. 64 * \return 65 * None 66 67 */ 68 void dnx_algo_qos_propagation_profile_template_print_cb( 69 int unit, 70 const void *data); 71 72 /** 73 * \brief 74 * Print an entry of egress ttl pipe profile template. 75 * \param [in] unit - the unit number 76 * \param [in] data - Pointer of the struct to be printed. 77 * \return 78 * None 79 */ 80 void dnx_algo_qos_egress_ttl_pipe_profile_template_print_cb( 81 int unit, 82 const void *data); 83 84 /** 85 * \brief 86 * Print an entry of egress network_qos profile template. 87 * \param [in] unit - the unit number 88 * \param [in] data - Pointer of the struct to be printed. 89 * \return 90 * None 91 */ 92 void dnx_algo_qos_egress_network_qos_profile_template_print_cb( 93 int unit, 94 const void *data); 95 96 /* 97 * } 98 */ 99 #endif/*_ALGO_QOS_API_INCLUDED__*/