Re: I-D ACTION:draft-ietf-hubmib-power-ethernet-mib-02.txt

"C. M. Heard" <[email protected]>
Newsgroups gmane.ietf.hubmib
Message-ID <[email protected]>
On Wed, 3 Jul 2002 [email protected] wrote:

> A New Internet-Draft is available from the on-line Internet-Drafts
> directories.  This draft is a work item of the Ethernet Interfaces
> and Hub MIB Working Group of the IETF.
> 
> 	Title		: Power Ethernet (DTE Power via MDI) MIB
> 	Author(s)	: A. Berger, D. Romascanu
> 	Filename	: draft-ietf-hubmib-power-ethernet-mib-02.txt
> 	Pages		: 28
> 	Date		: 02-Jul-02
> 	
> This memo defines a portion of the Management Information Base (MIB)
> for use with network management protocols in the Internet community.
> The document proposes an extension to the Ethernet-like Interfaces
> MIB [RFC2665] with a set of objects for managing a power Ethernet
> Powered Device (PD) and/or Power Source Equipment (PSE).
> 
> A URL for this Internet-Draft is:
> http://www.ietf.org/internet-drafts/draft-ietf-hubmib-power-ethernet-mib-02.txt

Greetings,

I have some MIB doctor type comments about this draft.  When I run it through
smilint-0.4.0 with all complaints turned on except for warnings about long
identifier names I get this:

% smilint -l 9 -s ./POWER-ETHERNET-MIB |& egrep -v 'name .* longer than 32 characters$'
./POWER-ETHERNET-MIB:117: [6] use Integer32 instead of INTEGER in SMIv2
./POWER-ETHERNET-MIB:128: [6] use Integer32 instead of INTEGER in SMIv2
./POWER-ETHERNET-MIB:375: [6] use Integer32 instead of INTEGER in SMIv2
./POWER-ETHERNET-MIB:485: [6] use Integer32 instead of INTEGER in SMIv2
./POWER-ETHERNET-MIB:549: [6] use Integer32 instead of INTEGER in SMIv2
./POWER-ETHERNET-MIB:561: [6] use Integer32 instead of INTEGER in SMIv2
./POWER-ETHERNET-MIB:600: [6] use Integer32 instead of INTEGER in SMIv2
./POWER-ETHERNET-MIB:76: [5] index element `pethPsePortGroupIndex' of row `pethPsePortEntry' should be not-accessible in SMIv2 MIB
./POWER-ETHERNET-MIB:76: [5] index element `pethPsePortIndex' of row `pethPsePortEntry' should be not-accessible in SMIv2 MIB
./POWER-ETHERNET-MIB:456: [5] index element `pethMainPseGroupIndex' of row `pethMainPseEntry' should be not-accessible in SMIv2 MIB
./POWER-ETHERNET-MIB:628: [5] notification `pethPsePortOnOffTrap' is not reverse mappable
./POWER-ETHERNET-MIB:637: [5] notification `pethPsePortCurrentStatusTrap' is not reverse mappable
./POWER-ETHERNET-MIB:645: [5] notification `pethMainPseBackUpActivatedTrap' is not reverse mappable
./POWER-ETHERNET-MIB:653: [5] notification `pethMainPowerUsageOnTrap' is not reverse mappable
./POWER-ETHERNET-MIB:661: [5] notification `pethMainPowerUsageOffTrap' is not reverse mappable
./POWER-ETHERNET-MIB:181: [4] node `pethPsePortPowerDetectionControl' must be contained in at least one conformance group
./POWER-ETHERNET-MIB:484: [4] node `pethMainPseGroupIndex' must be contained in at least one conformance group
./POWER-ETHERNET-MIB:670: [6] current group `pethPsePortTrapGroup' is unconditionally optional
./POWER-ETHERNET-MIB:676: [6] current group `pethMainPowerTrapGroup' is unconditionally optional

The complaints about use of INTEGER vs. Integer32, about notifications
being assigned OIDs that preclude a reversible v2 -> v1 transformation,
and about accessible objects not in a conformance group can be dealt with
by some fairly mechanical edits.  Since I've included a context diff below
with explicit suggestions for fixes I won't say anything further about
these matters (note, the context diff has some typo corrections too).

Fixing the complaints about accessible index items is not so mechanical.
It turns out that the objects in question -- pethPsePortGroupIndex,
pethPsePortIndex, and pethMainPseGroupIndex -- are present in the
OBJECTS clause of the notifications, which requires that they be
made accessible.  Although this practice is supported by SMIv2, it
is only supposed to be used when translating legacy MIB modules from
SMIv1 (see RFC 2578, Section 7.7, pp. 28-29 and in particular note (a)
on the top of p. 29).  To remedy this, the following steps are suggested:

(1) Remove the index objects from the OBJECTS clauses.  If the remaining
objects do not contain an accessible column from each of the tables to
which the deleted index objects applied, add one or more such columns
for each such table.  (Note: since the name field of the accessible
column will contain the index values when the notification is sent,
this obviates the need to send the index objects separately.)

(2) Reduce the MAX-ACCESS of the index objects to not-accessible and
remove them from the object groups where they presently appear.

There are two traps where step (1) is not mechanical --
pethMainPowerUsageOnTrap and pethMainPowerUsageOffTrap
currently list only pethMainPseGroupIndex in the OBJECTS
clause.  Perhaps pethMainPseConsumptionPower would be a
suitable column to include.

Before I close I'd like to comment on a few other things.  First,
the two NOTIFICATION-GROUPs appear in the notification definition
section rather than the conformance section and are registered under
the notification OID rather than the conformance OID.  That's not
illegal but it is a bit unusual;  it might be better to follow
established custom of putting them in the conformance section.
Second, these notification groups are not mentioned in any of
the GROUP clauses of the compliance statements, whence the
"unconditionally optional" warning.  It would be better to have a
GROUP clause even if the unconditionally optional status was intended.
Since the pethTrapsControlGroup is mandatory for PSEs, I would suspect
that unconditionally optional status was not intended (and is
inappropriate) for the pethMainPowerTrapGroup.  Finally, the relationship
between pethTrapsControlGroupIndex and pethMainPseGroupIndex needs to be
clarified so that it is clear what the objects in pethTrapsControlTable
actually control (if there is always a 1-1 correspondence between
the rows in the pethTrapsControlTable and the pethMainPseTable then
it would be possible to just put pethTrapsControlEnable into the
pethMainPseTable and eliminate the pethTrapsControlTable).

Regards,

Mike

*** draft-ietf-hubmib-power-ethernet-mib-02.txt	Tue Jul  2 11:13:23 2002
--- draft-ietf-hubmib-power-ethernet-mib-0X.txt	Fri Jul  5 09:23:24 2002
***************
*** 459,465 ****
            DESCRIPTION
                     "The MIB module for for managing Powered Devices (PD) or
                     Power Source Equipment (PSE) working according to the IEEE
!                    802.af Powere Ethernet (DTE Power via MDI) standard.
  
                    The following terms are used throughout this
                    MIB module.  For complete formal definitions,
--- 459,465 ----
            DESCRIPTION
                     "The MIB module for for managing Powered Devices (PD) or
                     Power Source Equipment (PSE) working according to the IEEE
!                    802.af Power Ethernet (DTE Power via MDI) standard.
  
                    The following terms are used throughout this
                    MIB module.  For complete formal definitions,
***************
*** 524,532 ****
  
        PethPsePortEntry ::= SEQUENCE {
            pethPsePortGroupIndex
!              INTEGER,
            pethPsePortIndex
!              INTEGER,
            pethPsePortAdminEnable
                INTEGER,
            pethPsePortPowerPairsControlAbility
--- 524,532 ----
  
        PethPsePortEntry ::= SEQUENCE {
            pethPsePortGroupIndex
!              Integer32,
            pethPsePortIndex
!              Integer32,
            pethPsePortAdminEnable
                INTEGER,
            pethPsePortPowerPairsControlAbility
***************
*** 564,570 ****
        }
  
          pethPsePortGroupIndex OBJECT-TYPE
!           SYNTAX      INTEGER (1..2147483647)
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
--- 564,570 ----
        }
  
          pethPsePortGroupIndex OBJECT-TYPE
!           SYNTAX      Integer32 (1..2147483647)
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
***************
*** 575,581 ****
            ::= { pethPsePortEntry 1 }
  
          pethPsePortIndex OBJECT-TYPE
!           SYNTAX      INTEGER(1..2147483647)
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
--- 575,581 ----
            ::= { pethPsePortEntry 1 }
  
          pethPsePortIndex OBJECT-TYPE
!           SYNTAX      Integer32 (1..2147483647)
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
***************
*** 872,878 ****
  
        PethPdPortEntry ::= SEQUENCE {
            pethPdPortIndex
!               INTEGER,
            pethPdPortPowerPairs
                INTEGER,
            pethPdPortDetectionStatus
--- 872,878 ----
  
        PethPdPortEntry ::= SEQUENCE {
            pethPdPortIndex
!               Integer32,
            pethPdPortPowerPairs
                INTEGER,
            pethPdPortDetectionStatus
***************
*** 882,888 ****
        }
  
          pethPdPortIndex OBJECT-TYPE
!           SYNTAX      INTEGER (0..65535)
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
--- 882,888 ----
        }
  
          pethPdPortIndex OBJECT-TYPE
!           SYNTAX      Integer32 (0..65535)
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
***************
*** 999,1005 ****
  
        PethMainPseEntry ::= SEQUENCE {
            pethMainPseGroupIndex
!               INTEGER,
            pethMainPsePower
                Integer32,
            pethMainPseOperStatus
--- 999,1005 ----
  
        PethMainPseEntry ::= SEQUENCE {
            pethMainPseGroupIndex
!               Integer32,
            pethMainPsePower
                Integer32,
            pethMainPseOperStatus
***************
*** 1011,1017 ****
             pethMainPseBackupActivated
                  TruthValue,
            pethMainPseUsageThreshold
!               INTEGER,
  
  
  
--- 1011,1017 ----
             pethMainPseBackupActivated
                  TruthValue,
            pethMainPseUsageThreshold
!               Integer32,
  
  
  
***************
*** 1025,1034 ****
  
  
            pethMainPseMaximumDcPower
!                 INTEGER
        }
          pethMainPseGroupIndex OBJECT-TYPE
!           SYNTAX      INTEGER (0..65535)
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
--- 1025,1034 ----
  
  
            pethMainPseMaximumDcPower
!                 Integer32
        }
          pethMainPseGroupIndex OBJECT-TYPE
!           SYNTAX      Integer32 (0..65535)
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
***************
*** 1104,1121 ****
                    ::= { pethMainPseEntry 6 }
  
          pethMainPseUsageThreshold OBJECT-TYPE
!           SYNTAX      INTEGER (1..99)
            UNITS      "%"
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION
!                   "The usage threshold expressed in percens for
                     comparing the measured power and initiating
                     an alarm if the threshold is exceeded."
            ::= { pethMainPseEntry 7 }
  
        pethMainPseMaximumDcPower  OBJECT-TYPE
!          SYNTAX             INTEGER
           UNITS               "Watts"
           MAX-ACCESS         read-write
           STATUS             current
--- 1104,1121 ----
                    ::= { pethMainPseEntry 6 }
  
          pethMainPseUsageThreshold OBJECT-TYPE
!           SYNTAX      Integer32 (1..99)
            UNITS      "%"
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION
!                   "The usage threshold expressed in percent for
                     comparing the measured power and initiating
                     an alarm if the threshold is exceeded."
            ::= { pethMainPseEntry 7 }
  
        pethMainPseMaximumDcPower  OBJECT-TYPE
!          SYNTAX             Integer32
           UNITS               "Watts"
           MAX-ACCESS         read-write
           STATUS             current
***************
*** 1162,1173 ****
  
        PethTrapsControlEntry ::= SEQUENCE {
            pethTrapsControlGroupIndex
!               INTEGER,
            pethTrapsControlEnable
                  INTEGER
        }
          pethTrapsControlGroupIndex OBJECT-TYPE
!           SYNTAX      INTEGER (1..65535)
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
--- 1162,1173 ----
  
        PethTrapsControlEntry ::= SEQUENCE {
            pethTrapsControlGroupIndex
!               Integer32,
            pethTrapsControlEnable
                  INTEGER
        }
          pethTrapsControlGroupIndex OBJECT-TYPE
!           SYNTAX      Integer32 (1..65535)
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
***************
*** 1207,1218 ****
     --
     --
  
          pethPsePortOnOffTrap NOTIFICATION-TYPE
              OBJECTS     { pethPsePortGroupIndex,pethPsePortIndex,pethPsePortDetectionStatus }
              STATUS      current
              DESCRIPTION " This trap indicate if Pse Port is delivering
                            or not power to the PD."
!              ::= { pethNotifications 1 }
  
  
  
--- 1207,1220 ----
     --
     --
  
+         pethTraps OBJECT IDENTIFIER ::= { pethNotifications 0 }
+ 
          pethPsePortOnOffTrap NOTIFICATION-TYPE
              OBJECTS     { pethPsePortGroupIndex,pethPsePortIndex,pethPsePortDetectionStatus }
              STATUS      current
              DESCRIPTION " This trap indicate if Pse Port is delivering
                            or not power to the PD."
!              ::= { pethTraps 1 }
  
  
  
***************
*** 1222,1228 ****
              DESCRIPTION
                    " This trap indicate Port Change Status and
                         it will be sent on every status change."
!             ::= { pethNotifications 2 }
  
          pethMainPseBackUpActivatedTrap NOTIFICATION-TYPE
              OBJECTS     { pethMainPseGroupIndex,pethMainPseBackupActivated }
--- 1224,1230 ----
              DESCRIPTION
                    " This trap indicate Port Change Status and
                         it will be sent on every status change."
!             ::= { pethTraps 2 }
  
          pethMainPseBackUpActivatedTrap NOTIFICATION-TYPE
              OBJECTS     { pethMainPseGroupIndex,pethMainPseBackupActivated }
***************
*** 1230,1236 ****
              DESCRIPTION
                    " This trap indicate BackUp is Activated or
                         BackUp is released."
!             ::= { pethNotifications 3 }
  
          pethMainPowerUsageOnTrap NOTIFICATION-TYPE
              OBJECTS     { pethMainPseGroupIndex }
--- 1232,1238 ----
              DESCRIPTION
                    " This trap indicate BackUp is Activated or
                         BackUp is released."
!             ::= { pethTraps 3 }
  
          pethMainPowerUsageOnTrap NOTIFICATION-TYPE
              OBJECTS     { pethMainPseGroupIndex }
***************
*** 1238,1244 ****
              DESCRIPTION
                    " This trap indicate PSE Threshold  usage indication is on,
                         the usage power is above the threshold."
!             ::= { pethNotifications 4 }
  
           pethMainPowerUsageOffTrap NOTIFICATION-TYPE
              OBJECTS     { pethMainPseGroupIndex }
--- 1240,1246 ----
              DESCRIPTION
                    " This trap indicate PSE Threshold  usage indication is on,
                         the usage power is above the threshold."
!             ::= { pethTraps 4 }
  
           pethMainPowerUsageOffTrap NOTIFICATION-TYPE
              OBJECTS     { pethMainPseGroupIndex }
***************
*** 1246,1253 ****
              DESCRIPTION
                    " This trap indicate PSE Threshold usage indication off,
                         the usage power is below the threshold.."
!             ::= { pethNotifications 5 }
  
  
       pethPsePortTrapGroup NOTIFICATION-GROUP
               NOTIFICATIONS { pethPsePortOnOffTrap, pethPsePortCurrentStatusTrap}
--- 1248,1257 ----
              DESCRIPTION
                    " This trap indicate PSE Threshold usage indication off,
                         the usage power is below the threshold.."
!             ::= { pethTraps 5 }
! 
  
+      pethTrapGroups OBJECT IDENTIFIER ::= { pethNotifications 1 }
  
       pethPsePortTrapGroup NOTIFICATION-GROUP
               NOTIFICATIONS { pethPsePortOnOffTrap, pethPsePortCurrentStatusTrap}
***************
*** 1265,1277 ****
  
  
               DESCRIPTION  "Pse trap indications"
!            ::= { pethNotifications 6 }
  
         pethMainPowerTrapGroup NOTIFICATION-GROUP
               NOTIFICATIONS { pethMainPseBackUpActivatedTrap, pethMainPowerUsageOnTrap,pethMainPowerUsageOffTrap}
               STATUS          current
               DESCRIPTION  "Pse trap indications"
!            ::= { pethNotifications 7 }
  
  
     --
--- 1269,1281 ----
  
  
               DESCRIPTION  "Pse trap indications"
!            ::= { pethTrapGroups 1 }
  
         pethMainPowerTrapGroup NOTIFICATION-GROUP
               NOTIFICATIONS { pethMainPseBackUpActivatedTrap, pethMainPowerUsageOnTrap,pethMainPowerUsageOffTrap}
               STATUS          current
               DESCRIPTION  "Pse trap indications"
!            ::= { pethTrapGroups 2 }
  
  
     --
***************
*** 1339,1344 ****
--- 1343,1349 ----
            pethPsePortAdminEnable,
            pethPsePortPowerPairsControlAbility,
            pethPsePortPowerPairs,
+           pethPsePortPowerDetectionControl,
            pethPsePortDetectionStatus,
            pethPsePortPowerPriority,
            pethPsePortCurrentStatus,
***************
*** 1365,1370 ****
--- 1370,1376 ----
  
     pethMainPseGroup OBJECT-GROUP
         OBJECTS {
+           pethMainPseGroupIndex,
            pethMainPsePower,
            pethMainPseOperStatus,
            pethMainPseConsumptionPower,
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.