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

IMPORTS
    enterprises, MODULE-IDENTITY, OBJECT-TYPE, Gauge32, Integer32
        FROM SNMPv2-SMI                 -- RFC 2578
    TruthValue
        FROM SNMPv2-TC                  -- RFC 2579
    MODULE-COMPLIANCE, OBJECT-GROUP
        FROM SNMPv2-CONF                -- RFC 2580
    SnmpAdminString
        FROM SNMP-FRAMEWORK-MIB;        -- RFC 3411

ppmMIB MODULE-IDENTITY
    LAST-UPDATED "200510250000Z"
    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@microsoft.com

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

        Ivan Pavicevic (Microsoft)
        Email: ivanp@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     "200510250000Z"
    DESCRIPTION
        "PWG Approved Version, PWG 5107.1-2005"
    ::= { enterprises pwg(2699) mibs(1) ppmMIB(2) }

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

--
--  Object Definitions
--

ppmGeneral          OBJECT IDENTIFIER   ::= { ppmMIBObjects 1 }

ppmGeneralNaturalLanguage OBJECT-TYPE
    SYNTAX      SnmpAdminString (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 (syntax of
        'SnmpAdminString'), or the empty string if not specified.  For
        example, 'fr-CH' (French as written in Switzerland).

        Compatibility Note:  At the time of publication of this MIB,
        language tags are restricted to US-ASCII.  In order to support
        possible future evolution of languages tags (in a successor to
        RFC 3066) to allow non-ASCII characters, this object has been
        defined with a syntax of UTF-8 (RFC 3629).

        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.

        If this object is empty, then the natural language for all
        localized text string objects in this MIB MUST default to
        'en-US' (US English)."
    REFERENCE
        "prtGeneralCurrentLocalization in IETF Printer MIB (RFC
        1759/3805).
        jobNaturalLanguageTag in IETF Job Monitoring MIB (RFC 2707)."
    DEFVAL      { ''H }                 -- no natural language tag
    ::= { ppmGeneral 1 }

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

ppmGeneralNumberOfPorts OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of printer ports supported on this network system,
        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 3 }


ppmPrinter          OBJECT IDENTIFIER   ::= { ppmMIBObjects 2 }

ppmPrinterTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PpmPrinterEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table containing a list of printers configured on this
        network system, especially for use by operating systems to
        facilitate selection and automatic installation of device
        drivers."
    ::= { ppmPrinter 1 }

ppmPrinterEntry OBJECT-TYPE
    SYNTAX      PpmPrinterEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing one printer configured on this
        network system, especially for use by operating systems to
        facilitate selection and automatic installation of device
        drivers."
    INDEX  { ppmPrinterIndex }
    ::= { ppmPrinterTable 1 }

PpmPrinterEntry ::= SEQUENCE {
        ppmPrinterIndex                 Integer32,
        ppmPrinterName                  SnmpAdminString,
        ppmPrinterIEEE1284DeviceId      OCTET STRING,
        ppmPrinterNumberOfPorts         Gauge32,
        ppmPrinterPreferredPortIndex    Integer32,
        ppmPrinterHrDeviceIndex         Integer32,
        ppmPrinterSnmpCommunityName     OCTET STRING,
        ppmPrinterSnmpQueryEnabled      TruthValue
    }

ppmPrinterIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A locally unique identifier for this network printer.  The
        value of this object SHOULD be preserved (for each printer)
        across reboots and administrative configuration changes.

        If the value of 'ppmPortEnabled' is 'false' for all supported
        ports (i.e., ports with the same value of 'ppmPrinterIndex'),
        then applications MUST NOT attempt installation of this printer.

        Per SMIv2 (RFC 2578), the DEFVAL clause has been omitted on this
        'not-accessible' index object."
    ::= { ppmPrinterEntry 1 }

