openbcm

Git mirror of https://github.com/Broadcom-Network-Switching-Software/OpenBCM
git clone git://git.finwo.net/mirror/broadcom/openbcm
Log | Files | Refs | README

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__*/