CPQNUNIF-MIB
DEFINITIONS ::= BEGIN

IMPORTS
    enterprises, IpAddress      FROM RFC1155-SMI
    DisplayString               FROM RFC1213-MIB
    PhysAddress                 FROM RFC1213-MIB
    OBJECT-TYPE                 FROM RFC-1212;

compaq                  OBJECT IDENTIFIER ::= { enterprises 232 }

cpqnCommon              OBJECT IDENTIFIER ::= { compaq      121 }

cpqnMibModules          OBJECT IDENTIFIER ::= { cpqnCommon    1 }
cpqnUnitControl         OBJECT IDENTIFIER ::= { cpqnCommon    2 }
cpqnVersionInformation  OBJECT IDENTIFIER ::= { cpqnCommon    3 }
cpqnAccessControl       OBJECT IDENTIFIER ::= { cpqnCommon    4 }
cpqnTrapDestinations    OBJECT IDENTIFIER ::= { cpqnCommon    5 }
cpqnNetworkInfo         OBJECT IDENTIFIER ::= { cpqnCommon    6 }
cpqnBootpConfig         OBJECT IDENTIFIER ::= { cpqnCommon    7 }

--------------------------------------------------------------------------------
--  March 26, 1998       $Revision: 6049 $
--
--  COMPAQ Networking Unified MIB
--
--  Compaq Part Number 299450-000 Rev B
--
--  Many Compaq networking products support this MIB.  This MIB provides the
--  following information:
--
--    * A table listing all the MIBs actively supported in the unit
--    * Basic unit control for reset and Modem initialization strings
--    * A table listing all the Hardware and Software Components in the unit
--      and their version numbers and serial number information (if applicable)
--    * A table controlling access to the unit's agent by IP or IPX address
--      and community name.
--    * A table that defines which IP or IPX addresses traps are sent to
--    * A table which controls the IP protocol stack in the unit (if
--      present)
--    * A table which controls the IPX protocol stack in the unit (if
--      present)
--    * A table used to control BOOTP requests for each LAN interface on the
--      unit
--
--  NOTE: Some of the parameters in this MIB are read-only.  However, many
--        are read-write and allow the unit's operational parameters to
--        be modified.  Care must be taken when setting these parameters as
--        changes will affect the unit's operation.
--
--  NOTE: Many of the settable objects in this MIB are "DURABLE".  This means
--        that when set, the value is stored in non-volatile memory in the
--        unit.  Durable data is retained during power cycles (outages) and
--        across unit resets.
--------------------------------------------------------------------------------
--
-- This object controls status of row entries.  Rows are added to tables
-- using 'row sets'.  When a row is added, this object must be set
-- to row-valid(1).  To delete a row from a table, set this object for
-- the row to row-invalid(2).  Row sets for new rows with a row status set
-- to row-invalid(2) return a BAD VALUE error.  This object will always
-- read as row-valid(1).
--
    CpqnRowStatus ::= INTEGER
        {
        row-valid(1),
        row-invalid(2)
        }

--  All representations of IPX addresses in this MIB Module
--  use, as textual convention (i.e. this convention does
--  not affect their encoding), the data type:

    IpxAddress ::= OCTET STRING (SIZE (10))

--  defined by Novell's NetWare IPX protocol, as the following
--  tuple: (Network number, Node address) where the the network
--  number is 4 bytes, node address is 6 bytes.

--------------------------------------------------------------------------------
-- MIB Module Table
--
-- This table contains a list of all the MIB modules that the agent supports.
--------------------------------------------------------------------------------

cpqnMibModuleTable      OBJECT-TYPE
    SYNTAX              SEQUENCE OF CpqnMibModuleEntry
    ACCESS              not-accessible
    STATUS              mandatory
    DESCRIPTION
       "This table contains a list of all the MIB modules actively supported
        by a unit's agent.  This includes any standard RFC and Compaq
        enterprise MIBs."
   ::= { cpqnMibModules 1 }

cpqnMibModuleEntry      OBJECT-TYPE
    SYNTAX              CpqnMibModuleEntry
    ACCESS              not-accessible
    STATUS              mandatory
    DESCRIPTION
       "There is one entry defined for each separate MIB module the agent
        supports."
   INDEX { cpqnMibModuleIndex }
   ::= { cpqnMibModuleTable 1 }

CpqnMibModuleEntry ::= SEQUENCE {
    cpqnMibModuleIndex   INTEGER,
    cpqnMibModuleDescr   DisplayString,
    cpqnMibModuleOid     OBJECT IDENTIFIER
}

cpqnMibModuleIndex      OBJECT-TYPE
    SYNTAX              INTEGER
    ACCESS              read-only
    STATUS              mandatory
    DESCRIPTION
       "The index for this entry."
   ::= { cpqnMibModuleEntry 1 }

cpqnMibModuleDescr      OBJECT-TYPE
    SYNTAX              DisplayString
    ACCESS              read-only
    STATUS              mandatory
    DESCRIPTION
       "This is a short textual description of the MIB module for this entry.
        Examples could be RFC 1213 MIB-II or Compaq Unified MIB."
   ::= { cpqnMibModuleEntry 2 }

cpqnMibModuleOid        OBJECT-TYPE
    SYNTAX              OBJECT IDENTIFIER
    ACCESS              read-only
    STATUS              mandatory
    DESCRIPTION
       "This is the OID representing the base node of the MIB for this entry.
        The base node of a MIB is defined here as the first MIB node that is
        not defined in another MIB.  For example, the base node OID for RMON
        is MIB-II.RMON or 1.3.6.1.2.1.16."
   ::= { cpqnMibModuleEntry 3 }

--------------------------------------------------------------------------------
--  UNIT CONTROL
--
--  These objects allow the unit to be reset and provide for modem support.
--------------------------------------------------------------------------------

cpqnUnitReset           OBJECT-TYPE
    SYNTAX              INTEGER
    {
        running(1),       -- value always read from this object
        reset(2),
        warm-start(3),
        reset-to-factory-values(4)
    }
    ACCESS              read-write
    STATUS              mandatory
    DESCRIPTION
       "Setting this object to reset(2) causes the unit to reset in the most
        complete manner possible.  Any hardware units that can be reset, will
        be.  If possible, this will be done using a hardware reset;  if not,
        then the unit will perform a software re-initialization.  All
        non-durable information, including counter values, will be lost.  All
        durable information is retained.

        The value returned for this object will ALWAYS be running(1).

        After receiving a request to set this variable to reset(2), the unit
        may delay the reset for a short period.  This is done to respond to
        the SNMP set request.  The warm-start(3) setting has the same behavior.

        Note that not all units support warm-start(3).  If not supported,
        a unit will return a BAD VALUE error.

        For more information on the meaning and semantics of 'reset' and
        'warm-start', see the User's Guide for the unit.

        Setting this object to reset-to-factory-values(4) will cause all
        configurable parameters to be reset to the factory settings.  Note
        that all user-configured information will be lost:  this includes the
        system description, passwords, community names, the contents of the
        access control table (cpqnCommunityAccessTable), and default routes.
        See the unit's documentation for information on factory settings."
   ::= { cpqnUnitControl 1 }

