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

hash.h (1889B)


      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  * This file contains Hash module definitions internal to the BCM library.
      8  */
      9 
     10 
     11 #ifndef _BCM_INT_HASH_H
     12 #define _BCM_INT_HASH_H
     13 
     14 #include <bcm/types.h>
     15 #include <soc/drv.h>
     16 #include <bcm/hash.h>
     17 
     18 /* Hash flex bin operation bookkeeping structure */
     19 typedef struct {
     20     int initialized;
     21     SHR_BITDCL *entry_bmp;   /* TCAM entry usage bit map */
     22     uint16 *bin_obj_arr;      /* software bin object id for each bin */
     23 } bcmi_hash_flex_bin_info_t;
     24 
     25 extern bcmi_hash_flex_bin_info_t bcmi_hash_flex_bin_info[BCM_MAX_NUM_UNITS];
     26 
     27 extern int _bcm_esw_hash_sync(int unit);
     28 extern int bcmi_td3_hash_flex_bin_sync(int unit);
     29 extern int bcmi_td3_hash_flex_field_name_get (int unit, uint32 field_id,
     30            bcm_hash_flex_object_t *object, int *size, char *field_name);
     31 extern int bcmi_td3_hash_flex_field_id_get (int unit,
     32            bcm_hash_flex_object_t object, const char *field_name,
     33            uint32 *field_id);
     34 extern int bcmi_td3_hash_flex_bin_traverse(int unit, uint32 option,
     35            bcm_hash_flex_bin_traverse_cb cb, void *user_data);
     36 extern int bcmi_td3_hash_flex_bin_get (int unit,
     37            bcm_hash_flex_bin_config_t *cfg, int num_bins,
     38            bcm_hash_flex_bin_cmd_t *bin_cmd, int num_fields,
     39            bcm_hash_flex_field_t *flex_field);
     40 extern int bcmi_td3_hash_flex_bin_delete_all( int unit);
     41 extern int bcmi_td3_hash_flex_bin_delete( int unit, int entry_id);
     42 extern int bcmi_td3_hash_flex_bin_add (int unit,
     43            bcm_hash_flex_bin_config_t *cfg, int num_bins,
     44            bcm_hash_flex_bin_cmd_t *bin_cmd, int num_fields,
     45            bcm_hash_flex_field_t *flex_field);
     46 extern int bcmi_td3_hash_flex_bin_init (int unit);
     47 
     48 #endif  /* !_BCM_INT_HASH_H */