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

portmode.h (6367B)


      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  * This file defines common network port modes.
      8  *
      9  * Its contents are not used directly by applications; it is used only
     10  * by header files of parent APIs which need to define port modes.
     11  */
     12 
     13 #ifndef _SHR_PORTMODE_H
     14 #define _SHR_PORTMODE_H
     15 
     16 typedef unsigned int _shr_port_mode_t;
     17 
     18 /*
     19  * Defines:
     20  *      _SHR_PM_*
     21  * Purpose:
     22  *      Defines for port modes.
     23  */
     24 
     25 #define _SHR_PM_10MB_HD         (1 << 0)
     26 #define _SHR_PM_10MB_FD         (1 << 1)
     27 #define _SHR_PM_100MB_HD        (1 << 2)
     28 #define _SHR_PM_100MB_FD        (1 << 3)
     29 #define _SHR_PM_1000MB_HD       (1 << 4)
     30 #define _SHR_PM_1000MB_FD       (1 << 5)
     31 #define _SHR_PM_2500MB_HD       (1 << 6)
     32 #define _SHR_PM_2500MB_FD       (1 << 7)
     33 #define _SHR_PM_10GB_HD         (1 << 8)
     34 #define _SHR_PM_10GB_FD         (1 << 9)
     35 #define _SHR_PM_PAUSE_TX        (1 << 10)       /* TX pause capable */
     36 #define _SHR_PM_PAUSE_RX        (1 << 11)       /* RX pause capable */
     37 #define _SHR_PM_PAUSE_ASYMM     (1 << 12)       /* Asymm pause capable (R/O) */
     38 #define _SHR_PM_TBI             (1 << 13)       /* TBI mode supported */
     39 #define _SHR_PM_MII             (1 << 14)       /* MII mode supported */
     40 #define _SHR_PM_GMII            (1 << 15)       /* GMII mode supported */
     41 #define _SHR_PM_SGMII           (1 << 16)       /* SGMII mode supported */
     42 #define _SHR_PM_XGMII           (1 << 17)       /* XGMII mode supported */
     43 #define _SHR_PM_LB_MAC          (1 << 18)       /* MAC loopback supported */
     44 #define _SHR_PM_LB_NONE         (1 << 19)       /* Useful for automated test */
     45 #define _SHR_PM_LB_PHY          (1 << 20)       /* PHY loopback supported */
     46 #define _SHR_PM_AN              (1 << 21)       /* Auto-negotiation */
     47 #define _SHR_PM_3000MB_HD       (1 << 29)
     48 #define _SHR_PM_3000MB_FD       (1 << 30)
     49 #define _SHR_PM_12GB_HD         (1 << 22)
     50 #define _SHR_PM_12GB_FD         (1 << 23)
     51 #define _SHR_PM_13GB_HD         (1 << 24)
     52 #define _SHR_PM_13GB_FD         (1 << 25) 
     53 #define _SHR_PM_16GB_HD         (1 << 26)
     54 #define _SHR_PM_16GB_FD         (1 << 27)
     55 #define _SHR_PM_COMBO           (1 << 31)      /* COMBO ports support both
     56                                                 * copper and fiber interfaces */
     57 
     58 #define _SHR_PM_PAUSE           (_SHR_PM_PAUSE_TX  | _SHR_PM_PAUSE_RX)
     59 #define _SHR_PM_10MB            (_SHR_PM_10MB_HD   | _SHR_PM_10MB_FD)
     60 #define _SHR_PM_100MB           (_SHR_PM_100MB_HD  | _SHR_PM_100MB_FD)
     61 #define _SHR_PM_1000MB          (_SHR_PM_1000MB_HD | _SHR_PM_1000MB_FD)
     62 #define _SHR_PM_2500MB          (_SHR_PM_2500MB_HD | _SHR_PM_2500MB_FD)
     63 #define _SHR_PM_3000MB          (_SHR_PM_3000MB_HD | _SHR_PM_3000MB_FD)
     64 #define _SHR_PM_10GB            (_SHR_PM_10GB_HD   | _SHR_PM_10GB_FD)
     65 #define _SHR_PM_12GB            (_SHR_PM_12GB_HD   | _SHR_PM_12GB_FD)
     66 #define _SHR_PM_13GB            (_SHR_PM_13GB_HD   | _SHR_PM_13GB_FD)
     67 #define _SHR_PM_16GB            (_SHR_PM_16GB_HD   | _SHR_PM_16GB_FD)
     68 
     69 #define _SHR_PM_SPEED_ALL       (_SHR_PM_16GB |         \
     70                                  _SHR_PM_13GB |         \
     71                                  _SHR_PM_12GB |         \
     72                                  _SHR_PM_10GB |         \
     73                                  _SHR_PM_3000MB |       \
     74                                  _SHR_PM_2500MB |       \
     75                                  _SHR_PM_1000MB |       \
     76                                  _SHR_PM_100MB |        \
     77                                  _SHR_PM_10MB)
     78 
     79 #define _SHR_PM_SPEED_MAX(m)    (((m) & _SHR_PM_16GB)   ? 16000 : \
     80                                  ((m) & _SHR_PM_13GB)   ? 13000 : \
     81                                  ((m) & _SHR_PM_12GB)   ? 12000 : \
     82                                  ((m) & _SHR_PM_10GB)   ? 10000 : \
     83                                  ((m) & _SHR_PM_3000MB) ? 3000 : \
     84                                  ((m) & _SHR_PM_2500MB) ? 2500 : \
     85                                  ((m) & _SHR_PM_1000MB) ? 1000 : \
     86                                  ((m) & _SHR_PM_100MB)  ? 100 : \
     87                                  ((m) & _SHR_PM_10MB)   ? 10 : 0)
     88 
     89 #define _SHR_PM_SPEED(s)        ((16000 == (s)) ? _SHR_PM_16GB : \
     90                                  (13000 == (s)) ? _SHR_PM_13GB : \
     91                                  (12000 == (s)) ? _SHR_PM_12GB : \
     92                                  (10000 == (s)) ? _SHR_PM_10GB : \
     93                                  (3000  == (s)) ? _SHR_PM_3000MB : \
     94                                  (2500  == (s)) ? _SHR_PM_2500MB : \
     95                                  (1000  == (s)) ? _SHR_PM_1000MB : \
     96                                  (100   == (s)) ? _SHR_PM_100MB : \
     97                                  (10    == (s)) ? _SHR_PM_10MB : 0)
     98 
     99 #define _SHR_PM_FD              (_SHR_PM_16GB_FD |    \
    100                                  _SHR_PM_13GB_FD |    \
    101                                  _SHR_PM_12GB_FD |    \
    102                                  _SHR_PM_10GB_FD |    \
    103                                  _SHR_PM_3000MB_FD |    \
    104                                  _SHR_PM_2500MB_FD |    \
    105                                  _SHR_PM_1000MB_FD |    \
    106                                  _SHR_PM_100MB_FD |     \
    107                                  _SHR_PM_10MB_FD)
    108 
    109 #define _SHR_PM_HD              (_SHR_PM_16GB_HD |    \
    110                                  _SHR_PM_13GB_HD |    \
    111                                  _SHR_PM_12GB_HD |    \
    112                                  _SHR_PM_10GB_HD |    \
    113                                  _SHR_PM_3000MB_HD |    \
    114                                  _SHR_PM_2500MB_HD |    \
    115                                  _SHR_PM_1000MB_HD |    \
    116                                  _SHR_PM_100MB_HD |     \
    117                                  _SHR_PM_10MB_HD)
    118 
    119 #define _SHR_PORT_CONTROL_FABRIC_HEADER_OBSOLETE_0   (1 << 0)
    120 #define _SHR_PORT_CONTROL_FABRIC_HEADER_OBSOLETE_1   (1 << 1)
    121 #define _SHR_PORT_CONTROL_FABRIC_HEADER_OBSOLETE_2   (1 << 2)
    122 #define _SHR_PORT_CONTROL_FABRIC_HEADER_CUSTOM       (1 << 3)
    123 #define _SHR_PORT_CONTROL_FABRIC_HEADER_88640_TM     (1 << 4)
    124 #define _SHR_PORT_CONTROL_FABRIC_HEADER_88640_RAW    (1 << 5)
    125 
    126 /* Port link fault signalling. */
    127 #define _SHR_PORT_FAULT_LOCAL               0x0001
    128 #define _SHR_PORT_FAULT_REMOTE              0x0002
    129 
    130 #endif  /* !_SHR_PORTMODE_H */