1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 package uk.co.westhawk.snmp.pdu;
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 import uk.co.westhawk.snmp.stack.*;
53 import uk.co.westhawk.snmp.pdu.*;
54 import java.util.*;
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70 public class InterfaceGetNextPduStub extends GetNextPdu {
71 private static final String version_id = "@(#)$Id: InterfaceGetNextPduStub.java,v 3.4 2006/11/29 16:12:50 birgit Exp $ Copyright Westhawk Ltd";
72
73 public final static String sysUpTime_OID = "1.3.6.1.2.1.1.3";
74 public final static String ifNumber_OID = "1.3.6.1.2.1.2.1";
75 public final static String ifIndex_OID = "1.3.6.1.2.1.2.2.1.1";
76 public final static String ifDescr_OID = "1.3.6.1.2.1.2.2.1.2";
77 public final static String ifSpeed_OID = "1.3.6.1.2.1.2.2.1.5";
78 public final static String ifOperStatus_OID = "1.3.6.1.2.1.2.2.1.8";
79 public final static String ifInOctets_OID = "1.3.6.1.2.1.2.2.1.10";
80 public final static String ifOutOctets_OID = "1.3.6.1.2.1.2.2.1.16";
81
82 public final static int NO_SCAL = 2;
83 public final static int NO_COL = 6;
84 public final static int NO_OID = NO_SCAL + NO_COL;
85
86 public final static String scal_oids[] = {
87 sysUpTime_OID,
88 ifNumber_OID,
89 };
90
91 public final static String col_oids[] = {
92 ifIndex_OID,
93 ifDescr_OID,
94 ifSpeed_OID,
95 ifOperStatus_OID,
96 ifInOctets_OID,
97 ifOutOctets_OID,
98 };
99
100 public final static String all_oids[] = {
101 sysUpTime_OID,
102 ifNumber_OID,
103 ifIndex_OID,
104 ifDescr_OID,
105 ifSpeed_OID,
106 ifOperStatus_OID,
107 ifInOctets_OID,
108 ifOutOctets_OID,
109 };
110
111 protected long _sysUpTime;
112 protected int _ifNumber;
113 protected int _ifIndex;
114 protected String _ifDescr;
115 protected long _ifSpeed;
116 protected HashMap _ifOperStatusMap = new HashMap(3);
117 protected int _ifOperStatus;
118 protected long _ifInOctets;
119 protected long _ifOutOctets;
120
121 protected boolean _valid = false;
122
123
124
125
126
127
128 public InterfaceGetNextPduStub(SnmpContextBasisFace con) {
129 super(con);
130 _ifOperStatusMap.put(new Integer(3), "testing");
131 _ifOperStatusMap.put(new Integer(1), "up");
132 _ifOperStatusMap.put(new Integer(2), "down");
133
134 _valid = false;
135 }
136
137
138
139
140
141
142
143
144 public InterfaceGetNextPduStub(SnmpContextBasisFace con, Observer o)
145 throws PduException, java.io.IOException {
146 this(con);
147 addOids(null);
148 if (o != null) {
149 addObserver(o);
150 }
151 send();
152 }
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167 public void addOids(InterfaceGetNextPduStub old) {
168 if (old != null) {
169 for (int i = 0; i < NO_SCAL; i++) {
170 addOid(scal_oids[i]);
171 }
172 for (int i = NO_SCAL; i < NO_OID; i++) {
173 varbind var = (varbind) old.respVarbinds.elementAt(i);
174 addOid(var.getOid());
175 }
176 } else {
177 for (int i = 0; i < NO_OID; i++) {
178 addOid(all_oids[i]);
179 }
180 }
181 }
182
183
184
185
186
187
188
189
190 public void addOids(int index) {
191 for (int i = 0; i < NO_SCAL; i++) {
192 addOid(scal_oids[i]);
193 }
194 for (int i = 0; i < NO_COL; i++) {
195 addOid(col_oids[i] + "." + index);
196 }
197 }
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212 protected void new_value(int n, varbind res) {
213 if (getErrorStatus() == AsnObject.SNMP_ERR_NOERROR) {
214 AsnObjectId oid = res.getOid();
215 AsnObject value = res.getValue();
216
217 if (res.getOid().toString().startsWith(all_oids[n])) {
218 try {
219 switch (n) {
220 case 0:
221 setSysUpTime(value);
222 break;
223 case 1:
224 setIfNumber(value);
225 break;
226 case 2:
227 setIfIndex(value);
228 break;
229 case 3:
230 setIfDescr(value);
231 break;
232 case 4:
233 setIfSpeed(value);
234 break;
235 case 5:
236 setIfOperStatus(value);
237 break;
238 case 6:
239 setIfInOctets(value);
240 break;
241 case 7:
242 setIfOutOctets(value);
243 break;
244 default:
245 _valid = false;
246 }
247 } catch (ClassCastException exc) {
248 _valid = false;
249 }
250
251 if (n == NO_OID - 1) {
252 _valid = true;
253 }
254 } else {
255 setErrorStatus(AsnObject.SNMP_ERR_NOSUCHNAME);
256 setErrorIndex(n);
257 }
258 }
259 }
260
261
262
263
264
265
266
267
268
269
270
271
272 public void setSysUpTime(AsnObject new_value) {
273 AsnUnsInteger obj = (AsnUnsInteger) new_value;
274 _sysUpTime = obj.getValue();
275 }
276
277 public long getSysUpTime() {
278 return _sysUpTime;
279 }
280
281
282
283
284
285
286
287
288
289
290
291 public void setIfNumber(AsnObject new_value) {
292 AsnInteger obj = (AsnInteger) new_value;
293 _ifNumber = obj.getValue();
294 }
295
296 public int getIfNumber() {
297 return _ifNumber;
298 }
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314 public void setIfIndex(AsnObject new_value) {
315 AsnInteger obj = (AsnInteger) new_value;
316 _ifIndex = obj.getValue();
317 }
318
319 public int getIfIndex() {
320 return _ifIndex;
321 }
322
323
324
325
326
327
328
329
330
331
332
333
334
335 public void setIfDescr(AsnObject new_value) {
336 AsnOctets obj = (AsnOctets) new_value;
337 _ifDescr = obj.toDisplayString();
338 }
339
340 public String getIfDescr() {
341 return _ifDescr;
342 }
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357 public void setIfSpeed(AsnObject new_value) {
358 AsnUnsInteger obj = (AsnUnsInteger) new_value;
359 _ifSpeed = obj.getValue();
360 }
361
362 public long getIfSpeed() {
363 return _ifSpeed;
364 }
365
366
367
368
369
370
371
372
373
374
375
376
377 public void setIfOperStatus(AsnObject new_value) {
378 AsnInteger obj = (AsnInteger) new_value;
379 _ifOperStatus = obj.getValue();
380 }
381
382 public String getIfOperStatusStr() {
383 return (String) _ifOperStatusMap.get(new Integer(_ifOperStatus));
384 }
385
386 public int getIfOperStatus() {
387 return _ifOperStatus;
388 }
389
390
391
392
393
394
395
396
397
398
399
400 public void setIfInOctets(AsnObject new_value) {
401 AsnUnsInteger obj = (AsnUnsInteger) new_value;
402 _ifInOctets = obj.getValue();
403 }
404
405 public long getIfInOctets() {
406 return _ifInOctets;
407 }
408
409
410
411
412
413
414
415
416
417
418
419 public void setIfOutOctets(AsnObject new_value) {
420 AsnUnsInteger obj = (AsnUnsInteger) new_value;
421 _ifOutOctets = obj.getValue();
422 }
423
424 public long getIfOutOctets() {
425 return _ifOutOctets;
426 }
427
428
429
430
431 public boolean isValid() {
432 return _valid;
433 }
434
435 public String toString() {
436 StringBuffer buffer = new StringBuffer(getClass().getName());
437 buffer.append("[");
438 buffer.append("sysUpTime=").append(_sysUpTime);
439 buffer.append(", ifNumber=").append(_ifNumber);
440 buffer.append(", ifIndex=").append(_ifIndex);
441 buffer.append(", ifDescr=").append(_ifDescr);
442 buffer.append(", ifSpeed=").append(_ifSpeed);
443 buffer.append(", ifOperStatus=").append(_ifOperStatusMap.get(new Integer(_ifOperStatus)));
444 buffer.append(", ifInOctets=").append(_ifInOctets);
445 buffer.append(", ifOutOctets=").append(_ifOutOctets);
446 buffer.append(", valid=").append(_valid);
447 buffer.append("]");
448 return buffer.toString();
449 }
450
451 }