Subject: [magma] RE: Last Call: draft-ietf-magma-mgmd-mib(MulticastGroup Membership Discovery MIB) to Proposed Standard

From: "Wijnen, Bert \(Bert\)" <[email-masked]>
Date: Mon, 3 Sep 2007 22:03:55 +0200

W.r.t.
> >Based on the errors/warnings I get from both SMICNG and SMILINT, I 
> >wonder how how an IETF Last Call can go out for a MIB module in this 
> >shape.
> >
> >I did not look at any MIB details yet.
> >
> >I get this from SMICng:
> >  
> >
> Since SMICng is a commercial tool for which I don't have a 
> license I have not been able to validate the MIB against it. 
> I can however comment on the Smilint output which appears to 
> flag the same issues.
> 
Understood. If your SYNTAX is clean by smilint, then it most probably
passes SMICng as well.

> >And I get this from smilint:
> >
> >C:\bwijnen\smicng\work>smilint -m -l 6 -s ./MGMD-STD-MIB
> >./MGMD-STD-MIB:39: [3] {revision-missing} revision for last 
> update is 
> >missing
> >  
> >
> I believe this is flagged because of the placeholder XXX for 
> the IANA allocated MIB number.
> 

Nope... a REVISION clause is missing

> >./MGMD-STD-MIB:90: [2] {size-illegal} illegal size restriction for 
> >non-octet-string parent type `InetAddressType'
> >./MGMD-STD-MIB:100: [2] {sequence-type-mismatch} type of 
> >`mgmdHostInterfaceQuerierType' in sequence and object type 
> defi nition 
> >do not match
> >./MGMD-STD-MIB:246: [2] {size-illegal} illegal size restriction for 
> >non-octet-string parent type `InetAddressType'
> >  
> >
> All of the size-illegal errors are based on the 
> InetAddressType redefinition. In email comments returned by 
> Dave Thaler it was specifically requested that all 
> InetAddressType objects should have the
> syntax:
> 
> SYNTAX InetAddress (SIZE(4|16))
> 

That is possible. But you have put it on the InetAddressType

> So I have ignored these errors. If there is a preferred or 
> more correct way to descibe this size restriction then please say so.
> 

For InetAddressType you possibly want to subtype and indicate that
only IPv4 and IPv6 are allowed. 
Is unknown not allowed?

For InetAddressType you also may want to limit the allowable
types to IPv4 and IPv6 (possibly also unknown)??

> >./MGMD-STD-MIB:256: [2] {sequence-type-mismatch} type of 
> >`mgmdRouterInterfaceQuerierType' in sequence and object type de 
> >finition do not match
> >  
> >
> All sequence-type-mismatch errors are a direct consequence of 
> the InetAddress error above. If the InetAddressType object 
> does not produce a size-illegal error then these should also 
> disappear.
> 
> >./MGMD-STD-MIB:487: [2] {size-illegal} illegal size restriction for 
> >non-octet-string parent type `InetAddressType'
> >./MGMD-STD-MIB:494: [2] {sequence-type-mismatch} type of 
> >`mgmdHostCacheAddressType' in sequence and object type 
> definiti on do 
> >not match
> >./MGMD-STD-MIB:590: [2] {size-illegal} illegal size restriction for 
> >non-octet-string parent type `InetAddressType'
> >./MGMD-STD-MIB:597: [2] {sequence-type-mismatch} type of 
> >`mgmdRouterCacheAddressType' in sequence and object type 
> defini tion do 
> >not match
> >./MGMD-STD-MIB:644: [2] {subtype-illegal} subtyping not allowed
> >  
> >
> The TimeTicks modification was made to clarify the legal 
> value of the mgmdRouterCahceExpiryTimer which can never be 
> zero. Again, the change was requested by various Magma folks 
> and seemed perfectly valid. Perhaps you can suggest a more 
> correct way to specify a range refinement for this object?
> 

RFC2578 states:
7.1.8.  TimeTicks

   The TimeTicks type represents a non-negative integer which represents
   the time, modulo 2^32 (4294967296 decimal), in hundredths of a second
   between two epochs.  When objects are defined which use this ASN.1
   type, the description of the object identifies both of the reference
   epochs.

   For example, [3] defines the TimeStamp textual convention which is
   based on the TimeTicks type.  With a TimeStamp, the first reference
   epoch is defined as the time when sysUpTime [5] was zero, and the
   second reference epoch is defined as the current value of sysUpTime.

   The TimeTicks type may not be sub-typed.

