1-- *********************************************************************
2-- CISCO-PORT-CHANNEL-MIB.my: Port Channel mib
3--
4-- September 2002, Srini Kode
5-- February 2004, Vinay Gaonkar
6--
7-- Copyright (c) 2002,2003,2004 by cisco Systems, Inc.
8-- All rights reserved.
9--
10-- *********************************************************************
11CISCO-PORT-CHANNEL-MIB DEFINITIONS ::= BEGIN
12
13IMPORTS
14        MODULE-IDENTITY, OBJECT-TYPE,
15        Unsigned32                             FROM SNMPv2-SMI
16        MODULE-COMPLIANCE, OBJECT-GROUP        FROM SNMPv2-CONF
17        TEXTUAL-CONVENTION, RowStatus,
18        TimeStamp, TruthValue                  FROM SNMPv2-TC
19        SnmpAdminString                        FROM SNMP-FRAMEWORK-MIB
20        InterfaceIndex, ifIndex                FROM IF-MIB
21        ciscoMgmt                              FROM CISCO-SMI
22        PortMemberList                         FROM CISCO-ST-TC;
23
24
25ciscoPortChannelMIB MODULE-IDENTITY
26        LAST-UPDATED "200409130000Z"
27        ORGANIZATION "Cisco Systems Inc."
28        CONTACT-INFO
29                "     Cisco Systems
30                      Customer Service
31                Postal: 170 W Tasman Drive
32                      San Jose, CA  95134
33                      USA
34                Tel: +1 800 553 -NETS
35                E-mail: cs-san@cisco.com"
36        DESCRIPTION
37            "The MIB module for management of Port Channel ports.
38             In addition to this MIB, CISCO-FC-FE-MIB and interface
39             mib (rfc2863) will also contain entries for Port Channel
40             ports."
41        REVISION    "200409130000Z"
42        DESCRIPTION
43            "Added new object portChannelExtOperChannelGrpMode to
44            portChannelExtTable. Changed the SYNTAX of
45            portChannelExtPersistent to INTEGER from TruthValue."
46        REVISION    "200406080000Z"
47        DESCRIPTION
48            "Added new tables portChannelGrpIfExtTable and
49            portChannelExtTable. Also, added new object
50            portChannelProtocolEnable."
51        REVISION    "200403110000Z"
52        DESCRIPTION
53            "Added portChannelMemberOperStatus to portChannelTable. "
54        REVISION    "200305280000Z"
55        DESCRIPTION
56            "Superceeded portChannelMIBCompliances with
57            portChannelMIBCompliances1. Added
58            portChannelAdminChannelMode object to
59            portChannelMIBCompliances1. "
60        REVISION    "200210020000Z"
61        DESCRIPTION
62            "Initial version of this MIB module."
63        ::= { ciscoMgmt 285 }
64
65ciscoPortChannelObjects   OBJECT IDENTIFIER
66                               ::= { ciscoPortChannelMIB 1 }
67portChannelMIBConformance OBJECT IDENTIFIER
68                               ::= { ciscoPortChannelMIB 2 }
69portChannelConfig         OBJECT IDENTIFIER
70                               ::= { ciscoPortChannelObjects 1 }
71portChannelStatistics     OBJECT IDENTIFIER
72                               ::= { ciscoPortChannelObjects 2 }
73portChannelNotification   OBJECT IDENTIFIER
74                               ::= { ciscoPortChannelObjects 3 }
75portChannelNotifications   OBJECT IDENTIFIER
76                               ::= { portChannelNotification 0 }
77
78-- Textual Conventions
79
80PortChannelMode ::= TEXTUAL-CONVENTION
81     STATUS         current
82     DESCRIPTION
83           "Defines how a Port Channel does channeling.
84                     auto(1)      - place the port into passive
85                                    negotiation state, in which the
86                                    port waits for its peer to
87                                    initiate negotiation.
88                     on(2)        - force the port to enable
89                                    channeling.
90                     off(3)       - channeling is disabled.
91                     desirable(4) - place the port into active
92                                    negotiating state, in which the
93                                    port initiates negotiations with
94                                    its peer and if the peer end
95                                    agrees, channeling is enabled
96                                    between them. "
97     SYNTAX         INTEGER {
98                       auto(1),
99                       on(2),
100                       off(3),
101                       desirable(4)
102                    }
103
104PortChannelGroupMode ::= TEXTUAL-CONVENTION
105     STATUS         current
106     DESCRIPTION
107           "Defines how a Port Channel does channeling.
108                 on(1) -       the port shall operate as part of a
109                               port channel or remain inactive. The port
110                               channel protocol is turned off and peer
111                               port is assumed to be configured in 'on'
112                               mode.
113                 active(2)-    indicates that port shall initiate port
114                               channel negotiation with peer port
115                               according to the port channel protocol
116                               regardless of the channel mode of the
117                               peer port."
118     SYNTAX         INTEGER {
119                       on(1),
120                       active(2)
121                    }
122
123--
124-- Port Channel Table
125--
126
127portChannelTable  OBJECT-TYPE
128        SYNTAX     SEQUENCE OF PortChannelEntry
129        MAX-ACCESS not-accessible
130        STATUS     current
131        DESCRIPTION
132              "This table facilitates the creation and deletion of a
133               Port Channel interface to achieve higher bandwidths
134               than just one E_port. More than one E_port can be a
135               member of an Port Channel port.
136               NOTE:Only E_ports can be members of an Port Channel
137               port.
138
139               A port is added to a Port Channel port by setting
140               portChannelMemberList,and the 'manner' in which the
141               agent performs the type of addition is determined
142               by the value of portChannelAddType.
143
144               During the period when port(s) is being added to the
145               Port Channel, the agent will not allow to change any
146               parameters of the port(s) being added. Also if the
147               operation is successful (i.e. port(s) is added to the
148               Port Channel) then also the agent will not allow to
149               change any parameters of the individual port(s) that is
150               added. But any change done to the Port Channel port
151               will also be applied to the port(s) which are member(s)
152               of this Port channel port. Once a port(s) is removed
153               from a Port Channel Port it will retain the values that
154               it had when it was a member of the Port Channel port.
155               It will not have the old values it had before joining
156               the Port Channel port.
157
158               The port(s) that are added/removed to/from a
159               Port Channel port will be put into administratively
160               down (ifAdminStatus='down') which results into
161               operationally down(ifOperStatus='down'). To bring the
162               port up again, the user has to set the port to be
163               administratively up(ifAdminStatus='up'). Then the port
164               goes through its initialization cycle to become
165               active(ifOperStatus='up'). "
166        ::= { portChannelConfig 1 }
167
168portChannelEntry OBJECT-TYPE
169        SYNTAX     PortChannelEntry
170        MAX-ACCESS not-accessible
171        STATUS     current
172        DESCRIPTION
173              "There is one entry in this table for each created
174               Port Channel port. "
175        INDEX { portChannelIndex }
176        ::= { portChannelTable 1 }
177
178PortChannelEntry ::= SEQUENCE {
179              portChannelIndex                  Unsigned32,
180              portChannelIfIndex                InterfaceIndex,
181              portChannelAdminChannelMode       PortChannelMode,
182              portChannelOperChannelMode        PortChannelMode,
183              portChannelAddType                INTEGER,
184              portChannelLastActionStatus       INTEGER,
185              portChannelLastActionStatusCause  SnmpAdminString,
186              portChannelLastActionTime         TimeStamp,
187              portChannelMemberList             PortMemberList,
188              portChannelCreationTime           TimeStamp,
189              portChannelRowStatus              RowStatus,
190              portChannelMemberOperStatus       PortMemberList
191}
192
193portChannelIndex OBJECT-TYPE
194        SYNTAX      Unsigned32 (1..2048)
195        MAX-ACCESS  not-accessible
196        STATUS      current
197        DESCRIPTION
198              "An index that uniquely identifies an entry in the
199               portChannelTable table. "
200        ::= { portChannelEntry 1 }
201
202portChannelIfIndex OBJECT-TYPE
203        SYNTAX      InterfaceIndex
204        MAX-ACCESS  read-only
205        STATUS      current
206        DESCRIPTION
207              "The ifIndex of this interface. "
208        ::= { portChannelEntry 2 }
209
210portChannelAdminChannelMode OBJECT-TYPE
211        SYNTAX      PortChannelMode
212        MAX-ACCESS  read-create
213        STATUS      current
214        DESCRIPTION
215              "The channel mode desired by the network manager.
216               If this object is configured to be auto(1), then the
217               'portChannelOperChannelMode' will show the current
218                operating channel mode of port. "
219        DEFVAL {on}
220        ::= { portChannelEntry 3 }
221
222portChannelOperChannelMode OBJECT-TYPE
223        SYNTAX      PortChannelMode
224        MAX-ACCESS  read-only
225        STATUS      current
226        DESCRIPTION
227              "The current operating channel mode of the port. "
228        ::= { portChannelEntry 4 }
229
230portChannelAddType OBJECT-TYPE
231        SYNTAX      INTEGER {
232                       normal(1),
233                       force(2)
234                    }
235        MAX-ACCESS  read-create
236        STATUS      current
237        DESCRIPTION
238              "The method to be adopted by the agent to add
239               port(s) to a Port Channel port.
240               If normal(1), then a compatibility check is done on the
241               parameters of the port(s) being added to this Port
242               Channel. The port(s) being added must have the same
243               physical and configured parameters as the Port
244               Channel port.
245               If force(2), a compatibility check is done on only
246               physical parameters. The port(s) being added to this
247               Port Channel port must have same physical parameters.
248               The operation will fail only if the physical parameters
249               are not same. The configured parameters of the
250               port(s) being added are overwritten by
251               configured parameters of this Port Channel port. "
252        DEFVAL {normal}
253        ::= { portChannelEntry 5 }
254
255portChannelLastActionStatus OBJECT-TYPE
256        SYNTAX      INTEGER {
257                       successful(1),
258                       failed(2)
259                    }
260        MAX-ACCESS  read-only
261        STATUS      current
262        DESCRIPTION
263              "The status of the last operation (add or remove a
264               member) done to change the member list of a Port
265               Channel Port.
266               When no ports are added or the last operation is
267               successful then this object will be successful(1).
268               If this value is failed(2) then the user can look
269               at portChannelLastAddStatusCause to find the reason
270               of failure. "
271        ::= { portChannelEntry 6 }
272
273portChannelLastActionStatusCause OBJECT-TYPE
274        SYNTAX      SnmpAdminString
275        MAX-ACCESS  read-only
276        STATUS      current
277        DESCRIPTION
278              "The cause of failure to last operation (add or remove
279               a member) done to change the member list of a Port
280               Channel port. This object will be zero length string
281               if 'portChannelLastActionStatus' is successful(1). "
282        ::= { portChannelEntry 7 }
283
284portChannelLastActionTime OBJECT-TYPE
285        SYNTAX      TimeStamp
286        MAX-ACCESS  read-only
287        STATUS      current
288        DESCRIPTION
289              "The timestamp indicating the time of last action
290               performed on this entry. "
291        ::= { portChannelEntry 8 }
292
293portChannelMemberList OBJECT-TYPE
294        SYNTAX      PortMemberList
295        MAX-ACCESS  read-create
296        STATUS      current
297        DESCRIPTION
298              "The list of ifIndex's of the E_ports that are members
299               of this Port Channel port. "
300        DEFVAL {''H}
301        ::= { portChannelEntry 9 }
302
303portChannelCreationTime OBJECT-TYPE
304        SYNTAX      TimeStamp
305        MAX-ACCESS  read-only
306        STATUS      current
307        DESCRIPTION
308              "The timestamp of this entry's creation time.
309               Note that at this creation time, a discontinuity occurs
310               in the statistic/error counters which are defined in
311               CISCO-FC-FE-MIB, and which are associated with this
312               Port Channel. "
313        ::= { portChannelEntry 10 }
314
315portChannelRowStatus OBJECT-TYPE
316        SYNTAX      RowStatus
317        MAX-ACCESS  read-create
318        STATUS      current
319        DESCRIPTION
320              "The status of this conceptual row. "
321        ::= { portChannelEntry 11 }
322
323portChannelMemberOperStatus OBJECT-TYPE
324        SYNTAX      PortMemberList
325        MAX-ACCESS  read-only
326        STATUS      current
327        DESCRIPTION
328              "The list of port channel forwarding status of the
329               E_ports that are members of this Port Channel port.
330               Every four-byte is a status of the corresponding
331               member port represented by ifIndex in
332               portChannelMemberList.
333               The portChannelMemberOperStatus may not be the same as
334               ifOperStatus.
335               A value of '00 00 00 01' means the corresponding member
336               port is participating in the load balancing of the
337               port channel.
338               A value of '00 00 00 02' means the corresponding member
339               port is not participating in the load balancing of the
340               port channel. "
341        DEFVAL {''H}
342        ::= { portChannelEntry 12 }
343
344
345--
346-- Port Channel Protocol related objects
347--
348
349portChannelProtocolEnable OBJECT-TYPE
350        SYNTAX      TruthValue
351        MAX-ACCESS  read-write
352        STATUS      current
353        DESCRIPTION
354              "Enables/disables Port Channel Protocol. If enabled, Port
355              Channel Protocol provides following features:
356               - detection and correction of mis-configurations of
357                 interfaces involved with a Port Channel.
358               - automatic creation of Channel Groups (and therefore
359                 Port Channels) if both ends of the links are compatible
360                 with each other."
361        ::= { portChannelConfig    2 }
362
363portChannelGrpIfExtTable  OBJECT-TYPE
364        SYNTAX     SEQUENCE OF PortChannelGrpIfExtEntry
365        MAX-ACCESS not-accessible
366        STATUS     current
367        DESCRIPTION
368              "This table facilitates Channel Group specific
369              interface configurations."
370        ::= {portChannelConfig  3 }
371
372portChannelGrpIfExtEntry OBJECT-TYPE
373        SYNTAX     PortChannelGrpIfExtEntry
374        MAX-ACCESS not-accessible
375        STATUS     current
376        DESCRIPTION
377              "There is one entry in this table for each created
378               Port Channel port."
379        INDEX { ifIndex }
380        ::= { portChannelGrpIfExtTable 1 }
381
382PortChannelGrpIfExtEntry ::= SEQUENCE {
383        portChannelGrpIfAutoCreation  TruthValue
384}
385
386portChannelGrpIfAutoCreation OBJECT-TYPE
387        SYNTAX      TruthValue
388        MAX-ACCESS  read-write
389        STATUS      current
390        DESCRIPTION
391              "This object indicates if this interface may be part of
392              automatically created Channel Groups (and therefore
393              Port Channels)."
394        ::= { portChannelGrpIfExtEntry 1 }
395
396--
397-- Port Channel extension Table
398--
399
400portChannelExtTable  OBJECT-TYPE
401        SYNTAX     SEQUENCE OF PortChannelExtEntry
402        MAX-ACCESS not-accessible
403        STATUS     current
404        DESCRIPTION
405              "This table extends the portChannelTable to support Port
406              Channel Protocol."
407        ::= { portChannelConfig 4 }
408
409portChannelExtEntry OBJECT-TYPE
410        SYNTAX     PortChannelExtEntry
411        MAX-ACCESS not-accessible
412        STATUS     current
413        DESCRIPTION
414              "There is one entry in this table for each created
415               Port Channel port. It contains an entry for every
416               Port Channel that is either automatically created or
417               manually configured."
418        AUGMENTS { portChannelEntry }
419        ::= { portChannelExtTable 1 }
420
421PortChannelExtEntry ::= SEQUENCE {
422              portChannelExtChannelGrpMode     PortChannelGroupMode,
423              portChannelExtAutoCreated        TruthValue,
424              portChannelExtPersistent         INTEGER,
425              portChannelExtOperChannelGrpMode PortChannelGroupMode
426}
427
428portChannelExtChannelGrpMode OBJECT-TYPE
429        SYNTAX      PortChannelGroupMode
430        MAX-ACCESS  read-write
431        STATUS      current
432        DESCRIPTION
433              "The admin channel group mode of this port channel."
434        ::= { portChannelExtEntry 1 }
435
436portChannelExtAutoCreated OBJECT-TYPE
437        SYNTAX      TruthValue
438        MAX-ACCESS  read-only
439        STATUS      current
440        DESCRIPTION
441              "Indicates of this port channel was automatically
442              created.
443              Note that this object is valid only for Fibre Channel
444              port channels."
445        ::= { portChannelExtEntry 2 }
446
447portChannelExtPersistent OBJECT-TYPE
448        SYNTAX      INTEGER {
449                       noOp (1),
450                       enable (2)
451                    }
452        MAX-ACCESS  read-write
453        STATUS      current
454        DESCRIPTION
455              "This object converts an auto-created port channel
456              to a persistent port channel when it is set to 'enable'.
457
458              No action is taken if this object is set to 'noOp'.
459              The value of the object when read is always 'noOp'."
460        ::= { portChannelExtEntry 3 }
461
462portChannelExtOperChannelGrpMode OBJECT-TYPE
463        SYNTAX      PortChannelGroupMode
464        MAX-ACCESS  read-only
465        STATUS      current
466        DESCRIPTION
467              "The operational channel group mode of this port channel."
468        ::= { portChannelExtEntry 4 }
469
470
471-- Conformance
472
473
474portChannelMIBCompliances OBJECT IDENTIFIER
475                             ::= { portChannelMIBConformance 1 }
476portChannelMIBGroups OBJECT IDENTIFIER
477                             ::= { portChannelMIBConformance 2 }
478portChannelMIBCompliance MODULE-COMPLIANCE
479        STATUS   deprecated  -- superceeded by
480                             -- portChannelMIBCompliance1
481        DESCRIPTION
482                "The compliance statement for entities which
483                implement the CISCO-PORT-CHANNEL-MIB mib."
484        MODULE MANDATORY-GROUPS { portChannelGroup }
485
486--      OBJECT  portChannelIndex
487--          SYNTAX     Unsigned32 (1..128)
488--          DESCRIPTION
489--                 "It is compliant to support a maximum value for
490--                  this object which is smaller than the defined
491--                  maximum value."
492
493        OBJECT  portChannelRowStatus
494            SYNTAX     INTEGER {
495                     active(1),
496                     createAndGo(4),
497                     destroy(6)}
498            DESCRIPTION
499                   "Only three values 'createAndGo', 'destroy' and
500                   'active' out of the six enumerated values need to
501                    be supported."
502
503        ::= { portChannelMIBCompliances 1 }
504
505portChannelMIBCompliance1 MODULE-COMPLIANCE
506        STATUS   deprecated  -- superceeded by
507                             -- portChannelMIBCompliance2
508        DESCRIPTION
509                "The compliance statement for entities which
510                implement the CISCO-PORT-CHANNEL-MIB mib."
511        MODULE MANDATORY-GROUPS { portChannelGroup }
512
513--      OBJECT  portChannelIndex
514--          SYNTAX     Unsigned32 (1..128)
515--          DESCRIPTION
516--                 "It is compliant to support a maximum value for
517--                  this object which is smaller than the defined
518--                  maximum value."
519
520        OBJECT  portChannelRowStatus
521            SYNTAX     INTEGER {
522                     active(1),
523                     createAndGo(4),
524                     destroy(6)}
525            DESCRIPTION
526                   "Only three values 'createAndGo', 'destroy' and
527                   'active' out of the six enumerated values need to
528                    be supported."
529
530        OBJECT  portChannelAdminChannelMode
531            DESCRIPTION
532                   "It is compliant to support only a subset of
533                   all the values defined. "
534
535        ::= { portChannelMIBCompliances 2 }
536
537portChannelMIBCompliance2 MODULE-COMPLIANCE
538        STATUS   deprecated -- superceded by portChannelMIBCompliance3
539        DESCRIPTION
540                "The compliance statement for entities which
541                implement the CISCO-PORT-CHANNEL-MIB mib."
542        MODULE MANDATORY-GROUPS { portChannelGroup,
543                                  portChannelGroupRev1 }
544
545--      OBJECT  portChannelIndex
546--          SYNTAX     Unsigned32 (1..128)
547--          DESCRIPTION
548--                 "It is compliant to support a maximum value for
549--                  this object which is smaller than the defined
550--                  maximum value."
551
552        OBJECT  portChannelRowStatus
553            SYNTAX     INTEGER {
554                     active(1),
555                     createAndGo(4),
556                     destroy(6)}
557            DESCRIPTION
558                   "Only three values 'createAndGo', 'destroy' and
559                   'active' out of the six enumerated values need to
560                    be supported."
561
562        OBJECT  portChannelAdminChannelMode
563            DESCRIPTION
564                   "It is compliant to support only a subset of
565                   all the values defined. "
566
567        ::= { portChannelMIBCompliances 3 }
568
569portChannelMIBCompliance3 MODULE-COMPLIANCE
570        STATUS   current
571        DESCRIPTION
572                "The compliance statement for entities which
573                implement the CISCO-PORT-CHANNEL-MIB mib."
574        MODULE MANDATORY-GROUPS { portChannelGroup,
575                                  portChannelGroupRev1 }
576
577        GROUP   portChannelProtocolGroup
578        DESCRIPTION
579                "Implementation of this group is mandatory for all
580                systems that support Port Channel Protocol."
581
582--      OBJECT  portChannelIndex
583--          SYNTAX     Unsigned32 (1..128)
584--          DESCRIPTION
585--                 "It is compliant to support a maximum value for
586--                  this object which is smaller than the defined
587--                  maximum value."
588
589        OBJECT  portChannelRowStatus
590            SYNTAX     INTEGER {
591                     active(1),
592                     createAndGo(4),
593                     destroy(6)}
594            DESCRIPTION
595                   "Only three values 'createAndGo', 'destroy' and
596                   'active' out of the six enumerated values need to
597                    be supported."
598
599        OBJECT  portChannelAdminChannelMode
600            DESCRIPTION
601                   "It is compliant to support only a subset of
602                   all the values defined. "
603
604        OBJECT  portChannelProtocolEnable
605            MIN-ACCESS  read-only
606            DESCRIPTION
607                   "Only read-only need to supported."
608
609        ::= { portChannelMIBCompliances 4 }
610
611-- Units of Conformance
612
613portChannelGroup  OBJECT-GROUP
614     OBJECTS  { portChannelIfIndex, portChannelAdminChannelMode,
615                portChannelOperChannelMode, portChannelAddType,
616                portChannelLastActionStatus,
617                portChannelLastActionStatusCause,
618                portChannelLastActionTime,
619                portChannelMemberList,portChannelCreationTime,
620                portChannelRowStatus }
621     STATUS  current
622     DESCRIPTION
623            "A collection of objects related to Port Channel Interface
624             parameters."
625        ::= { portChannelMIBGroups 1 }
626
627portChannelGroupRev1  OBJECT-GROUP
628     OBJECTS  { portChannelMemberOperStatus }
629     STATUS  current
630     DESCRIPTION
631            "A collection of objects related to Port Channel Interface
632             parameters."
633        ::= { portChannelMIBGroups 2 }
634
635portChannelProtocolGroup  OBJECT-GROUP
636     OBJECTS  { portChannelProtocolEnable,
637                portChannelGrpIfAutoCreation,
638                portChannelExtChannelGrpMode,
639                portChannelExtAutoCreated,
640                portChannelExtPersistent,
641                portChannelExtOperChannelGrpMode
642              }
643     STATUS  current
644     DESCRIPTION
645            "A collection of objects related to Port Channel Protocol
646             mamagement."
647        ::= { portChannelMIBGroups 3 }
648
649END
650