Subject: Sub Mgt mib comments

From: "Mike St. Johns" <[email-masked]>
Date: Wed, 15 Dec 1999 12:03:26 -0800

Hi Wilson - good job.  Some comments - mostly on things I didn't clarify or 
hadn't thought through when I sent this off.

In 2.1 last paragraph - in general its a bad idea to refer to tables as 
having multiple dimensions - the mib doctors pick on it.  Instead try "is 
indexed first by cable modem, and then by filtering criteria".

In 2.2 after the 2.2. header insert a paragraph briefly describing the 
docsis provisioning process and that during registration the CM sends the 
CMTS a copy of specific provisioning items which are protected under a 
keyed HMAC known to the provisioning agent and the CMTS (where the key is 
known I mean).  In the sub paragraphs clarify the language so that its 
obvious that "not present" means "not present in the provisioning blob sent 
from the CM to the CMTS during registration" - 2.2.2 is unclear for example.

2.2.3 first bullet - add at end "(or that row is being created 
simultaneously in the same SNMP SET message)"

In the MIB

docsSubMgtCpeControlTable -  We need default objects for MaxCpe, Active and 
Learnable and the text of the objects in this table needs to be updated to 
point to those objects as defaults.  Hmm... per my comment at the end of 
the table let's add an object for the table and a default 
object  docsSubMgtCpeControlSnmpBypass  TruthValue  "If this is set to 
true, SNMP traffic (e.g. IP type xxx) is not filtered to the CM's MAC 
address regardless of any setting of this table or of any other filtering 
table in the CMTS.  If this value is not specified in the provisioning 
objects, it is set from docsSubMgtSnmpBypassDefault at row creation."

docsSubMgtCpeIpAddr - add to description at end.  "See docsSubMgtCpeIpIndex 
for the mechanism."

docsSubMgtPktFilterGroup - The description is misleading.  How about 
"Identifies a group of ordered filters.  This value is used  to identify a 
particular group of filters assigned to a particular upstream 
(docsSubMgtCmFilterUpstream) or downstream (docsSubMgtCmFilterDownstream) 
flow for one or more CMs"  The CMs point to this group rather than this 
value pointing to a group of CMs.

docsSubMgtPktFilterIndex is missing a range constraint.  Should be (1..20)

docsSubMgtCmFilter(Downstream, Upstream).  Add "The value of this object is 
a pointer into the docsSubMgtPktFilterTable and refers to all filter rows 
with matching docsSubMgtPktFilterGroup indexes.  If there are no matching 
filter rows in that table, or if this object is set to 0, no filtering is 
applied to traffic (originating from | destined to ) this CM."

docsSubMgtPktFilterSrcAddr - Let's add a complete description of the 
matching algorithm here.  "A packet matches the SrcAddr filter if the 
following is true:  AND (FilterSrcAddr, F(FilterSrcMask)) == AND (Packet 
SrcAddr, F(FilterSrcMask)).  The mask value is applied to both the match 
value in this table and to the packet IP address.  The function 'F(n)' 
returns either a 32 or 128 bit value with the leftmost 'n' bits set to '1' 
and the remaining rightmost bits set to '0'"

docsSubMgtPktFilterSrcMask - Add at end "An attempt to set this object to a 
value greater than 32 for an IPv4 address will result in this object being 
set to 32"

docsSubMgtPktFilterDstAddr/Mask. Same thing.

docsSubMgtPktFilterTosValue - "A packet matches this filter if the 
following is true:  AND (FilterTosValue, FilterTosMask) == AND (Packet TOS 
Value, FilterTosMask)."

Later, Mike