ppmPrinterName OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..127))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A user friendly name for this printer that may be used to
        facilitate user selection of a printer supported by a network
        system, in the locale specified by 'ppmGeneralNaturalLanguage'.
        This printer name may contain non-ASCII characters that are NOT
        allowed in a URI (RFC 3986) without percent-encoding.

        Systems that implement the IETF Printer MIB v1 (RFC 1759) SHOULD
        implement this object as an augmentation to the Printer MIB v1.

        Systems that implement the IETF Printer MIB v2 (RFC 3805) MUST
        ensure that the value of this object is identical to the value
        of 'prtGeneralPrinterName' for each printer.

        The value of this object SHOULD be unique across all printers on
        this network system and SHOULD be meaningful to end users
        (e.g., 'PrinterXYZ').

        The value of this object SHOULD be set by an out-of-band method
        (e.g., local console) during installation (by the vendor or site
        administrator) and SHOULD NOT be subsequently modified, so that
        the value can be used as a static key for access to the printer.

        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
        "prtGeneralPrinterName in IETF Printer MIB v2 (RFC 3805).
        printer-name in IPP/1.1 (RFC 2911)."
    DEFVAL      { ''H }                 -- printer name not specified
    ::= { ppmPrinterEntry 2 }

ppmPrinterIEEE1284DeviceId OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..1023))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The IEEE 1284 device ID for this printer, 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 are ignored when parsing
        (b) other control characters (less than 0x20) MUST NOT be used
        (c) COLON (0x3A), COMMA (0x2C), and SEMICOLON (0x3B) are used as
            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 terminated using SEMICOLON (0x3B)
        (g) all printers MUST include the following capabilities
            - MANUFACTURER (or abbreviation MFG)
            - MODEL (or abbreviation MDL)
        (h) all printers 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.

        Compatibility Note:  At the time of publication of this MIB,
        IEEE device IDs are restricted to US-ASCII.  In order to support
        possible future evolution of IEEE device IDs (in a successor to
        IEEE 1284-2000) to allow non-ASCII characters, this object has
        been defined with a syntax of OCTET STRING to support the future
        use of UTF-8 (RFC 3629).

        If this object is empty, then the value of 'ppmPortProtocolType'
        for the selected port SHOULD be used to load a generic driver."
    REFERENCE
        "Section 7.6 of IEEE 1284-2000.
        printer-make-and-model in IPP/1.1 (RFC 2911)."
    DEFVAL      { ''H }                 -- no IEEE 1284 device ID
    ::= { ppmPrinterEntry 3 }

ppmPrinterNumberOfPorts OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of printer ports supported on this network printer,
        i.e., the number of entries in the 'ppmPortTable' below with a
        first index of 'ppmPrinterIndex', or zero if no printer ports
        are currently configured."
    DEFVAL      { 0 }                   -- no printer ports configured
    ::= { ppmPrinterEntry 4 }

