Subject: Re: FW: ARC MIB Compilation

From: Randy Presuhn <[email-masked]>
Date: Fri, 18 Oct 2002 09:06:50 -0700 (PDT)

Hi -

> Message-ID: <[email-masked]>
> From: "Lam, Hing-Kam (Kam)" <[email-masked]>
> To: "'Randy Presuhn'" <[email-masked]>
> Cc: "Wijnen, Bert (Bert)" <[email-masked]>,
>         "Castro, Eunice Mary Esther (Mary)" <[email-masked]>
> Subject: FW: ARC MIB Compilation
> Date: Fri, 18 Oct 2002 11:46:55 -0400
> 
> 
> This message is in MIME format. Since your mail reader does not understand
> this format, some or all of this message may not be legible.
> 
> ------_=_NextPart_000_01C276BD.956BDEAA
> Content-Type: text/plain;
> 	charset="iso-8859-1"
> 
> Randy,
> 
> We did a strict compilation on the ARC mib and got the following result. (I also attached is the mib module that was used.)
> 
> For 
> > > E: f(arc.mi2), (148,1) Row "arcEntry" may not have columns 
> > with MAX-ACCESS 
> > > of read-write if any column is read-create
> I will change the MAX-ACCESS of arcNalmTimeRemaining from read-write to read-create and it should resolve the error.

Good.

> What is your advice on  E: f(arc.mi2), (155,22) regarding arcAlarmType?
> The syntax of arcAlarmType is IANAItuProbableCausesOrZero, whose underlying syntax is Unsigned32.
> Do I need to explicitly specify the range of the IANAItuProbableCausesOrZero TC, i.e., Unsigned32 (0..4294967295)?
> Also note that the description of the IANAItuProbableCausesOrZero TC states that this TC takes any value of
> IANAItuProbableCauses or 0. IANAItuProbableCauses  is defined in the Alarm MIB with syntax INTEGER.

I'd suggest that syntax of IANAItuProbableCuasesOrZero should be
INTEGER (0..2147483647) to resolve this, unless we really want to
define negative probable causes in the future.

> What is your opinion about the other warnings?

I agree with Bert.

