Printer Port Monitor MIB v1.0 (draft)



Table of Contents



1 Introduction 2 Overview of PPM MIB 3 Definition of PPM MIB

4 Conformance Requirements

5 IANA and PWG Considerations

6 Internationalization Considerations

7 Security Considerations

8 Acknowledgements

9 Normative References

10 Informative References

11 Authors Addresses


Printer Working Group
Printer Port Monitor MIB v1.0
Technical Brief
Status: Initial
2 January 2005

1 Introduction

2 Overview of PPM MIB

3 Definition of PPM MIB

PRINTER-PORT-MONITOR-MIB DEFINITIONS ::= BEGIN

IMPORTS
    enterprises, MODULE-IDENTITY, OBJECT-TYPE, Gauge32, Integer32
        FROM SNMPv2-SMI                 -- RFC 2578
    TEXTUAL-CONVENTION, DisplayString, TruthValue
        FROM SNMPv2-TC                  -- RFC 2579
    MODULE-COMPLIANCE, OBJECT-GROUP
        FROM SNMPv2-CONF;               -- RFC 2580

ppmMIB MODULE-IDENTITY
    LAST-UPDATED "0501020000Z"
    ORGANIZATION "Printer Working Group, a Program of IEEE/ISTO"
    CONTACT-INFO
        "Editors:

        Ron Bergman (Ricoh)
        Phone: +1-805-578-4421
        Email: Ron.Bergman@rpsa.ricoh.com

        Mike Fenelon (Microsoft)
        Email: mfenelon@windows.microsoft.com

        Ira McDonald (High North)
        Phone: +1-906-494-2434
        Email: imcdonald@sharplabs.com

        Ivan Pavicevic (Microsoft)
        Email: ivanp@windows.microsoft.com

        Send comments using the Printer MIB Project (PMP) Mailing List:

            pmp@pwg.org

        To subscribe, see the PWG web page:

            http://www.pwg.org/"
    DESCRIPTION
        "The MIB module for printer port monitor support.

        Copyright (C) IEEE/ISTO PWG (2005)."

    REVISION        "0501020000Z" -- 2 January 2005 (v0.30)
    DESCRIPTION     "Third draft of PWG Printer Port Monitor MIB.
                    - revised DESCRIPTION of several objects, to delete
                      inappropriate use of 'Note:' (for clarity),
                      per comments from Ron Bergman;
                    - revised DESCRIPTION of 'ppmGeneralNaturalLanguage'
                      to specify that default is 'en-US' (US English)
                      and to explain typical uses of language tags,
                      per comments from Ron Bergman;
                    - changed SYNTAX of 'ppmGeneralNumberOfPorts' from
                      'Counter32' (may only increase) to 'Gauge32' (may
                      decrease if rows in 'ppmPortTable' are removed)
                      and added DEFVAL clause (allowed on 'Gauge32'),
                      per comments from Ron Bergman;
                    - revised DESCRIPTION of 'ppmPortIndex', to explain
                      the DEFVAL clause is omitted per SMIv2 (RFC 2578),
                      per comments from Ron Bergman;
                    - changed SYNTAX of 'ppmPortProtocolType' to simple
                      'Integer32', to allow zero for 'not specified' and
                      to decouple from IANA-PRINTER-MIB for compilation,
                      per comments from Ron Bergman;
                    - revised DESCRIPTION of 'ppmPortProtocolType' to
                      require use of 'chPort9100' for Raw printing (and
                      prohibit 'chPortTCP(37)' and 'chBidirPortTCP(38)'
                      for Raw printing), to avoid ambiguity,
                      per comments from Mike and Ivan;
                    - revised DESCRIPTION of 'ppmPortLprQueueName', to
                      to specify default queue name of 'LPR',
                      per comments from Ron Bergman;"

    REVISION        "0412100000Z" -- 10 December 2004 (v0.20)
    DESCRIPTION     "Second draft of PWG Printer Port Monitor MIB.
                    - added Ivan to editors (oversight in v0.10),
                      per request of Mike and Ivan;
                    - added IMPORT of 'PrtChannelTypeTC' from
                      IANA-PRINTER-MIB (first published in RFC 3805)
                      and changed SYNTAX of 'ppmPortProtocolType',
                      per request of Ron Bergman;
                    - renamed 'PpmTextStringTC' textual convention to
                      'PpmLocalizedStringTC' (for clarity);
                    - added 'ppmGeneralNumberOfPorts' to General group,
                      to align with Mike and Ivan's original draft;
                    - revised 'ppmPortProtocolType' to specify the IANA
                      Printer MIB as the authoritative source of values,
                      per request of Ron Bergman;
                    - revised 'ppmPortProtocolPortNumber' to specify
                      that, if zero, then the default port for the
                      current value of 'ppmPortProtocolType' is used,
                      per request of Harry Lewis;
                    - revised 'ppmPortIEEE1284DeviceId' to clarify more
                      format details and restricted characters,
                      per request of Mike and Ivan;
                    - moved 'ppmGeneralCommunityName' and renamed to
                      'ppmPortSnmpCommunityName' (for clarity),
                      to align with Mike and Ivan's original draft;
                    - renamed 'ppmPortStatusQueryEnabled' to
                      'ppmPortSnmpStatusQueryEnabled' (for clarity),
                      to align with Mike and Ivan's original draft;
                    - deleted 'ppmPortDescription' (redundant),
                      per request of Mike and Ivan;
                    - deleted 'ppmPortPrtChannelIndex' and
                      'ppmPortInterfaceIndex' (not necessary),
                      per request of Mike and Ivan."

    REVISION        "0411180000Z" -- 18 November 2004 (v0.10)
    DESCRIPTION     "First draft of PWG Printer Port Monitor MIB.
                    - content from Mike and Ivan's original draft and
                      a few proposed extensions."
    ::= { enterprises pwg(2699) mibs(1) ppmMIB(2) }

