[resend] RE: Response to EPON-MIB-04

"Lior Khermosh" <[email protected]> Mon, 13 Feb 2006 09:58:02 +0200
Newsgroups gmane.ietf.hubmib
Message-ID <63DC5157D93D3046B78E8DDD9130C4E02923F9@passmail>
David,
Thanks for the comments. Please see some answers embedded in line.

Attached is also an updated draft. I am also submitting it.

Please note that I have decided to go back in the indexing method and to
use the ifIndex of the virtual links as the rows index instead of using
the link index which was defined at last response. Please see the
attached mails for that.


Thanks,
Lior
 

-----Original Message-----
From: David T. Perkins [mailto:[email protected]] 
Sent: Friday, January 20, 2006 9:01 AM
To: Lior Khermosh
Cc: [email protected]; Hub MIB
Subject: Response to EPON-MIB-04

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
>> At each ONU 1. At the OLT 3+1. Each one has a different ifIndex. The
MAC is virtually duplicated. So the number of entries is the number of
virtual entries + an additional entry for the broadcast.
Only the MAC address at the OLT is not duplicated as the physical I/F is
the same. It is specified in the IEEE802.3ah 64.1.2.

     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
>> 
At the ONU in working mode:
ifIndex   1
ifDescr   "I/F description"
ifType    gigabitEthernet (117) 1000base-Px
ifMtu     MTU size (1522)
ifSpeed   1000000000
ifPhysAddress   ONU_MAC_Address
ifAdminStatus   up
ifOperStatus    Up
ifLastChange    up_time 
ifInOctets      ONU1_octets_number
ifInUcastPkts   ONU1_unicast_frame_number
ifInNUcastPkts  ONU1_non_unicast_frame_number
ifInDiscards    ONU1_discard_frame_number
ifInErrors      ONU1_error_frame_number
ifInUnknownProtos ONU1_unknown_frame_number
ifOutOctets      ONU1_octets_number 
ifOutUcastPkts   ONU1_unicast_frame_number
ifOutNUcastPkts  ONU1_non_unicast_frame_number
ifOutDiscards    ONU1_discard_frame_number
ifOutErrors      ONU1_error_frame_number
ifOutQLen        ONU1_queue_frame_number

at the OLT in working mode the interfaces associated with the virtual
links:
ifIndex		1				2
3                      	65535

ifDescr		"I/F description"		"I/F description"
"I/F description"      	"I/F description"      
ifType		gigabitEthernet (117)	gigabitEthernet (117)
gigabitEthernet (117)  	gigabitEthernet (117)       
ifMtu			MTU size (1522)		MTU size (1522)
MTU size (1522)        	MTU size (1522)       
ifSpeed		1000000000			1000000000
1000000000             	1000000000       
ifPhysAddress	OLT_MAC_Address		OLT_MAC_Address
OLT_MAC_Address        	OLT_MAC_Address       
ifAdminStatus	up				up
up                     	up       
ifOperStatus	Up				Up
Up                     	Up       
ifLastChange	ONU1_up_time 		ONU2_up_time
ONU3_up_time           	up_time            
ifInOctets		ONU1_octets_number	ONU2_octets_number
ONU3_octets_number     	BRCT_octets_number       
ifInUcastPkts	ONU1_unic_frame_num	ONU2_unic_frame_num
ONU3_unic_frame_num 	BRCT_unic_frame_num    
ifInNUcastPkts	ONU1_non_unic_frame_num	ONU2_non_unic_frame_num
ONU3_non_unic_frame_num	BRCT_non_unic_frame_num
ifInDiscards	ONU1_disc_frame_num	ONU2_disc_frame_num
ONU3_disc_frame_num 	BRCT_disc_frame_numr    
ifInErrors		ONU1_err_frame_num	ONU2_err_frame_num
ONU3_err_frame_num  	BRCT_err_frame_num      
ifInUnknownProtos ONU1_unknw_frame_num	ONU2_unknw_frame_num
ONU3_unknw_frame_num 	BRCT_unknw_frame_num   
ifOutOctets		ONU1_octets_number 	ONU2_octets_number
ONU3_octets_number      BRCT_octets_number          
ifOutUcastPkts	ONU1_unic_frame_num	ONU2_unic_frame_num
ONU3_unic_frame_num 	BRCT_unic_frame_num    
ifOutNUcastPkts	ONU1_non_unic_frame_num	ONU2_non_unic_frame_num
ONU3_non_unic_frame_num BRCT_non_unic_frame_num 
ifOutDiscards	ONU1_disc_frame_num	ONU2_disc_frame_num
ONU3_disc_frame_num  	BRCT_disc_frame_num    
ifOutErrors		ONU1_err_frame_num	ONU2_err_frame_num
ONU3_err_frame_num    	BRCT_err_frame_num      
ifOutQLen		ONU1_queue_frame_num	ONU2_queue_frame_num
ONU3_queue_frame_num   	BRCt_queue_frame_num       