> Thank you in advance for your advice.
> 
> Regards,
> Kam
>  <<ARC_mib-06.txt>> 
> 
> >  -----Original Message-----
> > From: 	Wijnen, Bert (Bert)  
> > Sent:	Wednesday, October 16, 2002 1:06 AM
> > To:	Castro, Eunice Mary Esther (Mary); Lam, Hing-Kam (Kam)
> > Subject:	RE: SNMP MIB
> > 
> > No need to use INTEGER.
> > If your compiler has trouble with refinements on TCs, then that is
> > your compiler problem.
> > 
> > This is what I get on the MIB that Kam did send me (using SMICng)
> > 
> > > E: f(arc.mi2), (333,35) a bit or enum list is not allowed on a TC
> > 
> > This is a "perkinism". It is allowed.
> > 
> > > E: f(arc.mi2), (148,1) Row "arcEntry" may not have columns 
> > with MAX-ACCESS 
> > > of read-write if any column is read-create
> > 
> > Need to check that, But I do wonder why it would not be 
> > read-create also if
> > table allows for row creation.
> > 
> > > E: f(arc.mi2), (155,22) Index item "arcAlarmType" must be 
> > defined with syntax
> > > that includes a range
> > >
> > >W: f(arc.mi2), (148,1) Row "arcEntry" has indexing that may 
> > create variables
> > >with more than 128 sub-ids
> > 
> > From SMIlint I get:
> > 
> > > 1178: warning: index element `arcIndex' of row `arcEntry' 
> > > should but cannot have a size restriction
> > > 1206: warning: index element `arcNotificationId' of row
> > > `arcEntry' should but cannot have a size restriction
> > > 1157: warning: index of row `arcEntry' can exceed OID
> > > size limit by 142 subidentifier(s)
> > > --end--
> > 
> > 
> > Hope this helps, Bert
> > 
> 
> ------_=_NextPart_000_01C276BD.956BDEAA
> Content-Type: text/plain;
> 	name="ARC_mib-06.txt"
> Content-Transfer-Encoding: quoted-printable
> Content-Disposition: attachment;
> 	filename="ARC_mib-06.txt"
> 
> ARC-MIB DEFINITIONS ::=3D BEGIN
> 
> IMPORTS
>     MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, Gauge32, mib-2
>           FROM SNMPv2-SMI
>     TEXTUAL-CONVENTION, RowStatus, StorageType
>           FROM SNMPv2-TC
>     MODULE-COMPLIANCE, OBJECT-GROUP
>           FROM SNMPv2-CONF
>     ResourceId=20
>           FROM ALARM-MIB;
> 
> arcMIB MODULE-IDENTITY
>     LAST-UPDATED "200209250000Z"
>     ORGANIZATION "IETF Distributed Management Working Group"
>     CONTACT-INFO
>        "WG EMail:  [email-masked]
>         Subscribe: [email-masked]
> 
>         Chair:     Randy Presuhn
>                    BMC Software, Inc.
>                    Office 1-3141
>                    2141 North First Street
>                    San Jose,  California 95131
>                    USA
>                    Tel: +1 408 546-1006
>                    E-mail: [email-masked]
> 
>         Editor:    Hing-Kam Lam
>                    Lucent Technologies, 4C-616
>                    101 Crawfords Corner Road
>                    Holmdel, NJ 07733=20
>                    USA
>                    Tel: +1 732 949 8338
>                    E-mail: [email-masked]"
> 
>     DESCRIPTION
>        "The MIB module describes the objects for controlling a resource =
> 
>         in reporting alarm conditions that it detects."
>     REVISION  "200209250000Z"=09
>     DESCRIPTION
>        "Initial version, published as RFC xxxx."
> -- RFC Ed.: replace xxxx with actual RFC number & remove this notice
>     ::=3D{ mib-2 yy }
> -- RFC Ed.: replace yy with IANA-assigned number & remove this notice
> 
> ------------------
> -- TEXTUAL-CONVENTION
> ------------------
> 
> IANAItuProbableCauseOrZero ::=3D TEXTUAL-CONVENTION
>   STATUS  current
>   DESCRIPTION
>     "This TC can take any value of IANAItuProbableCause or 0.
>      IANAItuProbableCause is defined in the IANA-ITU-ALARM-TC=20
>      module in the Alarm MIB document (see RFC zzzz)."
>   REFERENCE
>         "RFC zzzz - Alarm MIB, Chisholm, S. and D. Romascanu, mmm =
> 2002."
> -- RFC Ed.: replace zzzz with the actual RFC number of the Alarm MIB =
> document,
> --          replace mmm with the actual month, and remove this notice.
> --         =20
>   SYNTAX  Unsigned32
> 
> ------------------
> -- MIB Objects
> ------------------
> 
> arcMIBTimeIntervals   OBJECT IDENTIFIER ::=3D { arcMIB 1 }
> arcMIBObjects         OBJECT IDENTIFIER ::=3D { arcMIB 2 }
> 
> arcMIBTITimeInterval OBJECT-TYPE
>   SYNTAX  Gauge32
>   MAX-ACCESS  read-write
>   STATUS  current
>   DESCRIPTION
>     "This variable indicates the time interval used for the nalmTI
>      state, in units of second. It is a pre-defined length of time
>      in which the resource will stay in the nalmTI state before
>      transition into the alm state.
> 
>      Instances of this object SHOULD persist across agent restarts."
>   ::=3D { arcMIBTimeIntervals 1 }
> 
> arcMIBCDTimeInterval OBJECT-TYPE
>   SYNTAX  Gauge32
>   MAX-ACCESS  read-write
>   STATUS  current
>   DESCRIPTION
>     "This variable indicates the time interval used for the nalmQICD
>      state, in units of second. It is a pre-defined length of time
>      in which the resource will stay in the nalmQICD state before
>      transition into the alm state after it is problem-free.
> 
>      Instances of this object SHOULD persist across agent restarts."
>   ::=3D { arcMIBTimeIntervals 2 }
> 
> arcTable OBJECT-TYPE
>   SYNTAX  SEQUENCE OF ArcEntry
>   MAX-ACCESS  not-accessible
>   STATUS  current
>   DESCRIPTION
>     "A table of Alarm Reporting Control (ARC) settings on the system.
> 
>      Alarm Reporting Control is a feature that provides an automatic=20
>      in-service provisioning capability.  Alarm reporting is turned=20
>      off on a per-resource basis for a selective set of potential =20
>      alarm conditions to allow sufficient time for customer testing=20
>      and other maintenance activities in an 'alarm free' state.
>      Once a resource is ready for service, alarm reporting is=20
>      automatically or manually turned on.=20
> 
>      Defined in M.3100 Amendment 3 [M.3100 Amd3], there are five=20
>      ARC states: alm, nalm, nalmQI, nalmQICD and nalmTI.
>        =20
>         alm:        Alarm reporting is turned on (i.e., is allowed).
>         nalm:       Alarm reporting is turned off (i.e., not allowed).
>         nalmQI:     nalm - Qualified Inhibit. Alarm reporting is=20
>                     turned off until the managed entity is qualified=20
>                     problem-free for a specified persistence interval.
>         nalmQICD:   nalmQI - Count down. This is a substate of nalmQI=20
>                     and performs the persistence timing countdown=20
>                     function when the managed entity is qualified=20
>                     problem-free.
>         nalmTI:     nalm - Timed Inhibit. Alarm reporting is turned=20
>                     off for a specified time interval.=20
> =20
>      alm may transition to nalm, nalmQI, or nalmTI by management =
> request.
> =09
>      nalm may transition to alm, nalmQI, or nalmTI by management =
> request.
> 
>      nalmQI may transition to nalm or alm by management request.
> 
>      nalmQI may transition to alm automatically=20
>              if qualified problem-free (if nalmQICD is not supported) =
> or=20
>              if the CD timer expired (if nalmQICD is supported)
> 	=09
>      nalmTI may transition to alm or nalm by management request.
> 
>      nalmTI may transition to alm automatically if the TI timer =
> expired.
> 
>      Further details of ARC state transitions are defined in Figure 3=20
>      of M.3100 Amd3 [M.3100 Amd3]."
>   REFERENCE
>         "ITU Recommendation M.3100 Amendment 3, 'Generic Network=20
>          Information Model', January 2001."
>   ::=3D { arcMIBObjects 1 }
> 
> arcEntry OBJECT-TYPE
>   SYNTAX  ArcEntry
>   MAX-ACCESS  not-accessible
>   STATUS  current
>   DESCRIPTION
>     "A conceptual row that contains information about an ARC setting=20
>      of a resource in the system."
>   INDEX  { arcIndex, arcAlarmType, arcNotificationId }
>   ::=3D { arcTable 1 }
> 
> ArcEntry ::=3D
>   SEQUENCE {
>     arcIndex                      ResourceId,
>     arcAlarmType                  IANAItuProbableCauseOrZero,
>     arcNotificationId             OBJECT IDENTIFIER,
>     arcState                      INTEGER,
>     arcNalmTimeRemaining          Gauge32,
>     arcRowStatus                  RowStatus,
>     arcStorageType                StorageType
>     }
> 
> arcIndex OBJECT-TYPE
>   SYNTAX  ResourceId
>   MAX-ACCESS  not-accessible
>   STATUS  current
>   DESCRIPTION
>     "This object uniquely identifies a resource, which is under the=20
>      arcState's control for the associated arcAlarmType.
> 
>      For example, if the resource is an interface, this object will=20
>      point to an instance of interface, e.g., ifIndex.1."
>   ::=3D { arcEntry 1 }
> 
> arcAlarmType OBJECT-TYPE
>   SYNTAX  IANAItuProbableCauseOrZero
>   MAX-ACCESS  not-accessible
>   STATUS  current
>   DESCRIPTION
>     "This object identifies the alarm condition type controlled by the=20
>      arcState. It specifies the value 0 or a value of=20
>      IANAItuProbableCause that is applicable to the resource.=20
>      IANAItuProbableCause is defined in the IANA-ITU-ALARM-TC=20
>      module in the Alarm MIB document.
> 
>      The value of zero (0) implies any probable causes that are=20
>      applicable to the resource. Usually, the applicable probable =
> causes
>      of a resource are specified in the resource-specific mib."
>   ::=3D { arcEntry 2 }
> 
> arcNotificationId OBJECT-TYPE
>   SYNTAX  OBJECT IDENTIFIER
>   MAX-ACCESS  not-accessible
>   STATUS  current
>   DESCRIPTION
>     "This object identifies the type of notification to be suppressed.
>      The notification type identified should be the one normally used
>      by the resource for reporting its alarms. When the value of 0.0 is
>      specified for this object, it implies all applicable notification
>      types."
>   ::=3D { arcEntry 3 }
> 
> arcState OBJECT-TYPE
>   SYNTAX  INTEGER {
>             nalm (1),
>             nalmQI (2),
>             nalmTI (3),
>             nalmQICD (4)
>             }
>   MAX-ACCESS  read-create
>   STATUS  current
>   DESCRIPTION
>     "This object controls the alarm reporting of a resource.  A manager =
> 
>      can set the arcState to either nalm, nalmQI, or nalmTI.
>        =20
> 	nalm:     Alarm reporting is turned off.
> 	nalmTI:   Alarm reporting is turned off for a time interval.
> 		  (TI - Time Inhibit).
> 	nalmQI:   Alarm reporting is turned off for a specified
>                   alarm type until the resource is qualified=20
>                   problem-free for an optional time interval.
> 		  Problem-free means that the condition corresponding
> 		  to the specified alarm type does not exist=20
>                   (i.e., cleared).
> 		  (QI - Qualified Inhibit).
> 	nalmQICD: This is a substate of nalmQI and performs the=20
> 		  persistence timing count down function after the=20
> 		  resource is qualified problem-free.=20
> 		  (CD - Count Down).
> =09
>      According to the requirements in M.3100 Amd3, a resource=20
>      supporting the ARC feature shall support the alm state and at=20
>      least one of the nalm, nalmTI, and nalmQI states. nalmQICD=20
>      is an optional substate of nalmQI.
> 
>      Note that the state alm (alarm reporting is allowed) is not listed
>      in the enumeration of the value of this object. However, this =
> state
>      is implicitly supported by the mib.
>      Once a resource enters the normal reporting mode (i.e., in the alm =
> 
>      state) for the specified alarm type, the corresponding
>      row will be automatically deleted from the arc table.
>      Also the manual setting of arcState to alm can be achieved through
>      setting the RowStatus object to 'destroy'.=20
> 
>      The nalamQICD state is a transitional state from nalmQI to alm. It
>      is optional depending on the resource type and the implementation =
> of the=20
>      the resource.  If it is supported, before the state transitions=20
>      from nalmQI to alm, a count down period is activated for a =
> duration=20
>      set by the object arcNalmCDTimeInterval.  When the time is up,=20
>      the arcState transitions to alm."
>   ::=3D { arcEntry 4 }
> 
> arcNalmTimeRemaining OBJECT-TYPE
>   SYNTAX  Gauge32
>   MAX-ACCESS  read-write
>   STATUS  current
>   DESCRIPTION
>     "This variable indicates the time remaining in the nalmTI state
>      or the nalmQICD state, in units of second.
> 
>      At the moment the resource enters the nalmTI state, this variable=20
>      will have the initial value equal to the value of
>      arcNalmTITimeInterval and then starts decrementing as time goes =
> by.=20
> 
>      Similarly at the moment the resource enters the nalmQICD state,=20
>      this variable will have the initial value equal to the value of=20
>      arcNalmCDTimeInterval and then starts decrementing as time goes =
> by.
> 
>      This variable is read-write and thus will allow the manager to=20
>      extend or shorten, as needed, the remaining time when the resource =
> =20
>      is in the nalmTI or nalmQICD state.
>     =20
>      If this variable is supported and the resource is currently not in =
> 
>      the nalmTI nor nalmQICD state, the value of this variable shall=20
>      equal to zero."
>   ::=3D { arcEntry 5 }
> 
> arcRowStatus OBJECT-TYPE
>   SYNTAX  RowStatus =20
>   MAX-ACCESS  read-create
>   STATUS  current
>   DESCRIPTION
>     "This columnar object is used for creating and deleting a =
> conceptual
>      row of the arcTable.  It is used to create and delete an arc =
> setting.
>      Setting RowStatus to createAndGo or createAndWait implies creating =
> 
>      a new ARC setting for the specified resource and alarm type.
>      Setting RowStatus to destroy implies removing the ARC setting and
>      thus has the effect of resuming normal reporting behaviour of the=20
>      resource for the alarm type."
>   ::=3D { arcEntry 6 }
> 
> arcStorageType OBJECT-TYPE
>     SYNTAX       StorageType
>     MAX-ACCESS   read-create
>     STATUS       current
>     DESCRIPTION=20
>        "The storage type for this conceptual row.
>         Conceptual rows having the value 'permanent' must=20
>         allow write-access at a minimum to arcState.
>         Note that arcState must allow change by management request.     =
> =20
>         Therefore, no row can be created with 'readOnly'.
>         If a set operation tries to set the value to 'readOnly',
>         then an 'inconsistentValue' error must be returned."
>     DEFVAL      { nonVolatile }
>     ::=3D { arcEntry 7}
> 
> --------------------------
> -- conformance information
> --------------------------
> 
>    arcConformance OBJECT IDENTIFIER ::=3D { arcMIB 3 }
> 
>    arcCompliances OBJECT IDENTIFIER ::=3D { arcConformance 1 }
> 
>    arcCompliance MODULE-COMPLIANCE
>          STATUS  current
>          DESCRIPTION
>              "The compliance statement for systems supporting
>              the ARC MIB."
> 
>          MODULE -- this module
>              MANDATORY-GROUPS {
>               arcSettingGroup
>              }
> 
>          OBJECT arcStorageType
>          WRITE-SYNTAX StorageType {
>                          volatile(2),=20
>                          nonVolatile(3),
>                          permanent(4)=20
>                          }
>          DESCRIPTION
>             "Support for value 'other' is not required.
>              The arcState object must allow change by management =
> request.     =20
>              Therefore, no row can be created with 'readOnly'."
> 
>          GROUP  arcTIGroup
>          DESCRIPTION
>            "This group is REQUIRED for ARC settings
>             that provide the Time Inhibit (TI) function."
> 
>          GROUP  arcQICDGroup
>          DESCRIPTION
>            "This group is REQUIRED for ARC settings
>             that provide the Quality Inhibit (QI) Count Down (CD)
>             function."
> 
>       ::=3D { arcCompliances 1 }
> 
>    arcGroups OBJECT IDENTIFIER ::=3D { arcConformance 2 }=09
> 
>    arcSettingGroup OBJECT-GROUP
>       OBJECTS {
>           arcState,
>           arcRowStatus,
>           arcStorageType=20
>          }
>        STATUS   current
>        DESCRIPTION
>             "A collection of objects applicable to
>              basic ARC setting."
>        ::=3D { arcGroups 1}
> 
>    arcTIGroup OBJECT-GROUP
>            OBJECTS {
>               arcMIBTITimeInterval,
>               arcNalmTimeRemaining	 =09
>              }
>              STATUS   current
>              DESCRIPTION
>                   "A collection of objects applicable to
>                    ARC setting that support the Time Inhibit (TI)
>                    function."
>              ::=3D { arcGroups 2}
> 
>    arcQICDGroup OBJECT-GROUP
>            OBJECTS {
>               arcMIBCDTimeInterval,
>               arcNalmTimeRemaining	 =09
>              }
>              STATUS   current
>              DESCRIPTION
>                   "A collection of objects applicable to
>                    ARC setting that support the Quality Inhibit (QI)
>                    Count Down (CD) function."
>              ::=3D { arcGroups 3}
> 
> END
> ------_=_NextPart_000_01C276BD.956BDEAA--
> 

 ------------------------------------------------------
 Randy Presuhn          BMC Software, Inc.  SJC-1.3141
 [email-masked]  2141 North First Street
 Tel: +1 408 546-1006   San José, California 95131  USA
 ------------------------------------------------------
 My opinions and BMC's are independent variables.
 ------------------------------------------------------

---

From: "Lam, Hing-Kam (Kam)" <[email-masked]>
Date: Fri, 18 Oct 2002 13:18:57 -0400

Hi,

Thanks for the advice. I think making the syntax of 
IANAItuProbableCuasesOrZero to INTEGER (0..2147483647) is indeed a 
good idea. It will satisfy the compiler and also be consistent 
with the syntax of IANAItuProbableCauses that is INTEGER. 
(Note that however, in the Alarm MIB, there is no explicit 
restriction on IANAItuProbableCauses to non-negative values though.)

No changes to the mib will be made for the other warnings.

Here is a summary of changes that will be reflected in version -06- :
(1) import mib-2
(2) add ; at the end of imported list
(3) change the syntax of IANAItuProbableCuasesOrZero to INTEGER (0..2147483647)
(4) change the MAX-ACCESS of arcNalmTimeRemaining from read-write to read-create
(5) add
         GROUP  arcTIGroup
         DESCRIPTION
           "This group is REQUIRED for ARC settings
            that provide the Time Inhibit (TI) function."

         GROUP  arcQICDGroup
         DESCRIPTION

(6) add arcStorageType to arcSettingGroup
(7) clarify the arcSettingGroup and arcTIGroup in the DESCRIPTION clauses. 

If there is no further comments, version -06- will be submitted soon.

Regards,
Kam

> From: Randy Presuhn [mailto:[email-masked]]
> Sent: Friday, October 18, 2002 12:07 PM
> To: [email-masked]
> Cc: [email-masked]; [email-masked]; [email-masked]
> Subject: Re: FW: ARC MIB Compilation
> 
> 
> Hi -
> 
> > Message-ID: 
> <[email-masked]>
> > We did a strict compilation on the ARC mib and got the 
> following result. (I also attached is the mib module that was used.)
> > 
> > For 
> > I will change the MAX-ACCESS of arcNalmTimeRemaining from 
> read-write to read-create and it should resolve the error.
> 
> Good.
> 
> > Do I need to explicitly specify the range of the 
> IANAItuProbableCausesOrZero TC, i.e., Unsigned32 (0..4294967295)?
> > Also note that the description of the 
> IANAItuProbableCausesOrZero TC states that this TC takes any value of
> > IANAItuProbableCauses or 0. IANAItuProbableCauses  is 
> defined in the Alarm MIB with syntax INTEGER.
> 
>  Tel: +1 408 546-1006   San Jose, California 95131  USA

---

From: "Wijnen, Bert (Bert)" <[email-masked]>
Date: Fri, 18 Oct 2002 19:39:39 +0200

> define negative probable causes in the future.
So maybe we should add the the IANAItuProbableCuases TC a sentence
in the DESCRIPTION clause to state that negative values should never
be assigned because the TC is sometimes used for Index objects 

Bert

---

From: Randy Presuhn <[email-masked]>
Date: Fri, 18 Oct 2002 10:56:25 -0700 (PDT)

Hi -

> Message-ID: <[email-masked]>
> From: "Wijnen, Bert (Bert)" <[email-masked]>
> To: Randy Presuhn <[email-masked]>, [email-masked]
> Cc: [email-masked], [email-masked], [email-masked]
> Subject: RE: FW: ARC MIB Compilation
> Date: Fri, 18 Oct 2002 19:39:39 +0200
> 
...

Ok with me.