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

ft_udf.h (2424B)


      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  * File:        ft_udf.h
      8  * Purpose:     Function declarations for flowtracker udf support.
      9  */
     10 
     11 #ifndef _BCM_INT_FT_UDF_H_
     12 #define _BCM_INT_FT_UDF_H_
     13 
     14 #include <soc/defs.h>
     15 #include <sal/core/libc.h>
     16 #include <shared/bsl.h>
     17 
     18 #if defined(BCM_FLOWTRACKER_SUPPORT)
     19 #include <shared/bsl.h>
     20 #include <soc/drv.h>
     21 #include <bcm/error.h>
     22 #include <soc/debug.h>
     23 #include <soc/mem.h>
     24 #include <soc/format.h>
     25 #include <bcm/flowtracker.h>
     26 
     27 /* Structure to maintain UDF to tracking param mapping information */
     28 typedef struct bcmi_ft_udf_tracking_param_info_s {
     29 
     30     /* Tracking Param Type */
     31     bcm_flowtracker_tracking_param_type_t param;
     32 
     33     /* Custom Identifier */
     34     uint16 custom_id;
     35 
     36     /* UDF Object Identifier */
     37     bcm_udf_id_t udf_id;
     38 
     39     /* Relative offset in the UDF object */
     40     uint16 offset;
     41 
     42     /* Requested Width in the UDF object */
     43     uint16 width;
     44 
     45     /* Next udf param info */
     46     struct bcmi_ft_udf_tracking_param_info_s *next;
     47 
     48 } bcmi_ft_udf_tracking_param_info_t;
     49 
     50 /* Structure to maintain database of UDF to tracking param maps */
     51 typedef struct bcmi_ft_udf_tracking_param_info_db_s {
     52 
     53     /* Number of valid mapping */
     54     uint16 count;
     55 
     56     /* UDF Tracking param info head */
     57     bcmi_ft_udf_tracking_param_info_t *head;
     58 
     59 } bcmi_ft_udf_tracking_param_info_db_t;
     60 
     61 extern int
     62 bcmi_ft_udf_tracking_param_set(int unit,
     63         uint32 flags,
     64         bcm_flowtracker_tracking_param_type_t param,
     65         uint16 custom_id,
     66         bcm_flowtracker_udf_info_t *udf_info);
     67 
     68 extern int
     69 bcmi_ft_udf_tracking_param_get(int unit,
     70         uint32 flags,
     71         bcm_flowtracker_tracking_param_type_t param,
     72         uint16 custom_id,
     73         bcm_flowtracker_udf_info_t *udf_info);
     74 
     75 extern int
     76 bcmi_ft_udf_tracking_param_info_init(int unit);
     77 
     78 extern int
     79 bcmi_ft_udf_tracking_param_info_cleanup(int unit);
     80 
     81 extern int
     82 bcmi_ft_udf_tracking_param_info_alloc_size(int unit,
     83         int *size);
     84 
     85 extern int
     86 bcmi_ft_udf_tracking_param_info_sync(int unit,
     87         uint8 **p_ft_scache_ptr);
     88 
     89 extern int
     90 bcmi_ft_udf_tracking_param_info_recover(int unit,
     91         uint8 **p_ft_scache_ptr);
     92 
     93 extern int
     94 bcmi_ft_udf_tracking_param_info_show(int unit);
     95 
     96 #endif /* BCM_FLOWTRACKER_SUPPORT */
     97 #endif /* _BCM_INT_FT_UDF_H_ */