And the OLT interface:
ifIndex		100000				
ifDescr		"I/F description"		
ifType		gigabitEthernet (117)	
ifMtu			MTU size (1522)		
ifSpeed		1000000000			
ifPhysAddress	OLT_MAC_Address		
ifAdminStatus	up				
ifOperStatus	Up				
ifLastChange	OLT_up_time 		
ifInOctets		OLT_octets_number	
ifInUcastPkts	OLT_unic_frame_num	
ifInNUcastPkts	OLT_non_unic_frame_num	
ifInDiscards	OLT_disc_frame_num	
ifInErrors		OLT_err_frame_num	
ifInUnknownProtos OLT_unknw_frame_num	
ifOutOctets		OLT_octets_number 	
ifOutUcastPkts	OLT_unic_frame_num	
ifOutNUcastPkts	OLT_non_unic_frame_num	
ifOutDiscards	OLT_disc_frame_num	
ifOutErrors		OLT_err_frame_num	
ifOutQLen		OLT_queue_frame_num
                                            

     c) how the values of the above objects determined?
>> Object are determined for each virtual MAC

     d) what happens when the value of ifAdmin is set to
         'up(1)', 'down(2)', and 'testing(3)'?
>> When the ifAdmin is:
up(1) The virtual I/F is up and ready for operation.
down(2) The virtual I/F is down and not ready for operation.
testing(3) The virtual I/F is in testing mode.

     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.)
>>If the OLT supports bridging then The virtual physical I/Fs are the
bridge virtual ports. 
The values for dot1dBasePortIfIndex would be the number of the ifIndex
for the virtual port (1 for LLID1, 2 for LLID2,...)
I don't think that the dot1dBasePortCircuit is needed at this case as
there is an ifIndex so it will receive the 0 value.
>> Updated the reference number. Thanks.

     f) how many entries would be in table ifMauTable,
        and would be the value of columns in the table.
>>For the ONU there is a single row for the ifMauTable. At the OLT there
is a row for each virtual link (3+1 in the example above), ifMauIfIndex
has a value for each virtual link.

     g) Are the stack and inverted stack tables used?
        If so, show the stacking relationships.
>> At  the ONU I don't think there is a need to use the stack and
inverted stack tables. At the OLT, the OLT interface and the virtual
links associated with it are stacked as the OLT interface is the higher
layer of all other interfaces related to the virtual links. The stack
and inverted stack table are used for this purpose.


     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.
>> Similar to the above model for the ONU there is a single row for each
table. At the OLT there is a row for each virtual link (3+1 in the
example above), ifIndex identifies the virtual links. For instance the
statistics are calculated for each one of the virtual links.

     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.
>> At the ONU
dot3MpcpControlTable		1
dot3MpcpStatTable			1
dot3OmpEmulationTable		1
dot3OmpEmulationStatTable	1
dot3EponFecTable			1
dot3ExtPkgControlTable		1
dot3ExtPkgQueueTable		1 X (1 to 8)
dot3ExtPkgQueueSetsTable	1 X (1 to 8) X (1 to 8)
dot3ExtPkgOptIfTable		1

>> At the OLT
dot3MpcpControlTable		1
dot3MpcpStatTable			4 
dot3OmpEmulationTable		4 
dot3OmpEmulationStatTable	4 
dot3EponFecTable			4 
dot3ExtPkgControlTable		4 
dot3ExtPkgQueueTable		4  X (1 to 8)
dot3ExtPkgQueueSetsTable	4  X (1 to 8) X (1 to 8)
dot3ExtPkgOptIfTable		1 

