[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Comments on draft-ietf-eos-snmpbulk-00.txt

Hi -

A couple of comments on draft-ietf-ros-snmpbulk-00.txt:

   1)  In the section captioned "Changing PDU Encoding"
       the draft claims that BER encoding is responsible for
       the inefficiencies, and that this might be ameliorated
       by using PER.  Unfortunately, the ASN.1 definition of
       the SNMP PDUs provides comparatively few opportunities
       for PER to work its magic  The %30 figure quoted just
       won't happen for a walk of the ifTable.
       In particular, PER does very little for OIDs, which on
       page three are as a major contributor to message size.
       This is because (a) PER doesn't squish OID values, and
       (b) PER can only eliminate redundancies detectable at
       compile time.

   2)  Things need to be fleshed out regarding what happens
       when the maximum PDU size is approached.  Are only
       complete rows provided in the response?

   3)  How would one resume from the "middle" of a table?
       How does this interact with the algorithm for recognizing
       where the "instance" parts of variable names begin?
       Consider what happens with requests for augmented tables
       or requests with different starting points in the
       same column.

   4)  Since the proposal already changes the syntax,
       perhaps it might make sense to address the syntax
       where VarBindList appears in this proposal, and use
       something a little more aggressive like:

        SquishedResponseVarbindList ::=
            { theNonRepeaters varBindList,
              theRepeaters SEQUENCE
                           { index-fragment OCTET STRING,
                             SEQUENCE OF CHOICE
                                         { value ObjectSyntax,
                                           hole  NULL

        For the example on page 8, this would give:

        Response (<request-id>, 
                  ( ifTableLastChange:<value> ),
                  (( 1, (<value>, <value>, <value>, <value>)), 
                   ( 2, (<value>, <value>, <value>, <value>)), 
                   ( n, (<value>, <value>, <value>, <value>)), 

  Encoding the index fragment as octet string rather than
  object identifier saves a byte.

  The column identification can be done purely by position;
  the command generator knows what it asked for.  This gets
  rid of <SEQUENCE length OBJECT IDENTIFIER length 0.column>
  for each value, and only costs a <SEQUENCE length> for the
  whole list and a <SEQUENCE length> for each row.

  The end of the list can be marked by an empty SEQUENCE; this
  costs the same as the proposal's use of tagged NULL.

  Just a thought.

 Randy Presuhn          BMC Software, Inc.  1-3141
 randy_presuhn@bmc.com  2141 North First Street
 Tel: +1 408 546-1006   San Josť, California 95131  USA
 My opinions and BMC's are independent variables.