Subject: [ipcdn] draft-ietf-ipcdn-pktc-mtamib-05 - SMI question for pktcMtaDevErrorsTooManyErrors

From: "Jean-Francois Mule" <[email-masked]>
Date: Thu, 20 Jan 2005 17:11:15 -0700

I like Bert's proposal to create an OID to deal with the internationalization issue raised by Dave and Randy. See below, a quick SMI question.

Eugene integrated the comments and proposed the following text:
pktcMtaDevErrorOid  OBJECT-TYPE  
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        " This object contains a human readable representation
          (character string) of the OID corresponding to the
          configuration file parameter that caused the particular
          error.
          For example, if the value of the pktcMtaDevEnabled object
          in the configuration file caused an error, then this
          object instance will contain the human readable string of
          '1.3.6.1.2.1.XXX.1.1.6.0'.

    -- ************************************************************
    -- * NOTES TO RFC Editor (to be removed prior to publication) *
    -- *                                                          *
    -- * Please replace XXX with the IANA-assigned number under   *
    -- * mib-2.                                                   *
    -- ************************************************************

          If the MTA generated an error because it was not able 
          to recognize a particular OID, then this object 
          instance would contain an empty value (zero-length
          string).
          For example, if the value of an OID in the configuration 
          file was interpreted by the MTA as being .1.2.3.4.5, and 
          the MTA was not able to recognize this OID as a valid one,
          this object instance will contain a zero-length string.

|         If the numbers of errors in the configuration file exceeds 
|         1024, then for all subsequent errors, the 
|         pktcMtaDevErrorOid of 1024th table's entry MUST contain 
|         a human readable representation of the 
|         pktcMtaDevErrorsTooManyErrors object, i.e. the string
|          '1.3.6.1.2.1.XXX.1.1.4.1.0'.

    -- ************************************************************
    -- * NOTES TO RFC Editor (to be removed prior to publication) *
    -- *                                                          *
    -- * Please replace XXX with the IANA-assigned number under   *
    -- * mib-2.                                                   *
    -- ************************************************************
          Note that the syntax of this object is SnmpAdminString
          rather OBJECT IDENTIFIER because the object value may
          not be a valid OID due to human or configuration tool
          encoding errors."

    ::= {pktcMtaDevErrorOidsEntry 2}

pktcMtaDevErrorValue  OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        " This object contains the value of the OID corresponding to
          the configuration file parameter that caused the error.
          If the MTA cannot recognize the OID of the
          configuration parameter causing the error, then this
          object instance contains the OID itself as interpreted
          by the MTA in human readable representation.
          If the MTA can recognize the OID but generate an error due
          to a wrong value of the parameter, then the object
          instance contains the erroneous value of the parameter as
          read from the configuration file.
          In both cases, the value of this object must be
          represented in human readable form as a character string.
          For example, if the value of the pktcMtaDevEnabled object
          in the configuration file was 3 (invalid value), then the
          pktcMtaDevErrorValue object instance will contain the
          human readable (string) representation of value '3'.
          Similarly, if the OID in the configuration file has been
          interpreted by the MTA as being 1.2.3.4.5, and the MTA
          cannot recognize this OID as a valid one, then this
          pktcMtaDevErrorValue object instance will contain human
          readable (string) representation of value '1.2.3.4.5'.

|         If the numbers of errors in the configuration file exceeds 
|         1024, then for all subsequent errors, the 
|         pktcMtaDevErrorValue of 1024th table's entry MUST contain 
|         a human readable representation of the 
|         pktcMtaDevErrorsTooManyErrors object, i.e. the string 
|         '1.3.6.1.2.1.XXX.1.1.4.1.0'."
    -- ************************************************************
    -- * NOTES TO RFC Editor (to be removed prior to publication) *
    -- *                                                          *
    -- * Please replace XXX with the IANA-assigned number under   *
    -- * mib-2.                                                   *
    -- ************************************************************

    ::= {pktcMtaDevErrorOidsEntry 3}

pktcMtaDevErrorReason  OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        " This object indicates the reason for the error or warning,
          as per the MTA's interpretation, in human readable form,  
          for example:
          'VALUE NOT IN RANGE', 'VALUE DOES NOT MATCH TYPE',
          'UNSUPPORTED VALUE', 'LAST 4 BITS MUST BE SET TO ZERO',
          'OUT OF MEMORY - CANNOT STORE', etc.
          This object may also contain vendor specific errors for
          private vendor OIDs and any proprietary error codes or 
          messages which can help diagnose configuration errors.

|         If the number of errors in the configuration file exceeds 
|         1024, then for all subsequent errors, the
|         pktcMtaDevErrorReason of 1024th table's entry must contain 
|         a human readable string indicating the reason for an 
|         error, for example, 'Too many errors in the configuration 
|         file.'."
    ::= {pktcMtaDevErrorOidsEntry 4}

||| and

| pktcMtaDevErrorsTooManyErrors OBJECT-IDENTITY
--                              ^^^^^^^^^^^^^^^
    STATUS     current
    DESCRIPTION
        "This object defines the OID corresponding to the error 
         condition when too many errors are encountered in the 
         MTA configuration file during provisioning."
       ::= { pktcMtaDevErrors  1 }

Question: 
Since this definition uses OBJECT-IDENTITY instead of OBJECT-TYPE, we cannot use it in the MODULE-COMPLIANCE, hence cannot formerly mandate that vendors support it (other than in the DESCRIPTION clause of pktcMtaDevErrorOid. Is this the best way we can do this in SMI? Should we use something else?

We'd like to release draft05 tomorrow. Any help & comments are appreciated. 
Jean-François 

_______________________________________________
IPCDN mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/ipcdn

---

From: "Randy Presuhn" <[email-masked]>
Date: Thu, 20 Jan 2005 21:47:43 -0800

Hi -

> From: "Jean-Francois Mule" <[email-masked]>
> To: "Eugene Nechamkin" <[email-masked]>; <[email-masked]>
> Sent: Thursday, January 20, 2005 4:11 PM
> Subject: [ipcdn] draft-ietf-ipcdn-pktc-mtamib-05 - SMI question forpktcMtaDevErrorsTooManyErrors
...
>           file was interpreted by the MTA as being .1.2.3.4.5, and

Please get rid of the leading "."
...
> |         pktcMtaDevErrorOid of 1024th table's entry MUST contain

you mean "of the table's 1024th entry"

> |          '1.3.6.1.2.1.XXX.1.1.4.1.0'.

...
> |         pktcMtaDevErrorValue of 1024th table's entry MUST contain

again "of the table's 1024th entry"

...
> |         pktcMtaDevErrorReason of 1024th table's entry must contain

ditto

> | pktcMtaDevErrorsTooManyErrors OBJECT-IDENTITY
...
> Question:
> Since this definition uses OBJECT-IDENTITY instead of OBJECT-TYPE,
>  we cannot use it in the MODULE-COMPLIANCE, hence cannot formerly
> mandate that vendors support it (other than in the DESCRIPTION clause of
> pktcMtaDevErrorOid. Is this the best way we can do this in SMI?

The MUST in the DESCRIPTION clause of pktcMtaDevErrorOid is
pretty definitive.  If the condition can occur in an implementation,
and that implementation does not use that value, then that implementation
is not conformant.

> Should we use something else?
...

If the data type were, for example, an integer type, then one could
use the SYNTAX clause within the OBJECT clause to specify in
the conformance material that the value was absolutely required.
There's no way that I know of to do that with OBJECT IDENTIFIERs.

However, the MUST in the DESCRIPTION clause of the object
leaves no wiggle room that I can see, so I wouldn't worry about it.

Randy