smilint output for ./RFC1286-MIB
Message Severities |
Severity | Count |
error | 5 |
warning | 3 |
Message Types |
Type | Count |
import-unused (warning) | 1 |
index-element-no-range (error) | 5 |
node-implicit (warning) | 1 |
type-without-format (warning) | 1 |
Messages:
RFC1286-MIB
1: -- extracted from rfc1286.txt
2: -- at Mon Nov 15 17:11:59 1999
3:
4: RFC1286-MIB DEFINITIONS ::= BEGIN
5:
6: IMPORTS
7: Counter, Gauge, TimeTicks
7: warning -
warning: identifier `Gauge' imported from module `RFC1155-SMI' is never used
8: FROM RFC1155-SMI
9: mib-2
10: FROM RFC1213-MIB
11: OBJECT-TYPE
12: FROM RFC-1212
13: TRAP-TYPE
14: FROM RFC-1215;
15:
16: -- All representations of MAC addresses in this MIB Module use,
17: -- as a textual convention (i.e. this convention does not affect
18: -- their encoding), the data type:
19:
20: MacAddress ::= OCTET STRING (SIZE (6)) -- a 6 octet address in
21: -- the "canonical" order
22: -- defined by IEEE 802.1a, i.e., as if it were transmitted least
23: -- significant bit first, even though 802.5 (in contrast to other
24: -- 802.x protocols) requires MAC addresses to be transmitted most
25: -- significant bit first.
26: --
27: -- 16-bit addresses, if needed, are represented by setting their
28: -- upper 4 octets to all 0's, i.e., AAFF would be represented
29: -- as 00000000AAFF.
30:
31:
32: -- Similarly, all representations of Bridge-Id in this MIB Module
33: -- use, as a textual convention (i.e. this convention does not affect
34: -- their encoding), the data type:
35: BridgeId ::= OCTET STRING (SIZE (8)) -- the Bridge-Identifier as
36: -- used in the Spanning Tree
37: -- Protocol to uniquely identify a bridge. Its first two octets
38: -- (in network byte order) contain a priority value and its last
39: -- 6 octets contain the MAC address used to refer to a bridge in a
40: -- unique fashion (typically, the numerically smallest MAC address
41: -- of all ports on the bridge).
42: -- Several objects in this MIB module represent values of timers
43: -- used by the Spanning Tree Protocol. In this MIB, these timers
44: -- have values in units of hundreths of a second (i.e. 1/100 secs).
45: -- These timers, when stored in a Spanning Tree Protocol's BPDU,
46: -- are in units of 1/256 seconds. Note, however, that 802.1d/D9
47: -- specifies a settable granularity of no more than 1 second for
48: -- these timers. To avoid ambiguity, a data type is defined here
49: -- as a textual convention and all representation of these timers
50: -- in this MIB module are defined using this data type. An algorithm
51: -- is also defined for converting between the different units, to
52: -- ensure a timer's value is not distorted by multiple conversions.
53: -- The data type is:
54:
55: Timeout ::= INTEGER -- a STP timer in units of 1/100 seconds
55: warning -
warning: type `Timeout' has no format specification
56:
57: -- To convert a Timeout value into a value in units of
58: -- 1/256 seconds, the following algorithm should be used:
59: --
60: -- b = floor( (n * 256) / 100)
61: --
62: -- where:
63: -- floor = quotient [ignore remainder]
64: -- n is the value in 1/100 second units
65: -- b is the value in 1/256 second units
66: --
67: -- To convert the value from 1/256 second units back to
68: -- 1/100 seconds, the following algorithm should be used:
69: --
70: -- n = ceiling( (b * 100) / 256)
71: --
72: -- where:
73: -- ceiling = quotient [if remainder is 0], or
74: -- quotient + 1 [if remainder is non-zero]
75: -- n is the value in 1/100 second units
76: -- b is the value in 1/256 second units
77: --
78: -- Note: it is important that the arithmetic operations are done
79: -- in the order specified (i.e., multiply first, divide second).
80:
81: dot1dBridge OBJECT IDENTIFIER ::= { mib-2 17 }
82: -- groups in the Bridge MIB
83:
84: dot1dBase OBJECT IDENTIFIER ::= { dot1dBridge 1 }
85:
86: dot1dStp OBJECT IDENTIFIER ::= { dot1dBridge 2 }
87:
88: dot1dSr OBJECT IDENTIFIER ::= { dot1dBridge 3 }
89:
90: dot1dTp OBJECT IDENTIFIER ::= { dot1dBridge 4 }
91:
92: dot1dStatic OBJECT IDENTIFIER ::= { dot1dBridge 5 }
93:
94:
95: -- the dot1dBase group
96:
97: -- Implementation of the dot1dBase group is mandatory for all
98: -- bridges.
99:
100: dot1dBaseBridgeAddress OBJECT-TYPE
101: SYNTAX MacAddress
102: ACCESS read-only
103: STATUS mandatory
104: DESCRIPTION
105: "The MAC address used by this bridge when it must
106: be referred to in a unique fashion. It is
107: recommended that this be the numerically smallest
108: MAC address of all ports that belong to this
109: bridge. However it is only required to be unique.
110: When concatenated with dot1dStpPriority a unique
111: BridgeIdentifier is formed which is used in the
112: Spanning Tree Protocol."
113: REFERENCE
114: "P802.1d/D9, July 14, 1989: Sections 6.4.1.1.3 and 3.12.5"
115: ::= { dot1dBase 1 }
116:
117: dot1dBaseNumPorts OBJECT-TYPE
118: SYNTAX INTEGER
119: ACCESS read-only
120: STATUS mandatory
121: DESCRIPTION
122: "The number of ports controlled by this bridging
123: entity."
124: REFERENCE
125: "P802.1d/D9, July 14, 1989: Section 6.4.1.1.3"
126: ::= { dot1dBase 2 }
127:
128: dot1dBaseType OBJECT-TYPE
129: SYNTAX INTEGER {
130: unknown(1),
131: transparent-only(2),
132: sourceroute-only(3),
133: srt(4)
134: }
135: ACCESS read-only
136: STATUS mandatory
137: DESCRIPTION
138: "Indicates what type of bridging this bridge can
139: perform. If a bridge is actually performing a
140: certain type of bridging this will be indicated by
141: entries in the port table for the given type."
142: ::= { dot1dBase 3 }
143:
144: -- The Generic Bridge Port Table
145:
146: dot1dBasePortTable OBJECT-TYPE
147: SYNTAX SEQUENCE OF Dot1dBasePortEntry
148: ACCESS not-accessible
149: STATUS mandatory
150: DESCRIPTION
151: "A table that contains generic information about
152: every port that is associated with this bridge.
153: Transparent, source-route, and srt ports are
154: included."
155: ::= { dot1dBase 4 }
156:
157: dot1dBasePortEntry OBJECT-TYPE
158: SYNTAX Dot1dBasePortEntry
159: ACCESS not-accessible
160: STATUS mandatory
161: DESCRIPTION
162: "A list of information for each port of the
163: bridge."
164: REFERENCE
165: "P802.1d/D9, July 14, 1989: Section 6.4.2, 6.6.1"
166: INDEX { dot1dBasePort }
167: ::= { dot1dBasePortTable 1 }
168:
169: Dot1dBasePortEntry ::=
170: SEQUENCE {
171: dot1dBasePort
172: INTEGER,
173: dot1dBasePortIfIndex
174: INTEGER,
175: dot1dBasePortCircuit
176: OBJECT IDENTIFIER,
177: dot1dBasePortDelayExceededDiscards
178: Counter,
179: dot1dBasePortMtuExceededDiscards
180: Counter
181: }
182:
183: dot1dBasePort OBJECT-TYPE
183: error -
index element `dot1dBasePort' of row `dot1dBasePortEntry' must have a range restriction
184: SYNTAX INTEGER
185: ACCESS read-only
186: STATUS mandatory
187: DESCRIPTION
188: "The port number of the port for which this entry
189: contains bridge management information."
190: ::= { dot1dBasePortEntry 1 }
191:
192: dot1dBasePortIfIndex OBJECT-TYPE
193: SYNTAX INTEGER
194: ACCESS read-only
195: STATUS mandatory
196: DESCRIPTION
197: "The value of the instance of the ifIndex object,
198: defined in [4,6], for the interface corresponding
199: to this port."
200: ::= { dot1dBasePortEntry 2 }
201:
202: dot1dBasePortCircuit OBJECT-TYPE
203: SYNTAX OBJECT IDENTIFIER
204: ACCESS read-only
205: STATUS mandatory
206: DESCRIPTION
207: "For a port which (potentially) has the same value
208: of dot1dBasePortIfIndex as another port on the
209: same bridge, this object contains the name of an
210: object instance unique to this port. For example,
211: in the case where multiple ports correspond one-
212: to-one with multiple X.25 virtual circuits, this
213: value might identify an (e.g., the first) object
214: instance associated with the X.25 virtual circuit
215: corresponding to this port.
216:
217: For a port which has a unique value of
218: dot1dBasePortIfIndex, this object can have the
219: value { 0 0 }."
220: ::= { dot1dBasePortEntry 3 }
221:
222: dot1dBasePortDelayExceededDiscards OBJECT-TYPE
223: SYNTAX Counter
224: ACCESS read-only
225: STATUS mandatory
226: DESCRIPTION
227: "The number of frames discarded by this port due
228: to excessive transit delay through the bridge. It
229: is incremented by both transparent and source
230: route bridges."
231: REFERENCE
232: "P802.1d/D9, July 14, 1989: Section 6.6.1.1.3"
233: ::= { dot1dBasePortEntry 4 }
234:
235: dot1dBasePortMtuExceededDiscards OBJECT-TYPE
236: SYNTAX Counter
237: ACCESS read-only
238: STATUS mandatory
239: DESCRIPTION
240: "The number of frames discarded by this port due
241: to an excessive size. It is incremented by both
242: transparent and source route bridges."
243: REFERENCE
244: "P802.1d/D9, July 14, 1989: Section 6.6.1.1.3"
245: ::= { dot1dBasePortEntry 5 }
246:
247:
248: -- the dot1dStp group
249:
250: -- Implementation of the dot1dStp group is optional. It is
251: -- implemented by those bridges that support the Spanning Tree
252: -- Protocol. Transparent, Source Route, and SRT bridges will
253: -- implement this group only if they support the Spanning Tree
254: -- Protocol.
255:
256:
257: dot1dStpProtocolSpecification OBJECT-TYPE
258: SYNTAX INTEGER {
259: unknown(1),
260: decLb100(2),
261: ieee8021d(3)
262: }
263: ACCESS read-only
264: STATUS mandatory
265: DESCRIPTION
266: "An indication of what version of the Spanning
267: Tree Protocol is being run. The value
268: 'decLb100(2)' indicates the DEC LANbridge 100
269: Spanning Tree protocol. IEEE 802.1d
270: implementations will return 'ieee8021d(3)'. If
271: future versions of the IEEE Spanning Tree Protocol
272: are released that are incompatible with the
273: current version a new value will be defined."
274: ::= { dot1dStp 1 }
275:
276: dot1dStpPriority OBJECT-TYPE
277: SYNTAX INTEGER (0..65535)
278: ACCESS read-write
279: STATUS mandatory
280: DESCRIPTION
281: "The value of the write-able portion of the Bridge
282: ID, i.e., the first two octets of the (8 octet
283: long) Bridge ID. The other (last) 6 octets of the
284: Bridge ID are given by the value of
285: dot1dBaseBridgeAddress."
286: REFERENCE
287: "P802.1d/D9, July 14, 1989: Section 4.5.3.7"
288: ::= { dot1dStp 2 }
289:
290: dot1dStpTimeSinceTopologyChange OBJECT-TYPE
291: SYNTAX TimeTicks
292: ACCESS read-only
293: STATUS mandatory
294: DESCRIPTION
295: "The time (in hundredths of a second) since the
296: last time a topology change was detected by the
297: bridge entity."
298: REFERENCE
299: "P802.1d/D9, July 14, 1989: Section 6.8.1.1.3"
300: ::= { dot1dStp 3 }
301:
302: dot1dStpTopChanges OBJECT-TYPE
303: SYNTAX Counter
304: ACCESS read-only
305: STATUS mandatory
306: DESCRIPTION
307: "The total number of topology changes detected by
308: this bridge since the management entity was last
309: reset or initialized."
310: REFERENCE
311: "P802.1d/D9, July 14, 1989: Section 6.8.1.1.3"
312: ::= { dot1dStp 4 }
313:
314: dot1dStpDesignatedRoot OBJECT-TYPE
315: SYNTAX BridgeId
316: ACCESS read-only
317: STATUS mandatory
318: DESCRIPTION
319: "The bridge identifier of the root of the spanning
320: tree as determined by the Spanning Tree Protocol
321: as executed by this node. This value is used as
322: the Root Identifier parameter in all Configuration
323: Bridge PDUs originated by this node."
324: REFERENCE
325: "P802.1d/D9, July 14, 1989: Section 4.5.3.1"
326: ::= { dot1dStp 5 }
327:
328: dot1dStpRootCost OBJECT-TYPE
329: SYNTAX INTEGER
330: ACCESS read-only
331: STATUS mandatory
332: DESCRIPTION
333: "The cost of the path to the root as seen from
334: this bridge."
335: REFERENCE
336: "P802.1d/D9, July 14, 1989: Section 4.5.3.2"
337: ::= { dot1dStp 6 }
338:
339: dot1dStpRootPort OBJECT-TYPE
340: SYNTAX INTEGER
341: ACCESS read-only
342: STATUS mandatory
343: DESCRIPTION
344: "The port number of the port which offers the
345: lowest cost path from this bridge to the root
346: bridge."
347: REFERENCE
348: "P802.1d/D9, July 14, 1989: Section 4.5.3.3"
349: ::= { dot1dStp 7 }
350:
351: dot1dStpMaxAge OBJECT-TYPE
352: SYNTAX Timeout
353: ACCESS read-only
354: STATUS mandatory
355: DESCRIPTION
356: "The maximum age of Spanning Tree Protocol
357: information learned from the network on any port
358: before it is discarded, in units of hundredths of
359: a second. This is the actual value that this
360: bridge is currently using."
361: REFERENCE
362: "P802.1d/D9, July 14, 1989: Section 4.5.3.4"
363: ::= { dot1dStp 8 }
364:
365: dot1dStpHelloTime OBJECT-TYPE
366: SYNTAX Timeout
367: ACCESS read-only
368: STATUS mandatory
369: DESCRIPTION
370: "The amount of time between the transmission of
371: Configuration bridge PDUs by this node on any port
372: when it is the root of the spanning tree or trying
373: to become so, in units of hundredths of a second.
374: This is the actual value that this bridge is
375: currently using."
376: REFERENCE
377: "P802.1d/D9, July 14, 1989: Section 4.5.3.5"
378: ::= { dot1dStp 9 }
379:
380: dot1dStpHoldTime OBJECT-TYPE
381: SYNTAX INTEGER
382: ACCESS read-only
383: STATUS mandatory
384: DESCRIPTION
385: "This time value determines the interval length
386: during which no more than two Configuration bridge
387: PDUs shall be transmitted by this node, in units
388: of hundredths of a second."
389: REFERENCE
390: "P802.1d/D9, July 14, 1989: Section 4.5.3.14"
391: ::= { dot1dStp 10 }
392:
393: dot1dStpForwardDelay OBJECT-TYPE
394: SYNTAX Timeout
395: ACCESS read-only
396: STATUS mandatory
397: DESCRIPTION
398: "This time value, measured in units of hundredths
399: of a second, controls how fast a port changes its
400: spanning state when moving towards the Forwarding
401: state. The value determines how long the port
402: stays in a particular state before moving to the
403: next state. For example, how long a port stays in
404: the Listening state when moving from Blocking to
405: Learning. This value is also used, when a
406: topology change has been detected and is underway,
407: to age all dynamic entries in the Forwarding
408: Database. [Note that this value is the one that
409: this bridge is currently using, in contrast to
410: dot1dStpBridgeForwardDelay which is the value that
411: this bridge and all others would start using
412: if/when this bridge were to become the root.]"
413: REFERENCE
414: "P802.1d/D9, July 14, 1989: Section 4.5.3.6"
415: ::= { dot1dStp 11 }
416:
417: dot1dStpBridgeMaxAge OBJECT-TYPE
418: SYNTAX Timeout (600..4000)
419: ACCESS read-write
420: STATUS mandatory
421: DESCRIPTION
422: "The value that all bridges use for MaxAge when
423: this bridge is acting as the root. Note that
424: 802.1d/D9 specifies that the range for this
425: parameter is related to the value of
426: dot1dStpBridgeHelloTime. The granularity of this
427: timer is specified by 802.1d/D9 to be 1 second.
428: An agent may return a badValue error if a set is
429: attempted to a value which is not a whole number
430: of seconds."
431: REFERENCE
432: "P802.1d/D9, July 14, 1989: Section 4.5.3.8"
433: ::= { dot1dStp 12 }
434:
435: dot1dStpBridgeHelloTime OBJECT-TYPE
436: SYNTAX Timeout (100..1000)
437: ACCESS read-write
438: STATUS mandatory
439: DESCRIPTION
440: "The value that all bridges use for HelloTime when
441: this bridge is acting as the root. The
442: granularity of this timer is specified by
443: 802.1d/D9 to be 1 second. An agent may return a
444: badValue error if a set is attempted to a value
445: which is not a whole number of seconds."
446: REFERENCE
447: "P802.1d/D9, July 14, 1989: Section 4.5.3.9"
448: ::= { dot1dStp 13 }
449:
450: dot1dStpBridgeForwardDelay OBJECT-TYPE
451: SYNTAX Timeout (400..3000)
452: ACCESS read-write
453: STATUS mandatory
454: DESCRIPTION
455: "The value that all bridges use for ForwardDelay
456: when this bridge is acting as the root. Note that
457: 802.1d/D9 specifies that the range for this
458: parameter is related to the value of
459: dot1dStpBridgeMaxAge. The granularity of this
460: timer is specified by 802.1d/D9 to be 1 second.
461: An agent may return a badValue error if a set is
462: attempted to a value which is not a whole number
463: of seconds."
464: REFERENCE
465: "P802.1d/D9, July 14, 1989: Section 4.5.3.10"
466: ::= { dot1dStp 14 }
467:
468:
469: -- The Spanning Tree Port Table
470:
471: dot1dStpPortTable OBJECT-TYPE
472: SYNTAX SEQUENCE OF Dot1dStpPortEntry
473: ACCESS not-accessible
474: STATUS mandatory
475: DESCRIPTION
476: "A table that contains port-specific information
477: for the Spanning Tree Protocol."
478: ::= { dot1dStp 15 }
479:
480: dot1dStpPortEntry OBJECT-TYPE
481: SYNTAX Dot1dStpPortEntry
482: ACCESS not-accessible
483: STATUS mandatory
484: DESCRIPTION
485: "A list of information maintained by every port
486: about the Spanning Tree Protocol state for that
487: port."
488: INDEX { dot1dStpPort }
489: ::= { dot1dStpPortTable 1 }
490:
491: Dot1dStpPortEntry ::=
492: SEQUENCE {
493: dot1dStpPort
494: INTEGER,
495: dot1dStpPortPriority
496: INTEGER,
497: dot1dStpPortState
498: INTEGER,
499: dot1dStpPortEnable
500: INTEGER,
501: dot1dStpPortPathCost
502: INTEGER,
503: dot1dStpPortDesignatedRoot
504: BridgeId,
505: dot1dStpPortDesignatedCost
506: INTEGER,
507: dot1dStpPortDesignatedBridge
508: BridgeId,
509: dot1dStpPortDesignatedPort
510: OCTET STRING,
511: dot1dStpPortForwardTransitions
512: Counter
513:
514: }
515:
516: dot1dStpPort OBJECT-TYPE
516: error -
index element `dot1dStpPort' of row `dot1dStpPortEntry' must have a range restriction
517: SYNTAX INTEGER
518: ACCESS read-only
519: STATUS mandatory
520: DESCRIPTION
521: "The port number of the port for which this entry
522: contains Spanning Tree Protocol management
523: information."
524: REFERENCE
525: "P802.1d/D9, July 14, 1989: Section 6.8.2.1.2"
526: ::= { dot1dStpPortEntry 1 }
527:
528: dot1dStpPortPriority OBJECT-TYPE
529: SYNTAX INTEGER (0..255)
530: ACCESS read-write
531: STATUS mandatory
532: DESCRIPTION
533: "The value of the priority field which is
534: contained in the first (in network byte order)
535: octet of the (2 octet long) Port ID. The other
536: octet of the Port ID is given by the value of
537: dot1dStpPort."
538: REFERENCE
539: "P802.1d/D9, July 14, 1989: Section 4.5.5.1"
540: ::= { dot1dStpPortEntry 2 }
541:
542: dot1dStpPortState OBJECT-TYPE
543: SYNTAX INTEGER {
544: disabled(1),
545: blocking(2),
546: listening(3),
547: learning(4),
548: forwarding(5),
549: broken(6)
550: }
551: ACCESS read-only
552: STATUS mandatory
553: DESCRIPTION
554: "The port's current state as defined by
555: application of the Spanning Tree Protocol. This
556: state controls what action a port takes on
557: reception of a frame. If the bridge has detected
558: a port that is malfunctioning it will place that
559: port into the broken(6) state. For ports which
560: are disabled (see dot1dStpPortEnable), this object
561: will have a value of disabled(1)."
562:
563: REFERENCE
564: "P802.1d/D9, July 14, 1989: Section 4.5.5.2"
565: ::= { dot1dStpPortEntry 3 }
566:
567: dot1dStpPortEnable OBJECT-TYPE
568: SYNTAX INTEGER {
569: enabled(1),
570: disabled(2)
571: }
572: ACCESS read-write
573: STATUS mandatory
574: DESCRIPTION
575: "The enabled/disabled status of the port."
576: REFERENCE
577: "P802.1d/D9, July 14, 1989: Section 4.5.5.2"
578: ::= { dot1dStpPortEntry 4 }
579:
580: dot1dStpPortPathCost OBJECT-TYPE
581: SYNTAX INTEGER (1..65535)
582: ACCESS read-write
583: STATUS mandatory
584: DESCRIPTION
585: "The contribution of this port to the path cost of
586: paths towards the spanning tree root which include
587: this port."
588: REFERENCE
589: "P802.1d/D9, July 14, 1989: Section 4.5.5.3"
590: ::= { dot1dStpPortEntry 5 }
591:
592: dot1dStpPortDesignatedRoot OBJECT-TYPE
593: SYNTAX BridgeId
594: ACCESS read-only
595: STATUS mandatory
596: DESCRIPTION
597: "The unique Bridge Identifier of the Bridge
598: recorded as the Root in the Configuration BPDUs
599: transmitted by the Designated Bridge for the
600: segment to which the port is attached."
601: REFERENCE
602: "P802.1d/D9, July 14, 1989: Section 4.5.5.4"
603: ::= { dot1dStpPortEntry 6 }
604:
605: dot1dStpPortDesignatedCost OBJECT-TYPE
606: SYNTAX INTEGER
607: ACCESS read-only
608: STATUS mandatory
609: DESCRIPTION
610: "The path cost of the Designated Port of the
611: segment connected to this port. This value is
612: compared to the Root Path Cost field in received
613: bridge PDUs."
614: REFERENCE
615: "P802.1d/D9, July 14, 1989: Section 4.5.5.5"
616: ::= { dot1dStpPortEntry 7 }
617:
618: dot1dStpPortDesignatedBridge OBJECT-TYPE
619: SYNTAX BridgeId
620: ACCESS read-only
621: STATUS mandatory
622: DESCRIPTION
623: "The Bridge Identifier of the bridge which this
624: port considers to be the Designated Bridge for
625: this port's segment."
626: REFERENCE
627: "P802.1d/D9, July 14, 1989: Section 4.5.5.6"
628: ::= { dot1dStpPortEntry 8 }
629:
630: dot1dStpPortDesignatedPort OBJECT-TYPE
631: SYNTAX OCTET STRING (SIZE (2))
632: ACCESS read-only
633: STATUS mandatory
634: DESCRIPTION
635: "The Port Identifier of the port on the Designated
636: Bridge for this port's segment."
637: REFERENCE
638: "P802.1d/D9, July 14, 1989: Section 4.5.5.7"
639: ::= { dot1dStpPortEntry 9 }
640:
641: dot1dStpPortForwardTransitions OBJECT-TYPE
642: SYNTAX Counter
643: ACCESS read-only
644: STATUS mandatory
645: DESCRIPTION
646: "The number of times this port has transitioned
647: from the Learning state to the Forwarding state."
648: ::= { dot1dStpPortEntry 10 }
649:
650:
651: -- the dot1dSr group
652:
653: -- Implementation of the dot1dSr group is optional. It is
654: -- implemented by those bridges that support the source route
655: -- bridging mode, including Source Route and SRT bridges.
656: dot1dSrPortTable OBJECT-TYPE
657: SYNTAX SEQUENCE OF Dot1dSrPortEntry
658: ACCESS not-accessible
659: STATUS mandatory
660: DESCRIPTION
661: "A table that contains information about every
662: port that is associated with this source route
663: bridge."
664: ::= { dot1dSr 1 }
665:
666: dot1dSrPortEntry OBJECT-TYPE
667: SYNTAX Dot1dSrPortEntry
668: ACCESS not-accessible
669: STATUS mandatory
670: DESCRIPTION
671: "A list of information for each port of a source
672: route bridge."
673: INDEX { dot1dSrPort }
674: ::= { dot1dSrPortTable 1 }
675:
676: Dot1dSrPortEntry ::=
677: SEQUENCE {
678: dot1dSrPort
679: INTEGER,
680: dot1dSrPortHopCount
681: INTEGER,
682: dot1dSrPortLocalSegment
683: INTEGER,
684: dot1dSrPortBridgeNum
685: INTEGER,
686: dot1dSrPortTargetSegment
687: INTEGER,
688: dot1dSrPortLargestFrame
689: INTEGER,
690: dot1dSrPortSTESpanMode
691: INTEGER,
692: dot1dSrPortSpecInFrames
693: Counter,
694: dot1dSrPortSpecOutFrames
695: Counter,
696: dot1dSrPortApeInFrames
697: Counter,
698: dot1dSrPortApeOutFrames
699: Counter,
700: dot1dSrPortSteInFrames
701: Counter,
702: dot1dSrPortSteOutFrames
703: Counter,
704:
705: dot1dSrPortSegmentMismatchDiscards
706: Counter,
707: dot1dSrPortDuplicateSegmentDiscards
708: Counter,
709: dot1dSrPortHopCountExceededDiscards
710: Counter
711: }
712:
713: dot1dSrPort OBJECT-TYPE
713: error -
index element `dot1dSrPort' of row `dot1dSrPortEntry' must have a range restriction
714: SYNTAX INTEGER
715: ACCESS read-only
716: STATUS mandatory
717: DESCRIPTION
718: "The port number of the port for which this entry
719: contains Source Route management information."
720: ::= { dot1dSrPortEntry 1 }
721:
722: dot1dSrPortHopCount OBJECT-TYPE
723: SYNTAX INTEGER
724: ACCESS read-write
725: STATUS mandatory
726: DESCRIPTION
727: "The maximum number of routing descriptors allowed
728: in an All Paths or Spanning Tree Explorer frames."
729: ::= { dot1dSrPortEntry 2 }
730:
731: dot1dSrPortLocalSegment OBJECT-TYPE
732: SYNTAX INTEGER
733: ACCESS read-write
734: STATUS mandatory
735: DESCRIPTION
736: "The segment number that uniquely identifies the
737: segment to which this port is connected. Current
738: source routing protocols limit this value to the
739: range: 0 through 4095. A value of 65535 signifies
740: that no segment number is assigned to this port."
741: ::= { dot1dSrPortEntry 3 }
742:
743: dot1dSrPortBridgeNum OBJECT-TYPE
744: SYNTAX INTEGER
745: ACCESS read-write
746: STATUS mandatory
747: DESCRIPTION
748: "A bridge number uniquely identifies a bridge when
749: more than one bridge is used to span the same two
750: segments. Current source routing protocols limit
751: this value to the range: 0 through 15. A value of
752: 65535 signifies that no bridge number is assigned
753: to this bridge."
754: ::= { dot1dSrPortEntry 4 }
755:
756: dot1dSrPortTargetSegment OBJECT-TYPE
757: SYNTAX INTEGER
758: ACCESS read-write
759: STATUS mandatory
760: DESCRIPTION
761: "The segment number that corresponds to the target
762: segment this port is considered to be connected to
763: by the bridge. Current source routing protocols
764: limit this value to the range: 0 through 4095. A
765: value of 65535 signifies that no target segment is
766: assigned to this port."
767: ::= { dot1dSrPortEntry 5 }
768:
769: -- It would be nice if we could use ifMtu as the size of the
770: -- largest frame, but we can't because ifMtu is defined to be
771: -- the size that the (inter-)network layer can use which can
772: -- differ from the MAC layer (especially if several layers of
773: -- encapsulation are used).
774:
775: dot1dSrPortLargestFrame OBJECT-TYPE
776: SYNTAX INTEGER {
777: dot1dSrMtu516 (516),
778: dot1dSrMtu1500 (1500),
779: dot1dSrMtu2052 (2052),
780: dot1dSrMtu4472 (4472),
781: dot1dSrMtu8144 (8144),
782: dot1dSrMtu11407 (11407), -- yes this is correct don't
783: dot1dSrMtu17800 (17800), -- ask me where it came from.
784: dot1dSrMtu65535 (65535)
785: }
786:
787: ACCESS read-write
788: STATUS mandatory
789: DESCRIPTION
790: "The maximum size of the INFO field (LLC and
791: above) that this port can send/receive. It does
792: not include any MAC level (framing) octets. The
793: value of this object is used by this bridge to
794: determine whether a modification of the
795: LargestFrame (LF, see [14]) field of the Routing
796: Control field of the Routing Information Field is
797: necessary. Valid values as defined by the 802.5
798: source routing bridging specification[14] are 516,
799: 1500, 2052, 4472, 8144, 11407, 17800, and 65535
800: octets. Behavior of the port when an illegal
801: value is written is implementation specific. It
802: is recommended that a reasonable legal value be
803: chosen."
804: ::= { dot1dSrPortEntry 6 }
805:
806: dot1dSrPortSTESpanMode OBJECT-TYPE
807: SYNTAX INTEGER {
808: auto-span(1),
809: disabled(2),
810: forced(3)
811: }
812: ACCESS read-write
813: STATUS mandatory
814: DESCRIPTION
815: "Determines how this port behaves when presented
816: with a Spanning Tree Explorer frame. The value
817: 'disabled(2)' indicates that the port will not
818: accept or send Spanning Tree Explorer packets; any
819: STE packets received will be silently discarded.
820: The value 'forced(3)' indicates the port will
821: always accept and propagate Spanning Tree Explorer
822: frames. This allows a manually configured
823: Spanning Tree for this class of packet to be
824: configured. Note that unlike transparent bridging
825: this is not catastrophic to the network if there
826: are loops. The value 'auto-span(1)' can only be
827: returned by a bridge that both implements the
828: Spanning Tree Protocol and has use of the protocol
829: enabled on this port. The behavior of the port for
830: Spanning Tree Explorer frames is determined by the
831: state of dot1dStpPortState. If the port is in the
832: 'forwarding' state, the frame will be accepted or
833: propagated. Otherwise it will be silently
834: discarded."
835: ::= { dot1dSrPortEntry 7 }
836:
837: dot1dSrPortSpecInFrames OBJECT-TYPE
838: SYNTAX Counter
839: ACCESS read-only
840: STATUS mandatory
841: DESCRIPTION
842: "The number of specifically routed frames that
843: have been received from this port's segment."
844: ::= { dot1dSrPortEntry 8 }
845:
846: dot1dSrPortSpecOutFrames OBJECT-TYPE
847: SYNTAX Counter
848: ACCESS read-only
849: STATUS mandatory
850: DESCRIPTION
851: "The number of specifically routed frames that
852: this port has transmitted on its segment."
853: ::= { dot1dSrPortEntry 9 }
854:
855: dot1dSrPortApeInFrames OBJECT-TYPE
856: SYNTAX Counter
857: ACCESS read-only
858: STATUS mandatory
859: DESCRIPTION
860: "The number of all paths explorer frames that have
861: been received by this port from its segment."
862: ::= { dot1dSrPortEntry 10 }
863:
864: dot1dSrPortApeOutFrames OBJECT-TYPE
865: SYNTAX Counter
866: ACCESS read-only
867: STATUS mandatory
868: DESCRIPTION
869: "The number of all paths explorer frames that have
870: been transmitted by this port on its segment."
871: ::= { dot1dSrPortEntry 11 }
872:
873: dot1dSrPortSteInFrames OBJECT-TYPE
874: SYNTAX Counter
875: ACCESS read-only
876: STATUS mandatory
877: DESCRIPTION
878: "The number of spanning tree explorer frames that
879: have been received by this port from its segment."
880: ::= { dot1dSrPortEntry 12 }
881:
882: dot1dSrPortSteOutFrames OBJECT-TYPE
883: SYNTAX Counter
884: ACCESS read-only
885: STATUS mandatory
886: DESCRIPTION
887: "The number of spanning tree explorer frames that
888: have been transmitted by this port on its
889: segment."
890: ::= { dot1dSrPortEntry 13 }
891:
892: dot1dSrPortSegmentMismatchDiscards OBJECT-TYPE
893: SYNTAX Counter
894: ACCESS read-only
895: STATUS mandatory
896: DESCRIPTION
897: "The number of explorer frames that have been
898: discarded by this port because the routing
899: descriptor field contained an invalid adjacent
900: segment value."
901: ::= { dot1dSrPortEntry 14 }
902:
903: dot1dSrPortDuplicateSegmentDiscards OBJECT-TYPE
904: SYNTAX Counter
905: ACCESS read-only
906: STATUS mandatory
907: DESCRIPTION
908: "The number of frames that have been discarded by
909: this port because the routing descriptor field
910: contained a duplicate segment identifier."
911: ::= { dot1dSrPortEntry 15 }
912:
913: dot1dSrPortHopCountExceededDiscards OBJECT-TYPE
914: SYNTAX Counter
915: ACCESS read-only
916: STATUS mandatory
917: DESCRIPTION
918: "The number of explorer frames that have been
919: discarded by this port because the Routing
920: Information Field has exceeded the maximum route
921: descriptor length."
922: ::= { dot1dSrPortEntry 16 }
923:
924:
925: -- the dot1dTp group
926:
927: -- Implementation of the dot1dTp group is optional. It is
928: -- implemented by those bridges that support the transparent
929: -- bridging mode. A transparent or SRT bridge will implement
930: -- this group.
931:
932:
933: dot1dTpLearnedEntryDiscards OBJECT-TYPE
934: SYNTAX Counter
935: ACCESS read-only
936: STATUS mandatory
937: DESCRIPTION
938: "The total number of Forwarding Database entries,
939: which have been or would have been learnt, but
940: have been discarded due to a lack of space to
941: store them in the Forwarding Database. If this
942: counter is increasing, it indicates that the
943: Forwarding Database is regularly becoming full (a
944: condition which has unpleasant performance effects
945: on the subnetwork). If this counter has a
946: significant value but is not presently increasing,
947: it indicates that the problem has been occurring
948: but is not persistent."
949: REFERENCE
950: "P802.1d/D9, July 14, 1989: Section 6.7.1.1.3"
951: ::= { dot1dTp 1 }
952:
953: dot1dTpAgingTime OBJECT-TYPE
954: SYNTAX INTEGER
955: ACCESS read-write
956: STATUS mandatory
957: DESCRIPTION
958: "The timeout period in seconds for aging out
959: dynamically learned forwarding information."
960: REFERENCE
961: "P802.1d/D9, July 14, 1989: Section 6.7.1.1.3"
962: ::= { dot1dTp 2 }
963:
964:
965: -- The Forwarding Database for Transparent Bridges
966:
967: dot1dTpFdbTable OBJECT-TYPE
968: SYNTAX SEQUENCE OF Dot1dTpFdbEntry
969: ACCESS not-accessible
970: STATUS mandatory
971: DESCRIPTION
972: "A table that contains information about unicast
973: entries for which the bridge has forwarding and/or
974: filtering information. This information is used
975: by the transparent bridging function in
976: determining how to propagate a received frame."
977: ::= { dot1dTp 3 }
978:
979: dot1dTpFdbEntry OBJECT-TYPE
980: SYNTAX Dot1dTpFdbEntry
981: ACCESS not-accessible
982: STATUS mandatory
983: DESCRIPTION
984: "Information about a specific unicast MAC address
985: for which the bridge has some forwarding and/or
986: filtering information."
987: INDEX { dot1dTpFdbAddress }
988: ::= { dot1dTpFdbTable 1 }
989:
990: Dot1dTpFdbEntry ::=
991: SEQUENCE {
992: dot1dTpFdbAddress
993: MacAddress,
994: dot1dTpFdbPort
995: INTEGER,
996: dot1dTpFdbStatus
997: INTEGER
998: }
999:
1000: dot1dTpFdbAddress OBJECT-TYPE
1001: SYNTAX MacAddress
1002: ACCESS read-only
1003: STATUS mandatory
1004: DESCRIPTION
1005: "A unicast MAC address for which the bridge has
1006: forwarding and/or filtering information."
1007: REFERENCE
1008: "P802.1d/D9, July 14, 1989: Section 3.9.1, 3.9.2"
1009: ::= { dot1dTpFdbEntry 1 }
1010:
1011: dot1dTpFdbPort OBJECT-TYPE
1012: SYNTAX INTEGER
1013: ACCESS read-only
1014: STATUS mandatory
1015: DESCRIPTION
1016: "Either the value '0', or the port number of the
1017: port on which a frame having a source address
1018: equal to the value of the corresponding instance
1019: of dot1dTpFdbAddress has been seen. A value of
1020: '0' indicates that the port number has not been
1021: learned but that the bridge does have some
1022: forwarding/filtering information about this
1023: address (e.g. in the dot1dStaticTable).
1024: Implementors are encouraged to assign the port
1025: value to this object whenever it is learned even
1026: for addresses for which the corresponding value of
1027: dot1dTpFdbStatus is not learned(3)."
1028:
1029: ::= { dot1dTpFdbEntry 2 }
1030:
1031: dot1dTpFdbStatus OBJECT-TYPE
1032: SYNTAX INTEGER {
1033: other(1),
1034: invalid(2),
1035: learned(3),
1036: self(4),
1037: mgmt(5)
1038: }
1039: ACCESS read-only
1040: STATUS mandatory
1041: DESCRIPTION
1042: "The status of this entry. The meanings of the
1043: values are:
1044:
1045: other(1) : none of the following. This would
1046: include the case where some other
1047: MIB object (not the corresponding
1048: instance of dot1dTpFdbPort, nor an
1049: entry in the dot1dStaticTable) is
1050: being used to determine if and how
1051: frames addressed to the value of
1052: the corresponding instance of
1053: dot1dTpFdbAddress are being
1054: forwarded.
1055:
1056: invalid(2) : this entry is not longer valid
1057: (e.g., it was learned but has since
1058: aged-out), but has not yet been
1059: flushed from the table.
1060:
1061: learned(3) : the value of the corresponding
1062: instance of dot1dTpFdbPort was
1063: learned, and is being used.
1064:
1065: self(4) : the value of the corresponding
1066: instance of dot1dTpFdbAddress
1067: represents one of the bridge's
1068: addresses. The corresponding
1069: instance of dot1dTpFdbPort
1070: indicates which of the bridge's
1071: ports has this address.
1072:
1073: mgmt(5) : the value of the corresponding
1074: instance of dot1dTpFdbAddress is
1075: also the value of an existing
1076: instance of dot1dStaticAddress."
1077: ::= { dot1dTpFdbEntry 3 }
1078:
1079:
1080: -- Port Table for Transparent Bridges
1081:
1082: dot1dTpPortTable OBJECT-TYPE
1083: SYNTAX SEQUENCE OF Dot1dTpPortEntry
1084: ACCESS not-accessible
1085: STATUS mandatory
1086: DESCRIPTION
1087: "A table that contains information about every
1088: port that is associated with this transparent
1089: bridge."
1090: ::= { dot1dTp 4 }
1091:
1092: dot1dTpPortEntry OBJECT-TYPE
1093: SYNTAX Dot1dTpPortEntry
1094: ACCESS not-accessible
1095: STATUS mandatory
1096: DESCRIPTION
1097: "A list of information for each port of a
1098: transparent bridge."
1099: INDEX { dot1dTpPort }
1100: ::= { dot1dTpPortTable 1 }
1101:
1102: Dot1dTpPortEntry ::=
1103: SEQUENCE {
1104: dot1dTpPort
1105: INTEGER,
1106: dot1dTpPortMaxInfo
1107: INTEGER,
1108: dot1dTpPortInFrames
1109: Counter,
1110: dot1dTpPortOutFrames
1111: Counter,
1112: dot1dTpPortInDiscards
1113: Counter
1114: }
1115:
1116: dot1dTpPort OBJECT-TYPE
1116: error -
index element `dot1dTpPort' of row `dot1dTpPortEntry' must have a range restriction
1117: SYNTAX INTEGER
1118: ACCESS read-only
1119: STATUS mandatory
1120: DESCRIPTION
1121: "The port number of the port for which this entry
1122: contains Transparent bridging management
1123: information."
1124: ::= { dot1dTpPortEntry 1 }
1125:
1126: -- It would be nice if we could use ifMtu as the size of the
1127: -- largest INFO field, but we can't because ifMtu is defined
1128: -- to be the size that the (inter-)network layer can use which
1129: -- can differ from the MAC layer (especially if several layers
1130: -- of encapsulation are used).
1131:
1132: dot1dTpPortMaxInfo OBJECT-TYPE
1133: SYNTAX INTEGER
1134: ACCESS read-only
1135: STATUS mandatory
1136: DESCRIPTION
1137: "The maximum size of the INFO (non-MAC) field that
1138: this port will receive or transmit."
1139: ::= { dot1dTpPortEntry 2 }
1140:
1141: dot1dTpPortInFrames OBJECT-TYPE
1142: SYNTAX Counter
1143: ACCESS read-only
1144: STATUS mandatory
1145: DESCRIPTION
1146: "The number of frames that have been received by
1147: this port from its segment. Note that a frame
1148: received on the interface corresponding to this
1149: port is only counted by this object if and only if
1150: it is for a protocol being processed by the local
1151: bridging function."
1152: REFERENCE
1153: "P802.1d/D9, July 14, 1989: Section 6.6.1.1.3"
1154: ::= { dot1dTpPortEntry 3 }
1155:
1156: dot1dTpPortOutFrames OBJECT-TYPE
1157: SYNTAX Counter
1158: ACCESS read-only
1159: STATUS mandatory
1160: DESCRIPTION
1161: "The number of frames that have been transmitted
1162: by this port to its segment. Note that a frame
1163: transmitted on the interface corresponding to this
1164: port is only counted by this object if and only if
1165: it is for a protocol being processed by the local
1166: bridging function."
1167: REFERENCE
1168: "P802.1d/D9, July 14, 1989: Section 6.6.1.1.3"
1169: ::= { dot1dTpPortEntry 4 }
1170:
1171: dot1dTpPortInDiscards OBJECT-TYPE
1172: SYNTAX Counter
1173: ACCESS read-only
1174: STATUS mandatory
1175: DESCRIPTION
1176: "Count of valid frames received which were
1177: discarded (i.e., filtered) by the Forwarding
1178: Process."
1179: REFERENCE
1180: "P802.1d/D9, July 14, 1989: Section 6.6.1.1.3"
1181: ::= { dot1dTpPortEntry 5 }
1182:
1183: -- The Static (Destination-Address Filtering) Database
1184:
1185: -- Implementation of this group is optional.
1186:
1187:
1188: dot1dStaticTable OBJECT-TYPE
1189: SYNTAX SEQUENCE OF Dot1dStaticEntry
1190: ACCESS not-accessible
1191: STATUS mandatory
1192: DESCRIPTION
1193: "A table containing filtering information
1194: configured into the bridge by (local or network)
1195: management specifying the set of ports to which
1196: frames received from specific ports and containing
1197: specific destination addresses are allowed to be
1198: forwarded. The value of zero in this table as the
1199: port number from which frames with a specific
1200: destination address are received, is used to
1201: specify all ports for which there is no specific
1202: entry in this table for that particular
1203: destination address. Entries are valid for
1204: unicast and for group/broadcast addresses."
1205: REFERENCE
1206: "P802.1d/D9, July 14, 1989: Section 6.7.2"
1207: ::= { dot1dStatic 1 }
1208:
1209: dot1dStaticEntry OBJECT-TYPE
1210: SYNTAX Dot1dStaticEntry
1211: ACCESS not-accessible
1212: STATUS mandatory
1213: DESCRIPTION
1214: "Filtering information configured into the bridge
1215: by (local or network) management specifying the
1216: set of ports to which frames received from a
1217: specific port and containing a specific
1218: destination address are allowed to be forwarded."
1219: REFERENCE
1220: "P802.1d/D9, July 14,1989: Section 6.7.2"
1221: INDEX { dot1dStaticAddress, dot1dStaticReceivePort }
1222: ::= { dot1dStaticTable 1 }
1223:
1224: Dot1dStaticEntry ::=
1225: SEQUENCE {
1226: dot1dStaticAddress
1227: MacAddress,
1228: dot1dStaticReceivePort
1229: INTEGER,
1230: dot1dStaticAllowedToGoTo
1231: OCTET STRING,
1232: dot1dStaticStatus
1233: INTEGER
1234: }
1235:
1236: dot1dStaticAddress OBJECT-TYPE
1237: SYNTAX MacAddress
1238: ACCESS read-write
1239: STATUS mandatory
1240: DESCRIPTION
1241: "The destination MAC address in a frame to which
1242: this entry's filtering information applies. This
1243: object can take the value of a unicast address, a
1244: group address or the broadcast address."
1245: REFERENCE
1246: "P802.1d/D9, July 14, 1989: Section 3.9.1, 3.9.2"
1247: ::= { dot1dStaticEntry 1 }
1248:
1249: dot1dStaticReceivePort OBJECT-TYPE
1249: error -
index element `dot1dStaticReceivePort' of row `dot1dStaticEntry' must have a range restriction
1250: SYNTAX INTEGER
1251: ACCESS read-write
1252: STATUS mandatory
1253: DESCRIPTION
1254: "Either the value '0', or the port number of the
1255: port from which a frame must be received in order
1256: for this entry's filtering information to apply.
1257: A value of zero indicates that this entry applies
1258: on all ports of the bridge for which there is no
1259: other applicable entry."
1260: ::= { dot1dStaticEntry 2 }
1261:
1262: dot1dStaticAllowedToGoTo OBJECT-TYPE
1263: SYNTAX OCTET STRING
1264: ACCESS read-write
1265: STATUS mandatory
1266: DESCRIPTION
1267: "The set of ports to which frames received from a
1268: specific port and destined for a specific MAC
1269: address, are allowed to be forwarded. Each octet
1270: within the value of this object specifies a set of
1271: eight ports, with the first octet specifying ports
1272: 1 through 8, the second octet specifying ports 9
1273: through 16, etc. Within each octet, the most
1274: significant bit represents the lowest numbered
1275: port, and the least significant bit represents the
1276: highest numbered port. Thus, each port of the
1277: bridge is represented by a single bit within the
1278: value of this object. If that bit has a value of
1279: '1' then that port is included in the set of
1280: ports; the port is not included if its bit has a
1281: value of '0'. (Note that the setting of the bit
1282: corresponding to the port from which a frame is
1283: received is irrelevant.)"
1284: ::= { dot1dStaticEntry 3 }
1285:
1286: dot1dStaticStatus OBJECT-TYPE
1287: SYNTAX INTEGER {
1288: other(1),
1289: invalid(2),
1290: permanent(3),
1291: deleteOnReset(4),
1292: deleteOnTimeout(5)
1293: }
1294: ACCESS read-write
1295: STATUS mandatory
1296: DESCRIPTION
1297: "This object indicates the status of this entry.
1298: other(1) - this entry is currently in use but
1299: the conditions under which it will
1300: remain so are different from each of the
1301: following values.
1302: invalid(2) - writing this value to the object
1303: removes the corresponding entry.
1304: permanent(3) - this entry is currently in use
1305: and will remain so after the next reset
1306: of the bridge.
1307: deleteOnReset(4) - this entry is currently in
1308: use and will remain so until the next
1309: reset of the bridge.
1310: deleteOnTimeout(5) - this entry is currently
1311: in use and will remain so until it is
1312: aged out."
1313: ::= { dot1dStaticEntry 4 }
1314:
1315: -- Traps for use by Bridges
1316:
1317: -- Traps for the Spanning Tree Protocol
1318:
1319: newRoot TRAP-TYPE
1320: ENTERPRISE dot1dBridge
1321: DESCRIPTION
1322: "The newRoot trap indicates that the sending agent
1323: has become the new root of the Spanning Tree; the
1324: trap is sent by a bridge soon after its election
1325: as the new root, e.g., upon expiration of the
1326: Topology Change Timer immediately subsequent to
1327: its election."
1328: ::= 1
1328: warning -
warning: implicit node definition
1329:
1330: topologyChange TRAP-TYPE
1331: ENTERPRISE dot1dBridge
1332: DESCRIPTION
1333: "A topologyChange trap is sent by a bridge when
1334: any of its configured ports transitions from the
1335: Learning state to the Forwarding state, or from
1336: the Forwarding state to the Blocking state. The
1337: trap is not sent if a newRoot trap is sent for the
1338: same transition."
1339: ::= 2
1340:
1341: END