So you CANNOT subtype it.
If you need the different range, then define your own sort of 
titmeticks thing. Using an Unsigned32.

And if I look at your definitions
mgmdRouterCacheExpiryTime OBJECT-TYPE
    SYNTAX     TimeTicks (1..4294967295)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "This value represents the time remaining
            before the Group Membership Interval state expires. The
            value must always be greater than or equal to 1."
    ::= { mgmdRouterCacheEntry 6 }

Then oit CLEARLY is NOT a TIMETICKS SYNTAX as per the above description
of TimeTicks.

> >./MGMD-STD-MIB:751: [2] {size-illegal} illegal size restriction for 
> >non-octet-string parent type `InetAddressType'
> >./MGMD-STD-MIB:756: [2] {sequence-type-mismatch} type of 
> >`mgmdInverseHostCacheAddressType' in sequence and object type d 
> >efinition do not match
> >./MGMD-STD-MIB:798: [2] {sequence-type-mismatch} type of 
> >`mgmdRouterCacheAddressType' in sequence and object type 
> defini tion do 
> >not match
> >./MGMD-STD-MIB:835: [2] {size-illegal} illegal size restriction for 
> >non-octet-string parent type `InetAddressType'
> >./MGMD-STD-MIB:842: [2] {sequence-type-mismatch} type of 
> >`mgmdHostSrcListAddressType' in sequence and object type 
> defini tion do 
> >not match
> >./MGMD-STD-MIB:910: [2] {sequence-type-mismatch} type of 
> >`mgmdRouterCacheAddressType' in sequence and object type 
> defini tion do 
> >not match
> >./MGMD-STD-MIB:796: [3] {sequence-no-column} SEQUENCE element #1 
> >`mgmdRouterInterfaceIfIndex' is not a child node under 
> >`mgmdRouterInverseCacheEntry'
> >  
> >
> All of the following errors occur due to the use of 
> previously defined objects in a reverse lookup table. In an 
> earlier version of the MIB there were new objects defined for 
> these tables with the same meaning, however it was pointed 
> out by David McWalter on the list that a reverse lookup table 
> should use the same objects as previously defined. This does 
> appear to confuse smilint. I am not an expert by any means on 
> this so would appreciate guidance on the correct approach. In 
> the meantime this seemed acceptable given that the errors 
> were all level 3 and above.
> 

I did not claim that all warnings are prohibited.,
The following may in act be OK.
I'd have to check deeper.

> >./MGMD-STD-MIB:784: [5] {index-element-not-accessible} 
> warning: exactly 
> >one index element of row `mgmdRouterInverseCache Entry' must be 
> >accessible
> >./MGMD-STD-MIB:909: [3] {sequence-no-column} SEQUENCE element #1 
> >`mgmdRouterCacheAddressType' is not a child node under 
> >`mgmdRouterSrcListEntry'
> >./MGMD-STD-MIB:909: [3] {sequence-no-column} SEQUENCE element #2 
> >`mgmdRouterCacheAddress' is not a child node under `mgm 
> >dRouterSrcListEntry'
> >./MGMD-STD-MIB:909: [3] {sequence-no-column} SEQUENCE element #3 
> >`mgmdRouterCacheIfIndex' is not a child node under `mgm 
> >dRouterSrcListEntry'
> >./MGMD-STD-MIB:102: [5] {inetaddress-inetaddresstype} warning:
> >`InetAddress' object should have an accompanied preceding 
> >`InetAdressType' object
> >./MGMD-STD-MIB:258: [5] {inetaddress-inetaddresstype} warning:
> >`InetAddress' object should have an accompanied preceding 
> >`InetAdressType' object
> >./MGMD-STD-MIB:496: [5] {inetaddress-inetaddresstype} warning:
> >`InetAddress' object should have an accompanied preceding 
> >`InetAdressType' object
> >./MGMD-STD-MIB:524: [5] {inetaddress-inetaddresstype} warning:
> >`InetAddress' object should have an accompanied preceding 
> >`InetAdressType' object
> >./MGMD-STD-MIB:599: [5] {inetaddress-inetaddresstype} warning:
> >`InetAddress' object should have an accompanied preceding 
> >`InetAdressType' object
> >./MGMD-STD-MIB:620: [5] {inetaddress-inetaddresstype} warning:
> >`InetAddress' object should have an accompanied preceding 
> >`InetAdressType' object
> >./MGMD-STD-MIB:758: [5] {inetaddress-inetaddresstype} warning:
> >`InetAddress' object should have an accompanied preceding 
> >`InetAdressType' object
> >./MGMD-STD-MIB:844: [5] {inetaddress-inetaddresstype} warning:
> >`InetAddress' object should have an accompanied preceding 
> >`InetAdressType' object
> >./MGMD-STD-MIB:862: [5] {inetaddress-inetaddresstype} warning:
> >`InetAddress' object should have an accompanied preceding 
> >`InetAdressType' object
> >./MGMD-STD-MIB:917: [5] {inetaddress-inetaddresstype} warning:
> >`InetAddress' object should have an accompanied preceding
> > `InetAdressType' object	
> >  
> >
> Please advise on how you would like to see this MIB adjusted 
> since all items flagged as errors appeared valid to me for 
> the reasons provided.
> 

