Response to EPON-MIB-04
"David T. Perkins" <[email protected]> Thu, 19 Jan 2006 23:01:05 -0800 (PST)
| Newsgroups | gmane.ietf.hubmib |
|---|---|
| Message-ID | <[email protected]> |
HI,
Comments on draft-ietf-hubmib-efm-epon-mib-04.txt - dtp:19-jan-2006
The document is much improved. However, it is not yet ready for
submission to the IESG. The changes introduced many grammar and
some spelling errors (and a couple of formatting problems), which
can be easily fixed. Unfortunately, there are a couple of
fundamental issues that remain. These are:
1) if an "SNMP MIB walk" was done on the
a) IF table
b) bridge table
c) MAU table
d) stack table (and inverted stack table)
e) etherLike interfaces table
d) and tables defined in the MIB module
what would be the answers to the following questions for
OLTs and for ONUs (for both, assume that each has a 1Gig Eth
interface and an optical interface, and for the OLT, there
are 3 ONUs connected to the optical interface):
a) how many entries would be in the IF table
b) what would the values be for each column in the
IF table. That is, what are the values of the
following objects: ifIndex, ifDescr, ifType,
ifMtu, ifSpeed, ifPhysAddress, ifAdminStatus,
ifOperStatus, ifLastChange, ifInOctets, ifInUcastPkts,
ifInNUcastPkts, ifInDiscards, ifInErrors,
ifInUnknownProtos, ifOutOctets, ifOutUcastPkts,
ifOutNUcastPkts, ifOutDiscards, ifOutErrors,
ifOutQLen
c) how the values of the above objects determined?
d) what happens when the value of ifAdmin is set to
'up(1)', 'down(2)', and 'testing(3)'?
e) the table dot1dBasePortTable has the mapping of
bridge ports to interfaces (and "circuit" on that
interface). What would the values be for the
objects dot1dBasePortIfIndex and dot1dBasePortCircuit
when the OLT supported bridging? (By the way,
document "Definitions of Managed Objects for Bridges"
was recently updated and, thus, the refs should
have RFC 4188 and not 1493.)
f) how many entries would be in table ifMauTable,
and would be the value of columns in the table.
g) Are the stack and inverted stack tables used?
If so, show the stacking relationships.
h) How many entries are in the etherLike tables
dot3StatsTable, dot3CollTable, dot3PauseTable,
and dot3HCStatsTable and what would the values
be of columns in the tables.
i) How many entries would be in the tables defined
in this document, which are:
dot3MpcpGlobalTable, dot3MpcpParamTable,
dot3MpcpStatTable, dot3OmpEmulationTable,
dot3OmpEmulationStatTable, dot3EponFecTable,
dot3ExtPkgGlobalControlTable,
dot3ExtPkgControlTable, dot3ExtPkgQueueTable,
dot3ExtPkgQueueSetsTable and
dot3ExtPkgOptIfTable.
2) Which tables in the MIB module allow rows to be created
and or deleted, and if so, then how? (Note the the phrase
"Rows at the table are created by direct SNMP management
setting." is used in the DESCRIPTION for many tables.
However, there was no information provided as to what
this means. (I'm guessing that my original comments
were not completely understood. What I was asking for
was to include in the DESCRIPTION clause whether or
not an SNMP SET could be done to columns in a table
to create or delete a row, and if so, to provide the
details (or indicate the object definition where the
details were provided). For example, the TCP connection
table does not support SNMP SETs to create rows in
the table. Rows are created as TCP connections
are created by processes running on the system.
However, an SNMP SET can be done on object tcpConnState
with value 'deleteTCB(12)' to terminate a TCP
connection (which results in the row being deleted
from the table). There are plenty of examples of
using a "RowStatus" object to create and delete
rows in tables (see the SNMPv3 RFCs, such as RFC 3413).
In the RMON MIB modules, there are examples of
control tables and data tables. A row creation
(or deletion) in a control table results in
row creation (or row deletion) in data tables.
Describing how instances are created and deleted,
(by system operation or configuration, and/or
via management operations) is a key piece of
information for the DESCRIPTION clauses of
tables and rows.
Until the above fundamental issues are resolved,
it doesn't make a lot of sense to spend much time
on other issues such as grouping and conformance.
Note that I did spot a bunch of easy to fix items
that I'm listing below:
section 1 - the text for the abstract is Ok. I just don't
get the term "registers" here.
section 1.1 - It's great to have a list of abbreviations.
a) However in documents that contain MIB modules, typically
the modules are extracted, and thus all the explanatory
is not available. To help, there is a little redundancy
that is added to the document of putting KEY definitions
and terms in the DESCRIPTION clause for the MIB module.
b) I didn't check to see if all the abbreviations were
actually used. If not, then I would remove them.
c) I thought CPE was customer premises equipment
section 1.2.3 - I was confused. Does "Gate messages"
start a new subsection?
section 3 (3.1-3.4) - This is still a little skimpy!
Look at RFC 2863, sections 3.1.1-3.1.18 & 4. Also
look at RFC 3635, section 3.2 and contained subsections.
section 4 - tables 1 thru 3. The column head should be
IEEE802.3ah attribute and not "object"
In the MIB module, there are several ASN.1 comments that
that are used to group the definitions. They start
out with phrase "Editor's note:". I believe the
grouping is useful, but I'd drop the "Editor's note:"
phrase. Note the first one is slightly out of order.
It should be moved to immediately before the
definition of OID dot3EponMpcpObjects.
Object dot3MpcpID - the DESCRIPTION needs to be translated
from GDMO speak to something meaningful in SMIv2.
(I commented on this before, and still don't see the
usefulness of the object!)
Do the objects dot3MpcpOperStatus and dot3MpcpAdminStatus
ever have different values. If not, then you should
have one object.
I really don't follow whether or not you can create LLIDs
via SNMP. It doesn't seem possible to me, just like
you can't create TCP connections. Thus, I don't understand
the object dot3LinkIndex. (And note: a table that
allows row creation uses "read-create" (and not "read-write")
for all writable objects in the table.)
Entries in parallel tables - I asked you to describe the
expected number of entries in tables. However, many of
the tables in the MIB module are related, and the text
was just copied. Instead, if there is a "base table"
that determines the number of entries, and additional
tables that have additional info, you should say
something like "The rows in this table are match the
rows in table X".
Transient condition in table dot3MpcpParamTable - it appears
that this table tries to capture the transient values
during the time a OLT and ONU are setting up a relationship
and determining an LLID. Is this a long enough running
activity that it can be seen, and what LLID value is
used durring negotiation (can't it change)?
Object dot3OmpEmulationID - the DESCRIPTION needs to be translated
from GDMO speak to something meaningful in SMIv2.
(I commented on this before, and still don't see the
usefulness of the object!)
Enum names in DESCRIPTION for object dot3ExtPkgObjectPowerDown -
The enum names start with lower-case letters and not
upper-case.
Queues - I really don't understand the queues. Could some
intro text be added.
Indexing - this is somewhat subjective. I don't believe that
it is proper to define an object in one table (which is not
an index in that table) and use it for an index in another
table. This is done in the queue tables and object dot3LinkIndex.
NOTE: this review was not complete. I didn't try to compile the
MIB module or run the document through the nit checker. Also,
I didn't look at the compliances.
-- that's it
Regards,
/david t. perkins