cpqnPrimarySerialPort   OBJECT-TYPE
    SYNTAX              INTEGER
    ACCESS              read-only
    STATUS              mandatory
    DESCRIPTION
       "This object indicates which entry in the cpqnSerialPortTable is the
        primary serial port.  For a list of the functions and features provided
        on a unit's primary serial port, see the unit's documentation."
   ::= { cpqnUnitControl 2 }

--
-- The serial port table.  This table lists information about each serial
-- port on the unit.
--
cpqnSerialPortTable     OBJECT-TYPE
    SYNTAX              SEQUENCE OF CpqnSerialPortEntry
    ACCESS              not-accessible
    STATUS              mandatory
    DESCRIPTION
        "There is one entry in this table for each serial port on the unit."
   ::= { cpqnUnitControl 3 }

cpqnSerialPortEntry         OBJECT-TYPE
   SYNTAX                   CpqnSerialPortEntry
   ACCESS                   not-accessible
   STATUS                   mandatory
   DESCRIPTION
       "This entry provides information and objects to control a serial port."
   INDEX { cpqnSPortIndex }
   ::= { cpqnSerialPortTable 1 }

CpqnSerialPortEntry ::= SEQUENCE {
    cpqnSPortIndex                   INTEGER,
    cpqnSPortIfIndex                 INTEGER,
    cpqnSPortModemInitStringEnable   INTEGER,
    cpqnSPortModemInitString         DisplayString,
    cpqnSPortModemAutoNegotiateState INTEGER,
    cpqnSPortBaudRate                INTEGER
}

cpqnSPortIndex          OBJECT-TYPE
    SYNTAX              INTEGER
    ACCESS              read-only
    STATUS              mandatory
    DESCRIPTION
       "The index of this row."
   ::= { cpqnSerialPortEntry 1 }

cpqnSPortIfIndex       OBJECT-TYPE
    SYNTAX              INTEGER
    ACCESS              read-only
    STATUS              mandatory
    DESCRIPTION
       "This object indicates which entry in the MIB-II interface table
        this serial port corresponds to.  If this value is zero (0), then
        this serial port DOES NOT have an associated MIB-II interface.  This
        object will only be non-zero for serial ports which support SLIP, PPP
        or a similar protocol."
   ::= { cpqnSerialPortEntry 2 }

cpqnSPortModemInitStringEnable  OBJECT-TYPE
    SYNTAX              INTEGER
    {
        enabled(1),
        disabled(2)
    }
    ACCESS              read-write
    STATUS              mandatory
    DESCRIPTION
       "DURABLE:  If this object is enabled(1) then after a power up or reset
        the unit will transmit the modem init string out the primary serial
        port in order to initialize the modem.  This will occur at the baud
        rate value of cpqnSPortBaudRate.  Note that some units have
        more sophisticated modem support features.  For more information on
        how a unit supports modems, see the unit's documentation."
   ::= { cpqnSerialPortEntry 3 }

cpqnSPortModemInitString OBJECT-TYPE
    SYNTAX              DisplayString (SIZE (1..40))
    ACCESS              read-write
    STATUS              mandatory
    DESCRIPTION
       "DURABLE:  This object contains a Modem Initialization String which is
        used to configure a modem on this port to the desired mode.  Refer to
        the unit-specific documentation for information on the factory setting
        for this object and for other information on how the unit supports
        modems."
   ::= { cpqnSerialPortEntry 4 }

cpqnSPortModemAutoNegotiateState OBJECT-TYPE
    SYNTAX              INTEGER
    {
        enabled(1),     -- enable modem auto-negotiate
        disabled(2)     -- disable modem auto-negotiate
    }
    ACCESS              read-write
    STATUS              mandatory
    DESCRIPTION
       "DURABLE:  If enabled(1), the unit automatically detects the baud rate
        of incoming calls and will adjust the baud rate on this port to match.
        This is accomplished by watching for the connect indication strings
        from a modem attached to the port.  For more information on how a unit
        supports modems, see the unit's documentation."
   ::= { cpqnSerialPortEntry 5 }

cpqnSPortBaudRate       OBJECT-TYPE
    SYNTAX              INTEGER
    ACCESS              read-write
    STATUS              mandatory
    DESCRIPTION
       "DURABLE:  This is the current baud rate for the port.  Its value must
        match a cpqnBaudRate entry in cpqnSupportBaudRateTable.  Note that
        this value can automatically change if cpqnSPortModemAutoNegotiateState
        is set to enabled(1)."
   ::= { cpqnSerialPortEntry 6 }

--
-- The baud rate table.  This table lists the supported baud rates for the
-- serial ports on the unit.
--
cpqnSupportedBaudRateTable OBJECT-TYPE
    SYNTAX              SEQUENCE OF CpqnSupportedBaudRateEntry
    ACCESS              not-accessible
    STATUS              mandatory
    DESCRIPTION
        "A table of supported baud rates for this unit."
   ::= { cpqnUnitControl 4 }

cpqnSupportedBaudRateEntry OBJECT-TYPE
   SYNTAX               CpqnSupportedBaudRateEntry
   ACCESS               not-accessible
   STATUS               mandatory
   DESCRIPTION
       "There is one entry defined for each supported baud rate for each
        serial port."
   INDEX { cpqnBaudRatePortIndex, cpqnBaudRateIndex }
   ::= { cpqnSupportedBaudRateTable 1 }

CpqnSupportedBaudRateEntry ::= SEQUENCE {
    cpqnBaudRatePortIndex   INTEGER,
    cpqnBaudRateIndex       INTEGER,
    cpqnBaudRate            INTEGER
}

cpqnBaudRatePortIndex   OBJECT-TYPE
    SYNTAX              INTEGER
    ACCESS              read-only
    STATUS              mandatory
    DESCRIPTION
       "The index into the cpqnSerialPortTable table identifying the port
        this entry applies to."
   ::= { cpqnSupportedBaudRateEntry 1 }

cpqnBaudRateIndex       OBJECT-TYPE
    SYNTAX              INTEGER
    ACCESS              read-only
    STATUS              mandatory
    DESCRIPTION
       "The index of this row."
   ::= { cpqnSupportedBaudRateEntry 2 }

cpqnBaudRate            OBJECT-TYPE
    SYNTAX              INTEGER
    ACCESS              read-only
    STATUS              mandatory
    DESCRIPTION
       "The supported baud rate for the port indexed by cpqnBaudRatePortIndex."
   ::= { cpqnSupportedBaudRateEntry 3 }

--------------------------------------------------------------------------------
-- VERSION TABLE
--------------------------------------------------------------------------------
-- This table contains a list of components that are present in the unit,
-- their version numbers, and other identifying information.
--
-- This table can contain information regarding hardware and software
-- components.
--------------------------------------------------------------------------------

CpqnVersionType ::= INTEGER
{
    other(1),
    hardware(2),
    software(3)
}

CpqnVersionStep ::= INTEGER
{                       -- Letter Designator
    other(1),           -- 'X'
    engineering(2),     -- 'E'
    alpha(3),           -- 'A'
    beta(4),            -- 'B'
    prototype(5),       -- 'T'
    pilot(6),           -- 'I'
    pre-production(7),  -- 'N'
    production(8),      -- 'P', ' '(space) or ASCII NUL
    post-production(9), -- 'O'
    simple-revision(10) -- 'R'
}