They CLERLY are not all valid. Read the InetAddress and InetAddressType
DESCRIPTION clauses and SYNTAX in RFC4001 and you will see that what
you did is worng, I tried to explain that above as well.

Also the TimeTicks issue is NOT acceptable, see above.

Bert
> Many Thanks,
> Julian Chesterfield

_______________________________________________
magma mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/magma

---

From: "Wijnen, Bert \(Bert\)" <[email-masked]>
Date: Mon, 3 Sep 2007 10:43:37 +0200

Based on the errors/warnings I get from both SMICNG and SMILINT, I
wonder how 
how an IETF Last Call can go out for a MIB module in this shape.

I get this from SMICng:

C:\bwijnen\smicng\work>smicng mgmd.inc
E: f(mgmd.mi2), (90,38) A SIZE or range clause may not be used with ENUM
E: f(mgmd.mi2), (246,38) A SIZE or range clause may not be used with
ENUM
E: f(mgmd.mi2), (487,38) A SIZE or range clause may not be used with
ENUM
E: f(mgmd.mi2), (590,38) A SIZE or range clause may not be used with
ENUM
E: f(mgmd.mi2), (644,27) A SIZE or range clause may not be used with
TimeTicks
E: f(mgmd.mi2), (751,38) A SIZE or range clause may not be used with
ENUM
E: f(mgmd.mi2), (835,38) A SIZE or range clause may not be used with
ENUM
E: f(mgmd.mi2), (797,5) Item "mgmdRouterInterfaceIfIndex" in sequence
"MgmdRouterInverseCacheEntry" is not a column for row
"mgmdRouterInverseCacheEntry"
E: f(mgmd.mi2), (798,5) Item "mgmdRouterCacheAddressType" in sequence
"MgmdRouterInverseCacheEntry" is not a column for row
"mgmdRouterInverseCacheEntry"
E: f(mgmd.mi2), (799,5) Item "mgmdRouterCacheAddress" in sequence
"MgmdRouterInverseCacheEntry" is not a column for row
"mgmdRouterInverseCacheEntry"
E: f(mgmd.mi2), (910,5) Item "mgmdRouterCacheAddressType" in sequence
"MgmdRouterSrcListEntry" is not a column for row "
mgmdRouterSrcListEntry"
E: f(mgmd.mi2), (911,5) Item "mgmdRouterCacheAddress" in sequence
"MgmdRouterSrcListEntry" is not a column for row "mgmd
RouterSrcListEntry"
E: f(mgmd.mi2), (912,5) Item "mgmdRouterCacheIfIndex" in sequence
"MgmdRouterSrcListEntry" is not a column for row "mgmd
RouterSrcListEntry"
E: f(mgmd.mi2), (784,1) Row "mgmdRouterInverseCacheEntry" must have leaf
objects defined under it
W: f(mgmd.mi2), (791,18) Row "mgmdRouterInverseCacheEntry" does not have
a consistent indexing scheme - cannot specify a n index item from
additional "base row" mgmdRouterInterfaceEntry, since can have only one
"base row" which is mgmdRouter CacheEntry

*** 14 errors and 1 warning in parsing

