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