cpqnVersionTable        OBJECT-TYPE
   SYNTAX               SEQUENCE OF CpqnVersionEntry
   ACCESS               not-accessible
   STATUS               mandatory
   DESCRIPTION
       "This table contains a list of hardware and/or software components
        resident in the unit."
   ::= { cpqnVersionInformation 1 }

cpqnVersionEntry        OBJECT-TYPE
   SYNTAX               CpqnVersionEntry
   ACCESS               not-accessible
   STATUS               mandatory
   DESCRIPTION
       "There is one entry defined for each hardware and/or software
        component."
   INDEX {cpqnVersionIndex }
   ::= { cpqnVersionTable 1 }

CpqnVersionEntry ::= SEQUENCE {
    cpqnVersionIndex         INTEGER,
    cpqnVersionType          CpqnVersionType,
    cpqnVersionDesc          DisplayString,
    cpqnVersionMajor         INTEGER,
    cpqnVersionMinor         INTEGER,
    cpqnVersionStep          CpqnVersionStep,
    cpqnVersionRev           INTEGER,
    cpqnVersionSerialNumber  DisplayString,
    cpqnVersionUnitId        INTEGER,
    cpqnVersionParentIndex   INTEGER
}

cpqnVersionIndex        OBJECT-TYPE
    SYNTAX              INTEGER
    ACCESS              read-only
    STATUS              mandatory
    DESCRIPTION
       "The index into the version table."
   ::= { cpqnVersionEntry 1 }

cpqnVersionType         OBJECT-TYPE
   SYNTAX               CpqnVersionType
   ACCESS               read-only
   STATUS               mandatory
   DESCRIPTION
        "The component's type."
   ::= { cpqnVersionEntry 2 }

cpqnVersionDesc         OBJECT-TYPE
    SYNTAX              DisplayString
    ACCESS              read-only
    STATUS              mandatory
    DESCRIPTION
       "A brief description of the component.  This object may be empty."
   ::= { cpqnVersionEntry 3 }

cpqnVersionMajor        OBJECT-TYPE
    SYNTAX              INTEGER
    ACCESS              read-only
    STATUS              mandatory
    DESCRIPTION
       "The MAJOR version number of the component.  This is always a value
        between 0 and 255 and should be interpreted as a decimal number.  An
        example is version 2.14 where 2 is the major version number."
   ::= { cpqnVersionEntry 4 }

cpqnVersionMinor        OBJECT-TYPE
   SYNTAX               INTEGER
   ACCESS               read-only
   STATUS               mandatory
   DESCRIPTION
       "The MINOR version number of the component.  This is always a value
        between 0 and 99 and should be interpreted as a two-digit decimal
        number.  An example is version 2.01 where 1 is the minor version
        number.  Another example is version 2.1 where 10 is the minor
        version number."
   ::= { cpqnVersionEntry 5 }

cpqnVersionStep         OBJECT-TYPE
   SYNTAX               CpqnVersionStep
   ACCESS               read-only
   STATUS               mandatory
   DESCRIPTION
       "The STEP identifier for the associated component.  This value indicates
        the level or class of the component, such as prototype, production,
        or beta."
   ::= { cpqnVersionEntry 6 }

cpqnVersionRev          OBJECT-TYPE
   SYNTAX               INTEGER
   ACCESS               read-only
   STATUS               mandatory
   DESCRIPTION
       "The REVISION of the step for the associated component.  An example
        is version 1.00B3 where 3 is the revision number."
   ::= { cpqnVersionEntry 7 }

cpqnVersionSerialNumber OBJECT-TYPE
    SYNTAX              DisplayString
    ACCESS              read-only
    STATUS              mandatory
    DESCRIPTION
       "The serial number of this component.  The format of this
        object is dependent on the unit type.  Refer to the unit-specific
        documentation for more information.  This object is
        empty for components which do not have a serial number."
    ::= { cpqnVersionEntry 8 }

cpqnVersionUnitId       OBJECT-TYPE
    SYNTAX              INTEGER
    ACCESS              read-only
    STATUS              mandatory
    DESCRIPTION
       "This is a number that uniquely identifies which unit in a collection of
        one or more units that this entry applies to.  For example, this unit
        may be part of a stack, or a plug-in card in a chassis.  For units
        that are not part of a collection (standalone) this value is
        always a 1."
   ::= { cpqnVersionEntry 9 }

cpqnVersionParentIndex  OBJECT-TYPE
    SYNTAX              INTEGER
    ACCESS              read-only
    STATUS              mandatory
    DESCRIPTION
       "A component represented by an entry in this table may be a
        sub-component of another entity or unit.  In this case, the value of
        this object indicates this entry's parent entry in this table.  For
        example, a plug-in uplink card may be plugged into unit #3 of a
        stack of repeaters.  In this case, this value would contain the
        index into this table which has a cpqnVersionUnitId of 3.  If this
        entry has no parent, then this object contains the value zero."
   ::= { cpqnVersionEntry 10 }

--------------------------------------------------------------------------------
-- TELNET Enable/Disable
--------------------------------------------------------------------------------

cpqnAclTelnetControl    OBJECT-TYPE
    SYNTAX              INTEGER
    {
        enabled(1),
        disabled(2)
    }
    ACCESS              read-write
    STATUS              mandatory
    DESCRIPTION
       "DURABLE:  This object controls the Telnet feature of the unit.  If
        this object is set to disabled(2), then Telnet is disabled and no
        Telnet session can be initiated, regardless of the settings of other
        access control mechanisms.  If this object is enabled(1), then Telnet
        sessions can be initiated and are subject to the other access
        control mechanisms."
   ::= { cpqnAccessControl 1 }

--------------------------------------------------------------------------------
-- SNMP COMMUNITY IP ACCESS TABLE
--------------------------------------------------------------------------------
-- This table controls access to the SNMP agent in the unit by filtering
-- and identifying IP addresses of network management stations.
--
-- This access control mechanism filters SNMP (IP only) and Telnet
-- frames only.  PING, RIP, SAP and other frames are not filtered by this
-- mechanism.
--
-- This is done using a simple filter mechanism on all received SNMP requests.
-- First the address is masked and checked.  If this passes, then the
-- request's community string is checked.  If this passes then the SNMP request
-- is serviced according to the cpqnAclIPRights in the matching table row.
--
-- Rows are added with row sets and deleted by setting the row status to
-- row-invalid(2).  If a unit will not accept additional rows at the
-- end of the table, then the row set will fail.
--
-- The factory settings for this table allow full access from any network
-- management station over IP.  This access is enabled by an explicit entry
-- in the access table.
--
-- The factory-default IP entry has the following values:
--
--     cpqnAclIPAddrMask       =>  0.0.0.0
--     cpqnAclIPAddrMatch      =>  0.0.0.0
--     cpqnAclIPCommunity      =>  public
--     cpqnAclIPRights         =>  read-write-allow-telnet(4)
--
-- In other words, from the factory, access control is disabled and the agent
-- will respond to any SNMP over IP message with a community string of 'public'.
--
-- If a station does not have read-write-allow-telnet(4) access to a unit,
-- then this table is not accessible, e.g. GET or SET messages accessing this
-- table from stations will have an authentication error returned.  GET NEXTs
-- on this MIB from such stations will simply skip over this table.
--------------------------------------------------------------------------------