./MGMD-STD-MIB:39: [3] {revision-missing} revision for last update is
`mgmdHostInterfaceQuerierType' in sequence and object type defi nition
`mgmdRouterInterfaceQuerierType' in sequence and object type de finition
`mgmdHostCacheAddressType' in sequence and object type definiti on do
`mgmdRouterCacheAddressType' in sequence and object type defini tion do
`mgmdRouterCacheAddressType' in sequence and object type defini tion do
`mgmdHostSrcListAddressType' in sequence and object type defini tion do
`mgmdRouterCacheAddressType' in sequence and object type defini tion do
./MGMD-STD-MIB:784: [5] {index-element-not-accessible} warning: exactly
Bert Wijnen  

> -----Original Message-----
> From: The IESG [mailto:[email-masked]]
> Sent: Thursday, August 30, 2007 5:24 PM
> To: IETF-Announce
> Cc: [email-masked]
> Subject: Last Call: draft-ietf-magma-mgmd-mib (Multicast Group 
> Membership Discovery MIB) to Proposed Standard
> 
> The IESG has received a request from the Multicast & Anycast Group 
> Membership WG (magma) to consider the following document:
> 
> - 'Multicast Group Membership Discovery MIB '
>    <draft-ietf-magma-mgmd-mib-10.txt> as a Proposed Standard
> 
> The IESG plans to make a decision in the next few weeks, and solicits 
> final comments on this action.  Please send substantive comments to 
> the [email-masked] mailing lists by 2007-09-13. Exceptionally, comments

> may be sent to [email-masked] instead. In either case, please retain 
> the beginning of the Subject line to allow automated sorting.
> 
> The file can be obtained via
> http://www.ietf.org/internet-drafts/draft-ietf-magma-mgmd-mib-10.txt
> 
> 
> IESG discussion can be tracked via
> https://datatracker.ietf.org/public/pidtracker.cgi?command=vie
> w_id&dTag=
> 10603&rfc_flag=0

---

From: "Wijnen, Bert \(Bert\)" <[email-masked]>
Date: Mon, 3 Sep 2007 22:03:55 +0200

W.r.t.

RFC2578 states:
7.1.8.  TimeTicks

Bert

---

From: Julian Chesterfield <[email-masked]>
Date: Mon, 03 Sep 2007 11:19:02 +0100

Looks like there was a misunderstanding on my part r.e. the 
InetAddressType refinement. The refinement only applies to the 
InetAddress objects, InetAddressType should be unmodified, apologies for 
that. I'll issue an update, however AFAIK the other comments still apply.

Thanks,
Julian

---

From: Julian Chesterfield <[email-masked]>
Date: Mon, 03 Sep 2007 10:36:55 +0100

Thanks for your email, comments inline....

>I did not look at any MIB details yet.
Since SMICng is a commercial tool for which I don't have a license I 
have not been able to validate the MIB against it. I can however comment 
on the Smilint output which appears to flag the same issues.

>./MGMD-STD-MIB:39: [3] {revision-missing} revision for last update is
I believe this is flagged because of the placeholder XXX for the IANA 
allocated MIB number.

>non-octet-string parent type `InetAddressType'
All of the size-illegal errors are based on the InetAddressType 
redefinition. In email comments returned by Dave Thaler it was 
specifically requested that all InetAddressType objects should have the 
syntax:

So I have ignored these errors. If there is a preferred or more correct 
way to descibe this size restriction then please say so.

>`mgmdRouterInterfaceQuerierType' in sequence and object type de finition
All sequence-type-mismatch errors are a direct consequence of the 
InetAddress error above. If the InetAddressType object does not produce 
a size-illegal error then these should also disappear.

>./MGMD-STD-MIB:644: [2] {subtype-illegal} subtyping not allowed
The TimeTicks modification was made to clarify the legal value of the 
mgmdRouterCahceExpiryTimer which can never be zero. Again, the change 
was requested by various Magma folks and seemed perfectly valid. Perhaps 
you can suggest a more correct way to specify a range refinement for 
this object?

>`mgmdRouterInverseCacheEntry'
All of the following errors occur due to the use of previously defined 
objects in a reverse lookup table. In an earlier version of the MIB 
there were new objects defined for these tables with the same meaning, 
however it was pointed out by David McWalter on the list that a reverse 
lookup table should use the same objects as previously defined. This 
does appear to confuse smilint. I am not an expert by any means on this 
so would appreciate guidance on the correct approach. In the meantime 
this seemed acceptable given that the errors were all level 3 and above.

>`InetAddress' object should have an accompanied preceding
Please advise on how you would like to see this MIB adjusted since all 
items flagged as errors appeared valid to me for the reasons provided.

Many Thanks,
Julian Chesterfield