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