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