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

oam_hw_db.h (3115B)


      1 /*
      2  * 
      3  * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file.
      4  * 
      5  * Copyright 2007-2020 Broadcom Inc. All rights reserved.
      6  *
      7  * OAM HW DB (MEP-DB, RMEP-DB, ...)
      8  */
      9 
     10 #ifndef _BCM_INT_DPP_OAM_HW_DB_H_
     11 #define _BCM_INT_DPP_OAM_HW_DB_H_
     12 
     13 #include <sal/types.h>
     14 #include <bcm/types.h>
     15 #include <bcm/oam.h>
     16 #include <bcm/bfd.h>
     17 #include <shared/hash_tbl.h>
     18 #include <shared/swstate/sw_state_hash_tbl.h>
     19 
     20 #include <soc/dpp/PPD/ppd_api_oam.h>
     21 #include <soc/dpp/PPC/ppc_api_oam.h>
     22 #include <soc/dpp/PPD/ppd_api_trap_mgmt.h>
     23 #include <soc/dpp/ARAD/ARAD_PP/arad_pp_dbal.h>
     24 #include <soc/dpp/ARAD/ARAD_PP/arad_pp_oam.h>
     25 
     26 /* Used to encode a portion of a packet into crc. */
     27 #define _BCM_OAM_OAMP_CRC_CALC_NOF_BYTES_PER_ITERATION  (16)
     28 #define _BCM_OAM_OAMP_CRC_BUFFER_SIZE                   (128)
     29 
     30 typedef uint8 _BCM_OAM_OAMP_CRC_BUFFER[_BCM_OAM_OAMP_CRC_BUFFER_SIZE];
     31 
     32 int _bcm_oam_stat_lem_entry_add(uint32 unit, SOC_PPC_OAM_CLASSIFIER_MEP_ENTRY *classifier_mep_entry, bcm_oam_endpoint_info_t *endpoint_info);
     33 
     34 
     35 int _bcm_dpp_oam_bfd_rmep_db_entry_dealloc(int unit, uint32 rmep_index_internal);
     36 int _bcm_oam_rmep_db_entry_struct_set(int unit, bcm_oam_endpoint_info_t *endpoint_info, SOC_PPC_OAM_OAMP_RMEP_DB_ENTRY * rmep_db_entry);
     37 int _bcm_oam_rmep_db_entry_struct_get(int unit, SOC_PPC_OAM_OAMP_RMEP_DB_ENTRY * rmep_db_entry, uint16 rmep_id, uint32 local_id, bcm_oam_endpoint_info_t *endpoint_info);
     38 int _bcm_oam_mep_db_entry_dealloc(int unit, uint32 mep_index, SOC_PPC_OAM_OAMP_MEP_DB_ENTRY *mep_db_entry, SOC_PPC_OAM_CLASSIFIER_MEP_ENTRY * mep_info);
     39 int _bcm_oam_mep_db_entry_struct_set(int unit, bcm_oam_endpoint_info_t *endpoint_info, SOC_PPC_OAM_OAMP_MEP_DB_ENTRY *mep_db_entry, int icc_ndx, _bcm_oam_ma_name_t *group_name_struct, int do_not_set_mep_db_ccm_interval);
     40 int _bcm_oam_mep_db_entry_struct_get(int unit, bcm_oam_endpoint_info_t *endpoint_info, SOC_PPC_OAM_OAMP_MEP_DB_ENTRY *mep_db_entry, int original_tx_gport);
     41 int _bcm_oam_classifier_default_mep_entry_struct_set(int unit, bcm_oam_endpoint_info_t *endpoint_info, SOC_PPC_OAM_CLASSIFIER_MEP_ENTRY * classifier_mep_entry);
     42 int _bcm_oam_classifier_mep_entry_struct_set(int unit, bcm_oam_endpoint_info_t *endpoint_info, SOC_PPC_OAM_CLASSIFIER_MEP_ENTRY *classifier_mep_entry);
     43 int _bcm_oam_classifier_mep_entry_struct_get(int unit, bcm_oam_endpoint_info_t *endpoint_info, SOC_PPC_OAM_CLASSIFIER_MEP_ENTRY *classifier_mep_entry);
     44 
     45 int _bcm_oam_classifier_rfc6374_mep_entry_struct_set(int unit, bcm_oam_endpoint_info_t *endpoint_info, SOC_PPC_OAM_CLASSIFIER_MEP_ENTRY *classifier_mep_entry);
     46 
     47 void 
     48 _bcm_dpp_oam_bfd_flexible_verification_expected_crc16_get(_BCM_OAM_OAMP_CRC_BUFFER buffer, SOC_PPC_OAM_OAMP_CRC_MASK *mask, uint16 *crc_val);
     49 
     50 #define _BCM_OAM_BCM_MEP_TYPE_IS_RFC6374(mep_db_mep_type) \
     51             ((mep_db_mep_type == SOC_PPC_OAM_MEP_TYPE_RFC6374_MPLS_LM_DM_PWE) || (mep_db_mep_type == SOC_PPC_OAM_MEP_TYPE_RFC6374_MPLS_LM_DM_LSP) \
     52              || (mep_db_mep_type == SOC_PPC_OAM_MEP_TYPE_RFC6374_MPLS_LM_DM_SECTION))
     53 
     54 #endif  /* _BCM_INT_DPP_OAM_HW_DB_H_ */