1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 /****************************************************************************** 3 * 4 * (C)Copyright 1998,1999 SysKonnect, 5 * a business unit of Schneider & Koch & Co. Datensysteme GmbH. 6 * 7 * The information in this file is provided "AS IS" without warranty. 8 * 9 ******************************************************************************/ 10 11 /* 12 * FDDI MIB 13 */ 14 15 /* 16 * typedefs 17 */ 18 19 typedef u_long Counter ; 20 typedef u_char TimeStamp[8] ; 21 typedef struct fddi_addr LongAddr ; 22 typedef u_long Timer_2 ; 23 typedef u_long Timer ; 24 typedef u_short ResId ; 25 typedef u_short SMTEnum ; 26 typedef u_char SMTFlag ; 27 28 typedef struct { 29 Counter count ; 30 TimeStamp timestamp ; 31 } SetCountType ; 32 33 /* 34 * bits for bit string "available_path" 35 */ 36 #define MIB_PATH_P (1<<0) 37 #define MIB_PATH_S (1<<1) 38 #define MIB_PATH_L (1<<2) 39 40 /* 41 * bits for bit string PermittedPaths & RequestedPaths (SIZE(8)) 42 */ 43 #define MIB_P_PATH_LOCAL (1<<0) 44 #define MIB_P_PATH_SEC_ALTER (1<<1) 45 #define MIB_P_PATH_PRIM_ALTER (1<<2) 46 #define MIB_P_PATH_CON_ALTER (1<<3) 47 #define MIB_P_PATH_SEC_PREFER (1<<4) 48 #define MIB_P_PATH_PRIM_PREFER (1<<5) 49 #define MIB_P_PATH_CON_PREFER (1<<6) 50 #define MIB_P_PATH_THRU (1<<7) 51 52 /* 53 * enum current path 54 */ 55 #define MIB_PATH_ISOLATED 0 56 #define MIB_PATH_LOCAL 1 57 #define MIB_PATH_SECONDARY 2 58 #define MIB_PATH_PRIMARY 3 59 #define MIB_PATH_CONCATENATED 4 60 #define MIB_PATH_THRU 5 61 62 /* 63 * enum PMDClass 64 */ 65 #define MIB_PMDCLASS_MULTI 0 66 #define MIB_PMDCLASS_SINGLE1 1 67 #define MIB_PMDCLASS_SINGLE2 2 68 #define MIB_PMDCLASS_SONET 3 69 #define MIB_PMDCLASS_LCF 4 70 #define MIB_PMDCLASS_TP 5 71 #define MIB_PMDCLASS_UNKNOWN 6 72 #define MIB_PMDCLASS_UNSPEC 7 73 74 /* 75 * enum SMTStationStatus 76 */ 77 #define MIB_SMT_STASTA_CON 0 78 #define MIB_SMT_STASTA_SEPA 1 79 #define MIB_SMT_STASTA_THRU 2 80 81 82 struct fddi_mib { 83 /* 84 * private 85 */ 86 u_char fddiPRPMFPasswd[8] ; 87 struct smt_sid fddiPRPMFStation ; 88 89 #ifdef ESS 90 /* 91 * private variables for static allocation of the 92 * End Station Support 93 */ 94 u_long fddiESSPayload ; /* payload for static alloc */ 95 u_long fddiESSOverhead ; /* frame ov for static alloc */ 96 u_long fddiESSMaxTNeg ; /* maximum of T-NEG */ 97 u_long fddiESSMinSegmentSize ; /* min size of the sync frames */ 98 u_long fddiESSCategory ; /* category for the Alloc req */ 99 short fddiESSSynchTxMode ; /* send all LLC frames as sync */ 100 #endif /* ESS */ 101 #ifdef SBA 102 /* 103 * private variables for the Synchronous Bandwidth Allocator 104 */ 105 char fddiSBACommand ; /* holds the parsed SBA cmd */ 106 u_char fddiSBAAvailable ; /* SBA allocatable value */ 107 #endif /* SBA */ 108 109 /* 110 * SMT standard mib 111 */ 112 struct smt_sid fddiSMTStationId ; 113 u_short fddiSMTOpVersionId ; 114 u_short fddiSMTHiVersionId ; 115 u_short fddiSMTLoVersionId ; 116 u_char fddiSMTManufacturerData[32] ; 117 u_char fddiSMTUserData[32] ; 118 u_short fddiSMTMIBVersionId ; 119 120 /* 121 * ConfigGrp 122 */ 123 u_char fddiSMTMac_Ct ; 124 u_char fddiSMTNonMaster_Ct ; 125 u_char fddiSMTMaster_Ct ; 126 u_char fddiSMTAvailablePaths ; 127 u_short fddiSMTConfigCapabilities ; 128 u_short fddiSMTConfigPolicy ; 129 u_short fddiSMTConnectionPolicy ; 130 u_short fddiSMTTT_Notify ; 131 u_char fddiSMTStatRptPolicy ; 132 u_long fddiSMTTrace_MaxExpiration ; 133 u_short fddiSMTPORTIndexes[NUMPHYS] ; 134 u_short fddiSMTMACIndexes ; 135 u_char fddiSMTBypassPresent ; 136 137 /* 138 * StatusGrp 139 */ 140 SMTEnum fddiSMTECMState ; 141 SMTEnum fddiSMTCF_State ; 142 SMTEnum fddiSMTStationStatus ; 143 u_char fddiSMTRemoteDisconnectFlag ; 144 u_char fddiSMTPeerWrapFlag ; 145 146 /* 147 * MIBOperationGrp 148 */ 149 TimeStamp fddiSMTTimeStamp ; 150 TimeStamp fddiSMTTransitionTimeStamp ; 151 SetCountType fddiSMTSetCount ; 152 struct smt_sid fddiSMTLastSetStationId ; 153 154 struct fddi_mib_m { 155 u_short fddiMACFrameStatusFunctions ; 156 Timer_2 fddiMACT_MaxCapabilitiy ; 157 Timer_2 fddiMACTVXCapabilitiy ; 158 159 /* ConfigGrp */ 160 u_char fddiMACMultiple_N ; /* private */ 161 u_char fddiMACMultiple_P ; /* private */ 162 u_char fddiMACDuplicateAddressCond ;/* private */ 163 u_char fddiMACAvailablePaths ; 164 u_short fddiMACCurrentPath ; 165 LongAddr fddiMACUpstreamNbr ; 166 LongAddr fddiMACDownstreamNbr ; 167 LongAddr fddiMACOldUpstreamNbr ; 168 LongAddr fddiMACOldDownstreamNbr ; 169 SMTEnum fddiMACDupAddressTest ; 170 u_short fddiMACRequestedPaths ; 171 SMTEnum fddiMACDownstreamPORTType ; 172 ResId fddiMACIndex ; 173 174 /* AddressGrp */ 175 LongAddr fddiMACSMTAddress ; 176 177 /* OperationGrp */ 178 Timer_2 fddiMACT_Min ; /* private */ 179 Timer_2 fddiMACT_ReqMIB ; 180 Timer_2 fddiMACT_Req ; /* private */ 181 Timer_2 fddiMACT_Neg ; 182 Timer_2 fddiMACT_MaxMIB ; 183 Timer_2 fddiMACT_Max ; /* private */ 184 Timer_2 fddiMACTvxValueMIB ; 185 Timer_2 fddiMACTvxValue ; /* private */ 186 Timer_2 fddiMACT_Pri0 ; 187 Timer_2 fddiMACT_Pri1 ; 188 Timer_2 fddiMACT_Pri2 ; 189 Timer_2 fddiMACT_Pri3 ; 190 Timer_2 fddiMACT_Pri4 ; 191 Timer_2 fddiMACT_Pri5 ; 192 Timer_2 fddiMACT_Pri6 ; 193 194 /* CountersGrp */ 195 Counter fddiMACFrame_Ct ; 196 Counter fddiMACCopied_Ct ; 197 Counter fddiMACTransmit_Ct ; 198 Counter fddiMACToken_Ct ; 199 Counter fddiMACError_Ct ; 200 Counter fddiMACLost_Ct ; 201 Counter fddiMACTvxExpired_Ct ; 202 Counter fddiMACNotCopied_Ct ; 203 Counter fddiMACRingOp_Ct ; 204 205 Counter fddiMACSMTCopied_Ct ; /* private */ 206 Counter fddiMACSMTTransmit_Ct ; /* private */ 207 208 /* private for delta ratio */ 209 Counter fddiMACOld_Frame_Ct ; 210 Counter fddiMACOld_Copied_Ct ; 211 Counter fddiMACOld_Error_Ct ; 212 Counter fddiMACOld_Lost_Ct ; 213 Counter fddiMACOld_NotCopied_Ct ; 214 215 /* FrameErrorConditionGrp */ 216 u_short fddiMACFrameErrorThreshold ; 217 u_short fddiMACFrameErrorRatio ; 218 219 /* NotCopiedConditionGrp */ 220 u_short fddiMACNotCopiedThreshold ; 221 u_short fddiMACNotCopiedRatio ; 222 223 /* StatusGrp */ 224 SMTEnum fddiMACRMTState ; 225 SMTFlag fddiMACDA_Flag ; 226 SMTFlag fddiMACUNDA_Flag ; 227 SMTFlag fddiMACFrameErrorFlag ; 228 SMTFlag fddiMACNotCopiedFlag ; 229 SMTFlag fddiMACMA_UnitdataAvailable ; 230 SMTFlag fddiMACHardwarePresent ; 231 SMTFlag fddiMACMA_UnitdataEnable ; 232 233 } m[NUMMACS] ; 234 #define MAC0 0 235 236 struct fddi_mib_a { 237 ResId fddiPATHIndex ; 238 u_long fddiPATHSbaPayload ; 239 u_long fddiPATHSbaOverhead ; 240 /* fddiPATHConfiguration is built on demand */ 241 /* u_long fddiPATHConfiguration ; */ 242 Timer fddiPATHT_Rmode ; 243 u_long fddiPATHSbaAvailable ; 244 Timer_2 fddiPATHTVXLowerBound ; 245 Timer_2 fddiPATHT_MaxLowerBound ; 246 Timer_2 fddiPATHMaxT_Req ; 247 } a[NUMPATHS] ; 248 #define PATH0 0 249 250 struct fddi_mib_p { 251 /* ConfigGrp */ 252 SMTEnum fddiPORTMy_Type ; 253 SMTEnum fddiPORTNeighborType ; 254 u_char fddiPORTConnectionPolicies ; 255 struct { 256 u_char T_val ; 257 u_char R_val ; 258 } fddiPORTMacIndicated ; 259 SMTEnum fddiPORTCurrentPath ; 260 /* must be 4: is 32 bit in SMT format 261 * indices : 262 * 1 none 263 * 2 tree 264 * 3 peer 265 */ 266 u_char fddiPORTRequestedPaths[4] ; 267 u_short fddiPORTMACPlacement ; 268 u_char fddiPORTAvailablePaths ; 269 u_char fddiPORTConnectionCapabilities ; 270 SMTEnum fddiPORTPMDClass ; 271 ResId fddiPORTIndex ; 272 273 /* OperationGrp */ 274 SMTEnum fddiPORTMaint_LS ; 275 SMTEnum fddiPORTPC_LS ; 276 u_char fddiPORTBS_Flag ; 277 278 /* ErrorCtrsGrp */ 279 Counter fddiPORTLCTFail_Ct ; 280 Counter fddiPORTEBError_Ct ; 281 Counter fddiPORTOldEBError_Ct ; 282 283 /* LerGrp */ 284 Counter fddiPORTLem_Reject_Ct ; 285 Counter fddiPORTLem_Ct ; 286 u_char fddiPORTLer_Estimate ; 287 u_char fddiPORTLer_Cutoff ; 288 u_char fddiPORTLer_Alarm ; 289 290 /* StatusGrp */ 291 SMTEnum fddiPORTConnectState ; 292 SMTEnum fddiPORTPCMState ; /* real value */ 293 SMTEnum fddiPORTPCMStateX ; /* value for MIB */ 294 SMTEnum fddiPORTPC_Withhold ; 295 SMTFlag fddiPORTHardwarePresent ; 296 u_char fddiPORTLerFlag ; 297 298 u_char fddiPORTMultiple_U ; /* private */ 299 u_char fddiPORTMultiple_P ; /* private */ 300 u_char fddiPORTEB_Condition ; /* private */ 301 } p[NUMPHYS] ; 302 struct { 303 Counter fddiPRIVECF_Req_Rx ; /* ECF req received */ 304 Counter fddiPRIVECF_Reply_Rx ; /* ECF repl received */ 305 Counter fddiPRIVECF_Req_Tx ; /* ECF req transm */ 306 Counter fddiPRIVECF_Reply_Tx ; /* ECF repl transm */ 307 Counter fddiPRIVPMF_Get_Rx ; /* PMF Get rec */ 308 Counter fddiPRIVPMF_Set_Rx ; /* PMF Set rec */ 309 Counter fddiPRIVRDF_Rx ; /* RDF received */ 310 Counter fddiPRIVRDF_Tx ; /* RDF transmitted */ 311 } priv ; 312 } ; 313 314 /* 315 * OIDs for statistics 316 */ 317 #define SMT_OID_CF_STATE 1 /* fddiSMTCF_State */ 318 #define SMT_OID_PCM_STATE_A 2 /* fddiPORTPCMState port A */ 319 #define SMT_OID_PCM_STATE_B 17 /* fddiPORTPCMState port B */ 320 #define SMT_OID_RMT_STATE 3 /* fddiMACRMTState */ 321 #define SMT_OID_UNA 4 /* fddiMACUpstreamNbr */ 322 #define SMT_OID_DNA 5 /* fddiMACOldDownstreamNbr */ 323 #define SMT_OID_ERROR_CT 6 /* fddiMACError_Ct */ 324 #define SMT_OID_LOST_CT 7 /* fddiMACLost_Ct */ 325 #define SMT_OID_LEM_CT 8 /* fddiPORTLem_Ct */ 326 #define SMT_OID_LEM_CT_A 11 /* fddiPORTLem_Ct port A */ 327 #define SMT_OID_LEM_CT_B 12 /* fddiPORTLem_Ct port B */ 328 #define SMT_OID_LCT_FAIL_CT 9 /* fddiPORTLCTFail_Ct */ 329 #define SMT_OID_LCT_FAIL_CT_A 13 /* fddiPORTLCTFail_Ct port A */ 330 #define SMT_OID_LCT_FAIL_CT_B 14 /* fddiPORTLCTFail_Ct port B */ 331 #define SMT_OID_LEM_REJECT_CT 10 /* fddiPORTLem_Reject_Ct */ 332 #define SMT_OID_LEM_REJECT_CT_A 15 /* fddiPORTLem_Reject_Ct port A */ 333 #define SMT_OID_LEM_REJECT_CT_B 16 /* fddiPORTLem_Reject_Ct port B */ 334 335 /* 336 * SK MIB 337 */ 338 #define SMT_OID_ECF_REQ_RX 20 /* ECF requests received */ 339 #define SMT_OID_ECF_REPLY_RX 21 /* ECF replies received */ 340 #define SMT_OID_ECF_REQ_TX 22 /* ECF requests transmitted */ 341 #define SMT_OID_ECF_REPLY_TX 23 /* ECF replies transmitted */ 342 #define SMT_OID_PMF_GET_RX 24 /* PMF get requests received */ 343 #define SMT_OID_PMF_SET_RX 25 /* PMF set requests received */ 344 #define SMT_OID_RDF_RX 26 /* RDF received */ 345 #define SMT_OID_RDF_TX 27 /* RDF transmitted */ 346