[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: printermib - problems other than compliances
Many of your comments have already gone back to the
authors. They have promised to fix. Some are new
or show new aspects. I will forward. Do you want
your name revealed (which may cause follow up mail)?
If you rather have me do it, then fine... I understand
the comments and can defend them.
Thanks,
Bert
> -----Original Message-----
> From: C. M. Heard [mailto:heard@pobox.com]
> Sent: donderdag 6 februari 2003 8:10
> To: Mreview (E-mail)
> Subject: RE: printermib - problems other than compliances
>
>
> On Wed, 5 Feb 2003, Wijnen, Bert (Bert) wrote:
> > I'd be willing to give up control and make it informational
> > if we think that would be best. I can tell that if we had
> > started out that way, that my reviews would be far less
> > strict... and so all sorts of things might have slipped
> > through.
>
> I've looked some more at this MIB, and there are so many
> problems with this MIB module that I would consider it
> flatly unacceptable for the IETF standards track. If
> they aren't willing to play by the rules, I think ceding
> change control to the PWG and making the doc informational
> would probably be the best way to go -- certainly much
> better than publishing something like this as PS. I've
> attached some backup below showing why I am so displeased with
> this module. Note, even if this thing does as informational,
> there are documentation issues they need to take care of.
>
> //cmh
>
> Problem report on <draft-ietf-printmib-mib-info-13.txt>
>
> 1.) They haven't prepared their IANA module and IANA
> considerations in the accepted manner. The IANA module
> now in Section 4 needs to go in an appendix with a note
> to the RFC Editor that it is to be removed upon
> publication, when the IANA-maintained module goes
> on-line. In addition, the maintenance instructions in
> the MODULE-IDENTITY invocation of the IANA module
> (which are repeated in Section 2.4.1 of the draft)
> do not look to me like they will be useable. They
> look as if they were intended to be instructions for
> maintaining enums published in the main MIB module
> itself. Anyway, I sure don't understand them. The
> authors need to get acquainted with RFC 2434, and
> they to look at the guidelines draft
> <draft-ietf-ops-mib-review-guidelines-00.txt>
> when it goes on-line to see what to put there.
> It the meantime you can refer then to RFC 2932
> as an example of what the final doc should look like.
>
> 2.) They use stuff like { mib-2 998 } instead of
> { mib-2 xxx } in the IANA MIB module. That's naughty.
> Yes I know, you need to change that to make it
> compile but we do it in private not in public drafts.
> Again, refer them to the guidelines draft.
>
> 3.) If this doc does go for stds track it needs to
> have an Intellectual Property section. See the
> guidelines draft.
>
> 4.) The MIB Boilerplate, Security Considerations,
> and standard SMI References are out-of-date. That's
> probably an unfair comment, but as they say, that's
> the price of being slow.
>
> 5.) There is a reference to [RFC2026] on
> the front page. That's a no-no, according
> to http://www.ietf.org/ID-nits.html
>
> 6.) smilint complains about an inaccessible object used in a
> notification:
>
> Printer-MIB:3683: [3] {notification-object-access} object
> `prtAlertIndex' of notification `printerV2Alert' must not be
> `not-accessible'
>
> prtAlertIndex OBJECT-TYPE
> -- NOTE: In RFC 1759, the range was not defined.
> SYNTAX Integer32 (1..2147483647)
> MAX-ACCESS not-accessible
> STATUS current
> DESCRIPTION
> [ ... ]
> ::= { prtAlertEntry 1 }
>
> [ ... ]
>
> printerV2Alert NOTIFICATION-TYPE
> OBJECTS { prtAlertIndex, prtAlertSeverityLevel, prtAlertGroup,
> prtAlertGroupIndex, prtAlertLocation, prtAlertCode }
> STATUS current
> DESCRIPTION
> "This trap is sent whenever a critical event is added to the
> prtAlertTable.
>
> NOTE: The prtAlertIndex object was redundantly included in the
> bindings of the 'printerV2Alert' notification in RFC
> 1759, even
> though the value exists in the instance qualifier of all the
> other bindings. This object has been retained to provide
> compatiblity with existing RFC 1759 implementaions."
> ::= { printerV2AlertPrefix 1 }
>
> In fairness, this was a problem they inherited, and there is no
> strictly legal way to fix this. Probably the least evil thing
> would be to raise the MAX-ACCESS of prtAlertIndex to read-only;
> if it's needed for compatibility, implementations must have
> been doing something like that anyway.
>
> 7.) There are a lot of silly things in the
> MIB module like the following ASN.1 commments:
>
> PrtMediaUnitTC ::= TEXTUAL-CONVENTION
> -- This is a type 1 enumeration. Replaces MediaUnit in RFC 1759.
> -- Even though it is formally not allowed to change TC
> names, the WG
> -- decided this name change was necessary to clearly indicate this
> -- TC is from the Printer MIB.
>
> STATUS current
> DESCRIPTION
> "Units of measure for media dimensions."
> SYNTAX INTEGER {
> tenThousandthsOfInches(3), -- .0001
> micrometers(4)
> }
>
> MediaUnit ::= TEXTUAL-CONVENTION
> -- Replaced by prtMediaUnitTC.
> STATUS deprecated
> DESCRIPTION
> "Units of measure for media dimensions."
> SYNTAX INTEGER {
> tenThousandthsOfInches(3), -- .0001
> micrometers(4)
> }
>
> There is actually nothing illegal with what they have
> done here, i.e., deprecating the old TC and defining
> a new one. As far as I can tell, since the new one
> has the same syntax & semantics as the old one, it can be
> legally substituted in a SYNTAX clause (if substituting
> a TC for a base type is legal, then surely one TC for
> another with same base type and semantics is OK too).
> So they ought to get rid of those silly comments.
>
> It's true that they have created a lot of churn for the
> purpose of "tidying up", and that's something we urged
> our IEEE colleagues NOT to do. But ... if they do it
> according to the rules ... then it's their funeral.
>
> 8.) On the other hand, they deleted a TC called
> CodedCharSet instead of deprecating it. Here's
> the smidiff report detailing that plus a whole
> lot of other illegal mdifications. Many of these
> are openly reported in the REVISION clause of the
> MODULE-IDENTITY invocation, so they should come
> as no surprise.
>
> ./Printer-MIB-9411250000Z:107 [1] {type-removed} type
> `CodedCharSet' has been deleted
> ./Printer-MIB-200210080000Z:697 [3] {to-implicit} implicit
> type for `prtOutputDefaultIndex' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:697 [3] {range-added} range
> `(1..65535)' added to type used in `prtOutputDefaultIndex'
> ./Printer-MIB-200210080000Z:1066 [3] {range-changed} range of
> type used in `prtStorageRefSeqNumber' changed from
> `(0..65535)' to `(1..65535)'
> ./Printer-MIB-200210080000Z:1079 [3] {range-changed} range of
> type used in `prtStorageRefIndex' changed from `(0..65535)'
> to `(0..2147483647)'
> ./Printer-MIB-200210080000Z:1122 [3] {range-changed} range of
> type used in `prtDeviceRefSeqNumber' changed from
> `(0..65535)' to `(1..65535)'
> ./Printer-MIB-200210080000Z:1135 [3] {range-changed} range of
> type used in `prtDeviceRefIndex' changed from `(0..65535)' to
> `(0..2147483647)'
> ./Printer-MIB-200210080000Z:919 [3] {from-implicit} type
> `PrtLocalizedDescriptionStringTC' replaces implicit type for
> `prtCoverDescription' -- changes base type from OCTET STRING
> to OCTET STRING (SIZE(0..255))
> ./Printer-MIB-200210080000Z:997 [3] {range-changed} size of
> type used in `prtLocalizationLanguage' changed from `(0..2)' to `(2)'
> ./Printer-MIB-200210080000Z:1008 [3] {range-changed} size of
> type used in `prtLocalizationCountry' changed from `(0..2)' to `(2)'
> ./Printer-MIB-200210080000Z:1243 [3] {to-implicit} implicit
> type for `prtInputMediaDimFeedDirDeclared' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:1243 [3] {range-added} range
> `(-2..2147483647)' added to type used in
> `prtInputMediaDimFeedDirDeclared'
> ./Printer-MIB-200210080000Z:1263 [3] {to-implicit} implicit
> type for `prtInputMediaDimXFeedDirDeclared' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:1263 [3] {range-added} range
> `(-2..2147483647)' added to type used in
> `prtInputMediaDimXFeedDirDeclared'
> ./Printer-MIB-200210080000Z:1283 [3] {to-implicit} implicit
> type for `prtInputMediaDimFeedDirChosen' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:1283 [3] {range-added} range
> `(-2..2147483647)' added to type used in
> `prtInputMediaDimFeedDirChosen'
> ./Printer-MIB-200210080000Z:1304 [3] {to-implicit} implicit
> type for `prtInputMediaDimXFeedDirChosen' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:1304 [3] {range-added} range
> `(-2..2147483647)' added to type used in
> `prtInputMediaDimXFeedDirChosen'
> ./Printer-MIB-200210080000Z:1336 [3] {to-implicit} implicit
> type for `prtInputMaxCapacity' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:1336 [3] {range-added} range
> `(-2..2147483647)' added to type used in `prtInputMaxCapacity'
> ./Printer-MIB-200210080000Z:1354 [3] {to-implicit} implicit
> type for `prtInputCurrentLevel' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:1354 [3] {range-added} range
> `(-3..2147483647)' added to type used in `prtInputCurrentLevel'
> ./Printer-MIB-200210080000Z:1457 [3] {from-implicit} type
> `PrtLocalizedDescriptionStringTC' replaces implicit type for
> `prtInputDescription'
> ./Printer-MIB-200210080000Z:1489 [3] {to-implicit} implicit
> type for `prtInputMediaWeight' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:1489 [3] {range-added} range
> `(-2..2147483647)' added to type used in `prtInputMediaWeight'
> ./Printer-MIB-200210080000Z:1536 [3] {to-implicit} implicit
> type for `prtInputMediaFormParts' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:1536 [3] {range-added} range
> `(-2..2147483647)' added to type used in `prtInputMediaFormParts'
> ./Printer-MIB-200210080000Z:1659 [3] {to-implicit} implicit
> type for `prtOutputIndex' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:1659 [3] {range-added} range
> `(1..65535)' added to type used in `prtOutputIndex'
> ./Printer-MIB-200210080000Z:1694 [3] {to-implicit} implicit
> type for `prtOutputMaxCapacity' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:1694 [3] {range-added} range
> `(-2..2147483647)' added to type used in `prtOutputMaxCapacity'
> ./Printer-MIB-200210080000Z:1712 [3] {to-implicit} implicit
> type for `prtOutputRemainingCapacity' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:1712 [3] {range-added} range
> `(-3..2147483647)' added to type used in `prtOutputRemainingCapacity'
> ./Printer-MIB-200210080000Z:1798 [3] {from-implicit} type
> `PrtLocalizedDescriptionStringTC' replaces implicit type for
> `prtOutputDescription'
> ./Printer-MIB-200210080000Z:1829 [3] {to-implicit} implicit
> type for `prtOutputMaxDimFeedDir' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:1829 [3] {range-added} range
> `(-2..2147483647)' added to type used in `prtOutputMaxDimFeedDir'
> ./Printer-MIB-200210080000Z:1850 [3] {to-implicit} implicit
> type for `prtOutputMaxDimXFeedDir' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:1850 [3] {range-added} range
> `(-2..2147483647)' added to type used in `prtOutputMaxDimXFeedDir'
> ./Printer-MIB-200210080000Z:1871 [3] {to-implicit} implicit
> type for `prtOutputMinDimFeedDir' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:1871 [3] {range-added} range
> `(-2..2147483647)' added to type used in `prtOutputMinDimFeedDir'
> ./Printer-MIB-200210080000Z:1892 [3] {to-implicit} implicit
> type for `prtOutputMinDimXFeedDir' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:1892 [3] {range-added} range
> `(-2..2147483647)' added to type used in `prtOutputMinDimXFeedDir'
> ./Printer-MIB-200210080000Z:1915 [3] {from-implicit} type
> `PrtOutputStackingOrderTC' replaces implicit type for
> `prtOutputStackingOrder'
> ./Printer-MIB-200210080000Z:1931 [3] {from-implicit} type
> `PrtOutputPageDeliveryOrientationTC' replaces implicit type
> for `prtOutputPageDeliveryOrientation'
> ./Printer-MIB-200210080000Z:2088 [3] {from-implicit} type
> `PrtMarkerCounterUnitTC' replaces implicit type for
> `prtMarkerCounterUnit'
> ./Printer-MIB-200210080000Z:2152 [3] {from-implicit} type
> `PrtMarkerAddressabilityUnitTC' replaces implicit type for
> `prtMarkerAddressabilityUnit'
> ./Printer-MIB-200210080000Z:2166 [3] {to-implicit} implicit
> type for `prtMarkerAddressabilityFeedDir' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:2166 [3] {range-added} range
> `(-2..2147483647)' added to type used in
> `prtMarkerAddressabilityFeedDir'
> ./Printer-MIB-200210080000Z:2181 [3] {to-implicit} implicit
> type for `prtMarkerAddressabilityXFeedDir' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:2181 [3] {range-added} range
> `(-2..2147483647)' added to type used in
> `prtMarkerAddressabilityXFeedDir'
> ./Printer-MIB-200210080000Z:2196 [3] {to-implicit} implicit
> type for `prtMarkerNorthMargin' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:2196 [3] {range-added} range
> `(-2..2147483647)' added to type used in `prtMarkerNorthMargin'
> ./Printer-MIB-200210080000Z:2212 [3] {to-implicit} implicit
> type for `prtMarkerSouthMargin' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:2212 [3] {range-added} range
> `(-2..2147483647)' added to type used in `prtMarkerSouthMargin'
> ./Printer-MIB-200210080000Z:2224 [3] {to-implicit} implicit
> type for `prtMarkerWestMargin' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:2224 [3] {range-added} range
> `(-2..2147483647)' added to type used in `prtMarkerWestMargin'
> ./Printer-MIB-200210080000Z:2236 [3] {to-implicit} implicit
> type for `prtMarkerEastMargin' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:2236 [3] {range-added} range
> `(-2..2147483647)' added to type used in `prtMarkerEastMargin'
> ./Printer-MIB-200210080000Z:2331 [3] {from-implicit} type
> `PrtMarkerSuppliesClassTC' replaces implicit type for
> `prtMarkerSuppliesClass'
> ./Printer-MIB-200210080000Z:2355 [3] {from-implicit} type
> `PrtLocalizedDescriptionStringTC' replaces implicit type for
> `prtMarkerSuppliesDescription'
> ./Printer-MIB-200210080000Z:2366 [3] {from-implicit} type
> `PrtMarkerSuppliesSupplyUnitTC' replaces implicit type for
> `prtMarkerSuppliesSupplyUnit'
> ./Printer-MIB-200210080000Z:2379 [3] {to-implicit} implicit
> type for `prtMarkerSuppliesMaxCapacity' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:2379 [3] {range-added} range
> `(-2..2147483647)' added to type used in
> `prtMarkerSuppliesMaxCapacity'
> ./Printer-MIB-200210080000Z:2395 [3] {to-implicit} implicit
> type for `prtMarkerSuppliesLevel' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:2395 [3] {range-added} range
> `(-3..2147483647)' added to type used in `prtMarkerSuppliesLevel'
> ./Printer-MIB-200210080000Z:2471 [3] {from-implicit} type
> `PrtMarkerColorantRoleTC' replaces implicit type for
> `prtMarkerColorantRole'
> ./Printer-MIB-200210080000Z:2483 [3] {range-changed} size of
> type used in `prtMarkerColorantValue' changed from `(0..63)'
> to `(0..255)'
> ./Printer-MIB-200210080000Z:2504 [3] {to-implicit} implicit
> type for `prtMarkerColorantTonality' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:2504 [3] {range-added} range
> `(2..2147483647)' added to type used in `prtMarkerColorantTonality'
> ./Printer-MIB-200210080000Z:2584 [3] {from-implicit} type
> `PrtMediaPathMaxSpeedPrintUnitTC' replaces implicit type for
> `prtMediaPathMaxSpeedPrintUnit'
> ./Printer-MIB-200210080000Z:2605 [3] {to-implicit} implicit
> type for `prtMediaPathMaxSpeed' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:2605 [3] {range-added} range
> `(-2..2147483647)' added to type used in `prtMediaPathMaxSpeed'
> ./Printer-MIB-200210080000Z:2615 [3] {to-implicit} implicit
> type for `prtMediaPathMaxMediaFeedDir' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:2615 [3] {range-added} range
> `(-2..2147483647)' added to type used in `prtMediaPathMaxMediaFeedDir'
> ./Printer-MIB-200210080000Z:2630 [3] {to-implicit} implicit
> type for `prtMediaPathMaxMediaXFeedDir' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:2630 [3] {range-added} range
> `(-2..2147483647)' added to type used in
> `prtMediaPathMaxMediaXFeedDir'
> ./Printer-MIB-200210080000Z:2644 [3] {to-implicit} implicit
> type for `prtMediaPathMinMediaFeedDir' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:2644 [3] {range-added} range
> `(-2..2147483647)' added to type used in `prtMediaPathMinMediaFeedDir'
> ./Printer-MIB-200210080000Z:2658 [3] {to-implicit} implicit
> type for `prtMediaPathMinMediaXFeedDir' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:2658 [3] {range-added} range
> `(-2..2147483647)' added to type used in
> `prtMediaPathMinMediaXFeedDir'
> ./Printer-MIB-200210080000Z:2682 [3] {from-implicit} type
> `PrtLocalizedDescriptionStringTC' replaces implicit type for
> `prtMediaPathDescription'
> ./Printer-MIB-200210080000Z:2824 [3] {to-implicit} implicit
> type for `prtChannelIndex' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:2824 [3] {range-added} range
> `(1..65535)' added to type used in `prtChannelIndex'
> ./Printer-MIB-200210080000Z:2862 [3] {to-implicit} implicit
> type for `prtChannelCurrentJobCntlLangIndex' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:2862 [3] {range-added} range
> `(0..65535)' added to type used in `prtChannelCurrentJobCntlLangIndex'
> ./Printer-MIB-200210080000Z:2880 [3] {to-implicit} implicit
> type for `prtChannelDefaultPageDescLangIndex' replaces type
> `Integer32'
> ./Printer-MIB-200210080000Z:2880 [3] {range-added} range
> `(0..65535)' added to type used in
> `prtChannelDefaultPageDescLangIndex'
> ./Printer-MIB-200210080000Z:2899 [3] {from-implicit} type
> `PrtChannelStateTC' replaces implicit type for `prtChannelState'
> ./Printer-MIB-200210080000Z:2911 [3] {range-added} range
> `(0..2147483647)' added to type used in `prtChannelIfIndex'
> ./Printer-MIB-200210080000Z:3114 [3] {to-implicit} implicit
> type for `prtInterpreterIndex' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:3114 [3] {range-added} range
> `(1..65535)' added to type used in `prtInterpreterIndex'
> ./Printer-MIB-200210080000Z:3169 [3] {from-implicit} type
> `PrtLocalizedDescriptionStringTC' replaces implicit type for
> `prtInterpreterDescription'
> ./Printer-MIB-200210080000Z:3194 [3] {from-implicit} type
> `PrtPrintOrientationTC' replaces implicit type for
> `prtInterpreterDefaultOrientation'
> ./Printer-MIB-200210080000Z:3206 [3] {to-implicit} implicit
> type for `prtInterpreterFeedAddressability' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:3206 [3] {range-added} range
> `(-2..2147483647)' added to type used in
> `prtInterpreterFeedAddressability'
> ./Printer-MIB-200210080000Z:3223 [3] {to-implicit} implicit
> type for `prtInterpreterXFeedAddressability' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:3223 [3] {range-added} range
> `(-2..2147483647)' added to type used in
> `prtInterpreterXFeedAddressability'
> ./Printer-MIB-200210080000Z:3262 [3] {from-implicit} type
> `PrtInterpreterTwoWayTC' replaces implicit type for
> `prtInterpreterTwoWay'
> ./Printer-MIB-200210080000Z:3332 [3] {from-implicit} type
> `PrtConsoleDescriptionStringTC' replaces implicit type for
> `prtConsoleDisplayBufferText'
> ./Printer-MIB-200210080000Z:3390 [3] {range-changed} range of
> type used in `prtConsoleLightIndex' changed from `(0..65535)'
> to `(1..65535)'
> ./Printer-MIB-200210080000Z:3404 [3] {to-implicit} implicit
> type for `prtConsoleOnTime' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:3404 [3] {range-added} range
> `(0..2147483647)' added to type used in `prtConsoleOnTime'
> ./Printer-MIB-200210080000Z:3423 [3] {to-implicit} implicit
> type for `prtConsoleOffTime' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:3423 [3] {range-added} range
> `(0..2147483647)' added to type used in `prtConsoleOffTime'
> ./Printer-MIB-200210080000Z:3452 [3] {from-implicit} type
> `PrtConsoleDescriptionStringTC' replaces implicit type for
> `prtConsoleDescription'
> ./Printer-MIB-200210080000Z:3522 [3] {to-implicit} implicit
> type for `prtAlertIndex' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:3522 [3] {range-added} range
> `(1..2147483647)' added to type used in `prtAlertIndex'
> ./Printer-MIB-200210080000Z:3559 [3] {from-implicit} type
> `PrtAlertSeverityLevelTC' replaces implicit type for
> `prtAlertSeverityLevel'
> ./Printer-MIB-200210080000Z:3598 [3] {to-implicit} implicit
> type for `prtAlertGroupIndex' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:3598 [3] {range-added} range
> `(-1..2147483647)' added to type used in `prtAlertGroupIndex'
> ./Printer-MIB-200210080000Z:3619 [3] {to-implicit} implicit
> type for `prtAlertLocation' replaces type `Integer32'
> ./Printer-MIB-200210080000Z:3619 [3] {range-added} range
> `(-2..2147483647)' added to type used in `prtAlertLocation'
> ./Printer-MIB-200210080000Z:3649 [3] {from-implicit} type
> `PrtLocalizedDescriptionStringTC' replaces implicit type for
> `prtAlertDescription'
>
>