cpqnCommunityAccessIPTable OBJECT-TYPE
    SYNTAX              SEQUENCE OF CpqnCommAccessIPEntry
    ACCESS              not-accessible
    STATUS              mandatory
    DESCRIPTION
       "This table contains objects which control access to the agent over IP.
        Access is restricted to only the hosts listed in this table.

        If a station does not have read-write-allow-telnet(4) access to a unit,
        then this table is not accessible, e.g. GET or SET messages accessing
        this table from stations will have an authentication error returned.
        GET NEXTs on this MIB from such stations will simply skip over this
        table.

        Care must be taken when modifying this table.  A network management
        station can inadvertently modify this table so that it no longer
        has read-write-allow-telnet(4) access.  If this occurs, then this table
        can only be modified from another network management station with
        write access, via telnet, or via a direct connection to the unit's
        primary serial port.

        Access to this unit via SNMP and Telnet can also be blocked if
        all the entries in this table and the cpqnCommunityAccessIPXTable are
        deleted.  In this case, this table can only be modified via a direct
        connection via the primary serial port using the unit's user interface.

        This table can be set to factory values using the user interface
        accessed by Telnet or a direct connection to the unit's primary serial
        port.  This table will also be set to factory values when cpqnUnitReset
        is set to reset-to-factory-values(4)."
   ::= { cpqnAccessControl 2 }

cpqnCommAccessIPEntry   OBJECT-TYPE
    SYNTAX              CpqnCommAccessIPEntry
    ACCESS              not-accessible
    STATUS              mandatory
    DESCRIPTION
       "There is one entry defined for each host-community pair."
    INDEX { cpqnAclIPIndex }
    ::= { cpqnCommunityAccessIPTable 1 }

CpqnCommAccessIPEntry ::= SEQUENCE {
   cpqnAclIPIndex       INTEGER,                   -- Read only
   cpqnAclIPRowStatus   CpqnRowStatus,             -- Read write
   cpqnAclIPAddrMask    IpAddress,                 -- Read write
   cpqnAclIPAddrMatch   IpAddress,                 -- Read write
   cpqnAclIPCommunity   DisplayString,             -- Read write
   cpqnAclIPRights      INTEGER                    -- Read write
}

cpqnAclIPIndex          OBJECT-TYPE
   SYNTAX               INTEGER
   ACCESS               read-only
   STATUS               mandatory
   DESCRIPTION
        "The index to this entry."
   ::= { cpqnCommAccessIPEntry 1 }

cpqnAclIPRowStatus      OBJECT-TYPE
    SYNTAX              CpqnRowStatus
    ACCESS              read-write
    STATUS              mandatory
    DESCRIPTION
       "DURABLE:  The status of this row entry.  Rows are added to this
        table using 'row sets'.  When a row is added, this object must be set
        to row-valid(1).  To delete a row from this table, set this object for
        the row to row-invalid(2).  Row sets for new rows with a row status set
        to row-invalid(2) return a BAD VALUE error.  This object will always
        read as row-valid(1).

        If no more rows can be added to the end of the table, then a row set
        to create a new row will return BAD VALUE.

        When rows are deleted from this table, the indexes of the other rows
        do not change.  In other words, this table can be 'sparse' or have
        'holes'.  Deleted entries can be re-created using a row set with
        a row status of row-valid(1)."
   ::= { cpqnCommAccessIPEntry 2 }

cpqnAclIPAddrMask       OBJECT-TYPE
    SYNTAX              IpAddress
    ACCESS              read-write
    STATUS              mandatory
    DESCRIPTION
       "DURABLE:  This mask is applied to the source address of received
        SNMP/IP messages.  If the masked address matches cpqnAclIPAddrMatch
        and the community in the SNMP packet matches the community name
        in cpqnAclIPCommunity for the row, then the SNMP request will be
        serviced by the unit's agent.  The transmitting node's access
        to this unit's MIB tables is determined by the cpqnAclIPRights.
        For example, assuming cpqnAclIPAddrMask = 255.255.255.000,
        cpqnAclIPAddrMatch = 198.085.034.000, and cpqnAclCommunity = compaq,
        then a SNMP request coming from 198.85.34.72 with community compaq
        will pass whereas a request from 120.1.2.4 with community compaq
        will fail."
   ::= { cpqnCommAccessIPEntry 3 }

cpqnAclIPAddrMatch      OBJECT-TYPE
    SYNTAX              IpAddress
    ACCESS              read-write
    STATUS              mandatory
    DESCRIPTION
       "DURABLE:  The Masked address must match this value."
   ::= { cpqnCommAccessIPEntry 4 }

cpqnAclIPCommunity      OBJECT-TYPE
    SYNTAX              DisplayString (SIZE (1..20))
    ACCESS              read-write
    STATUS              mandatory
    DESCRIPTION
       "DURABLE:  The community string that is required for any requests coming
        from this host.  The default value for this object is 'public'."
   ::= { cpqnCommAccessIPEntry 5 }

cpqnAclIPRights         OBJECT-TYPE
    SYNTAX              INTEGER
    {
        no-access(1),
        read-only-prevent-telnet(2),
        read-only-allow-telnet(3),
        read-write-allow-telnet(4)
    }
    ACCESS              read-write
    STATUS              mandatory
    DESCRIPTION
       "DURABLE:  This object controls the access granted to SNMP requests
        which match a mask/match and community name string.  no-access(1)
        means that that address/community name pair has neither SNMP/IP nor
        Telnet access.  read-only-prevent-telnet(2) allows only read access
        to MIB objects and disallows Telnet access.  read-only-allow-telnet(3)
        also allows only read access, but the station can initiate a Telnet
        session.  read-write-allow-telnet(4) allows full access to the
        device's MIB and allows the station to initiate a Telnet session.

        NOTE: Telnet access is either allowed or disallowed. Generally,
        devices do not have read-only telnet sessions.  This mechanism does
        not preclude the use of a password for Telnet access."
   ::= { cpqnCommAccessIPEntry 6 }

--------------------------------------------------------------------------------
-- SNMP COMMUNITY IPX ACCESS TABLE
--------------------------------------------------------------------------------
-- This table controls access to the SNMP agent in the unit by filtering
-- and identifying IPX addresses of network management stations.
--
-- COMPLIANCE:  Implementation of this group is OPTIONAL.  If the unit DOES
-- NOT support the IPX protocol, then this group is not present.  If the
-- unit DOES support the IPX protocol, then this group is present.
--
-- This access control mechanism filters SNMP/IPX frames only.  RIP, SAP and
-- other frames are not filtered by this mechanism.
--
-- This is done using a simple filter mechanism on all received SNMP/IPX requests.
-- First the address is masked and checked.  If this passes, then the
-- request's community string is checked.  If this passes then the SNMP request
-- is serviced according to the cpqnAclIPXRights in the matching table row.
--
-- Rows are added with row sets and deleted by setting the row status to
-- row-invalid(2).  If a unit will not accept additional rows at the
-- end of the table, then the row set will fail.
--
-- The factory settings for this table allow full access from any network
-- management station over IPX.  This access is enabled by an explicit entry
-- in the access table.
--
-- The factory-default IPX entry on units which support IPX has the values
-- shown below.  (NOTE:  The IPXAddresses are a set of 10 octets, and the
-- following is just a displayable representation.)
--
--     cpqnAclIPXAddrMask       =>  00000000:000000000000
--     cpqnAclIPXAddrMatch      =>  00000000:000000000000
--     cpqnAclIPXCommunity      =>  public
--     cpqnAclIPXRights         =>  read-write(3)
--
-- In other words, from the factory, access control is disabled and the agent
-- will respond to any SNMP/IPX message with a community string of 'public'.
--
-- If a station does not have read-write(3) access to a unit,then this table
-- is not accessible,e.g. GET or SET messages accessing this
-- table from stations will have an authentication error returned.  GET NEXTs
-- on this MIB from such stations will simply skip over this table.
--------------------------------------------------------------------------------

