Commit | Line | Data |
---|---|---|
1da177e4 LT |
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 */ |