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