cpqnCommunityAccessIPXTable OBJECT-TYPE
    SYNTAX              SEQUENCE OF CpqnCommAccessIPXEntry
    ACCESS              not-accessible
    STATUS              mandatory
    DESCRIPTION
       "This table contains objects which control SNMP/IPX access to the agent.
        Access is restricted to only the hosts listed in this table.

        If a station does not have read-write(3) access to a unit,
        then this table is not accessible,e.g. GET or SET messages accessing
        this table from stations will have an authentication error returned.
        GET NEXTs on this MIB from such stations will simply skip over this
        table.

        Care must be taken when modifying this table.  A network management
        station can inadvertently modify this table so that it no longer
        has read-write(3) access.  If this occurs, then this table
        can only be modified from another network management station with
        write access, via telnet, or via a direct connection to the unit's
        primary serial port.

        Access to this unit via SNMP and Telnet can also be blocked if
        all the entries in this table and the cpqnCommunityAccessIPTable are
        deleted.  In this case, this table can only be modified via a direct
        connection via the primary serial port using the unit's user interface.

        This table can be set to factory values using the user interface
        accessed by Telnet or a direct connection to the unit's primary serial
        port.  This table will also be set to factory values when cpqnUnitReset
        is set to reset-to-factory-values(4)."
   ::= { cpqnAccessControl 3 }

cpqnCommAccessIPXEntry  OBJECT-TYPE
    SYNTAX              CpqnCommAccessIPXEntry
    ACCESS              not-accessible
    STATUS              mandatory
    DESCRIPTION
       "There is one entry defined for each host-community pair."
    INDEX { cpqnAclIPXIndex }
    ::= { cpqnCommunityAccessIPXTable 1 }

CpqnCommAccessIPXEntry ::= SEQUENCE {
   cpqnAclIPXIndex      INTEGER,                   -- Read only
   cpqnAclIPXRowStatus  CpqnRowStatus,             -- Read write
   cpqnAclIPXAddrMask   IpxAddress,                -- Read write
   cpqnAclIPXAddrMatch  IpxAddress,                -- Read write
   cpqnAclIPXCommunity  DisplayString,             -- Read write
   cpqnAclIPXRights     INTEGER                    -- Read write
}

cpqnAclIPXIndex         OBJECT-TYPE
   SYNTAX               INTEGER
   ACCESS               read-only
   STATUS               mandatory
   DESCRIPTION
        "The index to this entry."
   ::= { cpqnCommAccessIPXEntry 1 }

cpqnAclIPXRowStatus     OBJECT-TYPE
    SYNTAX              CpqnRowStatus
    ACCESS              read-write
    STATUS              mandatory
    DESCRIPTION
       "DURABLE:  The status of this row entry.  Rows are added to this
        table using 'row sets'.  When a row is added, this object must be set
        to row-valid(1).  To delete a row from this table, set this object for
        the row to row-invalid(2).  Row sets for new rows with a row status set
        to row-invalid(2) return a BAD VALUE error.  This object will always
        read as row-valid(1).

        If no more rows can be added to the end of the table, then a row set
        to create a new row will return BAD VALUE.

        When rows are deleted from this table, the indexes of the other rows
        do not change.  In other words, this table can be 'sparse' or have
        'holes'.  Deleted entries can be re-created using a row set with
        a row status of row-valid(1)."
   ::= { cpqnCommAccessIPXEntry 2 }

cpqnAclIPXAddrMask         OBJECT-TYPE
    SYNTAX                 IpxAddress
    ACCESS                 read-write
    STATUS                 mandatory
    DESCRIPTION
       "DURABLE:  This mask is applied to the source address of received
        SNMP messages.  If the masked address matches cpqnAclIPXAddrMask
        and the community in the SNMP packet matches the community name
        in cpqnAclIPXCommunity for the row, then the SNMP request will be
        serviced by the unit's agent.  The transmitting node's access
        to this unit's MIB tables is determined by the cpqnAclIPXRights.
        For example, 0081CCAB:00805FEAE01D is an IPX address which could
        be matched with a mask of 00FFFFFF:000000000000.

        Due to the nature of IPX address, the node address of an IPX address
        mask are simply 0's.  This controls SNMP access by IPX network number
        only."
   ::= { cpqnCommAccessIPXEntry 3 }

cpqnAclIPXAddrMatch        OBJECT-TYPE
    SYNTAX                 IpxAddress
    ACCESS                 read-write
    STATUS                 mandatory
    DESCRIPTION
       "DURABLE:  The Masked address must match this value."
   ::= { cpqnCommAccessIPXEntry 4 }

cpqnAclIPXCommunity        OBJECT-TYPE
    SYNTAX                 DisplayString (SIZE (1..20))
    ACCESS                 read-write
    STATUS                 mandatory
    DESCRIPTION
       "DURABLE:  The community string that is required for any requests coming
        from this host.  The default value for this object is 'public'."
   ::= { cpqnCommAccessIPXEntry 5 }

cpqnAclIPXRights           OBJECT-TYPE
    SYNTAX                 INTEGER
    {
        no-access(1),
        read-only-access(2),
        read-write-access(3)
    }
    ACCESS              read-write
    STATUS              mandatory
    DESCRIPTION
       "DURABLE:  This object controls the access granted to SNMP/IPX requests
        which match a mask/match and community name string.  no-access(1)
        means that that address/community name pair has no SNMP/IPX access.
        read-only(2) allows only read access to MIB objects. read-write(3)
        allows full access to the device's MIB."
   ::= { cpqnCommAccessIPXEntry 6 }

--------------------------------------------------------------------------------
-- IP TRAP DESTINATION TABLE
--------------------------------------------------------------------------------
-- This table defines the destination addresses for SNMP/IP traps generated
-- from the unit.  This table maps a community to one or more trap
-- destination entries.
--
-- When traps are generated as a result of RMON monitoring, the agent
-- sends them to destinations specified in the IP trap table which have
-- a IPTrapDestCommunity that matches the RMON eventCommunity.  Non-RMON
-- traps are sent to all destinations in the table.
--------------------------------------------------------------------------------

cpqnIPTrapDestTable       OBJECT-TYPE
    SYNTAX                SEQUENCE OF CpqnIPTrapDestEntry
    ACCESS                not-accessible
    STATUS                mandatory
    DESCRIPTION
       "A list of IP trap destination entries."
    ::= { cpqnTrapDestinations 1 }