ppmPrinterPreferredPortIndex OBJECT-TYPE
    SYNTAX      Integer32 (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of 'ppmPortIndex' for the preferred port for this
        printer (configured by vendor or site administrator), or zero if
        not specified.

        Compatibility Note:  The value of zero is NOT valid for
        'ppmPortIndex'.  It is an out-of-band value.

        If this object is non-zero, then installation applications
        SHOULD default to this port in their user interface dialogue."
    REFERENCE
        "document-format-default in IPP/1.1 (RFC 2911)."
    DEFVAL      { 0 }                   -- no preferred port configured
    ::= { ppmPrinterEntry 5 }

ppmPrinterHrDeviceIndex OBJECT-TYPE
    SYNTAX      Integer32 (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of 'hrDeviceIndex' in the IETF Host Resources MIB
        (RFC 1514/2790), or zero if not specified.  This value of
        'hrDeviceIndex' MAY be used for status queries for this printer
        if the value of 'ppmPrinterSnmpQueryEnabled' is 'true'.

        Compatibility Note:  The value of zero is NOT valid for
        'hrDeviceIndex'.  It is an out-of-band value.

        If this object is zero, then monitoring applications MUST NOT
        attempt status queries for this printer in the IETF Host
        Resources MIB (RFC 1514/2790) and/or IETF Printer MIB
        (RFC 1759/3805)."
    REFERENCE
        "hrDeviceStatus, hrPrinterStatus, hrPrinterDetectedErrorState
        in IETF Host Resources MIB (RFC 1514/2790).
        Section 2.2.13.2 'Overall Printer Status' and
        Appendix E 'Overall Printer Status Table' in IETF Printer MIB v2
        (RFC 3805)."
    DEFVAL      { 0 }                   -- no host device index
    ::= { ppmPrinterEntry 6 }

ppmPrinterSnmpCommunityName OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The SNMP read community name, an opaque binary string, for
        access to status information in IETF Host Resources MIB (RFC
        1514/2790) and IETF Printer MIB (RFC 1759/3805) for this printer
        via the value of 'ppmPrinterHrDeviceIndex' (i.e., a 'MIB view'
        of these two MIBs).

        Security Warning:  Due to the widespread availability of free
        'packet sniffers' (network traffic snooping applications) and
        SNMP packet decoders, SNMP community names no longer offer even
        weak security.  This object SHOULD only be used to support 'MIB
        views'.  Implementations SHOULD use SNMPv3 security to protect
        network resources from unauthorized monitoring.

        If this object is empty, then the SNMP read community name for
        this printer (if any) SHOULD default to 'public' in US-ASCII."
    REFERENCE
        "snmpCommunityName in IETF SNMP Community MIB (RFC 3584)."
    DEFVAL      { ''H }                 -- no SNMP read community name
    ::= { ppmPrinterEntry 7 }

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

        If this object is 'true', then monitoring applications MAY
        attempt status queries for this printer in the IETF Host
        Resources MIB and/or IETF Printer MIB.

        If this object is 'false', then monitoring applications MUST
        NOT attempt status queries for this printer in the IETF Host
        Resources MIB and/or IETF Printer MIB."
    REFERENCE
        "ppmPrinterSnmpCommunityName."
    DEFVAL      { false }               -- SNMP status queries disabled
    ::= { ppmPrinterEntry 8 }


ppmPort             OBJECT IDENTIFIER   ::= { ppmMIBObjects 3 }

ppmPortTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PpmPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table containing a list of input printer ports configured on
        this network system, especially for use by operating systems to
        facilitate selection and automatic installation of device
        drivers."
    REFERENCE
        "ppmPrinterTable."
    ::= { ppmPort 1 }

ppmPortEntry OBJECT-TYPE
    SYNTAX      PpmPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing one input printer port configured on
        this network system, especially for use by operating systems to
        facilitate selection and automatic installation of device
        drivers."
    REFERENCE
        "ppmPrinterEntry."
    INDEX  { ppmPrinterIndex, ppmPortIndex }
    ::= { ppmPortTable 1 }

PpmPortEntry ::= SEQUENCE {
        ppmPortIndex                    Integer32,
        ppmPortEnabled                  TruthValue,
        ppmPortName                     SnmpAdminString,
        ppmPortServiceNameOrURI         SnmpAdminString,
        ppmPortProtocolType             Integer32,
        ppmPortProtocolTargetPort       Integer32,
        ppmPortProtocolAltSourceEnabled TruthValue,
        ppmPortPrtChannelIndex          Integer32,
        ppmPortLprByteCountEnabled      TruthValue
    }

ppmPortIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A locally unique identifier for this printer port when appended
        to the value of 'ppmPrinterIndex' for this printer port.  The
        value of this object SHOULD be preserved (for each port) across
        reboots and administrative configuration changes.

        Per SMIv2 (RFC 2578), the DEFVAL clause has been omitted on this
        'not-accessible' index object."
    ::= { ppmPortEntry 1 }

ppmPortEnabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current administrative configuration mode for this port.
        If this object is 'false', then applications MUST NOT attempt
        installation of this port and SHOULD NOT attempt print job
        submission to this port.

        If this object is 'true', then the port is currently enabled.
        If this object is 'false', then the port is currently disabled."
    REFERENCE
        "ppmPortProtocolType and ppmPortHrDeviceIndex."
    DEFVAL      { false }               -- port disabled
    ::= { ppmPortEntry 2 }

ppmPortName OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..127))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A user friendly name for this port that may be used to
        facilitate user selection of a port on a multi-port network
        system, in the locale specified by 'ppmGeneralNaturalLanguage'.
        This port name may contain non-ASCII characters that are NOT
        allowed in a URI (RFC 3986) without percent-encoding.

        The value of this object SHOULD be unique across all ports on
        this network system and SHOULD be meaningful to end users
        (e.g., 'PrinterXYZ-LPR-Duplex').

        The value of this object SHOULD be set by an out-of-band method
        (e.g., local console) during installation (by the vendor or site
        administrator) and SHOULD NOT be subsequently modified, so that
        the value can be used as a static key for access to the port.

        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
        "prtChannelInformation in IETF Printer MIB v2 (RFC 3805)."
    DEFVAL      { ''H }                 -- port name not specified
    ::= { ppmPortEntry 3 }