ppmMIBObjects       OBJECT IDENTIFIER   ::= { ppmMIB 1 }
ppmMIBNotifications OBJECT IDENTIFIER   ::= { ppmMIB 2 }
ppmMIBConformance   OBJECT IDENTIFIER   ::= { ppmMIB 3 }
ppmMIBObjectGroups  OBJECT IDENTIFIER   ::= { ppmMIBConformance 2 }

--
--  Textual Conventions
--

PpmLocalizedStringTC ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "255a"
    STATUS      current
    DESCRIPTION
        "To facilitate internationalization, this datatype represents
        information represented in the ISO/IEC IS 10646-1 character set
        (encoded as an octet string using the UTF-8 (RFC 3629) character
        encoding scheme) in the natural language currently specified by
        'ppmGeneralNaturalLanguage'."
    REFERENCE
        "See:   'PrtLocalizedDescriptionStringTC' in RFC 3805."
    SYNTAX      OCTET STRING (SIZE (0..255))

--
--  Object Definitions
--

ppmGeneral          OBJECT IDENTIFIER   ::= { ppmMIBObjects 1 }

ppmGeneralNaturalLanguage OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..63))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The natural language tag (RFC 3066), specified in US-ASCII,
        for all localized text string objects defined in this MIB
        (of datatype 'PpmLocalizedStringTC'), or the empty string if
        not specified.  For example, 'zh-Hans-CN' (Simplified Chinese
        for the PRC).

        If this object is empty, then the natural language for all
        localized text string objects in this MIB MUST be 'en-US'
        (US English).

        This natural language tag is necessary for support of correct
        glyph selection for text display, for support of text-to-speech,
        for support of correct sorting of text values, etc."
    REFERENCE
        "See:   'prtGeneralCurrentLocalization' in RFC 1759/3805."
    DEFVAL      { ''H }                 -- no natural language tag
    ::= { ppmGeneral 1 }

ppmGeneralNumberOfPorts OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of printer ports supported on this network product,
        i.e., the number of entries in the 'ppmPortTable' below, or zero
        if no printer ports are currently configured."
    DEFVAL      { 0 }                   -- no printer ports configured
    ::= { ppmGeneral 2 }

ppmPort             OBJECT IDENTIFIER   ::= { ppmMIBObjects 2 }

ppmPortTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF PpmPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table containing basic network printer port information,
        especially for use by operating systems to facilitate
        selection and automatic installation of device drivers."
    ::= { ppmPort 1 }

ppmPortEntry  OBJECT-TYPE
    SYNTAX      PpmPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A entry containing basic network printer port information for
        one printer port."
    INDEX  { ppmPortIndex }
    ::= { ppmPortTable 1 }

PpmPortEntry ::= SEQUENCE {
        ppmPortIndex                    Integer32,
        ppmPortName                     PpmLocalizedStringTC,
        ppmPortProtocolType             Integer32,
        ppmPortProtocolPortNumber       Integer32,
        ppmPortIEEE1284DeviceId         DisplayString,
        ppmPortHrDeviceIndex            Integer32,
        ppmPortSnmpCommunityName        DisplayString,
        ppmPortSnmpStatusQueryEnabled   TruthValue,
        ppmPortLprQueueName             DisplayString,
        ppmPortLprByteCountEnabled      TruthValue
    }

ppmPortIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A locally unique identifier for this network printer port.
        Per SMIv2 (RFC 2578), the DEFVAL clause is omitted on this
        'not-accessible' index object."
    ::= { ppmPortEntry 1 }