cpqnIPTrapDestEntry       OBJECT-TYPE
    SYNTAX                CpqnIPTrapDestEntry
    ACCESS                not-accessible
    STATUS                mandatory
    DESCRIPTION
       "A destination entry which defines the IP address to which traps are sent
        for a community."
    INDEX { cpqnIPTrapDestIndex }
    ::= { cpqnIPTrapDestTable 1 }

CpqnIPTrapDestEntry ::= SEQUENCE {
    cpqnIPTrapDestIndex       INTEGER,
    cpqnIPTrapDestRowStatus   CpqnRowStatus,
    cpqnIPTrapDestCommunity   DisplayString,
    cpqnIPTrapDestAddress     IpAddress
}

cpqnIPTrapDestIndex       OBJECT-TYPE
    SYNTAX                INTEGER
    ACCESS                read-only
    STATUS                mandatory
    DESCRIPTION
       "A value that uniquely identifies this IPTrapDestEntry."
    ::= { cpqnIPTrapDestEntry 1 }

cpqnIPTrapDestRowStatus   OBJECT-TYPE
    SYNTAX                CpqnRowStatus
    ACCESS                read-write
    STATUS                mandatory
    DESCRIPTION
       "DURABLE:  The status of this row entry.  Rows are added to this
        table using 'row sets'.  When a row is added, this object must be set
        to row-valid(1).  To delete a row from this table, set this object for
        the row to row-invalid(2).  Row sets for new rows with a row status set
        to row-invalid(2) return a BAD VALUE error.  This object will always
        read as row-valid(1).

        If no more rows can be added to the end of the table, then a row set
        to create a new row will return BAD VALUE.

        When rows are deleted from this table, the indexes of the other rows
        do not change.  In other words, this table can be 'sparse' or have
        'holes'.  Deleted entries can be re-created using a row set with
        a row status of row-valid(1)."
    ::= { cpqnIPTrapDestEntry 2 }

cpqnIPTrapDestCommunity   OBJECT-TYPE
    SYNTAX                DisplayString  (SIZE(1..20))
    ACCESS                read-write
    STATUS                mandatory
    DESCRIPTION
       "DURABLE:  A community name to which this destination IP address
        belongs."
    ::= { cpqnIPTrapDestEntry 3 }

cpqnIPTrapDestAddress     OBJECT-TYPE
    SYNTAX                IpAddress
    ACCESS                read-write
    STATUS                mandatory
    DESCRIPTION
       "DURABLE:  The IP address to send traps to on behalf of this entry."
    ::= { cpqnIPTrapDestEntry 4 }

--------------------------------------------------------------------------------
-- IPX TRAP DESTINATION TABLE
--------------------------------------------------------------------------------
-- This table defines the destination addresses for SNMP/IPX traps generated
-- from the unit.  This table maps a community to one or more trap
-- destination entries.
--
-- When traps are generated as a result of RMON monitoring, the agent
-- sends them to destinations specified in the IPX trap table which have
-- a IPXTrapDestCommunity that matches the RMON eventCommunity.  Non-RMON
-- traps are sent to all destinations in the table.
--
-- COMPLIANCE:  Implementation of this group is OPTIONAL.  If the unit DOES
-- NOT support the IPX protocol, then this group is not present.  If the
-- unit DOES support the IPX protocol, then this group is present.
--------------------------------------------------------------------------------

cpqnIPXTrapDestTable        OBJECT-TYPE
    SYNTAX                  SEQUENCE OF CpqnIPXTrapDestEntry
    ACCESS                  not-accessible
    STATUS                  mandatory
    DESCRIPTION
       "A list of IPX trap destination entries."
    ::= { cpqnTrapDestinations 2 }

cpqnIPXTrapDestEntry        OBJECT-TYPE
    SYNTAX                  CpqnIPXTrapDestEntry
    ACCESS                  not-accessible
    STATUS                  mandatory
    DESCRIPTION
       "A destination entry which defines the IPX address to which traps are
        sent for a community."
    INDEX { cpqnIPXTrapDestIndex }
    ::= { cpqnIPXTrapDestTable 1 }

CpqnIPXTrapDestEntry ::= SEQUENCE {
    cpqnIPXTrapDestIndex    	INTEGER,
    cpqnIPXTrapDestRowStatus    CpqnRowStatus,
    cpqnIPXTrapDestCommunity    DisplayString,
    cpqnIPXTrapDestAddress      IpxAddress
}

cpqnIPXTrapDestIndex    OBJECT-TYPE
    SYNTAX              INTEGER
    ACCESS              read-only
    STATUS              mandatory
    DESCRIPTION			    
       "A value that uniquely identifies this IPXTrapDestEntry."
    ::= { cpqnIPXTrapDestEntry 1 }

cpqnIPXTrapDestRowStatus OBJECT-TYPE
    SYNTAX              CpqnRowStatus
    ACCESS              read-write
    STATUS              mandatory
    DESCRIPTION
       "DURABLE:  The status of this row entry.  Rows are added to this
        table using 'row sets'.  When a row is added, this object must be set
        to row-valid(1).  To delete a row from this table, set this object for
        the row to row-invalid(2).  Row sets for new rows with a row status set
        to row-invalid(2) return a BAD VALUE error.  This object will always
        read as row-valid(1).

        If no more rows can be added to the end of the table, then a row set
        to create a new row will return BAD VALUE.

        When rows are deleted from this table, the indexes of the other rows
        do not change.  In other words, this table can be 'sparse' or have
        'holes'.  Deleted entries can be re-created using a row set with
        a row status of row-valid(1)."
    ::= { cpqnIPXTrapDestEntry 2 }

cpqnIPXTrapDestCommunity    OBJECT-TYPE
    SYNTAX                  DisplayString  (SIZE(1..20))
    ACCESS                  read-write
    STATUS                  mandatory
    DESCRIPTION
       "DURABLE:  A community name to which this destination IPX address
        belongs."
    ::= { cpqnIPXTrapDestEntry 3 }

cpqnIPXTrapDestAddress      OBJECT-TYPE
    SYNTAX                  IpxAddress
    ACCESS                  read-write
    STATUS                  mandatory
    DESCRIPTION
       "DURABLE:  The IPX address to send traps to on behalf of this entry.
        IPX traps are sent to the standard IPX SNMP socket number."
    ::= { cpqnIPXTrapDestEntry 4 }

--------------------------------------------------------------------------------
--  IP NETWORK INFORMATION TABLE
--------------------------------------------------------------------------------
--  This table contains MIB objects which provide information regarding the
--  IP protocol information for the unit's interfaces.
--
--  This group also includes configuration items for IP autodiscovery.
--  Note that this also includes the SLIP interface.
--------------------------------------------------------------------------------

cpqnIpNetworkTable      OBJECT-TYPE
    SYNTAX              SEQUENCE OF CpqnIpNetworkEntry
    ACCESS              not-accessible
    STATUS              mandatory
    DESCRIPTION
       "This table describes IP network information for each management agent
        interface.  This could include all possible bridge groups and the SLIP
        interface"
    ::= { cpqnNetworkInfo 1 }

cpqnIpNetworkEntry      OBJECT-TYPE
    SYNTAX              CpqnIpNetworkEntry
    ACCESS              not-accessible
    STATUS              mandatory
    DESCRIPTION
       "There is one entry for each agent interface which describes
        the IP protocol information on that interface."
    INDEX { cpqnIpIfIndex }
    ::= { cpqnIpNetworkTable 1 }

