Imported Upstream version 0.4.8
[platform/upstream/libsmi.git] / mibs / ietf / T11-FC-FABRIC-LOCK-MIB
1 T11-FC-FABRIC-LOCK-MIB  DEFINITIONS ::= BEGIN
2
3 IMPORTS
4     MODULE-IDENTITY, OBJECT-TYPE,
5     mib-2                              FROM SNMPv2-SMI   -- [RFC2578]
6     RowStatus                          FROM SNMPv2-TC    -- [RFC2579]
7     MODULE-COMPLIANCE, OBJECT-GROUP    FROM SNMPv2-CONF  -- [RFC2580]
8     InetAddressType, InetAddress       FROM
9                                        INET-ADDRESS-MIB  -- [RFC4001]
10     fcmInstanceIndex, fcmSwitchIndex   FROM FC-MGMT-MIB  -- [RFC4044]
11     T11NsGs4RejectReasonCode           FROM
12                                  T11-FC-NAME-SERVER-MIB  -- [RFC4438]
13     T11FabricIndex                     FROM T11-TC-MIB;  -- [RFC4439]
14
15 t11FabricLockMIB  MODULE-IDENTITY
16     LAST-UPDATED  "200706270000Z"
17     ORGANIZATION  "For the initial versions, T11.
18                    For later versions, the IETF's IMSS Working Group."
19     CONTACT-INFO
20            "      Claudio DeSanti
21                   Cisco Systems, Inc.
22                   170 West Tasman Drive
23                   San Jose, CA 95134 USA
24                   EMail: cds@cisco.com
25
26                   Keith McCloghrie
27
28
29
30                   Cisco Systems, Inc.
31                   170 West Tasman Drive
32                   San Jose, CA 95134 USA
33                   EMail: kzm@cisco.com"
34
35     DESCRIPTION
36            "The MIB module for the management of locks on a Fibre
37            Channel Fabric.  A Fibre Channel Fabric lock is used to
38            ensure serialized access to some types of management data
39            related to a Fabric, e.g., the Fabric's Zoning Database.
40
41            Some (managing) applications generate Fabric locks by
42            initiating server sessions.  Server sessions are
43            defined generically in FC-GS-5 to represent a collection of
44            one or more requests to the session's server, e.g., to the
45            Zone Server.  Such a session is started by a Server Session
46            Begin (SSB) request, and terminated by a Server Session End
47            (SSE) request.  The switch receiving the SSB is called the
48            'managing' switch.  Some applications require the
49            'managing' switch to lock the Fabric for the particular
50            application, e.g., for Enhanced Zoning, before it can
51            respond successfully to the SSB.  On receipt of the
52            subsequent SSE, the lock is released.  For this usage, the
53            managing switch sends an Acquire Change Authorization (ACA)
54            request to other switches to lock the Fabric.
55
56            For some other applications, a managing switch locks the
57            Fabric using an Enhanced Acquire Change Authorization (EACA)
58            request, which identifies the application on whose behalf
59            the Fabric is being locked with an Application_ID.
60
61            Fabric locks can also be requested more directly, e.g.,
62            through the use of this MIB.  In these situations, the term
63            'managing' switch is used to indicate the switch that
64            receives such a request and executes it by issuing either
65            ACA or EACA requests to other switches in the Fabric.
66
67            This MIB module defines information about the 'managing'
68            switch for currently-active Fabric locks.
69
70            Copyright (C) The IETF Trust (2007).  This version
71            of this MIB module is part of RFC 4936;  see the RFC
72            itself for full legal notices."
73     REVISION  "200706270000Z"
74     DESCRIPTION
75            "Initial version of this MIB module, published as RFC 4936."
76     ::= { mib-2 159 }
77
78
79
80
81 t11FLockMIBObjects       OBJECT IDENTIFIER ::= { t11FabricLockMIB 1 }
82 t11FLockMIBConformance   OBJECT IDENTIFIER ::= { t11FabricLockMIB 2 }
83 t11FLockMIBNotifications OBJECT IDENTIFIER ::= { t11FabricLockMIB 0 }
84 t11FLockConfiguration    OBJECT IDENTIFIER ::= { t11FLockMIBObjects 1 }
85
86 --
87 -- The table of Managing Switches and their Fabric Locks
88 --
89
90 t11FLockTable OBJECT-TYPE
91     SYNTAX       SEQUENCE OF T11FLockEntry
92     MAX-ACCESS   not-accessible
93     STATUS       current
94     DESCRIPTION
95            "A table containing information about the 'managing'
96            switch of each current Fabric lock, e.g., for the
97            types of Servers defined in FC-GS-5.
98
99            Each entry in this table represents either:
100
101            1) a current Fabric lock,
102            2) an in-progress attempt, requested via SNMP, to set up
103               a lock, or
104            3) a failed attempt, requested via SNMP, to set up a lock.
105
106            If an entry is created via t11FLockRowStatus, but the
107            attempt to obtain the lock fails, then the entry continues
108            to exist until it is deleted via t11FLockRowStatus, or
109            it is overwritten by the lock being established via
110            a means other than SNMP.  However, rows created via
111            t11FLockRowStatus are not retained over restarts."
112     REFERENCE
113            "Fibre Channel - Generic Services-5 (FC-GS-5),
114            ANSI INCITS 427-2007, sections 4.9.5 and 6.4.10.2."
115     ::= { t11FLockConfiguration 1 }
116
117 t11FLockEntry OBJECT-TYPE
118     SYNTAX       T11FLockEntry
119     MAX-ACCESS   not-accessible
120     STATUS       current
121     DESCRIPTION
122            "Each entry contains information specific to a current
123            Fabric lock set up by a particular 'managing' switch on a
124            particular Fabric.  The 'managing switch' is identified by
125            values of fcmInstanceIndex and fcmSwitchIndex.
126
127            Server sessions for several different types of servers
128            are defined in FC-GS-5.  The behavior of a server with
129
130
131
132            respect to commands received within a server session is
133            specified for each type of server.  For some types,
134            parameter changes can only be made within the context of a
135            session, and the setting up of a session requires that the
136            Fabric be locked.  A Fabric is locked by one switch, called
137            the 'managing' switch, sending Acquire Change Authorization
138            (ACA) requests to all other switches in the Fabric.
139
140            For other applications, a Fabric lock is established by the
141            'managing' switch sending Enhanced Acquire Change
142            Authorization (EACA) requests to other switches in the
143            Fabric.  Each EACA request includes an Application_ID
144            value to identify the application requesting the lock.
145
146            For the benefit of this MIB module, a distinct value of
147            Application_ID has also been assigned/reserved (see
148            ANSI INCITS T11/06-679v0, titled 'FC-SW-5 Letter to
149            T11.5') as a means of distinguishing locks established via
150            Acquire Change Authorization (ACA) requests.  This
151            additional assignment allows an Application_ID to be used to
152            uniquely identify any active lock amongst all those
153            established by either an EACA or an ACA.
154
155            Whenever a Fabric is locked, by the sending of either an ACA
156            or an EACA, a row gets created in the representation of this
157            table for the 'managing' switch.
158
159            In order to process SNMP SetRequests that make parameter
160            changes for the relevant types of servers (e.g., to the
161            Zoning Database), the SNMP agent must get serialized access
162            to the Fabric (for the relevant type of management data),
163            i.e., the Fabric must be locked by creating an entry in
164            this table via an SNMP SetRequest.  Creating an entry in
165            this table via an SNMP SetRequest causes an ACA or an EACA
166            to be sent to all other switches in the Fabric.  The value
167            of t11FLockApplicationID for such an entry determines
168            whether an ACA or an EACA is sent.
169
170            If an entry in this table is created by an SNMP SetRequest,
171            the value of the t11FLockInitiatorType object in that entry
172            will normally be 'snmp'.  A row for which the value of
173            t11FLockInitiatorType is not 'snmp' cannot be modified
174            via SNMP.  In particular, it cannot be deleted via
175            t11FLockRowStatus.  Note that it's possible for a row to be
176            created by an SNMP SetRequest, but for the setup of the lock
177            to fail, and immediately thereafter be replaced by a lock
178            successfully set up by some other means; in such a case, the
179            value of t11FLockInitiatorType would change as and when the
180
181
182
183            lock was set up by the other means, and so the row could
184            not thereafter be deleted via t11FLockRowStatus.
185
186            FC-GS-5 mentions various error situations in which a
187            Fabric lock is released so as to avoid a deadlock.  In
188            such situations, the agent removes the corresponding row
189            in this table as and when the lock is released.  This can
190            happen for all values of t11FLockInitiatorType."
191     REFERENCE
192            "Fibre Channel - Generic Services-5 (FC-GS-5),
193            ANSI INCITS 427-2007, sections 4.9.5.5 and 6.4.7.1.
194
195            Fibre Channel - Switch Fabric-4 (FC-SW-4),
196            ANSI INCITS 418-2006, sections 6.1.17, 10.6.6, and 13.2,
197            and table 116.
198
199            'FC-SW-5 Letter to T11.5' ANSI INCITS T11/06-679v0,
200            http://www.t11.org/ftp/t11/pub/fc/sw-5/06-679v0.pdf,
201            21 September 2006."
202     INDEX   { fcmInstanceIndex, fcmSwitchIndex, t11FLockFabricIndex,
203               t11FLockApplicationID }
204     ::= { t11FLockTable 1 }
205
206 T11FLockEntry ::= SEQUENCE {
207     t11FLockFabricIndex             T11FabricIndex,
208     t11FLockApplicationID           OCTET STRING,
209     t11FLockInitiatorType           INTEGER,
210     t11FLockInitiator               OCTET STRING,
211     t11FLockInitiatorIpAddrType     InetAddressType,
212     t11FLockInitiatorIpAddr         InetAddress,
213     t11FLockStatus                  INTEGER,
214     t11FLockRejectReasonCode        T11NsGs4RejectReasonCode,
215     t11FLockRejectReasonCodeExp     OCTET STRING,
216     t11FLockRejectReasonVendorCode  OCTET STRING,
217     t11FLockRowStatus               RowStatus
218 }
219
220 t11FLockFabricIndex OBJECT-TYPE
221     SYNTAX       T11FabricIndex
222     MAX-ACCESS   not-accessible
223     STATUS       current
224     DESCRIPTION
225            "A unique index value that uniquely identifies a
226            particular Fabric.
227
228            In a Fabric conformant to FC-SW-4, multiple Virtual Fabrics
229            can operate within one (or more) physical infrastructures,
230            and this index value is used to uniquely identify a
231
232
233
234            particular (physical or virtual) Fabric within a physical
235            infrastructure.
236
237            In a Fabric conformant to versions earlier than FC-SW-4,
238            only a single Fabric could operate within a physical
239            infrastructure, and thus, the value of this Fabric Index
240            was defined to always be 1."
241     ::= { t11FLockEntry 1 }
242
243 t11FLockApplicationID OBJECT-TYPE
244     SYNTAX       OCTET STRING (SIZE (1))
245     MAX-ACCESS   not-accessible
246     STATUS       current
247     DESCRIPTION
248            "The Application_ID value that identifies the type of
249            application for which the Fabric is locked.
250
251            A lock established via Acquire Change Authorization (ACA)
252            does not, strictly speaking, have an Application_ID value.
253            However, the value 'FF'h (255 decimal) has been reserved
254            by T11 to be used as the value of this MIB object as and
255            when a lock is established by an ACA.  This value was
256            initially documented in a letter from the FC-SW-5 Editor
257            to T11.5, which was approved by the T11 and T11.5 plenary
258            meetings on October 5, 2006."
259     REFERENCE
260            "Fibre Channel - Switch Fabric-4 (FC-SW-4),
261            ANSI INCITS 418-2006, April 2006, Table 116.
262
263            'FC-SW-5 Letter to T11.5' ANSI INCITS T11/06-679v0,
264            http://www.t11.org/ftp/t11/pub/fc/sw-5/06-679v0.pdf,
265            21 September 2006."
266     ::= { t11FLockEntry 2 }
267
268 t11FLockInitiatorType OBJECT-TYPE
269     SYNTAX        INTEGER {
270                       other(1),
271                       ssb(2),
272                       cli(3),
273                       snmp(4)
274                   }
275     MAX-ACCESS    read-only
276     STATUS        current
277     DESCRIPTION
278            "This object specifies what type of initiator generated
279            the request that caused this lock to be established:
280
281                other     - none of the following.
282
283
284
285                ssb       - this lock was established due to the
286                            receipt of an SSB, e.g., from a GS-5
287                            client.
288                cli       - this lock was established in order
289                            to process a Command Line Interface
290                            (CLI) command.
291                snmp      - this lock was established as a result
292                            of an SNMP SetRequest.
293            "
294     ::= { t11FLockEntry 3 }
295
296 t11FLockInitiator OBJECT-TYPE
297     SYNTAX          OCTET STRING (SIZE(0..64))
298     MAX-ACCESS      read-only
299     STATUS          current
300     DESCRIPTION
301            "This object specifies the initiator whose request
302            caused this lock to be established.
303
304            If the value of the corresponding instance
305            of t11FLockInitiatorType is 'ssb', this
306            object will contain the FC_ID of the client
307            that issued the Server Session Begin (SSB)
308            that required the lock to be established.
309
310            If the value of the corresponding instance
311            of t11FLockInitiatorType object is 'cli', this
312            object will contain the user name of the CLI
313            (Command Line Interface) user on whose behalf
314            the lock was established.
315
316            If the value of the corresponding instance of
317            t11FLockInitiatorType is 'snmp', this object
318            will contain the SNMP securityName used by the
319            SNMPv3 message containing the SetRequest that
320            created this row.  (If the row was created via
321            SNMPv1 or SNMPv2c, then the appropriate value of
322            the snmpCommunitySecurityName is used.)"
323     REFERENCE
324            "Fibre Channel - Generic Services-5 (FC-GS-5),
325            ANSI INCITS 427-2007, section 4.9.5.2.
326
327            SNMP securityName is defined in RFC 3411, 'An
328            Architecture for Describing Simple Network
329            Management Protocol (SNMP) Management Frameworks'.
330
331            snmpCommunitySecurityName is defined in RFC 3584,
332            'Coexistence between Version 1, Version 2, and
333
334
335
336            Version 3 of the Internet-standard Network
337            Management Framework.'"
338     ::= { t11FLockEntry 4 }
339
340 t11FLockInitiatorIpAddrType OBJECT-TYPE
341     SYNTAX          InetAddressType
342     MAX-ACCESS      read-only
343     STATUS          current
344     DESCRIPTION
345            "This object specifies the type of IP address contained
346            in the corresponding instance of t11FLockInitiatorIpAddr.
347            If the IP address of the location of the initiator is
348            unknown or not applicable, this object has the value:
349            'unknown'."
350     ::= { t11FLockEntry 5 }
351
352 t11FLockInitiatorIpAddr OBJECT-TYPE
353     SYNTAX          InetAddress
354     MAX-ACCESS      read-only
355     STATUS          current
356     DESCRIPTION
357            "This object specifies the IP address of the location
358            of the initiator that established this lock via a
359            request of the type given by the corresponding instance
360            of t11FLockInitiatorType.  In cases where the
361            corresponding instance of t11FLockInitiatorIpAddrType has
362            the value: 'unknown', the value of this object is the
363            zero-length string."
364     ::= { t11FLockEntry 6 }
365
366 t11FLockStatus OBJECT-TYPE
367     SYNTAX        INTEGER {
368                       active(1),
369                       settingUp(2),
370                       rejectFailure(3),
371                       otherFailure(4)
372                   }
373     MAX-ACCESS    read-only
374     STATUS        current
375     DESCRIPTION
376            "This object gives the current status of the lock:
377
378               'active'        -- the lock is currently established.
379               'settingUp'     -- the 'managing' switch is currently
380                                  attempting to set up the lock, e.g.,
381                                  it is waiting to receive Accepts
382                                  for ACAs from every switch in the
383                                  Fabric.
384
385
386
387               'rejectFailure' -- the 'managing' switch's attempt to
388                                  set up the lock was rejected with
389                                  the reason codes given by:
390                                     t11FLockRejectReasonCode,
391                                     t11FLockRejectReasonCodeExp and
392                                     t11FLockRejectReasonVendorCode.
393               'otherFailure'  -- the 'managing' switch's attempt
394                                  to set up the lock failed (but no
395                                  reason codes are available).
396
397            For values of t11FLockInitiatorType other than 'snmp',
398            a row is only required to be instantiated in this table
399            when the value of this object is 'active'.
400
401            If the value of the corresponding instance of
402            t11FLockInitiatorType is 'snmp', the initial value of this
403            object when the row is first created is 'settingUp'.  As
404            and when the setup succeeds, the value transitions to
405            'active'.  If the setup fails, the value transitions to
406            either 'rejectFailure' or 'otherFailure'.  Note that such a
407            failure value is overwritten on the next attempt to obtain
408            the lock, which could be immediately after the failure,
409            e.g., by a GS-5 client.
410
411            When the value of this object is 'rejectFailure', the
412            rejection's reason codes are given by the corresponding
413            values of t11FLockRejectReasonCode,
414            t11FLockRejectReasonCodeExp and
415            t11FLockRejectReasonVendorCode."
416     ::= { t11FLockEntry 7 }
417
418 t11FLockRejectReasonCode OBJECT-TYPE
419     SYNTAX        T11NsGs4RejectReasonCode
420     MAX-ACCESS    read-only
421     STATUS        current
422     DESCRIPTION
423            "When the value of the corresponding instance of
424            t11FLockStatus is 'rejectFailure', this object contains
425            the rejection's reason code."
426     REFERENCE
427            "Fibre Channel - Generic Services-5 (FC-GS-5),
428            ANSI INCITS 427-2007, section 4.4.4 and table 10."
429     ::= { t11FLockEntry 8 }
430
431 t11FLockRejectReasonCodeExp OBJECT-TYPE
432     SYNTAX        OCTET STRING (SIZE(0 | 1))
433     MAX-ACCESS    read-only
434     STATUS        current
435
436
437
438     DESCRIPTION
439            "When the value of the corresponding instance of
440            t11FLockStatus is 'rejectFailure', this object contains
441            the rejection's reason code explanation."
442     REFERENCE
443            "Fibre Channel - Generic Services-5 (FC-GS-5),
444            ANSI INCITS 427-2007, sections 4.4.4 and 6.4.9,
445            tables 10 and 252."
446     ::= { t11FLockEntry 9 }
447
448 t11FLockRejectReasonVendorCode OBJECT-TYPE
449     SYNTAX        OCTET STRING (SIZE(0 | 1))
450     MAX-ACCESS    read-only
451     STATUS        current
452     DESCRIPTION
453            "When the value of the corresponding instance of
454            t11FLockStatus is 'rejectFailure', this object contains
455            the rejection's vendor-specific code."
456     REFERENCE
457            "Fibre Channel - Generic Services-5 (FC-GS-5),
458            ANSI INCITS 427-2007, section 4.4.4."
459     ::= { t11FLockEntry 10 }
460
461 t11FLockRowStatus OBJECT-TYPE
462     SYNTAX        RowStatus
463     MAX-ACCESS    read-create
464     STATUS        current
465     DESCRIPTION
466            "The status of this conceptual row.
467
468            A row in this table can be modified or deleted via
469            this object only when the row's value of
470            t11FLockInitiatorType is 'snmp'."
471     ::= { t11FLockEntry 11 }
472
473 -- Conformance
474
475 t11FLockMIBCompliances
476                      OBJECT IDENTIFIER ::= { t11FLockMIBConformance 1 }
477 t11FLockMIBGroups    OBJECT IDENTIFIER ::= { t11FLockMIBConformance 2 }
478
479 t11FLockMIBCompliance MODULE-COMPLIANCE
480     STATUS       current
481     DESCRIPTION
482            "The compliance statement for entities that support
483            Fabric locks in support of GS-5 Server applications."
484     MODULE MANDATORY-GROUPS { t11FLockActiveGroup }
485
486
487
488
489     OBJECT       t11FLockRowStatus
490     MIN-ACCESS   read-only
491     DESCRIPTION
492            "Write access is not required."
493
494     ::= { t11FLockMIBCompliances 1 }
495
496 -- Units of Conformance
497
498 t11FLockActiveGroup OBJECT-GROUP
499     OBJECTS  { t11FLockInitiatorType,
500                t11FLockInitiator,
501                t11FLockInitiatorIpAddrType,
502                t11FLockInitiatorIpAddr,
503                t11FLockStatus,
504                t11FLockRejectReasonCode,
505                t11FLockRejectReasonCodeExp,
506                t11FLockRejectReasonVendorCode,
507                t11FLockRowStatus
508              }
509     STATUS   current
510     DESCRIPTION
511            "A collection of objects containing information
512            about current Fabric locks."
513     ::= { t11FLockMIBGroups 1 }
514
515 END