In the general case 4 is N+1.



 2) Which tables in the MIB module allow rows to be created
    and or deleted, and if so, then how? (Note the the phrase
>> All tables allow creation and deletion of rows. At the ONU and at the
OLT, for the OLT interface and the broadcast virtual interface the
creation of the rows is done during initialization. For the virtual
interfaces at the OLT, rows are created when the virtual link is created
(ONU registers) and deleted when the virtual link is deleted (ONU
deregisters).

    "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 
>> Please see the response above.

(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.
>>OK
    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.
>> Actually the TCP connection model is a very good reference for this
MIB. Rows are automatically created and deleted by system tasks. I think
that it is better to create/delete the rows when ONUs
register/deregister and not hold rows with a status indication as I
think that there is no meaning for a row if there is no ONU registered
to it. A totally different ONU can register in that LLID with the
different parameters when the row is active again.

    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.
>> attributes. Changed
 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.
>> I will put them in.
     b) I didn't check to see if all the abbreviations were
     actually used. If not, then I would remove them.
>>OK
     c) I thought CPE was customer premises equipment  section 1.2.3 - I
was confused. Does "Gate messages"
     start a new subsection?
>> Rephrased:
>>"The OLT send control messages (GATE messages) allowing ONUs to
transmit and defining when the transmission occurs and >> what is its
duration."

 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.
>> Please look at the clarification added after the former comments.


 section 4 - tables 1 thru 3. The column head should be
     IEEE802.3ah attribute and not "object"
>>OK
 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.
>>OK

 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!)
>> OK. Replaced with ifIndex.

 Do the objects dot3MpcpOperStatus and dot3MpcpAdminStatus
     ever have different values. If not, then you should
     have one object.
>> Probably in most cases it will be in the same conditions. However for
the there might be some difference in up and down time where the
operational status is different due to the system transition. 
I think it is according to the guidance of RFC2863 3.1.13. That is
besides of the fact that the adminStatus is used for changing the state
by the writing operation.
   

 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.)  
>> The TCP connection model is quite a similar model indeed for this
case.
My intention was to at the OLT create an entry in these tables whenever
a virtual link is establish by ONU registration and delete it when the
link goes down when the ONU deregisters. At the ONU and for the
broadcast link creation is done at initialization. Please note that a
after an ONU deregisters a different ONU (physical entity) can register
within the same logical link. Therefore the entries in the tables are
not always existing with an active status indication (like the TCP
connection case), because they can have different values when they are
reactivated. Therefore whenever an link is created or deleted the
entries in the table are created or deleted. 
 
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".
>> The description of the index in each table refer the ifIndex to the
virtual links established at the OLT case. 

 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 during negotiation (can't it change)?
>> No intention to capture such transient. The initial reason was to
allow setting of a LinkID which is available for the management for
reading.


 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!)
>> OK. Replaced with ifIndex.

 Enum names in DESCRIPTION for object dot3ExtPkgObjectPowerDown -
     The enum names start with lower-case letters and not
     upper-case.
>>OK

 Queues - I really don't understand the queues. Could some
     intro text be added.
>> The 802.3ah MPCP uses for the feedback BW request from the ONUs a
report of some queues occupancy. These queues serve the ONU transmission
and data is gathered there until the ONU is granted from transmission.
Since the existence of such queuing mechanism is implied in the spec and
an ONU may not be a switch device, a management section is added here
for the queues, mainly to gather some statistics of their operation.
Text is added to the table description.
 
 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.
>> OK. Fixed. Each table is using the ifIndex and if there is another
index it is specified in the table.


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  


 
 





************************************************************************
This footnote confirms that this email message has been scanned by Passave mail scanner
for the presence of malicious code, vandals & computer viruses.
************************************************************************

_______________________________________________
Hubmib mailing list
[email protected]
https://www1.ietf.org/mailman/listinfo/hubmib
(unnamed) (message/rfc822, 14.5 KB) - not displayed
(unnamed) (message/rfc822, 21 KB) - not displayed
(unnamed) (message/rfc822, 13.5 KB) - not displayed
draft-ietf-hubmib-efm-epon-mib-04.html (text/html, 170 KB) - not displayed
draft-ietf-hubmib-efm-epon-mib-04.txt (text/plain, 160.7 KB) - not displayed