ft_field.h (2515B)
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-2019 Broadcom Inc. All rights reserved. 6 * 7 * File: ft_field.h 8 * Purpose: Flowtracker module specific routines in flowtracker 9 * stage in FP. 10 */ 11 12 #ifndef _BCM_INT_FT_FIELD_H 13 #define _BCM_INT_FT_FIELD_H 14 15 #include <soc/defs.h> 16 17 #if defined(BCM_FLOWTRACKER_SUPPORT) 18 #include <bcm/flowtracker.h> 19 20 /* 21 * Typedef: 22 * ALU Data flags. 23 * Purpose: 24 */ 25 typedef enum _bcm_field_ft_alu_data_e { 26 _bcmFieldFtAluDataTcpFlagsFIN, 27 28 _bcmFieldFtAluDataTcpFlagsSYN, 29 30 _bcmFieldFtAluDataTcpFlagsRST, 31 32 _bcmFieldFtAluDataTcpFlagsPSH, 33 34 _bcmFieldFtAluDataTcpFlagsACK, 35 36 _bcmFieldFtAluDataTcpFlagsURG, 37 38 _bcmFieldFtAluDataTcpFlagsECE, 39 40 _bcmFieldFtAluDataTcpFlagsCWR, 41 42 _bcmFieldFtAluDataCount 43 } _bcm_field_ft_alu_data_t; 44 45 /* Extract session key and session data */ 46 extern int 47 _bcm_field_ft_group_tracking_info_process( 48 int unit, 49 bcm_flowtracker_group_t id, 50 uint8 save_output); 51 52 /* Clear FT group for extraction info */ 53 extern int 54 _bcm_field_ft_group_extraction_clear( 55 int unit, 56 bcm_flowtracker_group_t id); 57 58 /* Setup Group Control to FTFP Entries */ 59 extern int 60 _bcm_field_ft_group_control_set( 61 int unit, 62 bcm_flowtracker_group_t id, 63 bcm_flowtracker_group_control_type_t control_type, 64 int param); 65 66 /* Mark FT Group in FTFP Entries as Stale */ 67 extern int 68 _bcm_field_ft_group_invalidate(int unit); 69 70 /* Get min and max values supported for tracking params */ 71 extern int 72 _bcm_field_ft_tracking_param_range_get( 73 int unit, 74 bcm_flowtracker_tracking_param_type_t param, 75 uint32 *min_value, 76 uint32 *max_value); 77 78 /* Get alu data related config. */ 79 extern int 80 _bcm_field_ft_alu_data_config_get( 81 int unit, 82 bcm_flowtracker_group_t id, 83 _bcm_field_ft_alu_data_t alu_data, 84 int *offset, 85 int *width); 86 87 /* Install Session Profiles */ 88 extern int 89 _bcm_field_ft_session_profiles_install( 90 int unit, 91 bcm_flowtracker_group_t id); 92 93 /* Un-install Session Profiles */ 94 extern int 95 _bcm_field_ft_session_profiles_uninstall( 96 int unit, 97 bcm_flowtracker_group_t id); 98 99 /* Recover Session Profiles */ 100 extern int 101 _bcm_field_ft_session_profiles_recover( 102 int unit, 103 bcm_flowtracker_group_t id); 104 105 #endif /* BCM_FLOWTRACKER_SUPPORT */ 106 107 #endif /* _BCM_INT_FT_FIELD_H */