1-- *****************************************************************
2-- CISCO-RESILIENT-ETHERNET-PROTOCOL-MIB.my
3--
4-- MIB support for the Resilient Ethernet Protocol Feature
5--
6-- Oct 2006, Nagaraj Hegde
7-- Copyright (c) 2006-2007-2011 by cisco Systems Inc.
8--
9-- All rights reserved.
10--
11-- ****************************************************************
12
13CISCO-RESILIENT-ETHERNET-PROTOCOL-MIB DEFINITIONS ::= BEGIN
14
15IMPORTS
16    MODULE-IDENTITY,
17    OBJECT-TYPE,
18    NOTIFICATION-TYPE,
19    Unsigned32,
20    Integer32,
21    Counter32
22        FROM SNMPv2-SMI
23    MODULE-COMPLIANCE,
24    NOTIFICATION-GROUP,
25    OBJECT-GROUP
26        FROM SNMPv2-CONF
27    TruthValue,
28    RowStatus,
29    TimeStamp,
30    TEXTUAL-CONVENTION
31        FROM SNMPv2-TC
32    InterfaceIndex,
33    InterfaceIndexOrZero
34        FROM IF-MIB
35    VlanId
36        FROM Q-BRIDGE-MIB
37    CiscoVlanList
38        FROM CISCO-TC
39    ciscoMgmt
40        FROM CISCO-SMI;
41
42
43ciscoResilientEthernetProtocolMIB MODULE-IDENTITY
44    LAST-UPDATED    "201101110000Z"
45    ORGANIZATION    "Cisco Systems, Inc."
46    CONTACT-INFO
47            "Cisco Systems
48            Customer Service
49
50
51            Postal: 170 W Tasman Drive
52
53            San Jose, CA  95134
54
55            USA
56
57
58            Tel: +1 800 553-NETS
59
60
61            E-mail: cs-lan-switch-snmp@cisco.com"
62    DESCRIPTION
63        "This MIB module defines objects required for managing
64        Resilient Ethernet Protocol (REP).
65
66        Resilient Ethernet Protocol (REP) is a Cisco proprietary
67        protocol that provides an alternative to Spanning Tree
68        Protocol (STP) to control network loops, handle link
69        failures and improve convergence time.
70
71        REP controls a group of ports connected in a segment;
72        ensures that the segment does not create any bridging loops,
73        and responds to link failures within the segment.
74
75        The following diagram depicts a REP segment:
76
77        [Sw E1]E---NE[Sw 1]NE---NE[Sw 2]NE.........
78                                                  .
79                                                  .
80        [Sw E2]E---NE[Sw N]NE---NE[Sw N-1]NE.......
81
82        Sw : Switch.
83        E  : Edge port.
84        NE : Non-Edge port.
85        E1/E2: Edge switches.  E1 and E2 can either be same or
86        different switches.
87
88        A REP segment is a chain of ports connected to each other
89        and configured with a segment identifier.  Each segment
90        consists of standard (non-edge) segment ports and up to
91        two edge ports.  A device can have only two ports that
92        belong to the same segment, and each segment port can have
93        only one external neighbor.
94
95        One edge port in a REP segment acts as the primary edge
96        port; the other as the secondary edge port.  It is the primary
97        edge port that always participates in VLAN load balancing in
98        a REP segment.  REP VLAN load balancing is achieved by blocking
99        some VLANs at a configured alternate port and all other VLANs at
100        an edge port.  The execution (preemption) of VLAN load balancing
101        is triggered by manually enforcing it or after a pre-defined
102        delay, after the REP segment is complete.
103
104        When segment is completed, all ports will be in open state
105        except one port that can be in alternate state that is used for
106        VLAN load balancing as explained above."
107    REVISION        "201101110000Z"
108    DESCRIPTION
109        "Modified crepIfPortRole object to include failedPortNoNeighbor
110        and failedPortLogicalOpen states."
111    REVISION        "201010270000Z"
112    DESCRIPTION
113        "Extended 'RepPortType' to allow 'edgeNoNeighbor' and
114        'edgeNoNeighborPrimary'. This was done to support REP Edge No
115        Neighbor feature."
116    REVISION        "200705220000Z"
117    DESCRIPTION
118        "Modified 'crepSegmentPreemptStatus' and 'crepIfOperStatus'
119        objects."
120    REVISION        "200702190000Z"
121    DESCRIPTION
122        "Initial Version of the MIB."
123    ::= { ciscoMgmt 601 }
124
125
126
127-- Textual Conventions
128
129RepPortType ::= TEXTUAL-CONVENTION
130    STATUS          current
131    DESCRIPTION
132        "This TC describes the port type of the REP port.
133
134        'notEdge'     - non-edge Port.
135
136        'edge'        - edge port for the segment.
137
138        'edgePrimary' - primary edge port for the segment.
139
140        'edgeNoNeighbor'        - no neighbor edge port for the
141        segment.
142
143        'edgeNoNeighborPrimary' - primary no neighbor edge port for the
144        segment."
145    SYNTAX          INTEGER  {
146                        notEdge(1),
147                        edge(2),
148                        edgePrimary(3),
149                        edgeNoNeighbor(4),
150                        edgeNoNeighborPrimary(5)
151                    }
152
153RepSegmentId ::= TEXTUAL-CONVENTION
154    STATUS          current
155    DESCRIPTION
156        "This TC describes an object to provide the unique
157        identifier for the REP segment."
158    SYNTAX          Unsigned32
159
160RepSegmentList ::= TEXTUAL-CONVENTION
161    STATUS          current
162    DESCRIPTION
163        "This TC describes an object that indicates the list
164        of REP segments.  Each octet within this value specifies
165        a set of eight segments.  The first octet represents the
166        first 8 segments of the range of segments specified by
167        the object, the second octet represents the next 8 segments
168        etc.
169
170        Within each octet, the most significant bit represents
171        the lowest numbered segment, and the least significant bit
172        represents the highest numbered segment.  If that bit has
173        a value of '1' then that segment is included in the set of
174        segments; the segment is not included if its bit has a value
175        of '0'.
176
177        NMS may omit any zero-valued octets from the end of this string
178        in order to reduce SetPDU size, and the agent may also omit
179        zero-valued trailing octets, to reduce the size of GetResponse
180        PDUs.
181
182        The maximum length of the object that uses this TC is calculated
183        to be the ceiling whole number of
184        ((crepMaxSegmentId - crepMinSegmentId + 1) / 8).
185        Any octets beyond this length in the SetPDU should be ignored."
186    SYNTAX          OCTET STRING
187ciscoRepMIBNotifs  OBJECT IDENTIFIER
188    ::= { ciscoResilientEthernetProtocolMIB 0 }
189
190ciscoRepMIBObjects  OBJECT IDENTIFIER
191    ::= { ciscoResilientEthernetProtocolMIB 1 }
192
193ciscoRepMIBConform  OBJECT IDENTIFIER
194    ::= { ciscoResilientEthernetProtocolMIB 2 }
195
196crepGlobalInfo  OBJECT IDENTIFIER
197    ::= { ciscoRepMIBObjects 1 }
198
199crepInterfaceConfig  OBJECT IDENTIFIER
200    ::= { ciscoRepMIBObjects 2 }
201
202crepSegmentConfig  OBJECT IDENTIFIER
203    ::= { ciscoRepMIBObjects 3 }
204
205
206crepSegmentTable OBJECT-TYPE
207    SYNTAX          SEQUENCE OF CrepSegmentEntry
208    MAX-ACCESS      not-accessible
209    STATUS          current
210    DESCRIPTION
211        "This table specifies REP segments configured on the
212        device."
213    ::= { crepSegmentConfig 1 }
214
215crepSegmentEntry OBJECT-TYPE
216    SYNTAX          CrepSegmentEntry
217    MAX-ACCESS      not-accessible
218    STATUS          current
219    DESCRIPTION
220        "A list of REP segment entries.
221
222        The number of segments configured on the device determines
223        the number of entries.  An entry is created when a segment
224        identifier value is configured on an interface and no
225        matching entry exists already.
226
227        The entry is deleted once the segment ceases to exist
228        on the device."
229    INDEX           { crepSegmentId }
230    ::= { crepSegmentTable 1 }
231
232CrepSegmentEntry ::= SEQUENCE {
233        crepSegmentId            RepSegmentId,
234        crepSegmentInterface1    InterfaceIndex,
235        crepSegmentInterface2    InterfaceIndexOrZero,
236        crepSegmentComplete      TruthValue,
237        crepSegmentPreempt       TruthValue,
238        crepSegmentPreemptStatus INTEGER
239}
240
241crepSegmentId OBJECT-TYPE
242    SYNTAX          RepSegmentId
243    MAX-ACCESS      not-accessible
244    STATUS          current
245    DESCRIPTION
246        "This object identifies the segment identifier."
247    ::= { crepSegmentEntry 1 }
248
249crepSegmentInterface1 OBJECT-TYPE
250    SYNTAX          InterfaceIndex
251    MAX-ACCESS      read-only
252    STATUS          current
253    DESCRIPTION
254        "This object indicates the ifIndex-value assigned to
255        the first interface that is part of the segment."
256    REFERENCE
257        "K. McCloghrie and F. Kastenholz,
258        'The Interfaces Group MIB', RFC-2863, June 2000."
259    ::= { crepSegmentEntry 2 }
260
261crepSegmentInterface2 OBJECT-TYPE
262    SYNTAX          InterfaceIndexOrZero
263    MAX-ACCESS      read-only
264    STATUS          current
265    DESCRIPTION
266        "This object indicates the ifIndex-value assigned to
267        the second interface that is part of the segment.
268
269        The value of zero means that the InterfaceIndex is not
270        known.  The reasons for value being zero might include
271        the second interface might not yet been configured for
272        this segment and the device may be the edge of the
273        segment."
274    REFERENCE
275        "K. McCloghrie and F. Kastenholz,
276        'The Interfaces Group MIB', RFC-2863, June 2000."
277    ::= { crepSegmentEntry 3 }
278
279crepSegmentComplete OBJECT-TYPE
280    SYNTAX          TruthValue
281    MAX-ACCESS      read-only
282    STATUS          current
283    DESCRIPTION
284        "This object indicates if the segment is complete
285        such that no port in the segment is in failed state."
286    ::= { crepSegmentEntry 4 }
287
288crepSegmentPreempt OBJECT-TYPE
289    SYNTAX          TruthValue
290    MAX-ACCESS      read-write
291    STATUS          current
292    DESCRIPTION
293        "This object should be set to true by NMS for
294        triggering manual preemption.  This may cause a
295        momentary traffic disruption.
296
297        Though this can be done for any node in the segment,
298        it is only effective on the device acting as the REP
299        primary edge.
300
301        Setting this object false has no effect.  This object
302        always returns false when read."
303    ::= { crepSegmentEntry 5 }
304
305crepSegmentPreemptStatus OBJECT-TYPE
306    SYNTAX          INTEGER  {
307                        none(1),
308                        preemptSuccessful(2),
309                        preemptFailure(3),
310                        preemptTrigger(4),
311                        preemptTriggerFailure(5)
312                    }
313    MAX-ACCESS      read-only
314    STATUS          current
315    DESCRIPTION
316        "This object indicates the status of the last preemption
317        trigger.
318
319        'none'                 - preemption trigger is not executed.
320
321        'preemptSuccessful'    - preemption action for the previous
322                                 trigger is successful.
323
324        'preemptFailure'       - preemption trigger was successful.
325                                 However, preemption failed due to some
326                                 problem on the segment.
327
328        'preemptTrigger'       - preemption is triggered successfully
329                                 and the result is awaited.
330
331        'preemptTriggerFailure'- preemption on the segment is not
332                                 performed as the preemption trigger
333                                 failed.  The failure could be due to
334                                 invalid port ID or neighbor number
335                                 specified in 'crepBlockPortNumInfo'
336                                 or 'crepBlockPortIdInfo' respectively,
337                                 when the value of
338                                 'crepLoadBalanceBlockPortType' is
339                                 'offset' or 'portId' respectively.
340                                 In addition, reason for failure can be
341                                 that crepLoadBalanceBlockPortType =
342                                 'prefFlag' and there is no REP port
343                                 in the segment configured as preferred
344                                 port.
345
346        The value should be 'none' on all agents other than the one
347        serving as the primary edge for the segment.  The value will be
348        'none' on the agent serving as the primary edge for the segment
349        if preemption trigger is not executed yet.
350
351        If the device is not capable of assessing the final outcome of
352        preemption trigger, then the state should remain in
353        'preemptTrigger' state."
354    ::= { crepSegmentEntry 6 }
355
356
357
358crepInterfaceConfigTable OBJECT-TYPE
359    SYNTAX          SEQUENCE OF CrepInterfaceConfigEntry
360    MAX-ACCESS      not-accessible
361    STATUS          current
362    DESCRIPTION
363        "This table provides REP configuration for interfaces in the
364        device.  This table contains one entry for each interface
365        running REP."
366    ::= { crepInterfaceConfig 1 }
367
368crepInterfaceConfigEntry OBJECT-TYPE
369    SYNTAX          CrepInterfaceConfigEntry
370    MAX-ACCESS      not-accessible
371    STATUS          current
372    DESCRIPTION
373        "An entry exists for each interface, if REP is configured on it.
374        On a system that supports REP, all ports with ifType =
375        'ethernetCsmacd' and those ethernet based virtual ports with
376        ifType = 'propVirtual' also support REP.
377
378        REP can be configured or unconfigured or modified directly on
379        the agent as well.
380
381        Dynamically created rows are expected to be non-volatile
382        such that they persist after an agent restarts."
383    INDEX           { crepIfIndex }
384    ::= { crepInterfaceConfigTable 1 }
385
386CrepInterfaceConfigEntry ::= SEQUENCE {
387        crepIfIndex                    InterfaceIndex,
388        crepIfSegmentId                RepSegmentId,
389        crepIfOperStatus               INTEGER,
390        crepIfPortRole                 INTEGER,
391        crepIfPortID                   OCTET STRING,
392        crepIfAdminEdgePortType        RepPortType,
393        crepIfOperEdgePortType         RepPortType,
394        crepIfPreferredConfig          TruthValue,
395        crepifBlockedVlans1k           CiscoVlanList,
396        crepifBlockedVlans2k           CiscoVlanList,
397        crepifBlockedVlans3k           CiscoVlanList,
398        crepifBlockedVlans4k           CiscoVlanList,
399        crepLoadBalanceBlockPortType   INTEGER,
400        crepBlockPortNumInfo           Integer32,
401        crepBlockPortIdInfo            OCTET STRING,
402        crepIfPreemptDelayTimer        Integer32,
403        crepIfStcnPropagateToSTP       TruthValue,
404        crepIfStcnPropagateToOtherSegs RepSegmentList,
405        crepIfStcnPropagateToIf        InterfaceIndexOrZero,
406        crepIfConfigRowStatus          RowStatus
407}
408
409crepIfIndex OBJECT-TYPE
410    SYNTAX          InterfaceIndex
411    MAX-ACCESS      not-accessible
412    STATUS          current
413    DESCRIPTION
414        "This object identifies the ifIndex-value assigned to the
415        interface."
416    REFERENCE
417        "K. McCloghrie and F. Kastenholz,
418        'The Interfaces Group MIB', RFC-2863, June 2000."
419    ::= { crepInterfaceConfigEntry 1 }
420
421crepIfSegmentId OBJECT-TYPE
422    SYNTAX          RepSegmentId
423    MAX-ACCESS      read-create
424    STATUS          current
425    DESCRIPTION
426        "This object specifies the segment that the interface is part.
427        This object can be modified when crepIfConfigRowStatus is 'active'.
428
429        The valid range is from crepMinSegmentId to crepMaxSegmentId."
430    ::= { crepInterfaceConfigEntry 2 }
431
432crepIfOperStatus OBJECT-TYPE
433    SYNTAX          INTEGER  {
434                        none(1),
435                        initDown(2),
436                        noNeighbour(3),
437                        oneWay(4),
438                        twoWay(5),
439                        flapping(6),
440                        wait(7),
441                        unknown(8)
442                    }
443    MAX-ACCESS      read-only
444    STATUS          current
445    DESCRIPTION
446        "This object indicates the current operational link state
447        of the REP port.  If a REP configured interface is down,
448        it will be in 'initDown' state.
449
450        'none'        - REP is not operational on the interface.  This
451                        value is used when sending the crepLinkStatus
452                        notification when REP configuration is removed
453                        from the interface.
454
455        'initDown'    - initial REP link state.
456
457        'noNeighbor'  - state in which REP is yet to discover its
458                        neighbor.
459
460        'oneWay'      - the state in which messages have been received
461                        from the neighbor but the link has not been
462                        declared to be twoWay yet.
463
464        'twoWay'      - the fully operational state for REP.
465
466        'flapping'    - the state in which there is a mismatch in the
467                        received port information (either local or
468                        remote) for the neighbor.
469
470        'wait'        - the forced transient state before REP starts
471                        discovering its neighbor.
472
473        'unknown'     - the link state cannot be determined."
474    ::= { crepInterfaceConfigEntry 3 }
475
476crepIfPortRole OBJECT-TYPE
477    SYNTAX          INTEGER  {
478                        failedPort(1),
479                        alternatePort(2),
480                        openPort(3),
481                        failedPortNoNeighbor(4),
482                        failedPortLogicalOpen(5)
483                    }
484    MAX-ACCESS      read-only
485    STATUS          current
486    DESCRIPTION
487        "This object indicates the role or state of a REP port depending
488        on its link status and whether it is forwarding or blocking
489        traffic.
490
491        'failedPort'    - a port with a non-operational link status,
492                         such that no traffic is forwarded on it.
493
494        'alternatePort' - a port forwarding traffic only for a subset of
495                         VLANs, for the purpose of VLAN load balancing.
496
497        'openPort'      - a port forwarding traffic for all VLANs.
498
499        'failedPortNoNeighbor'  - a port with a non-operational link
500                                  status and does not have a external
501                                  neighbor.
502
503        'failedPortLogicalOpen' - a port with a non-operational link
504                                  status and does not have a external
505                                  neighbor but is in forwarding state
506                                  for traffic."
507    ::= { crepInterfaceConfigEntry 4 }
508
509crepIfPortID OBJECT-TYPE
510    SYNTAX          OCTET STRING (SIZE  (8))
511    MAX-ACCESS      read-only
512    STATUS          current
513    DESCRIPTION
514        "This object indicates the REP port identifier automatically
515        assigned by REP when enabled."
516    ::= { crepInterfaceConfigEntry 5 }
517
518crepIfAdminEdgePortType OBJECT-TYPE
519    SYNTAX          RepPortType
520    MAX-ACCESS      read-create
521    STATUS          current
522    DESCRIPTION
523        "This object specifies the configured edge port type for the
524        interface."
525    DEFVAL          { notEdge }
526    ::= { crepInterfaceConfigEntry 6 }
527
528crepIfOperEdgePortType OBJECT-TYPE
529    SYNTAX          RepPortType
530    MAX-ACCESS      read-only
531    STATUS          current
532    DESCRIPTION
533        "This object indicates the actual edge port type for the
534        interface.  Value 'edge' indicates that the port is secondary
535        edge port."
536    ::= { crepInterfaceConfigEntry 7 }
537
538crepIfPreferredConfig OBJECT-TYPE
539    SYNTAX          TruthValue
540    MAX-ACCESS      read-create
541    STATUS          current
542    DESCRIPTION
543        "This object specifies if port should get preference to become
544        the alternate port among other equal ports in the segment.
545
546        Setting this value to true does not guaranty that the port
547        will become the alternate port.  'crepIfPortRole' should be
548        checked for the actual status."
549    DEFVAL          { false }
550    ::= { crepInterfaceConfigEntry 8 }
551
552crepifBlockedVlans1k OBJECT-TYPE
553    SYNTAX          CiscoVlanList
554    MAX-ACCESS      read-create
555    STATUS          current
556    DESCRIPTION
557        "This object specifies the list of VLANs configured to be
558        blocked at the alternate port for VLANs with values of 0 through
559        1023.  If the bit is set to '1', then the VLAN is marked for
560        blocking.
561
562        This value is only effective on the device acting as the REP
563        primary edge.  In addition, this value is effective only if
564        'crepLoadBalanceBlockPortType' is not 'none'."
565    ::= { crepInterfaceConfigEntry 9 }
566
567crepifBlockedVlans2k OBJECT-TYPE
568    SYNTAX          CiscoVlanList
569    MAX-ACCESS      read-create
570    STATUS          current
571    DESCRIPTION
572        "This object specifies the list of VLANs configured to be
573        blocked at the alternate port for VLANs with values of 1024
574        through 2047.  If the bit is set to '1', then the VLAN is marked
575        for blocking.
576
577        This value is only effective on the device acting as the REP
578        primary edge.  In addition, this value is effective only if
579        'crepLoadBalanceBlockPortType' is not 'none'.  This object is
580        only instantiated on devices that support the extended VLANs."
581    ::= { crepInterfaceConfigEntry 10 }
582
583crepifBlockedVlans3k OBJECT-TYPE
584    SYNTAX          CiscoVlanList
585    MAX-ACCESS      read-create
586    STATUS          current
587    DESCRIPTION
588        "This object specifies the list of VLANs configured to be
589        blocked at the alternate port for VLANs with values of 2048
590        through 3071.  If the bit is set to '1', then the VLAN is marked
591        for blocking.
592
593        This value is only effective on the device acting as the REP
594        primary edge.  In addition, this value is effective only if
595        'crepLoadBalanceBlockPortType' is not 'none'.  This object is
596        only instantiated on devices that support the extended VLANs."
597    ::= { crepInterfaceConfigEntry 11 }
598
599crepifBlockedVlans4k OBJECT-TYPE
600    SYNTAX          CiscoVlanList
601    MAX-ACCESS      read-create
602    STATUS          current
603    DESCRIPTION
604        "This object specifies the list of VLANs configured to be
605        blocked at the alternate port for VLANs with values of 3072
606        through 4095.  If the bit is set to '1', then the VLAN is marked
607        for blocking.
608
609        This value is only effective on the device acting as the REP
610        primary edge.  In addition, this value is effective only if
611        'crepLoadBalanceBlockPortType' is not 'none'.  This object is
612        only instantiated on devices that support the extended VLANs."
613    ::= { crepInterfaceConfigEntry 12 }
614
615crepLoadBalanceBlockPortType OBJECT-TYPE
616    SYNTAX          INTEGER  {
617                        none(1),
618                        offset(2),
619                        portId(3),
620                        prefFlag(4)
621                    }
622    MAX-ACCESS      read-create
623    STATUS          current
624    DESCRIPTION
625        "This object specifies the method defined to identify the
626        alternate port in the segment that takes part in VLAN load
627        balancing by blocking a subset of VLANs after preemption.
628
629        'none'     - no method is specified to identify the alternate
630        port.  In this case, the primary edge blocks all VLANs after
631        preemption.
632
633        'offset'   - identification is done by a number which indicates
634        the offset of the port from an edge port.
635        'crepBlockPortNumInfo' defines the value.
636
637        'portId'   - identification is done by the port identifier of
638        the port.  'crepBlockPortIdInfo' defines the value.
639
640        'prefFlag' - to select the port in the segment that is
641        configured as the preferred alternate port for VLAN load balancing.
642
643        While setting the value to 'offset' or 'portId', corresponding
644        values for the value defining objects (mentioned along with the
645        corresponding descriptions above) should also be provided, along with.
646        Additionally, at least one of objects that define the VLANs to
647        be blocked (crepifBlockedVlans1k, crepifBlockedVlans2k,
648        crepifBlockedVlans3k, crepifBlockedVlans4k) should be provided with
649        a non-empty value, when setting the value to anything other than 'none'.
650
651        This value is only effective on the device acting as the REP
652        primary edge."
653    DEFVAL          { none }
654    ::= { crepInterfaceConfigEntry 13 }
655
656crepBlockPortNumInfo OBJECT-TYPE
657    SYNTAX          Integer32 (-256..256)
658    MAX-ACCESS      read-create
659    STATUS          current
660    DESCRIPTION
661        "This object specifies the offset of the port in the segment
662        to be blocked for VLAN load balancing.  Positive numbers
663        indicate the offset from the primary edge port and negative
664        numbers indicates the downstream neighbor from the secondary
665        edge port.
666
667        [Sw E1]E1---NE1[Sw 1]NE2---NE1[Sw 2]NE2.........
668                                                       .
669                                                       .
670        [Sw E2]E2---NE2[Sw N]NE1---NE2[Sw N-1]NE1.......
671
672         Sw : Switch.
673         E  : Edge port.
674         NE : Non-Edge port.
675         E1/E2: Edge switches.  E1 and E2 can either be same or
676         different switches.
677
678        In the segment depicted above, consider port E1 on 'Sw E1' is
679        the primary edge and E2 on 'Sw E2' is the secondary edge.
680        Value 1 for this object indicates primary edge port, 2 indicates
681        NE1 on 'Sw 1', 3 indicates NE2 on 'Sw 1' and so on.  Value -1
682        indicates secondary edge port, -2 indicates NE2 on 'Sw N', -3
683        indicates NE1 on 'Sw N' and so on.  Usage of value 0 is invalid.
684
685        This value is only effective on the device acting as the REP
686        primary edge and has relevance only if
687        crepLoadBalanceBlockPortType = 'offset'."
688    ::= { crepInterfaceConfigEntry 14 }
689
690crepBlockPortIdInfo OBJECT-TYPE
691    SYNTAX          OCTET STRING (SIZE  (8))
692    MAX-ACCESS      read-create
693    STATUS          current
694    DESCRIPTION
695        "This object specifies the port identifier of the port in the
696        segment to be blocked for VLAN load balancing.  'crepIfPortID'
697        object of the corresponding port provides the port identifier.
698
699        This value is only effective on the device acting as the REP
700        primary edge and has relevance only if
701        crepLoadBalanceBlockPortType = 'portId'."
702    ::= { crepInterfaceConfigEntry 15 }
703
704crepIfPreemptDelayTimer OBJECT-TYPE
705    SYNTAX          Integer32 (-1..300)
706    UNITS           "delay in seconds"
707    MAX-ACCESS      read-create
708    STATUS          current
709    DESCRIPTION
710        "This object specifies the interval of time that REP waits
711        before triggering preemption after the segment is complete.
712
713        The value -1 is used to indicate that no time delay is
714        configured and the preemption will happen manually.
715
716        This value is only effective on the device acting as the
717        REP primary edge."
718    DEFVAL          { -1 }
719    ::= { crepInterfaceConfigEntry 16 }
720
721crepIfStcnPropagateToSTP OBJECT-TYPE
722    SYNTAX          TruthValue
723    MAX-ACCESS      read-create
724    STATUS          current
725    DESCRIPTION
726        "This object specifies if the REP edge propagates the
727        segment topology change notifications to the spanning
728        tree network.
729
730        This value is only effective on the device acting as the
731        REP primary edge."
732    DEFVAL          { false }
733    ::= { crepInterfaceConfigEntry 17 }
734
735crepIfStcnPropagateToOtherSegs OBJECT-TYPE
736    SYNTAX          RepSegmentList
737    MAX-ACCESS      read-create
738    STATUS          current
739    DESCRIPTION
740        "This object specifies the list of segments to which the
741        REP edge propagates the segment topology change notifications.
742
743        This value is only effective on the device acting as the
744        REP primary edge."
745    DEFVAL          { "" }
746    ::= { crepInterfaceConfigEntry 18 }
747
748crepIfStcnPropagateToIf OBJECT-TYPE
749    SYNTAX          InterfaceIndexOrZero
750    MAX-ACCESS      read-create
751    STATUS          current
752    DESCRIPTION
753        "This object specifies the interface to which the REP edge
754        should propagate the segment topology change notifications.
755        The interface should be of type ifType = 'ethernetCsmacd'
756        or an ethernet based virtual port with ifType = 'propVirtual'.
757        '0' specifies that the device should not propagate STCNs to
758        any interface.
759
760        This value is only effective on the device acting as the REP
761        primary edge."
762    DEFVAL          { 0 }
763    ::= { crepInterfaceConfigEntry 19 }
764
765crepIfConfigRowStatus OBJECT-TYPE
766    SYNTAX          RowStatus
767    MAX-ACCESS      read-create
768    STATUS          current
769    DESCRIPTION
770        "This object is used to manage the creation, deletion, and
771        modification of rows in this table.
772
773        A row may be created using the 'CreateAndGo' option.  When the
774        row is successfully created, the agent would set the RowStatus
775        to 'active'.  'crepIfSegmentId' should be specified for the
776        successful creation of the row.
777
778        A row may be deleted by setting this object to 'destroy'.
779
780        All writeable columns in this row can be modified when the
781        value of this object is 'active'."
782    ::= { crepInterfaceConfigEntry 20 }
783
784
785
786crepInterfaceStatsTable OBJECT-TYPE
787    SYNTAX          SEQUENCE OF CrepInterfaceStatsEntry
788    MAX-ACCESS      not-accessible
789    STATUS          current
790    DESCRIPTION
791        "A table for REP interfaces statistics.
792        This table augments the crepInterfaceConfigTable."
793    ::= { crepInterfaceConfig 2 }
794
795crepInterfaceStatsEntry OBJECT-TYPE
796    SYNTAX          CrepInterfaceStatsEntry
797    MAX-ACCESS      not-accessible
798    STATUS          current
799    DESCRIPTION
800        "The counter entries are not persistent.  This is because
801        once REP is un-configured on the interface the row would be
802        deleted and hence they will restart if REP is configured
803        once again on the interface.  NMS need to check for
804        'crepCounterDiscontinuityTime' to see if the counters have
805        restarted."
806    AUGMENTS           { crepInterfaceConfigEntry  }
807    ::= { crepInterfaceStatsTable 1 }
808
809CrepInterfaceStatsEntry ::= SEQUENCE {
810        crepCounterDiscontinuityTime TimeStamp,
811        crepLslRxPdus                Counter32,
812        crepLslTxPdus                Counter32,
813        crepHflRxPdus                Counter32,
814        crepHflTxPdus                Counter32,
815        crepBpaTlvRxPackets          Counter32,
816        crepBpaTlvTxPackets          Counter32,
817        crepBpaStcnLslRxPackets      Counter32,
818        crepBpaStcnLslTxPackets      Counter32,
819        crepBpaStcnHflRxPackets      Counter32,
820        crepBpaStcnHflTxPackets      Counter32,
821        crepEpaElectionTlvRxPackets  Counter32,
822        crepEpaElectionTlvTxPackets  Counter32,
823        crepEpaCommandTlvRxPackets   Counter32,
824        crepEpaCommandTlvTxPackets   Counter32,
825        crepEpaInfoTlvRxPackets      Counter32,
826        crepEpaInfoTlvTxPackets      Counter32
827}
828
829crepCounterDiscontinuityTime OBJECT-TYPE
830    SYNTAX          TimeStamp
831    MAX-ACCESS      read-only
832    STATUS          current
833    DESCRIPTION
834        "The value of sysUpTime on the most recent occasion at which
835        REP counters suffered a discontinuity on this interface.
836        If no such discontinuities have occurred since the first
837        initialization of REP, then this object contains the sysUpTime
838        value of first initialization."
839    ::= { crepInterfaceStatsEntry 1 }
840
841crepLslRxPdus OBJECT-TYPE
842    SYNTAX          Counter32
843    MAX-ACCESS      read-only
844    STATUS          current
845    DESCRIPTION
846        "This object indicates the number of link status layer PDUs
847        received on the port."
848    ::= { crepInterfaceStatsEntry 2 }
849
850crepLslTxPdus OBJECT-TYPE
851    SYNTAX          Counter32
852    MAX-ACCESS      read-only
853    STATUS          current
854    DESCRIPTION
855        "This object indicates the number of link status layer PDUs
856        transmitted on the port."
857    ::= { crepInterfaceStatsEntry 3 }
858
859crepHflRxPdus OBJECT-TYPE
860    SYNTAX          Counter32
861    MAX-ACCESS      read-only
862    STATUS          current
863    DESCRIPTION
864        "This object indicates the number of hardware flood layer PDUs
865        received on the port."
866    ::= { crepInterfaceStatsEntry 4 }
867
868crepHflTxPdus OBJECT-TYPE
869    SYNTAX          Counter32
870    MAX-ACCESS      read-only
871    STATUS          current
872    DESCRIPTION
873        "This object indicates the number of hardware flood layer PDUs
874        transmitted on the port."
875    ::= { crepInterfaceStatsEntry 5 }
876
877crepBpaTlvRxPackets OBJECT-TYPE
878    SYNTAX          Counter32
879    MAX-ACCESS      read-only
880    STATUS          current
881    DESCRIPTION
882        "This object indicates the number of blocked port advertisement
883        TLVs received on the port."
884    ::= { crepInterfaceStatsEntry 6 }
885
886crepBpaTlvTxPackets OBJECT-TYPE
887    SYNTAX          Counter32
888    MAX-ACCESS      read-only
889    STATUS          current
890    DESCRIPTION
891        "This object indicates the number of blocked port advertisement
892        TLVs transmitted on the port."
893    ::= { crepInterfaceStatsEntry 7 }
894
895crepBpaStcnLslRxPackets OBJECT-TYPE
896    SYNTAX          Counter32
897    MAX-ACCESS      read-only
898    STATUS          current
899    DESCRIPTION
900        "This object indicates the number of segment topology change
901        notifications received as blocked port advertisement through
902        link status layer."
903    ::= { crepInterfaceStatsEntry 8 }
904
905crepBpaStcnLslTxPackets OBJECT-TYPE
906    SYNTAX          Counter32
907    MAX-ACCESS      read-only
908    STATUS          current
909    DESCRIPTION
910        "This object indicates the number of segment topology change
911        notifications transmitted as blocked port advertisement through
912        link status layer."
913    ::= { crepInterfaceStatsEntry 9 }
914
915crepBpaStcnHflRxPackets OBJECT-TYPE
916    SYNTAX          Counter32
917    MAX-ACCESS      read-only
918    STATUS          current
919    DESCRIPTION
920        "This object indicates the number of segment topology change
921        notifications received as blocked port advertisement
922        through hardware flood layer."
923    ::= { crepInterfaceStatsEntry 10 }
924
925crepBpaStcnHflTxPackets OBJECT-TYPE
926    SYNTAX          Counter32
927    MAX-ACCESS      read-only
928    STATUS          current
929    DESCRIPTION
930        "This object indicates the number of segment topology change
931        notifications transmitted as blocked port advertisement
932        through hardware flood layer."
933    ::= { crepInterfaceStatsEntry 11 }
934
935crepEpaElectionTlvRxPackets OBJECT-TYPE
936    SYNTAX          Counter32
937    MAX-ACCESS      read-only
938    STATUS          current
939    DESCRIPTION
940        "This object indicates the number of end port advertisement
941        election TLVs received that are used for determining the
942        role, namely primary edge or secondary edge."
943    ::= { crepInterfaceStatsEntry 12 }
944
945crepEpaElectionTlvTxPackets OBJECT-TYPE
946    SYNTAX          Counter32
947    MAX-ACCESS      read-only
948    STATUS          current
949    DESCRIPTION
950        "This object indicates the number of end port advertisement
951        election TLVs transmitted that are used for determining the
952        role, namely primary edge or secondary edge."
953    ::= { crepInterfaceStatsEntry 13 }
954
955crepEpaCommandTlvRxPackets OBJECT-TYPE
956    SYNTAX          Counter32
957    MAX-ACCESS      read-only
958    STATUS          current
959    DESCRIPTION
960        "This object indicates the number of end port advertisement
961        command TLVs received that are used to authorize a port to
962        takeover the segment for the purpose of VLAN load balancing."
963    ::= { crepInterfaceStatsEntry 14 }
964
965crepEpaCommandTlvTxPackets OBJECT-TYPE
966    SYNTAX          Counter32
967    MAX-ACCESS      read-only
968    STATUS          current
969    DESCRIPTION
970        "This object indicates the number of end port advertisement
971        command TLVs transmitted that are used to authorize a port to
972        takeover the segment for the purpose of VLAN load balancing."
973    ::= { crepInterfaceStatsEntry 15 }
974
975crepEpaInfoTlvRxPackets OBJECT-TYPE
976    SYNTAX          Counter32
977    MAX-ACCESS      read-only
978    STATUS          current
979    DESCRIPTION
980        "This object indicates the number of end port advertisement
981        information TLVs received on the port.  These messages are sent
982        by the end ports (configured edge port, or port which is down
983        or port which does not have internal peer) to discover the
984        segment information."
985    ::= { crepInterfaceStatsEntry 16 }
986
987crepEpaInfoTlvTxPackets OBJECT-TYPE
988    SYNTAX          Counter32
989    MAX-ACCESS      read-only
990    STATUS          current
991    DESCRIPTION
992        "This object indicates the number of end port advertisement
993        information TLVs transmitted on the port.  These messages are
994        sent by the end ports (configured edge port, or port which is
995        down or port which does not have internal peer) to discover
996        the segment information."
997    ::= { crepInterfaceStatsEntry 17 }
998
999
1000
1001crepVersion OBJECT-TYPE
1002    SYNTAX          Integer32
1003    MAX-ACCESS      read-only
1004    STATUS          current
1005    DESCRIPTION
1006        "This object indicates the version of REP being used."
1007    ::= { crepGlobalInfo 1 }
1008
1009crepAdminVlan OBJECT-TYPE
1010    SYNTAX          VlanId
1011    MAX-ACCESS      read-write
1012    STATUS          current
1013    DESCRIPTION
1014        "The administrative VLAN used by REP to transmit its
1015        hardware flooding layer messages.
1016
1017        If the VLAN does not already exist, set operation does not
1018        create the VLAN.  The administrative VLAN cannot be the
1019        RSPAN VLAN."
1020    DEFVAL          { 1 }
1021    ::= { crepGlobalInfo 2 }
1022
1023crepNotifsEnable OBJECT-TYPE
1024    SYNTAX          TruthValue
1025    MAX-ACCESS      read-write
1026    STATUS          current
1027    DESCRIPTION
1028        "This object specifies whether the system will generate REP
1029        notifications.  This object affects the generation of all REP
1030        notifications defined in this MIB module."
1031    ::= { crepGlobalInfo 3 }
1032
1033crepGlobalRepNotifsRate OBJECT-TYPE
1034    SYNTAX          Unsigned32 (0..1000)
1035    UNITS           "notifications per second"
1036    MAX-ACCESS      read-write
1037    STATUS          current
1038    DESCRIPTION
1039        "This object specifies the maximum rate at which the system will
1040        generate notifications defined by this MIB module.  If this
1041        object value is 0, then the system will not impose a limit on
1042        the rate at which it will generate notification defined by this
1043        MIB module."
1044    ::= { crepGlobalInfo 4 }
1045
1046crepMinSegmentId OBJECT-TYPE
1047    SYNTAX          RepSegmentId
1048    MAX-ACCESS      read-only
1049    STATUS          current
1050    DESCRIPTION
1051        "This object indicates the minimum segment identifier that can be
1052        configured on the device."
1053    ::= { crepGlobalInfo 5 }
1054
1055crepMaxSegmentId OBJECT-TYPE
1056    SYNTAX          RepSegmentId
1057    MAX-ACCESS      read-only
1058    STATUS          current
1059    DESCRIPTION
1060        "This object indicates the maximum segment identifier that can be
1061        configured on the device."
1062    ::= { crepGlobalInfo 6 }
1063
1064crepLinkStatus NOTIFICATION-TYPE
1065    OBJECTS         {
1066                        crepIfSegmentId,
1067                        crepIfOperStatus
1068                    }
1069    STATUS          current
1070    DESCRIPTION
1071        "This notification is sent when a REP interface has entered or
1072        left REP link operational status.  The link is considered
1073        operational when 'crepIfOperStatus' is 'twoWay'.
1074        'crepIfOperStatus' would be 'none' if the
1075        crepInterfaceConfigEntry entry has been removed."
1076   ::= { ciscoRepMIBNotifs 1 }
1077
1078crepPreemptionStatus NOTIFICATION-TYPE
1079    OBJECTS         { crepSegmentPreemptStatus }
1080    STATUS          current
1081    DESCRIPTION
1082        "This notification indicates the status of the preemption
1083        triggered on REP primary edge."
1084   ::= { ciscoRepMIBNotifs 2 }
1085
1086crepPortRoleChange NOTIFICATION-TYPE
1087    OBJECTS         {
1088                        crepIfSegmentId,
1089                        crepIfPortRole
1090                    }
1091    STATUS          current
1092    DESCRIPTION
1093        "This notification is sent when the role of a Port changes
1094        that are indicated by 'crepIfPortRole'."
1095   ::= { ciscoRepMIBNotifs 3 }
1096-- Conformance
1097
1098ciscoRepMIBCompliances  OBJECT IDENTIFIER
1099    ::= { ciscoRepMIBConform 1 }
1100
1101ciscoRepMIBGroups  OBJECT IDENTIFIER
1102    ::= { ciscoRepMIBConform 2 }
1103
1104
1105ciscoRepMIBCompliance MODULE-COMPLIANCE
1106    STATUS          current
1107    DESCRIPTION
1108        "The compliance statement for
1109        CISCO-RESILIENT-ETHERNET-PROTOCOL-MIB."
1110    MODULE          -- this module
1111    MANDATORY-GROUPS {
1112                        ciscoRepGlobalGroup,
1113                        ciscoRepNotificationGroup,
1114                        ciscoRepInterfaceGroup,
1115                        ciscoRepSegmentGroup
1116                    }
1117
1118    OBJECT          crepIfConfigRowStatus
1119    SYNTAX          INTEGER  {
1120                        active(1),
1121                        createAndGo(4),
1122                        destroy(6)
1123                    }
1124    MIN-ACCESS      read-only
1125    DESCRIPTION
1126        "Support for createAndWait, notReady and notInService values are
1127        not required."
1128
1129    OBJECT          crepNotifsEnable
1130    MIN-ACCESS      read-only
1131    DESCRIPTION
1132        "read-write access is not required."
1133
1134    OBJECT          crepGlobalRepNotifsRate
1135    MIN-ACCESS      read-only
1136    DESCRIPTION
1137        "read-write access is not required."
1138    ::= { ciscoRepMIBCompliances 1 }
1139
1140-- Units of Conformance
1141
1142ciscoRepGlobalGroup OBJECT-GROUP
1143    OBJECTS         {
1144                        crepVersion,
1145                        crepAdminVlan,
1146                        crepNotifsEnable,
1147                        crepGlobalRepNotifsRate,
1148                        crepMinSegmentId,
1149                        crepMaxSegmentId
1150                    }
1151    STATUS          current
1152    DESCRIPTION
1153        "A collection of global objects for use with the REP feature."
1154    ::= { ciscoRepMIBGroups 1 }
1155
1156ciscoRepInterfaceGroup OBJECT-GROUP
1157    OBJECTS         {
1158                        crepIfSegmentId,
1159                        crepIfOperStatus,
1160                        crepIfPortRole,
1161                        crepIfPortID,
1162                        crepIfAdminEdgePortType,
1163                        crepIfOperEdgePortType,
1164                        crepIfPreferredConfig,
1165                        crepifBlockedVlans1k,
1166                        crepifBlockedVlans2k,
1167                        crepifBlockedVlans3k,
1168                        crepifBlockedVlans4k,
1169                        crepLoadBalanceBlockPortType,
1170                        crepBlockPortNumInfo,
1171                        crepBlockPortIdInfo,
1172                        crepIfPreemptDelayTimer,
1173                        crepIfStcnPropagateToSTP,
1174                        crepIfStcnPropagateToOtherSegs,
1175                        crepIfStcnPropagateToIf,
1176                        crepIfConfigRowStatus,
1177                        crepCounterDiscontinuityTime,
1178                        crepLslRxPdus,
1179                        crepLslTxPdus,
1180                        crepHflRxPdus,
1181                        crepHflTxPdus,
1182                        crepBpaTlvRxPackets,
1183                        crepBpaTlvTxPackets,
1184                        crepBpaStcnLslRxPackets,
1185                        crepBpaStcnLslTxPackets,
1186                        crepBpaStcnHflRxPackets,
1187                        crepBpaStcnHflTxPackets,
1188                        crepEpaElectionTlvRxPackets,
1189                        crepEpaElectionTlvTxPackets,
1190                        crepEpaCommandTlvRxPackets,
1191                        crepEpaCommandTlvTxPackets,
1192                        crepEpaInfoTlvRxPackets,
1193                        crepEpaInfoTlvTxPackets
1194                    }
1195    STATUS          current
1196    DESCRIPTION
1197        "A collection of interface specific objects for use with the REP
1198        feature."
1199    ::= { ciscoRepMIBGroups 2 }
1200
1201ciscoRepNotificationGroup NOTIFICATION-GROUP
1202   NOTIFICATIONS    {
1203                        crepLinkStatus,
1204                        crepPreemptionStatus,
1205                        crepPortRoleChange
1206                    }
1207    STATUS          current
1208    DESCRIPTION
1209        "A collection of notifications for use with the REP feature."
1210    ::= { ciscoRepMIBGroups 3 }
1211
1212ciscoRepSegmentGroup OBJECT-GROUP
1213    OBJECTS         {
1214                        crepSegmentInterface1,
1215                        crepSegmentInterface2,
1216                        crepSegmentComplete,
1217                        crepSegmentPreempt,
1218                        crepSegmentPreemptStatus
1219                    }
1220    STATUS          current
1221    DESCRIPTION
1222        "A collection of segment specific objects for use with the REP feature."
1223    ::= { ciscoRepMIBGroups 4 }
1224
1225END
1226
1227
1228
1229