Subject: Comments on draft-ietf-disman-remops-mib-04.txt (part 2)

From: Randy Presuhn <[email-masked]>
Date: Wed, 12 May 1999 16:24:04 -0700 (PDT)

Hi -

More comments on <draft-ietf-disman-remops-mib-04.txt> 
These cover pages 26..41 of the draft.

=================
Page 26:

|          FROM SNMPv2-SMI                  -- RFC1902
                                                  2578

|          FROM SNMPv2-TC                   -- RFC1903
                                                  2579

|          FROM SNMPv2-CONF                 -- RFC1904
                                                  2580

|          FROM SNMP-FRAMEWORK-MIB          -- RFC2271
                                                  2571

|      ::= { experimental 84 2 }
Add note to IANA to get final assignment

|   traceRouteMaxConcurrentRequests OBJECT-TYPE
|      SYNTAX      Integer32 (1..100)
|      MAX-ACCESS  read-write
|      STATUS      current
|      DESCRIPTION
|         "The maximum number of concurrent active traceroute requests
|         that are allowed within an agent implementation."
|      DEFVAL { 10 }
|      ::= { traceRouteObjects 1 }

The limit of 100 is really not an architectural limit, so I'd prefer
2^31-1 (if we're using Integer32 rather than Unsigned32).  Of course,
an implementation may impose a significantly lower limit.

====================
Page 28:

|   traceRouteCtlOwnerIndex OBJECT-TYPE

Same comment on this as for pingCtlOwnerIndex.

|   traceRouteCtlHostAddress OBJECT-TYPE
|      SYNTAX      HostAddress
|      MAX-ACCESS  read-create
|      STATUS      current
|      DESCRIPTION
|          "Specifies the host address used on the
|          traceroute request at the remote host.  The
|          host address type can be determined by the
|          examining the value of the corresponding
|          traceRouteCtlHostAddressType index element."
|      ::= { traceRouteCtlEntry 4 }

Defval?  Must this be set for row to go active?  What happens with
multicast/broadcast addresses?

===============
Page 30:
|   traceRouteCtlPort OBJECT-TYPE
|      SYNTAX      Integer32 (1..65535)
|      UNITS       "UDP Port"
|      MAX-ACCESS  read-create
|      STATUS      current
|      DESCRIPTION
|          "Specifies the UDP port to sent the traceroute
|          request to.  Need to specify a port that is not in
|          use at the destination host."
|      DEFVAL { 4096 }
|      ::= { traceRouteCtlEntry 9 }

Where did the defval come from?  Begs the question: do we provide a
recommended procedure for finding a port not in use at the destination
host?

|   traceRouteCtlSourceAddress OBJECT-TYPE
|      SYNTAX      HostAddress
|      MAX-ACCESS  read-create
|      STATUS      current
|      DESCRIPTION
|          "Use the specified IP address
|          (which must be given as an IP number, not a hostname)
|          as the source address in outgoing probe packets. On
|          hosts with more than one IP address, this option can
|          be used to force the source address to be something
|          other than the IP address of the interface the probe
|          packet is sent on. If the IP address is not one of this
|          machine's interface addresses, an error is returned and
|          nothing is sent."
|      DEFVAL { ''H }
|      ::= { traceRouteCtlEntry 12 }

And what does ''H mean in this context?

|   traceRouteCtlMiscOptions OBJECT-TYPE
|      SYNTAX      SnmpAdminString (SIZE(0..64))
|      MAX-ACCESS  read-create
|      STATUS      current
|      DESCRIPTION
|          "Enables an application to specify implementation
|          dependent options."
|      DEFVAL { ''H }
|      ::= { traceRouteCtlEntry 14 }

How does one discover what these options are?

|   traceRouteCtlMaxFailures OBJECT-TYPE

units?

===================
Page 32:

|   traceRouteCtlFrequency  OBJECT-TYPE
|      SYNTAX      Integer32
|      UNITS       "seconds"
|      MAX-ACCESS  read-create
|      STATUS      current
|      DESCRIPTION
|          "The number of seconds to wait before repeating a
|          traceRoute test as defined by the value of the
|          various objects in the corresponding row."
|      DEFVAL { 0 }
|      ::= { traceRouteCtlEntry 18 }

What does zero mean? No delay between repetitions?

|   traceRouteCtlAdminStatus OBJECT-TYPE
|      SYNTAX      INTEGER {
|                            up(1),    -- operation should be started
|                            down(2)   -- operation should be stop
|                          }
|      MAX-ACCESS  read-create
|      STATUS      current
|      DESCRIPTION
|          "Reflects the desired state that an traceRouteCtlEntry
|          should be in:
|
|             up(1)    - Attempt to active the test as defined by
|                        this traceRouteCtlEntry.
|             down(1)  - Deactive the test as defined by this
|                        traceRouteCtlEntry.
|
|          Refer to the corresponding traceRouteResultsOperStatus to
|          determine the operational state of the test defined by
|          this entry."
|       DEFVAL { down }
|      ::= { traceRouteCtlEntry 20 }

This seems to be a bit of a stretch from the usual meanings of
"up" and "down".  I'd suggest something like "start-requested" and
"stop-requested".

=================
Page 33:

|   traceRouteCtlMaxRows OBJECT-TYPE

units?

|      SYNTAX      Integer32 (0..1500)
|      MAX-ACCESS  read-create
|      STATUS      current
|      DESCRIPTION
|          "The maximum number of entries allowed in the
|          traceRouteProbeHistoryTable.  An implementation of
|          this MIB will remove the oldest entry in the
|          traceRouteProbeHistoryTable to allow the addition
|          of an new entry once the number of rows in the
|          traceRouteProbeHistoryTable reaches this value.
|          Entries will be removed on the basis of oldest
|          traceRouteProbeHistoryTime value first.
|
|          A value of 0 for this object disables creation of
|          traceRouteProbeHistoryTable entries."
|      DEFVAL      { 50 }
|      ::= { traceRouteCtlEntry 21 }

The behaviour here is specified in terms of an object
(traceRouteProbeHistoryTime) which is not guaranteed
to exist in all implementations.  Suggest replacing
"traceRouteProbeHistoryTime value" with "entry with
the same traceRouteCtlOwnerIndex and traceRouteCtlTestName
values"

===================
Page 34:

|   traceRouteCtlRowStatus OBJECT-TYPE

which objects are required for row to go active?

|          can be determined by examination of it's
                                                 X

|   traceRouteResultsEntry OBJECT-TYPE
|      SYNTAX      TraceRouteResultsEntry
|      MAX-ACCESS  not-accessible
|      STATUS      current
|      DESCRIPTION
|          "Defines an entry in the traceRouteResultsTable."

When do these entries come into being?  When do they go away?

==============
Page 35:

|   traceRouteResultsOperStatus OBJECT-TYPE
|      SYNTAX      INTEGER {
|                            up(1),    -- test is in progress
|                            down(2)   -- test has stopped
|                          }
|      MAX-ACCESS  read-only
|      STATUS      current
|      DESCRIPTION
|          "Reflects the operational state of an traceRouteCtlEntry:
|
|             up(1)    - Test is active.
|             down(1)  - Test has stopped."
|      ::= { traceRouteResultsEntry 1 }

Is this supposed to be "actual" (as opposed to "requested") state?
"up" and "down" seem to be a bit of a stretch from the usual way
these words are used.

|   traceRouteResultsCurHopCount OBJECT-TYPE
|      SYNTAX      Gauge32

units? "hops"

|   traceRouteResultsCurProbeCount OBJECT-TYPE

units?

===============
Page 36:

|   traceRouteResultsTestAttempts OBJECT-TYPE

units?

|   traceRouteResultsTestSuccesses OBJECT-TYPE

units?

|   traceRouteResultsLastGoodPath OBJECT-TYPE
|      SYNTAX      DateAndTime
|      MAX-ACCESS  read-only
|      STATUS      current
|      DESCRIPTION
|          "The date and time when the last path was determined."
|      ::= { traceRouteResultsEntry 7 }

last path or last good path?
value if none? (row would still exist?)

===============
Page 37:
|          An implementation of this MIB will remove the oldest
|          entry in the traceRouteProbeHistoryTable to allow the
|          addition of an new entry once the number of rows in
|          the traceRouteProbeHistoryTable reaches the value specified
|          by traceRouteCtlMaxRows.  Entries will be removed on the
|          basis of oldest traceRouteProbeHistoryTime value first."

Same as other comments regarding HistoryTimes not being present in
all implementations.  Need to clarify traceRouteProbeHistoryIndex's
role in all this.

|   traceRouteProbeHistoryIndex OBJECT-TYPE
|      SYNTAX      Unsigned32 (1..'ffffffff'h)
|      MAX-ACCESS  not-accessible
|      STATUS      current
|      DESCRIPTION
|          "An entry in this table is created when the results of
|          a traceroute probe is determined.  The initial 2 instance
|          identifier index values identifies the traceRouteCtlEntry
|          that a probe result (traceRouteProbeHistoryEntry) belongs
|          to."
|      ::= { traceRouteProbeHistoryEntry 1 }

consecutive assignment?  wrap behaviour?  initial value?

==============
Page 38:
|   traceRouteProbeHistoryResponse OBJECT-TYPE

units?

===========
Page 39:
|          "Timestamp for when this probe results was determined."

"this probe results was" -> "these probe results were" ?

===========
Page 41:

|         "The notification which are required to be supported by

"notification" -> "notifications"

 -----------------------------------------------------------------------
 Randy Presuhn           [email-masked]     http://www.bmc.com
 Voice: +1 408 616-3100  BMC Software, Inc.           965 Stewart Drive
 Fax:   +1 408 616-3101  Sunnyvale, California 94086  USA
 -----------------------------------------------------------------------
 Any relationship between my opinions and BMC's is coincidental.
 -----------------------------------------------------------------------

---

From: [email-masked]
Date: Thu, 27 May 1999 08:24:54 -0400

Hi,

>recommended procedure for finding a port not in use at the destination

As mentioned in the previous note from the BSD implementation of
traceroute. I've changed this to default to the IANA assignment.

>And what does ''H mean in this context?

Zero length octet string which implies that this capability is by
default disabled. I will add text.

>How does one discover what these options are?

Figure out what specific agent implementation is being used
and search though whatever documentation it provides.

>>          various objects in the corresponding row."
>|      DEFVAL { 0 }

>What does zero mean? No delay between repetitions?

I will add some text. It means only perform the test 1 time.

>"up" and "down".  I'd suggest something like "start-requested" and

I've changed them to enabled and disabled as per my response to your
1ast note.

>which objects are required for row to go active?

Just traceRouteCtlHostAddress. Text added.

>When do these entries come into being?  When do they go away?

There is text in the description for traceRouteCtlRowStatus:

        "This object allows entries to be created and deleted
        in the traceRouteCtlTable.  Deletion of an entry in
        this table results in all corresponding (same
        traceRouteCtlOwnerIndex and traceRouteCtlTestName
        index values) traceRouteResultsTable and
        traceRouteProbeHistoryTable entries being deleted...."

How about added the following text to the description of
traceRouteResultsTable:

        An entry is added to the traceRouteResultsTable when an
        traceRouteCtlEntry is started by successful transition
        of its traceRouteCtlAdminStatus object to enabled(1).

>"up" and "down" seem to be a bit of a stretch from the usual way

Yes. Changed to enabled(1) and disabled(2).

>units? "hops"

Sure. Added.

>units?

OK. "probes".

>units?

OK. "attempts".

>units?

OK. "successes".

>value if none? (row would still exist?)

Is there a difference? I will add text. I was thinking of when the
complete path was determined.

>all implementations.  Need to clarify traceRouteProbeHistoryIndex's

Same fix as per the ping MIB.

>consecutive assignment?  wrap behaviour?  initial value?

Same as with the ping MIB.

>units?

Added.

---

From: Randy Presuhn <[email-masked]>
Date: Thu, 27 May 1999 15:52:22 -0700 (PDT)

Hi -

> From: [email-masked]
> To: Randy Presuhn <[email-masked]>
> cc: [email-masked]
> Date: Thu, 27 May 1999 08:24:54 -0400
> Subject: Re: Comments on draft-ietf-disman-remops-mib-04.txt (part 2)
...
> and search though whatever documentation it provides.

(muffled gagging noises)
Sorry I asked.  :-)

...
>         of its traceRouteCtlAdminStatus object to enabled(1).
...

And: An entry is deleted from the traceRouteResultsTable when...