[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
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'