CpqnIpNetworkEntry ::= SEQUENCE {
    cpqnIpIfIndex
        INTEGER,
    cpqnIpPhysAddr
        PhysAddress,
    cpqnIpAddr
        IpAddress,
    cpqnIpNetMask
        IpAddress,
    cpqnIpRouter
        IpAddress,
    cpqnIpFrameType
        INTEGER,
    cpqnIpAutoDiscoveryStatus
        INTEGER,
    cpqnIpPingPktRate
        INTEGER,
    cpqnIpInfoSave
        INTEGER
}

cpqnIpIfIndex           OBJECT-TYPE
    SYNTAX              INTEGER
    ACCESS              read-only
    STATUS              mandatory
    DESCRIPTION
       "This is the ifIndex value of an interface in the MIB-II interface table
        for which this table entry applies."
    ::= { cpqnIpNetworkEntry 1 }

cpqnIpPhysAddr          OBJECT-TYPE
    SYNTAX              PhysAddress
    ACCESS              read-only
    STATUS              mandatory
    DESCRIPTION
       "The physical address of the management agent interface.  This is
        usually an interfaces IEEE MAC Address.  For IEEE MAC address, the
        value will be 6 bytes in network byte order.  For interfaces which do
        not have such physical address (e.g., SLIP interfaces), this object
        will one zero byte."
    ::= { cpqnIpNetworkEntry 2 }

cpqnIpAddr              OBJECT-TYPE
    SYNTAX              IpAddress
    ACCESS              read-write
    STATUS              mandatory
    DESCRIPTION
       "DURABLE:  The IP Address of this Agent interface."
    ::= { cpqnIpNetworkEntry 3 }

cpqnIpNetMask           OBJECT-TYPE
    SYNTAX              IpAddress
    ACCESS              read-write
    STATUS              mandatory
    DESCRIPTION
       "DURABLE:  The IP Subnet Mask of this Agent interface."

    ::= { cpqnIpNetworkEntry 4 }

cpqnIpRouter            OBJECT-TYPE
    SYNTAX              IpAddress
    ACCESS              read-write
    STATUS              mandatory
    DESCRIPTION
       "DURABLE:  The IP Address of the next hop Router (default Gateway)
        used by this interface."
    ::= { cpqnIpNetworkEntry 5 }

cpqnIpFrameType         OBJECT-TYPE
    SYNTAX              INTEGER
    {
        not-applicable(1),      -- no valid frame type (Serial Port)
        ethernet-ii(2),         -- agent is using Ethernet_II frame type
        ieee-802-2-snap(3)      -- agent is using 802.2 SNAP frame type
    }
    ACCESS              read-write
    STATUS              mandatory
    DESCRIPTION
       "DURABLE:  Except when booting up, an agent communicates over IP
        using a single frame type defining the type of network that the IP
        traffic is running on:  Ethernet_II or IEEE 802.2_SNAP.  When the agent
        is performing BOOTP, it may not assume any frame type and can attempt
        to BOOTP over both types.  (see cpqnBootpEnable) It will use the frame
        type that the first BOOTP response uses for the rest of its
        communication.  The frame type of the BOOTP response will be stored by
        this object.  For interfaces that do not have an Ethernet frame type,
        e.g., the serial port, the frame type is always not-applicable(1)."
    ::= { cpqnIpNetworkEntry 6 }

cpqnIpAutoDiscoveryStatus OBJECT-TYPE
    SYNTAX              INTEGER
    {
        discover(1),            -- Transmit pings for AutoDiscovery
        do-not-discover(2)      -- Do not transmit pings for AutoDiscovery
    }
    ACCESS              read-write
    STATUS              mandatory
    DESCRIPTION
       "DURABLE:  This object allows a user to enable the unit to send out
        periodic ICMP Pings to ensure that the unit's IP Address is contained
        in the ARP cache of its default gateway (cpqnIpRouter, if any!).  If
        the user sets the state to discover(1), then the unit will issue ICMP
        Pings at a rate defined by cpqnIpPingPacketRate.  If the user selects
        do-not-discover(2) then the unit does not send any ICMP Pings and may
        not be autodiscovered by IP based management applications."
    ::= { cpqnIpNetworkEntry 7 }

cpqnIpPingPktRate       OBJECT-TYPE
    SYNTAX              INTEGER (55..65535)
    ACCESS              read-write
    STATUS              mandatory
    DESCRIPTION
       "DURABLE:  This object determines the rate (in seconds) at which ICMP
        Pings are sent out by the unit to ensure that its IP Address remains
        in the ARP cache of the unit's default gateway (cpqnIpRouter).  This
        object is useful only if cpqnIPAutoDiscoveryStatus is set to
        discover(1)."
    ::= { cpqnIpNetworkEntry 8 }

cpqnIpInfoSave          OBJECT-TYPE
    SYNTAX              INTEGER
    {
        ignore-changes(1),              -- temp changes are ignored
        write-changes-to-nvram(2),      -- temp changes are made/saved
        values-changed(3),
        values-valid(4)
    }
    ACCESS      read-write
    STATUS      mandatory
    DESCRIPTION
       "Setting this object allows the changes made to any of the settable
        objects in this table to be written into non-volatile memory.  The
        changes will not take effect nor be written into non-volatile memory
        until this object is set;  therefore, until that time, the changes are
        stored but not used.  This object will return values-valid(4) unless
        some object has been changed but the changes were not written to
        non-volatile memory.  In this case it will return values-changed(3)
        until the changes are written to non-volatile memory."
    ::= { cpqnIpNetworkEntry 9 }

--------------------------------------------------------------------------------
-- IPX NETWORK INFORMATION TABLE
--------------------------------------------------------------------------------
--  This table contains MIB objects which provide information regarding the
--  IPX protocol for the unit's interfaces.  This group also contains
--  configuration parameters for IPX autodiscovery.
--
--  COMPLIANCE:  Implementation of this group is OPTIONAL.  If the unit DOES
--  NOT support the IPX protocol, then this group is not present.  If the
--  unit DOES support the IPX protocol, then this group is present.
--------------------------------------------------------------------------------

cpqnIpxNetworkTable     OBJECT-TYPE
    SYNTAX              SEQUENCE OF CpqnIpxNetworkEntry
    ACCESS              not-accessible
    STATUS              mandatory
    DESCRIPTION
       "This table describes IPX network information for each agent
        interface."
    ::= { cpqnNetworkInfo 2 }

cpqnIpxNetworkEntry     OBJECT-TYPE
    SYNTAX              CpqnIpxNetworkEntry
    ACCESS              not-accessible
    STATUS              mandatory
    DESCRIPTION
       "There is one entry for each agent interface which describes
        the IPX protocol information on that interface."
    INDEX { cpqnIpxIfIndex }
    ::= { cpqnIpxNetworkTable 1 }

CpqnIpxNetworkEntry ::= SEQUENCE {
    cpqnIpxIfIndex
        INTEGER,
    cpqnIpxPhysAddr
        PhysAddress,
    cpqnIpxFrameType
        INTEGER,
    cpqnIpxNetworkNumber
        OCTET STRING,
    cpqnIpxSAPBcastStatus
        INTEGER
}

