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

switch.h (6694B)


      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 
      8 #ifndef _SHR_SWITCH_H
      9 #define _SHR_SWITCH_H
     10 
     11 #define _SHR_SWITCH_MAX_PIPES                 8  /* Max number of pipes (or slices) */
     12 
     13 #define _SHR_SWITCH_STABLE_NONE               0  /* No storage */
     14 #define _SHR_SWITCH_STABLE_DEVICE_NEXT_HOP    1  /* Use next hop table */
     15 #define _SHR_SWITCH_STABLE_DEVICE_EXT_MEM     2  /* Use external TCAM/SRAM */
     16 #define _SHR_SWITCH_STABLE_APPLICATION        3  /* Use application storage */
     17 #define _SHR_SWITCH_STABLE_SHARED_MEM         4  /* Use Linux shmem for internal proccess NV storage */ 
     18 
     19 /*
     20  * Defines:
     21  *	_SHR_SWITCH_FILTER_*
     22  * Purpose:
     23  *	Defines the bypass control items (bitmap format)
     24  */
     25 
     26 typedef enum _shr_switch_filter_control_e {
     27 
     28     _SHR_SWITCH_FILTER_NONE           = 0,          /* CRC check */
     29     /* bypass for RX group */
     30     _SHR_SWITCH_FILTER_RX_CRCCHK      = (1 << 0),   /* CRC check */
     31     /* bypass for DOS group */
     32     _SHR_SWITCH_FILTER_DOS_TOCPU      = (1 << 1),
     33     /* bypass for STP group */
     34     _SHR_SWITCH_FILTER_STP_USERADDR   = (1 << 2),   /* L2 User MAC Addr */
     35     _SHR_SWITCH_FILTER_STP_MAC0X      = (1 << 3),   /* 0180c2-000000x */
     36     /* bypass for VLAN group */
     37     _SHR_SWITCH_FILTER_VLAN_IGMP_MLD  = (1 << 4),
     38     _SHR_SWITCH_FILTER_VLAN_ARP_DHCP  = (1 << 5),
     39     _SHR_SWITCH_FILTER_VLAN_MIIM      = (1 << 6),   /* IMP ingress frame */
     40     _SHR_SWITCH_FILTER_VLAN_MCAST     = (1 << 7),
     41     _SHR_SWITCH_FILTER_VLAN_RSV_MCAST = (1 << 8),   /* 0180c2-000000x */
     42                                                     /* 0180c2-000001x */
     43                                                     /* 0180c2-000002x */
     44     _SHR_SWITCH_FILTER_VLAN_USERADDR  = (1 << 9),   /* L2 User MAC Addr */
     45     /* bypass for EAP group */
     46     _SHR_SWITCH_FILTER_EAP_USERADDR   = (1 << 10),  /* L2 User MAC Addr */
     47     _SHR_SWITCH_FILTER_EAP_DHCP       = (1 << 11),
     48     _SHR_SWITCH_FILTER_EAP_ARP        = (1 << 12),
     49     _SHR_SWITCH_FILTER_EAP_MAC_22_2F  = (1 << 13),  /* 0180c2-000002x */
     50     _SHR_SWITCH_FILTER_EAP_MAC_21     = (1 << 14),  /* 0180c2-0000021 */
     51     _SHR_SWITCH_FILTER_EAP_MAC_20     = (1 << 15),  /* 0180c2-0000020 */
     52     _SHR_SWITCH_FILTER_EAP_MAC_11_1F  = (1 << 16),  /* 0180c2-000001x */
     53     _SHR_SWITCH_FILTER_EAP_MAC_10     = (1 << 17),  /* 0180c2-0000010 */
     54     _SHR_SWITCH_FILTER_EAP_MAC_0X     = (1 << 18),  /* 0180c2-000000x */
     55     _SHR_SWITCH_FILTER_EAP_BPDU       = (1 << 19),  /* 0180c2-0000000 */
     56     _SHR_SWITCH_FILTER_CONTROL_COUNT  = 20
     57 } _shr_switch_filter_control_t;
     58 
     59 #define _SHR_SWITCH_FILTER_TYPE_GET(_type, _id)  \
     60             (_type) = (((_id) == 0) ? _SHR_SWITCH_FILTER_RX_CRCCHK : \
     61                         ((_id) == 1) ? _SHR_SWITCH_FILTER_DOS_TOCPU : \
     62                         ((_id) == 2) ? _SHR_SWITCH_FILTER_STP_USERADDR : \
     63                         ((_id) == 3) ? _SHR_SWITCH_FILTER_STP_MAC0X : \
     64                         ((_id) == 4) ? _SHR_SWITCH_FILTER_VLAN_IGMP_MLD : \
     65                         ((_id) == 5) ? _SHR_SWITCH_FILTER_VLAN_ARP_DHCP : \
     66                         ((_id) == 6) ? _SHR_SWITCH_FILTER_VLAN_MIIM : \
     67                         ((_id) == 7) ? _SHR_SWITCH_FILTER_VLAN_MCAST : \
     68                         ((_id) == 8) ? _SHR_SWITCH_FILTER_VLAN_RSV_MCAST : \
     69                         ((_id) == 9) ? _SHR_SWITCH_FILTER_VLAN_USERADDR : \
     70                         ((_id) == 10) ? _SHR_SWITCH_FILTER_EAP_USERADDR : \
     71                         ((_id) == 11) ? _SHR_SWITCH_FILTER_EAP_DHCP : \
     72                         ((_id) == 12) ? _SHR_SWITCH_FILTER_EAP_ARP : \
     73                         ((_id) == 13) ? _SHR_SWITCH_FILTER_EAP_MAC_22_2F : \
     74                         ((_id) == 14) ? _SHR_SWITCH_FILTER_EAP_MAC_21 : \
     75                         ((_id) == 15) ? _SHR_SWITCH_FILTER_EAP_MAC_20 : \
     76                         ((_id) == 16) ? _SHR_SWITCH_FILTER_EAP_MAC_11_1F : \
     77                         ((_id) == 17) ? _SHR_SWITCH_FILTER_EAP_MAC_10 : \
     78                         ((_id) == 18) ? _SHR_SWITCH_FILTER_EAP_MAC_0X : \
     79                         ((_id) == 19) ? _SHR_SWITCH_FILTER_EAP_BPDU : \
     80                         _SHR_SWITCH_FILTER_NONE)
     81 
     82 /* Switch event action controls. */
     83 typedef enum _shr_switch_event_control_action_e {
     84     _SHR_SWITCH_EVENT_MASK = 0x0,
     85     _SHR_SWITCH_EVENT_CLEAR = 0x1,
     86     _SHR_SWITCH_EVENT_READ = 0x2,
     87     _SHR_SWITCH_EVENT_FORCE = 0x3,
     88     _SHR_SWITCH_EVENT_STORM_TIMED_COUNT = 0x4,
     89     _SHR_SWITCH_EVENT_STORM_TIMED_PERIOD = 0x5,
     90     _SHR_SWITCH_EVENT_STORM_NOMINAL = 0x6,
     91     _SHR_SWITCH_EVENT_PRIORITY = 0x7,
     92     _SHR_SWITCH_EVENT_LOG = 0x8,
     93     _SHR_SWITCH_EVENT_STAT = 0x9,
     94     _SHR_SWITCH_EVENT_CORR_ACT_OVERRIDE = 0xA,
     95     _SHR_SWITCH_EVENT_UNMASK_AND_CLEAR_DISABLE = 0xB,
     96     _SHR_SWITCH_EVENT_FORCE_UNMASK = 0xC
     97 } _shr_switch_event_control_action_t;
     98 
     99 /*
    100  * Defines:
    101  *	_SHR_SWITCH_LED_FUNCSET_*
    102  * Purpose:
    103  *	Defines the LED function groups
    104  */
    105 #define _SHR_SWITCH_LED_FUNCGRP_0       0
    106 #define _SHR_SWITCH_LED_FUNCGRP_1       1
    107 
    108 /*
    109  * Defines:
    110  *	_SHR_SWITCH_LED_FUNC_*
    111  * Purpose:
    112  *	Defines the LED function items
    113  */
    114 #define _SHR_SWITCH_LED_FUNC_NONE       0
    115 #define _SHR_SWITCH_LED_FUNC_PHYLED4    (1 << 0)
    116 #define _SHR_SWITCH_LED_FUNC_LNK        (1 << 1)
    117 #define _SHR_SWITCH_LED_FUNC_DPX        (1 << 2)
    118 #define _SHR_SWITCH_LED_FUNC_ACT        (1 << 3)
    119 #define _SHR_SWITCH_LED_FUNC_COL        (1 << 4)
    120 #define _SHR_SWITCH_LED_FUNC_LINK_ACT   (1 << 5)
    121 #define _SHR_SWITCH_LED_FUNC_DPX_COL    (1 << 6)
    122 #define _SHR_SWITCH_LED_FUNC_SP_10      (1 << 7)
    123 #define _SHR_SWITCH_LED_FUNC_SP_100     (1 << 8)
    124 #define _SHR_SWITCH_LED_FUNC_SP_1G      (1 << 9)
    125 #define _SHR_SWITCH_LED_FUNC_10_ACT     (1 << 10)
    126 #define _SHR_SWITCH_LED_FUNC_100_ACT    (1 << 11)
    127 #define _SHR_SWITCH_LED_FUNC_10_100_ACT (1 << 12)
    128 #define _SHR_SWITCH_LED_FUNC_1G_ACT     (1 << 13)
    129 #define _SHR_SWITCH_LED_FUNC_EAV_LINK   (1 << 14)
    130 #define _SHR_SWITCH_LED_FUNC_PHYLED3    (1 << 15)
    131 
    132 #define _SHR_SWITCH_LED_FUNC_SP_100_200     (1 << 16)
    133 #define _SHR_SWITCH_LED_FUNC_100_200_ACT    (1 << 17)
    134 #define _SHR_SWITCH_LED_FUNC_LNK_ACT_SP     (1 << 18)
    135 
    136 /*
    137  * Defines:
    138  *	_SHR_SWITCH_LED_MODE_*
    139  * Purpose:
    140  *	Defines the LED mode
    141  */
    142 #define _SHR_SWITCH_LED_MODE_OFF        0
    143 #define _SHR_SWITCH_LED_MODE_ON         1
    144 #define _SHR_SWITCH_LED_MODE_BLINK      2
    145 #define _SHR_SWITCH_LED_MODE_AUTO       3
    146 
    147 /*
    148  * structure:
    149  *      _shr_temperature_monitor_t 
    150  * Purpose:
    151  *      entry type for retrieving temperature monitor value 
    152  */
    153 typedef struct _shr_switch_temperature_monitor_s {
    154     int curr;
    155     int peak;
    156 } _shr_switch_temperature_monitor_t;
    157 
    158 #endif  /* !_SHR_SWITCH_H */