ppmPortName OBJECT-TYPE
    SYNTAX      PpmLocalizedStringTC (SIZE (0..127))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A user friendly name for this port, in the locale specified by
        'ppmGeneralNaturalLanguage'.  May be used to facilitate user
        selection of a port on a multi-port network product.

        The charset of this text string object is UTF-8 (RFC 3629), in
        order to support names that cannot be represented in US-ASCII."
    REFERENCE
        "See:   'prtGeneralPrinterName' in Printer MIB v2 (RFC 3805)."
    DEFVAL      { ''H }                 -- port name not specified
    ::= { ppmPortEntry 2 }

ppmPortProtocolType OBJECT-TYPE
    SYNTAX      Integer32 (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The protocol type of this port, a value from 'PrtChannelTypeTC'
        in the IANA Printer MIB (e.g., 'chLPDServer(8)' for LPR
        (RFC 1179) or 'chPort9100(11)' for Raw), or zero if not
        specified.

        Products that implement Raw printing MUST specify a protocol
        type of 'chPort9100(11)' and specify an alternate port (if
        necessary) in 'pppPortProtocolPortNumber'.  Products MUST NOT
        use 'chPortTCP(37)' or 'chBidirPortTCP(38)' for Raw printing,
        to avoid ambiguity.

        For products that implement both the IETF Host Resources MIB
        (RFC 1514/2790) and the IETF Printer MIB (RFC 1759/3805), a port
        monitor application MAY search 'prtChannelTable' for this value
        in 'prtChannelType' for more channel information and status."
    REFERENCE
        "See:   'PrtChannelTypeTC' in IANA Printer MIB (RFC 3805 and
                http://www.iana.org/assignments/ianaprinter-mib).
        See:    'prtChannelType' in IETF Printer MIB RFC 1759/3805."
    DEFVAL      { 0 }                   -- protocol type not specified
    ::= { ppmPortEntry 3 }

ppmPortProtocolPortNumber OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The transport protocol (TCP, UDP, etc.) port number for this
        protocol, e.g., an alternate port from the protocol default,
        or zero if not specified.

        If this object is zero, then the actual protocol port number is
        the default port for the specified 'ppmPortProtocolType' (e.g.,
        'chPort9100(11)' uses '9100', 'chLPDServer(8)' uses '515')."
    REFERENCE
        "See:   IETF Line Printer Daemon Protocol (RFC 1179).
        See:    'tcpConnLocalPort' in MIB-II (RFC 1213).
        See:    'udpLocalPort' in MIB-II (RFC 1213)."
    DEFVAL      { 0 }                   -- port number not specified
    ::= { ppmPortEntry 4 }

ppmPortIEEE1284DeviceId OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The IEEE 1284 device ID for this port, a set of capabilities
        (keys and values) specified in the US-ASCII charset and the
        format 'key1: value {, value }; ... keyN: value {,value };',
        as follows:

        (a) SPACE (0x20), TAB (0x09), VTAB (0x0B), CR (0x0D), NL (0x0A),
            and FF (0x0C) are allowed, but ignored when parsing
        (b) other control characters (less than 0x20) MUST NOT be used
        (c) COLON (0x3A), COMMA (0x2C), and SEMICOLON (0x3B) are
            delimiters and MUST NOT be included in any key or value
        (d) each key MUST be separated from value(s) using COLON (0x3A)
        (e) multiple values MUST BE separated using COMMA (0x2C)
        (f) each capability MUST BE delimited using SEMICOLON (0x3B)
        (g) all ports MUST include the following capabilities
            - MANUFACTURER (or abbreviation MFG)
            - MODEL (or abbreviation MDL)
        (h) all ports MAY include the following capabilities
            - COMMAND SET (or abbreviation CMD)
            - COMMENT
            - ACTIVE COMMAND SET

        For example (actually all on one line of text):

            MANUFACTURER:ACME Manufacturing;
            COMMAND SET:PCL,PJL,PS,XHTML-Print+xml;
            MODEL:LaserBeam 9;
            COMMENT:Anything you like;
            ACTIVE COMMAND SET:PCL;

        The value of this object MUST exactly match the IEEE 1284-2000
        Device ID string, except that the length field MUST NOT be
        specified.  The value MUST be assigned by the Printer vendor
        and MUST NOT be localized by the Print Service.

        If this object is empty, then the value of 'ppmPortProtocolType'
        SHOULD be used to load a generic driver."
    REFERENCE
        "See:   Section 7.6 of IEEE 1284-2000."
    DEFVAL      { ''H }                 -- no IEEE 1284 device ID
    ::= { ppmPortEntry 5 }

ppmPortHrDeviceIndex OBJECT-TYPE
    SYNTAX      Integer32 (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of 'hrDeviceIndex' in IETF Host Resources MIB
        (RFC 1514/2790), to be used for status queries for this port if
        the value of 'ppmPortSnmpStatusQueryEnabled' is 'true'.

        If this object is zero, then monitoring applications MUST NOT
        attempt status queries for this port in the IETF Host Resources
        MIB (RFC 1514/2790) and/or IETF Printer MIB (RFC 1759/3805)."
    REFERENCE
        "See:   'hrDeviceStatus', 'hrPrinterStatus', and
                'hrPrinterDetectedErrorState' in RFC 1514/2790.
        See:    'prtChannelStatus' in RFC 1759/3805."
    DEFVAL      { 0 }                   -- no host device index
    ::= { ppmPortEntry 6 }

ppmPortSnmpCommunityName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The SNMP read community name, specified in US-ASCII, for access
        to the printer status information in IETF MIB-II (RFC 1213),
        IETF Host Resources MIB (RFC 1514/2790), and IETF Printer MIB
        (RFC 1759/3805) for this port.

        If this object is empty, then the SNMP read community name for
        this port MUST default to 'public'."
    REFERENCE
        "See:   'snmpCommunityName' in SNMP Community MIB (RFC 3584)."
    DEFVAL      { ''H }                 -- no SNMP read community name
    ::= { ppmPortEntry 7 }

ppmPortSnmpStatusQueryEnabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The status query mode for this port, for queries by monitoring
        applications in IETF Host Resources MIB (RFC 1514/2790) and/or
        IETF Printer MIB (RFC 1759/3805).

        If this object is 'false', then monitoring applications MUST NOT
        attempt status queries for this port in the IETF Host Resources
        MIB and/or IETF Printer MIB.
        If this object is 'true', then monitoring applications MAY
        attempt status queries for this port in the IETF Host Resources
        MIB and/or IETF Printer MIB."
    REFERENCE
        "See:   'hrDeviceStatus', 'hrPrinterStatus', and
                'hrPrinterDetectedErrorState' in RFC 1514/2790.
        See:    'prtChannelStatus' in RFC 1759/3805."
    DEFVAL      { false }               -- status monitoring disabled
    ::= { ppmPortEntry 8 }

ppmPortLprQueueName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The LPR queue name for this port, specified in US-ASCII.
        Ignored if 'ppmPortProtocolType' is not 'chLPDServer(8)'.

        If 'ppmPortProtocolType' is 'chLPDServer(8)' and this object is
        empty, then the LPR queue name MUST default to 'LPR'."
    REFERENCE
        "See:   IETF Line Printer Daemon Protocol (RFC 1179)."
    DEFVAL      { ''H }                 -- LPR queue name not specified
    ::= { ppmPortEntry 9 }

ppmPortLprByteCountEnabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current LPR byte counting mode for this port.

        If this object is 'true', then LPR byte counting is enabled.
        If this object is 'false', then LPR byte counting is disabled."
    REFERENCE
        "See:   IETF Line Printer Daemon Protocol (RFC 1179)."
    DEFVAL      { false }               -- LPR byte counting disabled
    ::= { ppmPortEntry 10 }

--
--  Conformance
--

ppmMIBCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The compliance statements for SNMP Agents that implement this
        Printer Port Monitor MIB."
    MODULE -- this module
    MANDATORY-GROUPS { ppmGeneralGroup, ppmPortGroup }
    ::= { ppmMIBConformance 1 }

--
--  Conformance Groups
--

ppmGeneralGroup OBJECT-GROUP
    OBJECTS {
        ppmGeneralNaturalLanguage,
        ppmGeneralNumberOfPorts
    }
    STATUS      current
    DESCRIPTION
        "The General object group in the Printer Port Monitor MIB"
    ::= { ppmMIBObjectGroups 1 }

ppmPortGroup OBJECT-GROUP
    OBJECTS {
        ppmPortName,
        ppmPortProtocolType,
        ppmPortProtocolPortNumber,
        ppmPortIEEE1284DeviceId,
        ppmPortHrDeviceIndex,
        ppmPortSnmpCommunityName,
        ppmPortSnmpStatusQueryEnabled,
        ppmPortLprQueueName,
        ppmPortLprByteCountEnabled
    }
    STATUS      current
    DESCRIPTION
        "The Port object group in the Printer Port Monitor MIB"
    ::= { ppmMIBObjectGroups 2 }

END

4 Conformance Requirements

5 IANA and PWG Considerations

6 Internationalization Considerations

7 Security Considerations

8 Acknowledgements

9 Normative References

10 Informative References

11 Authors Addresses