cpqnIpxIfIndex          OBJECT-TYPE
    SYNTAX              INTEGER
    ACCESS              read-only
    STATUS              mandatory
    DESCRIPTION
       "This is the ifIndex value of an interface in the MIB-II interface
        table for which this table entry applies."
    ::= { cpqnIpxNetworkEntry 1 }

cpqnIpxPhysAddr         OBJECT-TYPE
    SYNTAX              PhysAddress
    ACCESS              read-only
    STATUS              mandatory
    DESCRIPTION
       "The physical address of the management agent interface.  This is
        usually an interfaces IEEE MAC Address.  For IEEE MAC address, the
        value will be 6 bytes in network byte order.  For interfaces which do
        not have such physical address (e.g., SLIP interfaces), this object
        will one zero byte."
    ::= { cpqnIpxNetworkEntry 2 }

cpqnIpxFrameType        OBJECT-TYPE
    SYNTAX              INTEGER
    {
    not-applicable(1),	    -- frame type is not supported (serial port)
    ethernet-ii(2),         -- agent using Ethernet_II frame type
    ethernet-802-3-raw(3),  -- agent using ethernet 802.3 raw
    ieee-802-2(4),          -- agent using 802.3 with 802.2 frame type
    ieee-802-2-snap(5)      -- agent using 802.3 with 802.2 SNAP frame type
    }
    ACCESS              read-write
    STATUS              mandatory
    DESCRIPTION
        "DURABLE:  The frame type with which IPX communication originating from
         the unit will take place.  The unit will respond to a packet using
         the same frame type as was used in the request.  This frame type comes
         into effect on any packet that is generated by the unit not in
         response to another external packet.  An example is a SNMP Trap."
   ::= { cpqnIpxNetworkEntry 3 }

cpqnIpxNetworkNumber    OBJECT-TYPE
    SYNTAX              OCTET STRING (SIZE (4))
    ACCESS              read-only
    STATUS              mandatory
    DESCRIPTION
       "DURABLE:  The IPX Network number for this interface.  If this
        object is 00000000, then the unit has not yet determined the
        network number."
   ::= { cpqnIpxNetworkEntry 4 }

cpqnIpxSAPBcastStatus   OBJECT-TYPE
    SYNTAX              INTEGER
    {
        do-ipx-SAPs(1),        -- Generate SAP broadcasts
        no-ipx-SAPs(2)         -- Disable SAP broadcasts
    }
    ACCESS              read-write
    STATUS              mandatory
    DESCRIPTION
       "DURABLE:  The unit may generate IPX SAP broadcasts.  This allows
        the unit to be auto-discovered.  By setting this object to
        do-ipx-SAPs(1), the unit will generate SAP broadcasts at a rate
        of one every 60 seconds.  By setting this object to no-ipx-SAPs(2),
        the hub will not generate SAP broadcasts."
    ::= { cpqnIpxNetworkEntry 5 }

--------------------------------------------------------------------------------
--  BOOTP CONTROL TABLE
--------------------------------------------------------------------------------
-- This table contains MIB objects which allow the operation of the BOOTP
-- protocol to be controlled.  There is one entry in this table for each
-- physical interface on the unit.
--
-- This table controls the BOOTP behavior of the basic  booting system.
-- Other software components installed in a unit may also do BOOTP.  This
-- table does not control those components.
--------------------------------------------------------------------------------

cpqnBootpTable          OBJECT-TYPE
    SYNTAX              SEQUENCE OF CpqnBootpEntry
    ACCESS              not-accessible
    STATUS              mandatory
    DESCRIPTION
       "A table of BOOTP configuration information for each management agent
        interface.  This table controls the BOOTP behavior of the basic
        booting system.  Other software components installed in a unit
        may also do BOOTP.  This table does not control those components."
    ::= { cpqnBootpConfig 1 }

cpqnBootpEntry          OBJECT-TYPE
    SYNTAX              CpqnBootpEntry
    ACCESS              not-accessible
    STATUS              mandatory
    DESCRIPTION
       "A list of BOOTP configuration information for each management agent
        interface."
    INDEX { cpqnBootpIfIndex }
    ::= { cpqnBootpTable 1 }

CpqnBootpEntry ::= SEQUENCE {
    cpqnBootpIfIndex
        INTEGER,
    cpqnBootpEnable
        INTEGER,
    cpqnBootpRetries
        INTEGER,
    cpqnBootpRetryInterval
        INTEGER,
    cpqnBootpServerIpAddr
        IpAddress
}

cpqnBootpIfIndex        OBJECT-TYPE
    SYNTAX              INTEGER
    ACCESS              read-only
    STATUS              mandatory
    DESCRIPTION
       "This is the ifIndex value of an interface in the MIB-II interface table
        for which this table entry applies."
    ::= { cpqnBootpEntry 1 }

cpqnBootpEnable         OBJECT-TYPE
    SYNTAX              INTEGER
    {
        disable-bootp(1),
        enable-bootp-ethernet-ii(2),
        enable-bootp-ieee-802-2-snap(3),
        enable-bootp-both(4)
    }
    ACCESS              read-write
    STATUS              mandatory
    DESCRIPTION
       "DURABLE:  This object allows the user to enable/disable generation of
        BOOTP requests on the interface specified by cpqnBootpIfIndex.  BOOTP
        requests can be generated over the SNAP frame type, Ethernet-II frame
        type, or both."
    ::= { cpqnBootpEntry 2 }

cpqnBootpRetries        OBJECT-TYPE
    SYNTAX              INTEGER (1..65535)
    ACCESS              read-write
    STATUS              mandatory
    DESCRIPTION
       "DURABLE:  This determines the number of BOOTP requests that will be
        transmitted from the interface indicated by cpqnBootpIfIndex.
        This object is used in conjunction with the cpqnBootpRetryInterval
        object.  If both frame types are enabled, then for each try, two BOOTP
        frames will be generated, one for each frame type.

        WARNING:  Remember that while the unit is booting up, management may
        not be available, so be careful in selecting the number of retries and
        the interval for BOOTP.  If these values are large, then the SNMP agent
        could be delayed in starting up by a significant time."
    ::= { cpqnBootpEntry 3 }

cpqnBootpRetryInterval   OBJECT-TYPE
    SYNTAX               INTEGER (5..255)
    ACCESS               read-write
    STATUS               mandatory
    DESCRIPTION
       "DURABLE:  This object allows the user to set the time period (in
        seconds) between the transmission of BOOTP requests on the interface
        specified by cpqnBootpIfIndex.  This object is used in conjunction
        with the cpqnBootpRetries object.

        WARNING:  Remember that while the unit is booting up, management may
        not be available, so be careful in selecting the number of retries and
        the interval for BOOTP.  If these values are large, then the SNMP agent
        could be delayed in starting up by a significant time."
    ::= { cpqnBootpEntry 4 }

cpqnBootpServerIpAddr    OBJECT-TYPE
    SYNTAX               IpAddress
    ACCESS               read-only
    STATUS               mandatory
    DESCRIPTION
       "The IP address of the BOOTP Server that last responded on the interface
        indicated by cpqnBootpIfIndex.  If no BOOTP server has responded, then
        this object will be '0.0.0.0'."
    ::= { cpqnBootpEntry 5 }

END