ppmPortServiceNameOrURI OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The service name or URI for this port, specified in UTF-8 (RFC
        3629), in the locale specified by 'ppmGeneralNaturalLanguage'.
        The service name is typically a queue name.

        Compatibility Note:  At the time of publication of this MIB,
        the Microsoft tools do not support LPR queue names longer than
        32 characters.  Network administrators SHOULD NOT assign longer
        LPR queue names, to prevent interworking problems. 

        Compatibility Note:  At the time of publication of this MIB,
        IETF URI Generic Syntax (RFC 3986) requires that all non-ASCII
        characters be percent-encoded, while IETF Internationalized
        Resource Identifiers (RFC 3987) permits native UTF-8 resource
        identifiers and supplies mappings to and from standard URI.
        In order to support current use of IRI and possible future
        evolution of URI (in a successor to RFC 3986) to allow non-ASCII
        characters, this object has been defined with a syntax of UTF-8
        (RFC 3629).

        Examples of well-formed service URI for print protocols
        include:

             - 'lpr://foo.example.com/public-printer' (where 'public-
                printer' is the LPR queue name portion)
        and
             - 'ipp://bar.example.com/printer/fox'

        If this object is non-empty, then it SHOULD NOT conflict with a
        the default (e.g., IANA-registered) or explicit transport target
        port specified in 'ppmPortProtocolTargetPort'.  In case of
        conflict, the URI value in 'ppmPortServiceNameOrURI' is
        authoritative (e.g., 'ipp://example.com:631/~smith/printer').

        If this object is empty and 'ppmPortProtocolType' is
        'chLPDServer(8)', the LPR queue name MUST default to 'LPR'."
    REFERENCE
        "IETF Line Printer Daemon Protocol (RFC 1179).
        'lpr:' URL scheme in IANA-registered SLP Printer Schema at
        http://www.iana.org/assignments/svrloc-templates/
        printer-uri in LDAP Printer Schema (RFC 3712).
        IPP/1.1: IPP URL Scheme (RFC 3510).
        printer-uri-supported in IPP/1.1 (RFC 2911)."
    DEFVAL      { ''H }                 -- no service name or URI
    ::= { ppmPortEntry 4 }

ppmPortProtocolType OBJECT-TYPE
    SYNTAX      Integer32 (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The protocol type of this printer port, specified as 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.

        Compatibility Note:  The value of zero is NOT registered in the
        IANA Printer MIB.  It is an out-of-band value.  Thus the syntax
        of this object is NOT specified as 'PrtChannelTypeTC'.

        Systems that do NOT implement IETF Printer MIB v2 (RFC 3805)
        SHOULD use 'chPort9100(11)' for Raw printing (with an alternate
        port in 'ppmPortProtocolTargetPort', if necessary), because
        'chPortTCP(37)' and 'chBidirPortTCP(38)' are NOT defined in 
        IETF Printer MIB v1 (RFC 1759).

        Systems that do implement the IETF Printer MIB v2 (RFC 3805)
        MAY instead use 'chPortTCP(37)' or 'chBidirPortTCP(38)' for Raw
        printing, because 'chPort9100(11)' is DEPRECATED in IETF
        Printer MIB v2.

        Systems that implement any version of the IETF Printer MIB
        (RFC 1759/3805) SHOULD use the same value of protocol type for
        this port in the 'prtChannelTable', so monitoring applications
        MAY search for more channel information and status."
    REFERENCE
        "PrtChannelTypeTC in IANA Printer MIB (RFC 3805 and
        http://www.iana.org/assignments/ianaprinter-mib).
        prtChannelType in IETF Printer MIB (RFC 1759/3805)."
    DEFVAL      { 0 }                   -- protocol type not specified
    ::= { ppmPortEntry 5 }

ppmPortProtocolTargetPort OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The transport (TCP, UDP, etc.) target port number for this
        protocol, i.e., an alternate port from the protocol default, or
        zero if not specified (use protocol default).  This object MAY
        be used for any print protocol (from the Internet, NetWare,
        AppleTalk, or other protocol suite).

        If this object is zero, then the actual target port number is
        the default port for the specified 'ppmPortProtocolType' (e.g.,
        'chPort9100(11)' uses '9100').

        If this object is non-zero, then it SHOULD NOT conflict with the
        default (e.g., IANA-registered) target port implied by the value
        of 'ppmPortProtocolType' or the explicit transport target port
        specified in 'ppmPortServiceNameOrURI'.  In case of conflict,
        the URI value in 'ppmPortServiceNameOrURI' is authoritative 
        (e.g., 'ipp://example.com:631/~smith/printer').

        If 'ppmPortProtocolType' is 'chLPDServer(8)', then this object
        MUST be ignored (because LPR target port is fixed at '515')."
    REFERENCE
        "IETF Line Printer Daemon Protocol (RFC 1179)."
    DEFVAL      { 0 }                   -- target port not specified
    ::= { ppmPortEntry 6 }

ppmPortProtocolAltSourceEnabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The alternate transport source port mode for this protocol.

        If this object is 'true', then transport source ports outside
        the standard range MAY be used (e.g., LPR source port standard
        range is defined in RFC 1179 to be '721' to '731', inclusive).

        If this object is 'false', then transport source ports outside
        the standard range MUST NOT be used (to avoid protocol
        errors)."
    REFERENCE
        "IETF Line Printer Daemon Protocol (RFC 1179)."
    DEFVAL      { false }               -- alt source ports disabled
    ::= { ppmPortEntry 7 }

ppmPortPrtChannelIndex OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of 'prtChannelIndex' in IETF Printer MIB
        (RFC 1759/3805) that corresponds to this printer port, or zero
        if not specified.

        Compatibility Note:  The value of zero is NOT valid for
        'prtChannelIndex'.  It is an out-of-band value.

        Systems that implement any version of the IETF Printer MIB
        (RFC 1759/3805) SHOULD correctly implement this object, so
        monitoring applications MAY search for print channel information
        and status.

        If this object is zero, then monitoring applications MUST NOT
        attempt print channel status queries for this printer port."
    REFERENCE
        "prtChannelIndex, prtChannelIfIndex, prtChannelState, and
        prtChannelStatus in IETF Printer MIB (RFC 1759/3805)."
    DEFVAL      { 0 }                   -- no print channel index
    ::= { ppmPortEntry 8 }

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

        If the value of 'ppmPortProtocolType' is NOT 'chLPDServer(8)',
        then monitoring applications MUST ignore the value of this
        object.

        If this object is 'true', then LPR byte counting is enabled.

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

--
--  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, ppmPrinterGroup, ppmPortGroup }

    OBJECT  ppmPrinterIEEE1284DeviceId
    SYNTAX  OCTET STRING (SIZE(0..255))
    DESCRIPTION
        "At least 255 octets maximum string length MUST be supported
        by all implementations of this object.  The 'MANUFACTURER' (or
        'MFG') and 'MODEL' (or 'MDL') fields MUST be contained within
        the first 255 octets of this object (to prevent truncation of
        critical information across gateways and mid-level managers).
        Implementations that support less than the 1023 octets maximum
        string length MUST only truncate complete fields (i.e., keyword,
        colon, value(s), and semicolon)."
    ::= { ppmMIBConformance 1 }

--
--  Conformance Groups
--

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

ppmPrinterGroup OBJECT-GROUP
    OBJECTS {
        ppmPrinterName,
        ppmPrinterIEEE1284DeviceId,
        ppmPrinterNumberOfPorts,
        ppmPrinterPreferredPortIndex,
        ppmPrinterHrDeviceIndex,
        ppmPrinterSnmpCommunityName,
        ppmPrinterSnmpQueryEnabled
    }
    STATUS      current
    DESCRIPTION
        "The Printer object group in the Printer Port Monitor MIB"
    ::= { ppmMIBObjectGroups 2 }

ppmPortGroup OBJECT-GROUP
    OBJECTS {
        ppmPortEnabled,
        ppmPortName,
        ppmPortServiceNameOrURI,
        ppmPortProtocolType,
        ppmPortProtocolTargetPort,
        ppmPortProtocolAltSourceEnabled,
        ppmPortPrtChannelIndex,
        ppmPortLprByteCountEnabled
    }
    STATUS      current
    DESCRIPTION
        "The Port object group in the Printer Port Monitor MIB"
    ::= { ppmMIBObjectGroups 3 }

END

