CABH-PS-DEV-MIB DEFINITIONS ::= BEGIN
IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    Integer32,
    Unsigned32,
    TimeTicks,
    NOTIFICATION-TYPE            FROM SNMPv2-SMI

    TruthValue,
    PhysAddress,
    DateAndTime,
    TimeStamp,
    RowStatus                    FROM SNMPv2-TC

    SnmpAdminString              FROM SNMP-FRAMEWORK-MIB

    OBJECT-GROUP,
    MODULE-COMPLIANCE,
    NOTIFICATION-GROUP           FROM SNMPv2-CONF

    ifIndex                      FROM IF-MIB

    InetAddressType,
    InetAddress                  FROM INET-ADDRESS-MIB

    IANAifType                   FROM IANAifType-MIB

    docsDevSwCurrentVers,
    docsDevEvLevel, 
    docsDevEvId, 
    docsDevEvText, 
    docsDevSwFilename, 
    docsDevSwServer              FROM DOCS-CABLE-DEVICE-MIB -- RFC2669

    cabhCdpServerDhcpAddress,
    cabhCdpWanDataAddrClientId,
    cabhCdpLanTransThreshold,
    cabhCdpLanTransCurCount      FROM CABH-CDP-MIB

    ZeroBasedCounter32           FROM RMON2-MIB

    cabhQos2NumActivePolicyHolder,
    cabhQos2PolicyHolderEnabled,
    cabhQos2PolicyAdmissionControl FROM CABH-QOS2-MIB

    clabProjCableHome            FROM CLAB-DEF-MIB;

cabhPsDevMib MODULE-IDENTITY
    LAST-UPDATED    "200504080000Z" -- April 8, 2005
    ORGANIZATION    "CableLabs Broadband Access Department"
    CONTACT-INFO
            "Kevin Luehrs
            Postal: Cable Television Laboratories, Inc.
            858 Coal Creek Circle
            Louisville, Colorado 80027
            U.S.A.
            Phone:  +1 303-661-9100
            Fax:    +1 303-661-9199
            E-mail: k.luehrs@cablelabs.com; mibs@cablelabs.com"
    DESCRIPTION
            "This MIB module supplies the basic management objects for
            the Portal Services logical element of a CableHome 
            compliant Residential Gateway device. The PS device 
            parameters describe general PS Device attributes and 
            behavior characteristics.
            Most the PS Device MIB is needed for configuration 
            download."
    REVISION   "200504080000Z" -- April 8, 2005
    DESCRIPTION 
            "Initial revision, published as part of CableHome  
             Specification." 
    ::= { clabProjCableHome 1 }

-- Textual Conventions

cabhPsDevMibObjects     OBJECT IDENTIFIER ::= { cabhPsDevMib 1 }
cabhPsDevBase           OBJECT IDENTIFIER ::= { cabhPsDevMibObjects 1 }
cabhPsDevProv           OBJECT IDENTIFIER ::= { cabhPsDevMibObjects 2 }
cabhPsDevAttrib         OBJECT IDENTIFIER ::= { cabhPsDevMibObjects 3 }
cabhPsDevPsAttrib       OBJECT IDENTIFIER ::= { cabhPsDevAttrib 1 }
cabhPsDevBpAttrib       OBJECT IDENTIFIER ::= { cabhPsDevAttrib 2 }
cabhPsDevStats          OBJECT IDENTIFIER ::= { cabhPsDevMibObjects 4 }
cabhPsDevAccessControl  OBJECT IDENTIFIER ::= { cabhPsDevMibObjects 5 }
cabhPsDevMisc           OBJECT IDENTIFIER ::= { cabhPsDevMibObjects 6 }
cabhPsDevUI             OBJECT IDENTIFIER ::= { cabhPsDevMisc 1 } 
cabhPsDev802dot11       OBJECT IDENTIFIER ::= { cabhPsDevMisc 2 }
cabhPsDevUpnp           OBJECT IDENTIFIER ::= { cabhPsDevMisc 3 }
cabhPsDevUpnpBase       OBJECT IDENTIFIER ::= { cabhPsDevUpnp 1 }
cabhPsDevUpnpCommands   OBJECT IDENTIFIER ::= { cabhPsDevUpnp 2 }

--
-- The following group describes the base objects in the PS.
-- These are device based parameters. 
--

cabhPsDevDateTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The date and time, with optional timezone information."
    ::= { cabhPsDevBase 1 }

cabhPsDevResetNow OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Setting this object to true(1) causes the stand-alone or 
            embedded PS device to reboot. Device code initializes as if
            starting from a power-on reset. The CMP ensures that MIB 
            object values persist as specified in Appendix I of the 
            CableHome specification. Reading this object always 
            returns false(2)."
    ::= { cabhPsDevBase 2 }

cabhPsDevSerialNumber OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..128))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The manufacturer's serial number for this PS. This 
            parameter is manufacturer provided and is stored in 
            non-volatile memory."
    ::= { cabhPsDevBase 3 }

cabhPsDevHardwareVersion OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..48))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The manufacturer's hardware version for this PS. This 
            parameter is manufacturer provided and is stored in 
            non-volatile memory."
    ::= { cabhPsDevBase 4 }

cabhPsDevWanManMacAddress OBJECT-TYPE
    SYNTAX      PhysAddress (SIZE (0..16))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The PS WAN-Man MAC address. This is the PS hardware 
            address to be used by the CDC to uniquely identify
            the PS to the cable data network DHCP server for 
            the acquisition of an IP address to be used for 
            management messaging between the cable network 
            NMS and the CMP."
    ::= { cabhPsDevBase 5 }

cabhPsDevWanDataMacAddress OBJECT-TYPE
    SYNTAX      PhysAddress (SIZE (0..16))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The PS WAN-Data MAC address. The PS could have multiple 
            WAN-Data Interfaces, which share the same hardware address.
            The client identifiers will be unique so that each may be 
            assigned a different, unique IP address."
    ::= { cabhPsDevBase 6 }

cabhPsDevTypeIdentifier OBJECT-TYPE
    SYNTAX      SnmpAdminString 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This is a copy of the device type identifier used in the
            DHCP option 60 exchanged between the PS and the DHCP
            server."
    REFERENCE
            "CableHome Specification, CDC Function System
            Description section." 
    ::= { cabhPsDevBase 7 }

cabhPsDevSetToFactory OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Setting this object to true(1) sets all PsDev MIB objects
            to the factory default values. Reading this object always 
            returns false(2)."
    ::= { cabhPsDevBase 8 }

cabhPsDevWanManClientId OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (1..80))
    MAX-ACCESS  read-write
    STATUS      deprecated
    DESCRIPTION
            "This is the client ID used for WAN-MAN DHCP requests. 
            The default value is the 6 byte MAC address."
    ::= { cabhPsDevBase 9 }

cabhPsDevTodSyncStatus OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This object indicates whether the PS was able to 
            successfully synchronize with the Time of Day (ToD) Server 
            in the cable network. The PS sets this object to true(1) if
            the PS successfully synchronizes its time with the ToD 
            server. The PS sets this object to false(2) if the PS does 
            not successfully synchronize with the ToD server."
    DEFVAL { false }
    ::= { cabhPsDevBase 10 }

cabhPsDevProvMode OBJECT-TYPE
    SYNTAX      INTEGER
    {
        dhcpmode(1),
        snmpmode(2),
        dormantCHmode(3)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This object indicates the provisioning mode in which the
            PS is operating. If the PS is operating in DHCP 
            Provisioning Mode as described in the CableHome
            specification, the PS sets this object to dhcpmode(1).
            If the PS is operating in SNMP Provisioning Mode, the PS 
            sets this object to snmpmode(2). If the PS is not 
            configured to operate in either dhcpmode or snmpmode
            it will fall back to Dormant CableHome Mode and set
            the value of cabhPsDevProvMode to dormantCHmode(3)."
    ::= { cabhPsDevBase 11 }

cabhPsDevLastSetToFactory OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The value of sysUpTime when cabhPsDevSetToFactory was 
            last set to true. Zero if never reset."
    ::= { cabhPsDevBase 12 }

cabhPsDevTrapControl OBJECT-TYPE
    SYNTAX BITS {
        cabhPsDevInitTLVUnknownTrap(0), 
        cabhPsDevInitTrap(1),
        cabhPsDevInitRetryTrap(2),
        cabhPsDevDHCPFailTrap(3), 
        cabhPsDevSwUpgradeInitTrap(4), 
        cabhPsDevSwUpgradeFailTrap(5),
        cabhPsDevSwUpgradeSuccessTrap(6), 
        cabhPsDevSwUpgradeCVCFailTrap(7), 
        cabhPsDevTODFailTrap(8),
        cabhPsDevCdpWanDataIpTrap(9), 
        cabhPsDevCdpThresholdTrap(10), 
        cabhPsDevCspTrap(11), 
        cabhPsDevCapTrap(12), 
        cabhPsDevCtpTrap(13), 
        cabhPsDevProvEnrollTrap(14), 
        cabhPsDevCdpLanIpPoolTrap(15),
        cabhPsDevUpnpMultiplePHTrap(16)
    }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
            "The object is used to enable PS notifications. 
            From left to right, the set bit indicates 
            the corresponding PS notification is enabled.
            For example, if the first bit is set, then
            cabhPsDevInitTLVUnknownTrap is enabled. 
            If the bit is zero, the trap is disabled."
    DEFVAL { '0000'h }
    ::= { cabhPsDevBase 13 }

--
--    The following group defines Provisioning Specific parameters
--

cabhPsDevProvisioningTimer OBJECT-TYPE
    SYNTAX      INTEGER (0..16383)
    UNITS       "minutes"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "This object enables the user to set the duration of the 
            provisioning timeout timer. The value is in minutes. 
            Setting the timer to 0 disables it. The default value
            for the timer is 5."
    DEFVAL { 5 }
    ::= { cabhPsDevProv 1 }

cabhPsDevProvConfigFile OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(1..128))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The URL of the TFTP host for downloading provisioning and
            configuration parameters to this device. Returns NULL if
            the server address is unknown."
    ::= { cabhPsDevProv 2 }

cabhPsDevProvConfigHash OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0|20))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Hash of the contents of the PS config file, which is 
            calculated by the NMS and sent to the PS. For the SHA-1 
            authentication algorithm the hash length is 160 bits. This
            hash value is encoded in binary format."
    ::= { cabhPsDevProv 3 }

cabhPsDevProvConfigFileSize OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "bytes"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Size of the configuration file."
    ::= { cabhPsDevProv 4 }

cabhPsDevProvConfigFileStatus OBJECT-TYPE
    SYNTAX      INTEGER 
    {
        idle(1),
        busy(2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This object indicates the current status of the 
            configuration file download process. It is provided to 
            indicate to the management entity that the PS will reject
            PS Configuration File triggers (set request to 
            cabhPsDevProvConfigFile) when busy."
    ::= { cabhPsDevProv 5 }

cabhPsDevProvConfigTLVProcessed OBJECT-TYPE
    SYNTAX      INTEGER (0..16383)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Number of TLVs processed in config file."
    ::= { cabhPsDevProv 6 }

cabhPsDevProvConfigTLVRejected OBJECT-TYPE
    SYNTAX      INTEGER (0..16383)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Number of TLVs rejected in config file."
    ::= { cabhPsDevProv 7 }

cabhPsDevProvSolicitedKeyTimeout OBJECT-TYPE
    SYNTAX      Integer32 (15..600)
    UNITS       "seconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "This timeout applies only when the Provisioning Server
            initiated key management (with a Wake Up message) for 
            SNMPv3.  It is the period during which the PS will save 
            a number (inside the sequence number field) from the sent 
            out AP Request and wait for the matching AP Reply from the
            Provisioning Server."
    DEFVAL { 120 }
    ::= { cabhPsDevProv 8 }

cabhPsDevProvState OBJECT-TYPE
    SYNTAX      INTEGER
    {
        pass(1),
        inProgress(2),
        fail(3)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This object indicates the completion state of the 
            initialization process. Pass or Fail states occur after 
            completion of the initialization flow. InProgress occurs 
            from PS initialization start to PS initialization end."
    ::= { cabhPsDevProv 9 }

cabhPsDevProvAuthState OBJECT-TYPE
    SYNTAX      INTEGER
    {
        accepted(1),
        rejected(2)    
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This object indicates the authentication state of the 
            configuration file."
    ::= { cabhPsDevProv 10 }

cabhPsDevProvCorrelationId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      deprecated
    DESCRIPTION
            "Random value generated by the PS for use in registration
            authorization. It is for use only in the PS initialization
            messages and for PS configuration file download. This value
            appears in both cabhPsDevProvisioningStatus and 
            cabhPsDevProvisioningEnrollmentReport informs to verify the
            instance of loading the configuration file."
    ::= { cabhPsDevProv 11 }

cabhPsDevTimeServerAddrType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The IP address type of the Time server (RFC-868). 
            IP version 4 is typically used."
    ::= { cabhPsDevProv 12 }

cabhPsDevTimeServerAddr OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The IP address of the Time server (RFC-868). Returns 
            0.0.0.0 if the time server IP address is unknown."
    ::= { cabhPsDevProv 13 }

--==============================================================
--
--   PS Device Profile Group
--
--  The cabhPsDevPsProfile contains the Residential Gateway's
--  device attributes. This set of attributes is analogous to 
--  some attributes of the BP Device profile.
--
--==============================================================

cabhPsDevPsDeviceType OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(1..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The type of device, as defined in the CableHome 
            specifications (Residential Gateway Device or CableHome
            Host Device), that implements this OID."
    REFERENCE
            "CableHome 1.1 Specification, 
            6.5.3.1.3 Device Profile Description."
    DEFVAL { "CableHome Residential Gateway" }
    ::= { cabhPsDevPsAttrib 1 }

cabhPsDevPsManufacturerUrl OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Universal Resource Locator to the Residential Gateway 
            device manufacturer's web site."
    REFERENCE
            "CableHome 1.1 Specification, 
            6.5.3.1.3 Device Profile Description"
    ::= { cabhPsDevPsAttrib 3 }

cabhPsDevPsModelUrl OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Universal Resource Locator to the web site describing this
            CableHome compliant residential gateway device."
    REFERENCE
            "CableHome 1.1 Specification, 
            6.5.3.1.3 Device Profile Description."
    ::= { cabhPsDevPsAttrib 7 }

cabhPsDevPsModelUpc OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Universal Product Code of the CableHome compliant
            residential gateway device."
    REFERENCE
            "CableHome 1.1 Specification, 
            6.5.3.1.3 Device Profile Description. 
            See also: Uniform Code Council  www.uc-council.org"
    ::= { cabhPsDevPsAttrib 8 }

--==============================================================
--
--   CableHome Host/BP Device Profile Table
--
--  The cabhPsDevBpProfile contains the list of the CableHome Host 
--  device attributes provided to the PS by BPs passing their Device 
--  Profile XML schema via SOAP/HTTP. 
--
--==============================================================

cabhPsDevBpProfileTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CabhPsDevBpProfileEntry
    MAX-ACCESS  not-accessible
    STATUS      obsolete
    DESCRIPTION
            "This table contains the information for the CableHome Host
            Device Profiles. Attributes of a device make up a Device 
            Profile."
    ::= { cabhPsDevBpAttrib 1 }


cabhPsDevBpProfileEntry OBJECT-TYPE
    SYNTAX      CabhPsDevBpProfileEntry
    MAX-ACCESS  not-accessible
    STATUS      obsolete
    DESCRIPTION
            "The table that describes the CableHome Host Device 
            Profile."
    INDEX { cabhPsDevBpIndex } 
    ::= { cabhPsDevBpProfileTable 1 }

CabhPsDevBpProfileEntry ::= SEQUENCE {
        cabhPsDevBpIndex                     INTEGER,
        cabhPsDevBpDeviceType                SnmpAdminString,
        cabhPsDevBpManufacturer              SnmpAdminString,
        cabhPsDevBpManufacturerUrl           SnmpAdminString,
        cabhPsDevBpSerialNumber              SnmpAdminString,
        cabhPsDevBpHardwareVersion           SnmpAdminString,
        cabhPsDevBpHardwareOptions           SnmpAdminString,
        cabhPsDevBpModelName                 SnmpAdminString,
        cabhPsDevBpModelNumber               SnmpAdminString,
        cabhPsDevBpModelUrl                  SnmpAdminString,
        cabhPsDevBpModelUpc                  SnmpAdminString,
        cabhPsDevBpModelSoftwareOs           SnmpAdminString,
        cabhPsDevBpModelSoftwareVersion      SnmpAdminString,
        cabhPsDevBpLanInterfaceType          IANAifType,
        cabhPsDevBpNumberInterfacePriorities INTEGER,
        cabhPsDevBpPhysicalLocation          SnmpAdminString,
        cabhPsDevBpPhysicalAddress           PhysAddress
        }

cabhPsDevBpIndex OBJECT-TYPE
    SYNTAX      INTEGER (1..65535)
    MAX-ACCESS  not-accessible
    STATUS      obsolete
    DESCRIPTION
            "Integer index into the CableHome Host Device Profile
            Table."
    ::= { cabhPsDevBpProfileEntry 1 }

cabhPsDevBpDeviceType OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The type of device, as defined by the CableHome 
            specifications (CableHome Residential Gateway or CableHome
            Host Device), that passed the Device Profile whose 
            information is made available through this table row."
    REFERENCE
            "CableHome 1.1 Specification,
            6.5.3.1.3 Device Profile Description."
    DEFVAL { "CableHome Host" }
    ::= { cabhPsDevBpProfileEntry 2 }

cabhPsDevBpManufacturer OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The name of the CableHome Host Device's manufacturer."
    REFERENCE
            "CableHome 1.1 Specification, 
            6.5.3.1.3 Device Profile Description."
    DEFVAL { "" }
    ::= { cabhPsDevBpProfileEntry 3 }

cabhPsDevBpManufacturerUrl OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "Universal Resource Locator to the CableHome Host device 
            manufacturer's web site."
    REFERENCE
            "CableHome 1.1 Specification, 
            6.5.3.1.3 Device Profile Description."
    DEFVAL { "" }
    ::= { cabhPsDevBpProfileEntry 4 }

cabhPsDevBpSerialNumber OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The serial number assigned by the manufacturer for this 
            CableHome Host Device."
    DEFVAL { "" }
    ::= { cabhPsDevBpProfileEntry 5 }

cabhPsDevBpHardwareVersion OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The hardware version number assigned by the manufacturer 
            for this CableHome Host Device."
    REFERENCE
            "CableHome 1.1 Specification, 
            6.5.3.1.3 Device Profile Description."
    DEFVAL { "" }
    ::= { cabhPsDevBpProfileEntry 6 }

cabhPsDevBpHardwareOptions OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The hardware options implemented on this CableHome Host 
            Device."
    REFERENCE
            "CableHome 1.1 Specification, 
            6.5.3.1.3 Device Profile Description."
    DEFVAL { "" }
    ::= { cabhPsDevBpProfileEntry 7 }

cabhPsDevBpModelName OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The model name assigned by the manufacturer for this
            CableHome Host Device."
    REFERENCE
            "CableHome 1.1 Specification, 
            6.5.3.1.3 Device Profile Description."
    DEFVAL  { "" }
    ::= { cabhPsDevBpProfileEntry 8 }

cabhPsDevBpModelNumber OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The model number assigned by the manufacturer for this 
            CableHome Host Device."
    REFERENCE
            "CableHome 1.1 Specification, 
            6.5.3.1.3 Device Profile Description."
    DEFVAL { "" }
    ::= { cabhPsDevBpProfileEntry 9 }

cabhPsDevBpModelUrl OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The Universal Resource Locator to the web site describing
            this CableHome Host Device model."
    REFERENCE
            "CableHome 1.1 Specification, 
            6.5.3.1.3 Device Profile Description."
    DEFVAL { "" }
    ::= { cabhPsDevBpProfileEntry 10 }

cabhPsDevBpModelUpc OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "Universal Product Code of the CableHome Host Device."
    REFERENCE
            "CableHome 1.1 Specification, 
            6.5.3.1.3 Device Profile Description."
    DEFVAL { "" }
    ::= { cabhPsDevBpProfileEntry 11 }

cabhPsDevBpModelSoftwareOs OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "Software operating system implemented on the CableHome
            Host Device."
    REFERENCE
            "CableHome 1.1 Specification,  
            6.5.3.1.3 Device Profile Description."
    DEFVAL { "" }
    ::= { cabhPsDevBpProfileEntry 12 }

cabhPsDevBpModelSoftwareVersion OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "Version of the operating system implemented on the 
            CableHome Host Device."
    REFERENCE
            "CableHome 1.1 Specification, 
            6.5.3.1.3 Device Profile Description."
    DEFVAL { "" }
    ::= { cabhPsDevBpProfileEntry 13 }

cabhPsDevBpLanInterfaceType OBJECT-TYPE
    SYNTAX      IANAifType
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The ifType for the LAN Interface implemented on the 
            CableHome Host Device."
    REFERENCE
            "http://www.iana.org/assignments/ianaiftype-mib.
            See also: CableHome 1.1 Specification, 
            6.5.3.1.3 Device Profile Description."
    DEFVAL { other }
    ::= { cabhPsDevBpProfileEntry 14 }

cabhPsDevBpNumberInterfacePriorities OBJECT-TYPE
    SYNTAX      INTEGER (1..8)
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "Number of QoS priorities supported by the LAN technology 
            (Data Link Layer) implemented in the CableHome Host
            Device."
    DEFVAL { 1 }
    ::= { cabhPsDevBpProfileEntry 15 }

cabhPsDevBpPhysicalLocation OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "Physical location of the CableHome Host Device."
    REFERENCE
            "CableHome 1.1 Specification, 
            6.5.3.1.3 Device Profile Description."
    DEFVAL { "" }
    ::= { cabhPsDevBpProfileEntry 16 }

cabhPsDevBpPhysicalAddress OBJECT-TYPE
    SYNTAX      PhysAddress (SIZE (0..16))
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The CableHome Host Device's hardware address."
    REFERENCE
            "CableHome 1.1 Specification, 
            6.5.3.1.3 Device Profile Description."
    DEFVAL { ''h }
    ::= { cabhPsDevBpProfileEntry 17 }

--==============================================================
--
--  LAN IP Traffic Statistics Table
--
--  The cabhPsDevLanIpTrafficTable contains the Traffic Statistics
--  for all LAN IP Devices connected to the PS. When the PS learns a 
--  new LAN IP address an entry is added to this table    
--
--==============================================================

cabhPsDevLanIpTrafficCountersReset OBJECT-TYPE
    SYNTAX      INTEGER
    {
        clearCounters(1),
        clearTable(2)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Setting this object to clearCounters(1) resets all the 
            traffic statistic counter entries to zero in the 
            cabhPsDevLanIpTrafficTable. Setting this object to 
            clearTable(2) removes all entries in the 
            cabhPsDevLanIpTrafficTable. Reading this object always 
            returns clearCounters(1)."
    DEFVAL { clearCounters }
    -- Default read value
    ::= { cabhPsDevStats 1 }

cabhPsDevLanIpTrafficCountersLastReset OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The value of sysUpTime when 
            cabhPsDevLanIpTrafficCountersReset was last written to. 
            Zero if never written to."
    ::= { cabhPsDevStats 2 }

cabhPsDevLanIpTrafficEnabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Setting this object to true(1) turns on the IP traffic 
            counters. Setting this object false(2) turns off the IP 
            traffic counters."
    DEFVAL { false } -- IP traffic counters are off by default
    ::= { cabhPsDevStats 3 }

cabhPsDevLanIpTrafficTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CabhPsDevLanIpTrafficEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "This table contains IP-layer Traffic Statistics for all
            LAN IP Devices connected to the PS." 
    ::= { cabhPsDevStats 4 }

cabhPsDevLanIpTrafficEntry OBJECT-TYPE
    SYNTAX      CabhPsDevLanIpTrafficEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "List of Traffic Statistics for LAN IP Devices."
    INDEX { cabhPsDevLanIpTrafficIndex }
    ::= { cabhPsDevLanIpTrafficTable 1 }

CabhPsDevLanIpTrafficEntry ::= SEQUENCE {
    cabhPsDevLanIpTrafficIndex             INTEGER,
    cabhPsDevLanIpTrafficInetAddressType   InetAddressType,
    cabhPsDevLanIpTrafficInetAddress       InetAddress,
    cabhPsDevLanIpTrafficInOctets          ZeroBasedCounter32,
    cabhPsDevLanIpTrafficOutOctets         ZeroBasedCounter32
    }

cabhPsDevLanIpTrafficIndex OBJECT-TYPE
    SYNTAX      INTEGER   (1..65535)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The Index into the LAN IP Traffic Statistics Table."
    ::= { cabhPsDevLanIpTrafficEntry 1 }

cabhPsDevLanIpTrafficInetAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The type of IP address assigned to the LAN IP device to 
            which the statistics in this table row apply.  IP version
            4 is typically used."
    DEFVAL { ipv4 }
    ::= { cabhPsDevLanIpTrafficEntry 2 }

cabhPsDevLanIpTrafficInetAddress OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The IP address of the LAN IP device to which the 
            statistics in this table row apply.  An IPv4 IP 
            address is typically used."
    ::= { cabhPsDevLanIpTrafficEntry 3 }

cabhPsDevLanIpTrafficInOctets OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The total number of octets the PS forwarded from the WAN
            interfaces to the LAN IP device associated with the value
            of cabhPsDevLanIpTrafficInetAddress. This counter object
            does not include LAN-to-LAN traffic."
    ::= { cabhPsDevLanIpTrafficEntry 4 }

cabhPsDevLanIpTrafficOutOctets OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The total number of octets the PS forwarded from the LAN
            IP device associated with the value of 
            cabhPsDevLanIpTrafficInetAddress, to the WAN interfaces. 
            This counter object does not include LAN-to-LAN traffic."
    ::= { cabhPsDevLanIpTrafficEntry 5 }

--=====================================================================
--
--    CableHome Interface Access Control Table
--
--  The cabhPsDevAccessControlTable lists the physical addresses
--  of all LAN IP Devices for which the PS will forward traffic to
--  or from an interface type for which the Table is enabled. 
--  If an interface type is enabled, the PS will not forward traffic
--  to or from any device on that interface whose physical address
--  is not listed in the Access Control Table. If an interface type
--  is disabled, the PS does apply forwarding restrictions based on
--  entires of the Access Control Table.
--
--=====================================================================

cabhPsDevAccessControlEnable OBJECT-TYPE
    SYNTAX      BITS {
        hpna(0),  -- most significant bit
        ieee80211(1),
        ieee8023(2),
        homeplug(3),
        usb(4),
        ieee1394(5),
        scsi(6),
        other(7)
        }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "This object specifies the interface type(s) for which the
            PSDev Access Control Table access rules are enabled. If a 
            bit field is set to 1, the PS MUST only forward traffic 
            received through that interface type if the source physical
            address is an entry in the cabhPsDevAccessControlTable. If 
            a bit field is set to 1, the PS MUST only forward traffic 
            destined to a device on that interface type if the 
            destination physical address is an entry in the 
            cabhPsDevAccessControlTable. If the bit field for an 
            interface type is not set, i.e., if it is equal to 0, the 
            PS MUST NOT apply forwarding restrictions for that 
            interface type based on the Access Control Table. The PS 
            MUST implement cabhPsDevAccessControlEnable for bit 1 
            (wireless LAN) and for bit 3 (HomePlug). If the PS does not
            implement cabhPsDevAccessControlEnable for any of the other
            defined bits, the PS MUST return inconsistent value error, 
            and not allow the bit to be set, if an attempt is made to 
            set a bit that is not implemented.

            If the PS implements a HomePNA interface and implements the
            PSDev Access Control Table enable functionality for the 
            HomePNA interface, then if bit 0 is set, the PS MUST apply 
            PSDev Access Control Table access rules to any PS interface
            of  IANAifType 220 (Home Phoneline Networking Alliance). If
            the PS does not implement PSDev Access Control Table enable
            functionality for the HomePNA interface, and an attempt is 
            made to set bit 0 to value '1', the PS MUST return 
            'Inconsistent Value' error and MUST NOT set bit 0 to value 
            '1'.

            If bit 1 (ieee80211) is set, the PS MUST apply PSDev 
            Access Control Table access rules to any PS interface of 
            IANAifType 71 (radio spread spectrum).

            If the PS implements an IEEE 802.3/CSMA-CD interface and 
            implements the PSDev Access Control Table enable 
            functionality for the IEEE 802.3/CSMA-CD interface, then 
            if bit 2 is set, the PS MUST apply PSDev Access Control 
            Table access rules to any PS interface of  IANAifType 6 
            (ethernetCsmacd). If the PS does not implement PSDev 
            Access Control Table enable functionality for a IEEE 
            802.3/CSMA-CD interface, and an attempt is made to set 
            bit 2 to value '1', the PS MUST return 'Inconsistent 
            Value' error and MUST NOT set bit 2 to value '1'.

            If bit 3 (homeplug) is set, the PS MUST apply PSDev 
            Access Control Table access rules to any PS HomePlug 
            Powerline Alliance (HomePlug) interface as defined by 
            HomePlug Powerline Alliance (www.homeplug.org).

            If the PS implements a USB interface and implements the 
            PSDev Access Control Table enable functionality for the 
            USB interface, then if bit 4 is set, the PS MUST apply 
            PSDev Access Control Table access rules to any PS 
            interface of  IANAifType 160 (USB). If the PS does not 
            implement PSDev Access Control Table enable functionality 
            for the USB interface, and an attempt is made to set bit 
            4 to value '1', the PS MUST return 'Inconsistent Value' 
            error and MUST NOT set bit 4 to value '1'.

            If the PS implements an IEEE 1394 interface and 
            implements the PSDev Access Control Table enable 
            functionality for the IEEE 1394 interface, then if bit 5 
            is set, the PS MUST apply PSDev Access Control Table 
            access rules to any PS interface of  IANAifType 144 
            (IEEE1394 High Performance Serial Bus). If the PS does 
            not implement PSDev Access Control Table enable 
            functionality for the IEEE 1394 interface, and an attempt 
            is made to set bit 5 to value '1', the PS MUST return 
            'Inconsistent Value' error and MUST NOT set bit 5 to 
            value '1'.

            If the PS implements a SCSI interface and implements the 
            PSDev Access Control Table enable functionality for the 
            SCSI interface, then if bit 6 is set, the PS MUST apply 
            PSDev Access Control Table access rules to any PS SCSI-2 
            or SCSI-3 interface. If the PS does not implement PSDev 
            Access Control Table enable functionality for the SCSI 
            interface, and an attempt is made to set bit 6 to value 
            '1', the PS MUST return 'Inconsistent Value' error and 
            MUST NOT set bit 6 to value '1'.

            If bit 7 (other) is set, the PS MAY apply PSDev Access 
            Control Table filter access to any PS interface of a type
            other than the types defined by bits 0  6."
    DEFVAL { '00'h }  -- null, all interface types disabled
    ::= { cabhPsDevAccessControl 1 }

cabhPsDevAccessControlTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CabhPsDevAccessControlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "This table contains a list of the physical addresses of
            LAN IP Devices to and from which the PS will forward
            traffic through a LAN interface if
            cabhPsDevAccessControlEnable is enabled(1) for that
            interface type."
    REFERENCE
            "CableHome specification, Packet Handling & Address
            Translation section."
    ::= { cabhPsDevAccessControl 2 }

cabhPsDevAccessControlEntry OBJECT-TYPE
    SYNTAX      CabhPsDevAccessControlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "List of the physical addresses for LAN IP Devices 
            to and from which the PS will forward traffic when
            the PSDev Access Control Table is enabled."
    INDEX { cabhPsDevAccessControlIndex }
    ::= { cabhPsDevAccessControlTable 1 }

CabhPsDevAccessControlEntry ::= SEQUENCE {
    cabhPsDevAccessControlIndex     INTEGER,
    cabhPsDevAccessControlPhysAddr  PhysAddress,
    cabhPsDevAccessControlRowStatus RowStatus
    }

cabhPsDevAccessControlIndex OBJECT-TYPE
    SYNTAX      INTEGER (1..65535)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Integer index into the CableHome PSDev Access Control
            Table."
    ::= { cabhPsDevAccessControlEntry 1 }

cabhPsDevAccessControlPhysAddr OBJECT-TYPE
    SYNTAX      PhysAddress (SIZE (1..16))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "The physical address of the LAN IP Device for which the PS
            will forward traffic when the PSDev Access Control
            Table is enabled. The PS will not forward traffic
            from any LAN IP Device whose physical address is
            not an entry of the PSDev Access Control Table when the 
            PSDev Access Control Table is enabled for the 
            corresponding interface."
    ::= { cabhPsDevAccessControlEntry 2 }

cabhPsDevAccessControlRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "The RowStatus interlock for the creation and deletion
            of a cabhPsDevAccessControlTable entry. Any writable
            object in each row of the cabhPsDevAccessControlTable
            can be modified at any time while the row is active(1)."
    ::= { cabhPsDevAccessControlEntry 3 }

--=====================================================================
--
--    CableHome Miscellaneous MIB
--
--  This branch of cabhPsDevMib contains extensions related to
--  functionalities defined for other standards bodies or outside
--  of CableHome fully defined features.
--
--=====================================================================

--=====================================================================
--
--    CableHome User Interface Miscellaneous MIB
--
--  PS MIB objects for controlling features of the CableHome compliant
--  residential gateways User Interface (UI) if present.
--
--=====================================================================

cabhPsDevUILogin OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..32))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "This parameter specifies the value of the user login name
            required for access to the CableHome compliant residential
            gateway device's user interface."
    ::= { cabhPsDevUI 1 }

cabhPsDevUIPassword OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(4..32))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "This parameter specifies the value of the user password
            required for access to the CableHome compliant residential
            gateway device's user interface."
    ::= { cabhPsDevUI 2 }

cabhPsDevUISelection OBJECT-TYPE
    SYNTAX      INTEGER {
                    manufacturerLocal(1),
                    cableOperatorLocal(2),
                    cableOperatorServer(3),
                    disabledUI(4)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Indicates the type of Web user interface (UI)
            to present to the user if Web interface is supported:
            manufacturerLocal: 
              PS uses the vendor UI shipped with the device.
            cableOperatorLocal:  
              PS uses a cable operator defined UI interface.
              To operate properly, It should require a special code 
              image downloaded into the PS.  By default, if no cable 
              operator UI is being defined, selecting this option
              points to 'manufacturerLocal' selection. 
            cableOperatorServer: 
              PS redirects HTTP requests to its UI to the URL specified
              in cabhPsDevUIServerUrl.
            disabledUI: 
              PS responds to HTTP requests to its UI with an HTTP page
              containing the value of
              cabhPsDevUISelectionDisabledBodyText as the body tag;
              or with a vendor specific message or HTTP error if that
              value is null."
    DEFVAL { manufacturerLocal }
    ::= { cabhPsDevUI 3 }

cabhPsDevUIServerUrl OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(0..255))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "URL used by the Indicate the UI to present to the user.
            The well formed URL is resolved by the PS by querying the 
            DNS servers listed in cabhCdpWanDnsServerTable." 
    DEFVAL { "" }
    ::= { cabhPsDevUI 4 }

cabhPsDevUISelectionDisabledBodyText OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(0..255))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Default text for the HTTP body tag to include in the
            response to UI requests when the object
            cabhPsDevUISelection is set to 'disabledUI'
            An example of a body tag is below:
            <body>Feature currently disabled by Cable Operator</body>."
    ::= { cabhPsDevUI 5 }

-- =====================================================
-- IEEE802dot11-MIB CableHome extension
-- =====================================================

cabhPsDev802dot11BaseTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CabhPsDev802dot11BaseEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "CableHome specifics controls for 80211 wireless
            interfaces."
    ::= { cabhPsDev802dot11 1 }

cabhPsDev802dot11BaseEntry OBJECT-TYPE
    SYNTAX      CabhPsDev802dot11BaseEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "An entry in cabhPsDev802dot11BaseTable associated to a
            wireless interface of IANAifType ieee80211.(71)"
    INDEX { ifIndex }
    ::= { cabhPsDev802dot11BaseTable 1 }

CabhPsDev802dot11BaseEntry ::= 
    SEQUENCE { 
              cabhPsDev802dot11BaseSetToDefault     TruthValue,
              cabhPsDev802dot11BaseLastSetToDefault TimeStamp,
              cabhPsDev802dot11BaseAdvertiseSSID    TruthValue,
              cabhPsDev802dot11BasePhyCapabilities  BITS,
              cabhPsDev802dot11BasePhyOperMode      INTEGER
             }

cabhPsDev802dot11BaseSetToDefault OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "When set  to true(1) the PS MUST reset to default values 
            the Mib objects of IEEE802dot11-MIB module and others under
            cabhPsDev802dot11 for this entry related IfIndex. 
            Reading this object always return false(2)."
    DEFVAL { false }
    ::= { cabhPsDev802dot11BaseEntry 1 }

cabhPsDev802dot11BaseLastSetToDefault OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The value of sysUpTime when
            cabhPsDev802dot11MIBSetToDefault was last set to true.
            Zero if never reset."
    ::= { cabhPsDev802dot11BaseEntry 2 }

cabhPsDev802dot11BaseAdvertiseSSID OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "When set to false(2) the PS does not advertise the BSS
            SSID in a proprietary manner. To avoid interoperability
            problems and service disruption it is RECOMMENDED to set
            this object always to true. This feature does not provide
            any security, and does not prevent Wireless Stations to
            obtain the SSID by sniffing frames from other stations in
            the ESS. If the device does not support the feature of
            turning on/off the SSID advertisement, this object always
            reports 'true(1)' and reports the error 'wrongValue' when
            set to 'false(2)."
    DEFVAL { true }
    ::= { cabhPsDev802dot11BaseEntry 3 }

cabhPsDev802dot11BasePhyCapabilities OBJECT-TYPE
    SYNTAX      BITS {
                    --ieee80211DSSS(0) , not interest
                      ieee80211a(0),
                      ieee80211b(1),
                      ieee80211g(2)
                    --ieee80211FHSS(8),
                    --ieee80211IR(16)
                    --values with comments are not requirements
                    --included for completeness of 80211 spec.
                    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Indicates the PHY capabilities of the wireless interface."
    ::= { cabhPsDev802dot11BaseEntry 4 }

cabhPsDev802dot11BasePhyOperMode OBJECT-TYPE
    SYNTAX      INTEGER {
                         ieee80211a(1),
                         ieee80211b(2),
                         ieee80211g(4),
                         ieee80211bg(24)
                        }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Indicates the PHY mode of operation being set for the
            wireless interface. Setting this object will update the
            value of dot11PhyType. Accordingly (if implemented), as
            well as the object dot11OperationalRateSet to the 80211
            mandatory rates for dot11PhyType. 

            It is left to vendors the option to update the values of
            PS optional dot11SupportedDataRatesTxEntry and 
            dot11SupportedDataRatesRxEntry tables based on the
            operational mode.

            In the case of selecting ieee80211bg(14), dot11PhyType
            reports erp(6) and dot11OperationalRateSet should report
            HRDSSS and ERP mandatory rates and in addition 54 Mbps rate
            if supported by PS. e.g. : (this example assumes 54 Mbps
            OFDM is supported.
            HR-DSSS :
              Mandatory: 
                     1 Mbps '80'H + '01'H
                     2 Mbps '80'H + '02'H
                     5.5 Mbps '80'H + '0B'H
                    11 Mbps '80'H + '16'H
            ERP :
              Mandatory:
                     6 Mbps '80'H + '0C'H
                    12 Mbps '80'H + '18'H
                    24 Mbps '80'H + '30'H
     (if supported) 54 Mbps '80'H + '6C'
              Optional:
                    22 Mbps '00'H + '2C'H
                    33 Mbps '00'H + '42'H
                    18 Mbps '00'H + '24'H
                    36 Mbps '00'H + '48'H
                    48 Mbps '00'H + '60'H

          Combined operational rates in :

            dot11OperationalRateSet value in rate order regardless 
            of '80'H flag and using dots for clarity :
            + means flagged '80'H, - not flagged.
          Rates Mbps: +1,+2,+5.5,+6,+11,+12,-18,-22,+24,-33,-36,-48,+54
                Hex:  '81.82.8B.8C.96.98. 24.2C.B0.48.42. 60.EC'H

            The default value of this object is left to the vendor to 
            accommodate the factory defaults for the device."
    REFERENCE
            "IEEE Std 802.11, 1999 Edition, 
            IEEE Std 802.11a-1999, 
            IEEE Std 802.11b-1999/Cor 1-2001, 
            IEEE Std 802.11g-2003."
    ::= { cabhPsDev802dot11BaseEntry 5 }

-- ===============================================================
-- IEEE802dot11MIB CableHome extension for security configuration
-- ===============================================================

cabhPsDev802dot11SecTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CabhPsDev802dot11SecEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "CableHome specifics controls for configuring the 
            security mechanisms of 80211 wireless interfaces."
    ::= { cabhPsDev802dot11 2 }

cabhPsDev802dot11SecEntry OBJECT-TYPE
    SYNTAX      CabhPsDev802dot11SecEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "An entry in cabhPsDev802dot11SecTable associated to a 
            wireless interface of IANAifType ieee80211(71)."
    INDEX { ifIndex }
    ::= { cabhPsDev802dot11SecTable 1 }

CabhPsDev802dot11SecEntry ::= 
    SEQUENCE { 
              cabhPsDev802dot11SecCapabilities        BITS,
              cabhPsDev802dot11SecOperMode            BITS,
              cabhPsDev802dot11SecPassPhraseToWEPKey  OCTET STRING,
              cabhPsDev802dot11SecUsePassPhraseToWEPKeyAlg TruthValue,
              cabhPsDev802dot11SecPSKPassPhraseToKey  OCTET STRING,
              cabhPsDev802dot11SecWPAPreSharedKey     OCTET STRING,
              cabhPsDev802dot11SecWPARekeyTime        Unsigned32,
              cabhPsDev802dot11SecControl             INTEGER,
              cabhPsDev802dot11SecCommitStatus        INTEGER
             }

cabhPsDev802dot11SecCapabilities OBJECT-TYPE
    SYNTAX      BITS { 
                      wep64(0),
                      wep128(1),
                      wpaPSK(2)
                    --wpa2PSK(3)
                     }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The PS capabilities for Authentication and encryption used
            to authenticate 802.11 clients."
    ::= { cabhPsDev802dot11SecEntry 1 }

cabhPsDev802dot11SecOperMode OBJECT-TYPE
    SYNTAX      BITS { 
                      wep64(0),
                      wep128(1),
                      wpaPSK(2)
                   -- wpa2PSK(3)
                     }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Indicates the Authentication and encryption mechanism to 
            be enabled for the users and advertised in Beacon messages.
            Bits set to this object and not supported by the PS in 
            cabhPsDev802dot11SecCapabilities are set to '0' without
            failing the SNMP set. Setting two bit that the PS does not
            support in combination returns an error 'wrongValue'.
            In particular:
              Setting to '1' both wep64(0)and wep128(1) bits returns an
                error'wrongValue'.
              Setting a combination of WEP bits (wep64(0) or wep128(1))
                and wpaPSK bit returns is not a mandatory requirement, 
                therefore an error 'wrongValue' may be reported.
         
            Setting any bit to '1' must not affect the value of object 
            dot11PrivacyInvoked.
         
            If dot11PrivacyInvoked is set to 'false', the 80211 WEP
            security mechanism is disabled (see dot11PrivacyInvoked
            description) and the value of this object is not used.

            Setting the wpaPSK(2) bit to '1' indicates the usage of 
            WPA-PSK TKIP.

            Note that to enable the PSK security mechanism, the value
            of cabhPsDev802dot11SecWPAPreSharedKey must be a non-zero
            length string."
    ::= { cabhPsDev802dot11SecEntry 2 }

cabhPsDev802dot11SecPassPhraseToWEPKey OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0|5..63))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The Password used for PS to derive WEP encryption keys. 
            After a successful set, the values of
            dot11WEPDefaultKeyValue are populated as described below:
         
            For wep64: 
              If cabhPsDev802dot11SecOperMode wep64 bit is set to '1'
              This object value (x) is used as a generator of a 4 octet
              seed.
         
              seed[i%4] = XOR(seed[i%4],x[i]); i from 1 to len(x) -1
         
            The values of the four dot11WEPDefaultKeyValue are
            calculated as indicated below : 
              loop j 1..4
              loop k 0..4
              seed = seed * (((26*8+1)*256-1)*4+1) + 2531011
              The value is always truncated at 32 bits.
              OCTETk = (seed >> 16 )& 0xFF  -lowest octet-
              end loop
              dot11WEPDefaultKeyValue(j) = OCTET0,OCTET1, ... OCTET4
              end loop
         
              Note that seed value is constantly re-computed when
              calculating each octet of each default WEP key.
         
            For wep128:
              If cabhPsDev802dot11SecOperMode wep128 bit is set to '1'
              This object value (x) fills a 64 octet buffer y :
              y = x,x,x...up to 64 octets.
              Calculate the 128-bit MD5 digest of y
              the values of all dot11WEPDefaultKeyValue (1..4)
              are calculated by truncating the first first 13 octets
              of MD5y.
         
            dot11WEPDefaultKeyValue = MD5y0,MD5y1, .. MD5y12 

              This object value is normally read by issuing SNMP
              request PDUs. This object can be cleared with an SNMP
              SET to an empty string Value and the PS MUST not update
              the type of keys being set to '1' in
              cabhPsDev802dot11SecOperMode.

            If cabhPsDev802dot11SecUsePassPhraseToKeyAlg is set to 
            false(2), the behavior of a SET to this object depends 
            on the bits set for cabhPsDev802dot11SecOperMode as 
            follows:


              If cabhPsDev802dot11SecOperMode bit wep64 is set to '1'
              and this object value length is 5 octets, the MIB object
              dot11WEPDefaultKeyValue.1 (WEP key 0) is populated with
              this object value, otherwise an error 'inconsistentValue'
              is reported.

              If cabhPsDev802dot11SecOperMode bit wep128 is set to '1'
              and this object value length is 13 octets, the MIB object
              dot11WEPDefaultKeyValue.1 (WEP key 0) is populated with
              this object value, otherwise an error 'inconsistentValue'
              is reported.

            Vector examples for wep64 and wep128 key derivation:

              Note:
              % refers to the module operation (reminder of the
              quotient of i and 4); XOR is the OR exclusive boolean
              operation.
         
           For wep64:
           passphrase: 
                   'ABCD4321' ( hex code 0x41.42.43.44.34.33.32.31 )

         
           First loop: (octets 0..3)
              XOR (0x00,A) -> XOR(0x00,0x41) -> 0x41
              XOR (0x00,B) -> XOR(0x00,0x42) -> 0x42
              XOR (0x00,C) -> XOR(0x00,0x43) -> 0x43
              XOR (0x00,D) -> XOR(0x00,0x44) -> 0x44
         
           Second loop: (octets 4..7)
              XOR (A,4) -> XOR(0x41,0x34) -> 0x75
              XOR (B,3) -> XOR(0x42,0x33) -> 0x71
              XOR (C,2) -> XOR(0x43,0x32) -> 0x71
              XOR (D,1) -> XOR(0x44,0x31) -> 0x75
         
            initial seed 0x75717175 -> 1970368885
         
            DefaultKeys calculation
 
            key1
            seed : 0x16545E64 -> 2nd MSB byte : 0x54
            seed : 0x41681397 -> 2nd MSB byte : 0x68
            seed : 0x1BE77FFE -> 2nd MSB byte : 0xE7
            seed : 0xAA6996C9 -> 2nd MSB byte : 0x69
            seed : 0xD1523E68 -> 2nd MSB byte : 0x52
            dot11WEPDefaultKeyValue.1 = 0x5468E76952
                                       
            key2
            seed : 0x1FFB838B -> 2nd MSB byte : 0xFb
            seed : 0xF9C60022 -> 2nd MSB byte : 0xC6
            seed : 0xAB43A65D -> 2nd MSB byte : 0x43
            seed : 0xE9A35FAC -> 2nd MSB byte : 0xA3
            seed : 0xE7AA2FBF -> 2nd MSB byte : 0xAA
            dot11WEPDefaultKeyValue.2 = 0xFBC643A3AA
 
            key3
            seed : 0x6D13CB86 -> 2nd MSB byte : 0x13
            seed : 0x5D8CD431 -> 2nd MSB byte : 0x8C
            seed : 0xCC702630 -> 2nd MSB byte : 0x70
            seed : 0xD78AEC33 -> 2nd MSB byte : 0x8A
            seed : 0x24DC662A -> 2nd MSB byte : 0xDC
            dot11WEPDefaultKeyValue.3 = 0x138C708ADC
 
            key4
            seed : 0x4F329445 -> 2nd MSB byte : 0x32
            seed : 0x3EC035F4 -> 2nd MSB byte : 0xC0
            seed : 0xF416CCE7 -> 2nd MSB byte : 0x16
            seed : 0x9904940E -> 2nd MSB byte : 0x04
            seed : 0x28969A99 -> 2nd MSB byte : 0x96
            dot11WEPDefaultKeyValue.4 = 0x32C0160496
 
            For wep128:
            passphrase: 
                   'ABCD4321' ( hex code 0x41.42.43.44.34.33.32.31 )
            128-bit MD-5 digest 0xFECBACF05B42F7A138A5F3928E
            dot11WEPDefaultKeyValue.1..4 = 0xFECBACF05B42F7A138A5"
    ::= { cabhPsDev802dot11SecEntry 3 }

cabhPsDev802dot11SecUsePassPhraseToWEPKeyAlg OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "When this object value is true(1) the WEP Pass Phrase to
            key mechanism described in 
            cabhPsDev802dot11SecPassPhraseToWEPKey applies. When this
            object is set to false(2) the Pass Phrase to WEP Key
            mechanism is ignored and the password is used as WEP key
            to populate the MIB object keydot11WEPDefaultKeyValue
            object as indicated in
            cabhPsDev802dot11SecPassPhraseToWEPKey description."
    DEFVAL { true }
    ::= { cabhPsDev802dot11SecEntry 4 }

cabhPsDev802dot11SecPSKPassPhraseToKey OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(8..63))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The Password used for PS to derive WPA PSK encryption key.
            After a successful set, the values of 
            cabhPsDev802dot11SecWPAPreSharedKey is updated as described
            below:

            For wpaPSK:
            If cabhPsDev802dot11SecOperMode wpaPSK bit is set to '1'
            the value of cabhPsDev802dot11SecWPAPreSharedKey is updated
            with the Password Base Key Derivation Function from  the 
            Password-based Cryptographic Specification PKCS #5 v2.0 
            RFC 2898 (PBKDF2) with the following specific parameters:

            PSK = PBKDF2(PassPhrase, ssid, ssidLength, 4096, 256)
            PassPhrase is the value of this object
            ssid is the PS SSID value used as the function salt
            ssidLength is the number of octets of ssid
            the iterations count is 4096 and the key generation length
            is 256 bits (32 octets).

            This object value is normally read by issuing SNMP request 
            PDUs. This object can be cleared with an SNMP SET to an
            empty string Value and the PS MUST not update the type of
            keys being set to '1' in cabhPsDev802dot11SecOperMode.

            Vector examples for wpaPSK:

            for wpaPSK:
            passphrase:
                   'ABCD4321' ( hex code 0x41.42.43.44.34.33.32.31 )
            SSID: 'ABCD4321' ( hex code 0x41.42.43.44.34.33.32.31 )

            256 bit PBKDF2('ABCD4321', 'ABCD4321', 8, 4096, 32)
            cabhPsDev802dot11SecWPAPreSharedKey =
            0x7C199CF2FEF9AF206C8EE0E9703920C2
              3517068B3F96B011E0F975C9131BDB58"
    ::= { cabhPsDev802dot11SecEntry 5 }

cabhPsDev802dot11SecWPAPreSharedKey OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0|32))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The Pre-shared key used for the PS when the bit 'wpaPSK' 
            is set to '1'. This object can be set directly or derived
            from the password phrase set in 
            cabhPsDev802dot11SecPSKPassPhraseToKey. This object is
            meaningful when the bit wpaPSK is set to '1'. 

            If the value of this object is the zero-length string, the
            PS must not activate the PSK security mechanism."
    DEFVAL { ''H }
    ::= { cabhPsDev802dot11SecEntry 6 }

cabhPsDev802dot11SecWPARekeyTime OBJECT-TYPE
    SYNTAX      Unsigned32 (1..4294967295)
    UNITS       "seconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Time interval to initiate WPA Group Keys (GTK) updates."
    DEFVAL { 86400 }
    ::= { cabhPsDev802dot11SecEntry 7 }

cabhPsDev802dot11SecControl OBJECT-TYPE
    SYNTAX INTEGER {
        restoreConfig(1),
        commitConfig(2)
        }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The control for the indexed 80211 device configuration. 
            All changes to the cabhPsDev802dot11SecEntry MIB objects
            are reflected when reading the value of the MIB objects;
            however, those changes are NOT applied to the running
            configuration of the indexed 80211 device until they are
            successfully committed via use of the
            cabhPsDev802dot11SecControl object. 

            If changes are made to the cabhPsDev802dot11SecEntry MIB
            objects which are not yet successfully committed to the
            indexed 80211 device, the cabhPsDev802dot11SecControl
            object can be used to rollback all changes to the last
            valid 80211 device configuration and discard all
            intermediate changes.

            restoreConfig - Setting cabhPsDev802dot11SecControl to this
            value will cause any changes to the
            cabhPsDev802dot11SecEntry objects not yet committed be
            reset to the values from the current running 
            configuration of the indexed 80211 device.

            commitConfig - Setting cabhPsDev802dot11SecControl to this
            value will cause the indexed 80211 device to validate and
            apply the valid cabhPsDev802dot11SecEntry MIB settings to
            its running configuration. The
            cabhPsDev802dot11SecCommitStatus object will detail the 
            status of this operation."
    DEFVAL { restoreConfig }
    ::= { cabhPsDev802dot11SecEntry 8 }

cabhPsDev802dot11SecCommitStatus OBJECT-TYPE
    SYNTAX INTEGER {
        commitSucceeded(1),
        commitNeeded(2),
        commitFailed(3)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Indicates the status of committing the current 
            cabhPsDev802dot11SecEntry MIB object values to the running
            configuration of the indexed 80211 device.
 
            commitSucceeded - indicates the current
            cabhPsDev802dot11SecEntry MIB object values are valid and
            have been successfully committed to the running
            configuration of the indexed 80211 device.

            commitNeeded - indicates that the value of one or more
            objects in cabhPsDev802dot11SecEntry MIB group have been
            changed but not yet committed to the running configuration
            of the indexed 80211 device.

            commitFailed - indicates the PS was unable to commit the 
            cabhPsDev802dot11SecEntry MIB object values to the running
            configuration of the indexed 80211 device due to conflicts
            in those values."
    DEFVAL { commitSucceeded }
    ::= { cabhPsDev802dot11SecEntry 9 }

-- ===============================================================
--
-- UPnP Services 
-- Contains CableHome Portal Server UPnP information of LAN hosts
--
-- ===============================================================

cabhPsDevUpnpEnabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Setting this object to false(1) disable PS UPnP
            services and UPnP MIB objects related functionality.
            When this object reports 'false' any set to 
            UPnP read-write or read-create objects returns error
            'InconsistentValue'.  Transitions of this object from 
            'true' to 'false' and viceversa does not alter the content
            of persistent MIB objects and may clear dynamically UPnP
            created entries. This object value persists upon system
            reinitialization."
    DEFVAL { true }
    ::= { cabhPsDevUpnpBase 1 }

cabhPsDevUpnpCommandIpType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The type of InetAddress for cabhPsDevUpnpCommandIp."
    DEFVAL { ipv4 }
    ::= { cabhPsDevUpnpCommands 1 }

cabhPsDevUpnpCommandIp OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The IP address Of the device for which the UPnP
            information is being requested. This may be a an IPv4 or
            IPv6 prefix. When quering specific information about the
            PS itself the PS router IP address 192.168.0.1
            should be specified ."
    DEFVAL { 'C0A80001'h } -- 192.168.0.1
    ::= { cabhPsDevUpnpCommands 2 }

cabhPsDevUpnpCommand OBJECT-TYPE
    SYNTAX      INTEGER { 
        discoveryInfo(1),
        qosDeviceCapabilities(2),
        qosDeviceState(3)
        }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The type of information to be retrieved from the Upnp
            Devices in the LAN side and stored in
            cabhPsDevUpnpInfoTable.
            The following selections are supported:

            - discoveryInfo :
            PS retrieve the Discovery information of UPnP devices.
            If the Ip address specified in
            cabhPsDevUpnpCommandIp is 255.255.255.255
            the PS executes an M-search command and then
            retrieve the discovery information of the
            responding devices. The data stored in
            cabhPsDevUpnpInfoTable also contain UPnP
            discovery data of the PS itself.

            - qosDeviceCapabilities:
            This command is executed for unicast address only
            and will trigger the PS to retrieve the QOS device
            information pertain QOS capabilities.

            - qosDeviceState:
            This command is executed for unicast address only
            and will trigger the PS to retrieve the QOS device
            information pertain QOS Device state."
    DEFVAL { discoveryInfo }
    ::= { cabhPsDevUpnpCommands 3 }

cabhPsDevUpnpCommandUpdate OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "If set to 'true' triggers the execution of the command
            indicated in cabhPsDevUpnpCommand for the host(s) in
            cabhPsDevUpnpCommandIp. Setting to true this object will
            return error 'wrongValie if host IP corresponds to
            255.255.255.255 and cabhPsDevUpnpCommand value is not
            'discoveryInfo'. Reading this value always return 'false'."
    ::= { cabhPsDevUpnpCommands 4 }

cabhPsDevUpnpLastCommandUpdate OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The sysUpTime value of the last time the object
            cabhPsDevUpnpLastCommandUpdate was set to 'true'."
    ::= { cabhPsDevUpnpCommands 5 }

cabhPsDevUpnpCommandStatus OBJECT-TYPE
    SYNTAX      INTEGER {
        none(1),
        inProgress(2),
        complete(3),
        failed(4)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The status of cabhPsDevUpnpCommandUpdate trigger
            none(1)
            initial state.
            inProgress(2)
            the information is being acquired by the
            device, PS does not change from'inProgess
            to the final state (complete, failed)
            until the execution has finished.
            complete(3) The overall execution is finished with
            no error conditions..
            failed(4).
            The UPnP Device has experienced a timeout. In the
            case of multiple devices query
            (cabhPsDevUpnpCommand set to 'discoveryInfo')
            The failed devices are stored with content information
            empty. At system initialization this object returns
            'none'."
    DEFVAL { none } 
    ::= { cabhPsDevUpnpCommands 6}

cabhPsDevUpnpInfoTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CabhPsDevUpnpInfoEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "This table contains QOS related information of LAN
            UPnP devices or thePS itself."
    ::= { cabhPsDevUpnpCommands 7 }

cabhPsDevUpnpInfoEntry OBJECT-TYPE
    SYNTAX      CabhPsDevUpnpInfoEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The Indexes for this entries
            Entries are created after setting to 'true' the
            value of cabhPsDevUpnpCommand."
    INDEX { cabhPsDevUpnpInfoIpType, cabhPsDevUpnpInfoIp,
            cabhPsDevUpnpInfoXmlFragmentIndex }
    ::= { cabhPsDevUpnpInfoTable 1 }

CabhPsDevUpnpInfoEntry::= SEQUENCE {
    cabhPsDevUpnpInfoIpType            InetAddressType,
    cabhPsDevUpnpInfoIp                InetAddress,
    cabhPsDevUpnpInfoXmlFragmentIndex  Unsigned32,
    cabhPsDevUpnpInfoXmlFragment       OCTET STRING
    }

cabhPsDevUpnpInfoIpType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The type of InetAddress for cabhPsDevUpnpInfoIp."  
    ::= { cabhPsDevUpnpInfoEntry 1 }

cabhPsDevUpnpInfoIp OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The IP address Of the device for which the UPnP
            information is being stored. This may be a DNS name
            (LAN Host name), an IPv4 or IPv6 prefix. Information
            pertaining to the PS itself is indicated by the PS
            well-known LAN IP address interface 192.168.0.1."
    ::= { cabhPsDevUpnpInfoEntry 2 }

cabhPsDevUpnpInfoXmlFragmentIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..4294967295)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The index of the sequence of entries of
            cabhPsDevUpnpInfoXmlFragment for an specific
            cabhPsDevUpnpInfoIp IP address starting with '1'."
    ::= { cabhPsDevUpnpInfoEntry 3 }

cabhPsDevUpnpInfoXmlFragment OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..400))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The UPnP Device information being requested by
            cabhPsDevUpnpCommand for the IP addresses specified
            in cabhPsDevUpnpInfoIp for LAN host(s). If the
            information is greater than 400 bytes
            cabhPsDevUpnpInfoXmlFragmentIndex indicates the
            sequence of the consecutive portions per host identified in
            the table."
    ::= { cabhPsDevUpnpInfoEntry 4 }  

-- 

cabhPsNotification     OBJECT IDENTIFIER ::= { cabhPsDevMib 2 }
cabhPsDevNotifications OBJECT IDENTIFIER ::= { cabhPsNotification 0 }
cabhPsConformance      OBJECT IDENTIFIER ::= { cabhPsDevMib 3 }
cabhPsCompliances      OBJECT IDENTIFIER ::= { cabhPsConformance 1 }
cabhPsGroups           OBJECT IDENTIFIER ::= { cabhPsConformance 2 }

--
--    Notification Group
--

cabhPsDevInitTLVUnknownTrap NOTIFICATION-TYPE 
    OBJECTS { 
        docsDevEvLevel, 
        docsDevEvId, 
        docsDevEvText, 
        cabhPsDevWanManMacAddress 
        } 
    STATUS      current 
    DESCRIPTION 
            "Event due to detection of unknown TLV during the TLV 
            parsing process. The values of docsDevEvLevel, docsDevId, 
            and docsDevEvText are from the entry which logs this event 
            in the docsDevEventTable.  The value of 
            cabhPsDevWanManMacAddress indicates the WAN-Man MAC address
            of the PS. This part of the information is uniform across 
            all PS Traps." 
    ::= { cabhPsDevNotifications 1 }

cabhPsDevInitTrap NOTIFICATION-TYPE
    OBJECTS {
        docsDevEvLevel,
        docsDevEvId,
        docsDevEvText,
        cabhPsDevWanManMacAddress,
        cabhPsDevProvConfigFile,
        cabhPsDevProvConfigTLVProcessed,
        cabhPsDevProvConfigTLVRejected
    }
    STATUS      current
    DESCRIPTION
            "This inform is issued to confirm the successful completion
            of the CableHome provisioning process."
    ::= { cabhPsDevNotifications 2 }

cabhPsDevInitRetryTrap NOTIFICATION-TYPE
    OBJECTS {
        docsDevEvLevel,
        docsDevEvId,
        docsDevEvText,
        cabhPsDevWanManMacAddress
    }
    STATUS      current
    DESCRIPTION
            "An event to report a failure happened during the 
            initialization process and was detected in the PS."
    ::= { cabhPsDevNotifications 3 }

cabhPsDevDHCPFailTrap NOTIFICATION-TYPE 
    OBJECTS {
        docsDevEvLevel, 
        docsDevEvId, 
        docsDevEvText, 
        cabhPsDevWanManMacAddress, 
        cabhCdpServerDhcpAddress
    } 
    STATUS      current 
    DESCRIPTION 
            "An event to report the failure of a DHCP server. The
            value of cabhCdpServerDhcpAddressis the IP address of
            the DHCP server." 
    ::= { cabhPsDevNotifications 4 }

cabhPsDevSwUpgradeInitTrap NOTIFICATION-TYPE 
    OBJECTS {
        docsDevEvLevel, 
        docsDevEvId, 
        docsDevEvText, 
        cabhPsDevWanManMacAddress, 
        docsDevSwFilename, 
        docsDevSwServer 
    } 
    STATUS      current 
    DESCRIPTION 
            "An event to report a software upgrade initiated event. 
            The values of docsDevSwFilename, and docsDevSwServer 
            indicate the software image name and the IP address of the
            server from which the image was downloaded." 
    ::= { cabhPsDevNotifications 5 }

cabhPsDevSwUpgradeFailTrap NOTIFICATION-TYPE 
    OBJECTS {
        docsDevEvLevel, 
        docsDevEvId, 
        docsDevEvText, 
        cabhPsDevWanManMacAddress, 
        docsDevSwFilename, 
        docsDevSwServer 
    } 
    STATUS      current 
    DESCRIPTION 
            "An event to report the failure of a software upgrade 
            attempt. The values of docsDevSwFilename, and 
            docsDevSwServer indicate the software image name and the IP
            address of the server from which the image was downloaded."
    ::= { cabhPsDevNotifications 6 }

cabhPsDevSwUpgradeSuccessTrap NOTIFICATION-TYPE 
    OBJECTS {
        docsDevEvLevel, 
        docsDevEvId,
        docsDevEvText,
        cabhPsDevWanManMacAddress,
        docsDevSwFilename, 
        docsDevSwServer 
    } 
    STATUS      current 
    DESCRIPTION 
            "An event to report the Software upgrade success event.
            The values of docsDevSwFilename, and docsDevSwServer 
            indicate the software image name and the IP address of the
            server from which the image was downloaded." 
    ::= { cabhPsDevNotifications 7 }

cabhPsDevSwUpgradeCVCFailTrap NOTIFICATION-TYPE 
    OBJECTS {
        docsDevEvLevel, 
        docsDevEvId, 
        docsDevEvText,
        cabhPsDevWanManMacAddress 
    } 
    STATUS      current 
    DESCRIPTION 
            "An event to report the failure of the verification of code
            file happened during a secure software upgrade attempt." 
    ::= { cabhPsDevNotifications 8 }

cabhPsDevTODFailTrap NOTIFICATION-TYPE 
    OBJECTS {
       docsDevEvLevel, 
       docsDevEvId, 
       docsDevEvText, 
       cabhPsDevTimeServerAddr, 
       cabhPsDevWanManMacAddress
    } 
    STATUS      current 
    DESCRIPTION 
            "An event to report the failure of a time of day server. 
            The value of cabhPsDevTimeServerAddr indicates the server 
            IP address."  
    ::= { cabhPsDevNotifications 9 }

cabhPsDevCdpWanDataIpTrap NOTIFICATION-TYPE
    OBJECTS { 
        docsDevEvLevel, 
        docsDevEvId, 
        docsDevEvText,
        cabhCdpWanDataAddrClientId, 
        cabhPsDevWanManMacAddress
    }
    STATUS      current
    DESCRIPTION
            "An event to report the failure of PS to obtain all
            needed WAN-Data Ip Addresses.
            cabhCdpWanDataAddrClientId indicates the ClientId for
            which the failure occurred." 
    ::= { cabhPsDevNotifications 10 }

cabhPsDevCdpThresholdTrap NOTIFICATION-TYPE
    OBJECTS { 
        docsDevEvLevel, 
        docsDevEvId, 
        docsDevEvText,
        cabhPsDevWanManMacAddress,
        cabhCdpLanTransThreshold
    }
    STATUS      current
    DESCRIPTION
            "An event to report that the LAN-Trans address assignment 
            threshold has been exceeded."
    ::= { cabhPsDevNotifications 11 }

cabhPsDevCspTrap NOTIFICATION-TYPE
    OBJECTS { 
        docsDevEvLevel, 
        docsDevEvId, 
        docsDevEvText,
        cabhPsDevWanManMacAddress
    }
    STATUS      current
    DESCRIPTION
            "To report an event with the CableHome Security Portal."
    ::= { cabhPsDevNotifications 12 }

cabhPsDevCapTrap NOTIFICATION-TYPE
    OBJECTS { 
        docsDevEvLevel, 
        docsDevEvId, 
        docsDevEvText,
        cabhPsDevWanManMacAddress
    }
    STATUS      current
    DESCRIPTION
            "To report an event with the CableHome Address Portal."
    ::= { cabhPsDevNotifications 13 }

cabhPsDevCtpTrap NOTIFICATION-TYPE
    OBJECTS { 
        docsDevEvLevel, 
        docsDevEvId, 
        docsDevEvText,
        cabhPsDevWanManMacAddress
    }
    STATUS      current
    DESCRIPTION
            "To report an event with the CableHome Test Portal."
    ::= { cabhPsDevNotifications 14 }

cabhPsDevProvEnrollTrap NOTIFICATION-TYPE
    OBJECTS { 
        cabhPsDevHardwareVersion,
        docsDevSwCurrentVers,
        cabhPsDevTypeIdentifier,
        cabhPsDevWanManMacAddress
    }
    STATUS      current
    DESCRIPTION
            "This notification is issued to initiate the CableHome 
            provisioning process for SNMP Provisioning Mode."
    REFERENCE
            "CableHome 1.1 Specification, 
            13.4 Provisioning the PS for Management:
            SNMP Provisioning Mode."
    ::= { cabhPsDevNotifications 15 }

cabhPsDevCdpLanIpPoolTrap NOTIFICATION-TYPE
    OBJECTS {
        docsDevEvLevel, 
        docsDevEvId, 
        docsDevEvText, 
        cabhPsDevWanManMacAddress,
        cabhCdpLanTransCurCount
    } 
    STATUS      current
    DESCRIPTION
            "An event to report that the pool of IP addresses for LAN
            clients, as defined by cabh CdpLanPoolStart and 
            cabhCdpLanPoolEnd, is exhausted."
    ::= { cabhPsDevNotifications 16 }

cabhPsDevUpnpMultiplePHTrap NOTIFICATION-TYPE
    OBJECTS {
        docsDevEvLevel, 
        docsDevEvId, 
        docsDevEvText,
        cabhQos2NumActivePolicyHolder,
        cabhQos2PolicyHolderEnabled,
        cabhQos2PolicyAdmissionControl
    }
    STATUS      current
    DESCRIPTION 
            "To report that more than one active UPnP Policy Holders
            have been detected.
            This notification is triggered in the case the PS 
            has cabhPsDevUpnpEnabled true."
    ::= { cabhPsDevNotifications 17 }

-- compliance statements

cabhPsBasicCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
            "The compliance statement for devices that implement the 
            CableHome Portal Services logical element."
    MODULE   -- cabhPsMib

-- unconditionally mandatory groups

MANDATORY-GROUPS {
        cabhPsDevBaseGroup,
        cabhPsDevProvGroup,
        cabhPsNotificationGroup,
        cabhPsDevAttribGroup,
        cabhPsDevStatsGroup,
        cabhPsDevAccessControlGroup,
        cabhPsDevUpnpGroup
        }

--  conditionally mandatory groups
 
GROUP cabhPsDev802dot11Group
    DESCRIPTION
            "This group is implemented only if PS 
            supports interfaces of ifType ieee80211(71)."

GROUP cabhPsDevUIGroup
    DESCRIPTION
            "This group is implemented only in CableHome compliant
            residential gateways that implement a User Interface (UI)."

OBJECT cabhPsDevTimeServerAddrType
    SYNTAX      InetAddressType { ipv4(1) }
    DESCRIPTION
            "An implementation is only required to support IPv4
            addresses. "

OBJECT cabhPsDevTimeServerAddr 
    SYNTAX      InetAddress (SIZE(4))
    DESCRIPTION
            "An implementation is only required to support IPv4
            addresses."

OBJECT cabhPsDevLanIpTrafficInetAddress
    SYNTAX      InetAddress (SIZE(4))
    DESCRIPTION
            "An implementation is only required to support IPv4
            addresses."

OBJECT cabhPsDevUpnpCommandIpType
    SYNTAX      InetAddressType { ipv4(1) }
    DESCRIPTION
            "An implementation is only required to support IPv4
            addresses."

OBJECT cabhPsDevUpnpCommandIp
    SYNTAX      InetAddress (SIZE(4))
    DESCRIPTION
            "An implementation is only required to support IPv4
            addresses."


OBJECT cabhPsDevUpnpInfoIpType
    SYNTAX      InetAddressType { ipv4(1) }
    DESCRIPTION
            "An implementation is only required to support IPv4
            addresses. "

OBJECT cabhPsDevUpnpInfoIp
    SYNTAX      InetAddress (SIZE(4))
    DESCRIPTION
            "An implementation is only required to support IPv4
            addresses."

    ::= { cabhPsCompliances 1 }

cabhPsDeprecatedCompliance MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
            "The compliance statement for deprecated MIB objects."
    MODULE   -- cabhPsMib

-- deprecated groups

GROUP cabhPsDevDeprecatedGroup
    DESCRIPTION
            "Group containing deprecated MIB objects."
    ::= { cabhPsCompliances 2 }

cabhPsObsoleteCompliance MODULE-COMPLIANCE
    STATUS      obsolete
    DESCRIPTION
            "The compliance statement for obsolete MIB objects."
    MODULE   -- cabhPsMib

GROUP cabhPsDevObsoleteGroup
    DESCRIPTION
            "Group containing obsolete MIB objects."

    ::= { cabhPsCompliances 3 }

cabhPsDevBaseGroup OBJECT-GROUP
    OBJECTS {
        cabhPsDevDateTime,
        cabhPsDevResetNow,
        cabhPsDevSerialNumber,
        cabhPsDevHardwareVersion,
        cabhPsDevWanManMacAddress,
        cabhPsDevWanDataMacAddress,
        cabhPsDevTypeIdentifier,
        cabhPsDevSetToFactory,
        cabhPsDevTodSyncStatus, 
        cabhPsDevProvMode,
        cabhPsDevLastSetToFactory,
        cabhPsDevTrapControl
    }
    STATUS      current
    DESCRIPTION
            "A collection of objects for providing device status and 
            control."
    ::= { cabhPsGroups 1 }

cabhPsDevProvGroup OBJECT-GROUP
    OBJECTS {
        cabhPsDevProvisioningTimer,
        cabhPsDevProvConfigFile,
        cabhPsDevProvConfigHash,
        cabhPsDevProvConfigFileSize,
        cabhPsDevProvConfigFileStatus,
        cabhPsDevProvConfigTLVProcessed,
        cabhPsDevProvConfigTLVRejected,
        cabhPsDevProvSolicitedKeyTimeout,
        cabhPsDevProvState,
        cabhPsDevProvAuthState,
        cabhPsDevTimeServerAddrType,
        cabhPsDevTimeServerAddr
    }
    STATUS      current
    DESCRIPTION
            "A collection of objects for controlling and providing
            status on provisioning."
    ::= { cabhPsGroups 2 }

cabhPsDevAttribGroup OBJECT-GROUP
    OBJECTS {
        cabhPsDevPsDeviceType,
        cabhPsDevPsManufacturerUrl,
        cabhPsDevPsModelUrl,
        cabhPsDevPsModelUpc
    }
    STATUS      current
    DESCRIPTION
            "A collection of objects for providing information on 
            LAN IP devices known to the PS."
    ::= { cabhPsGroups 3 }

cabhPsDevStatsGroup OBJECT-GROUP
    OBJECTS {
        cabhPsDevLanIpTrafficCountersReset,
        cabhPsDevLanIpTrafficCountersLastReset,
        cabhPsDevLanIpTrafficEnabled, 
        cabhPsDevLanIpTrafficInetAddressType,
        cabhPsDevLanIpTrafficInetAddress,
        cabhPsDevLanIpTrafficInOctets,
        cabhPsDevLanIpTrafficOutOctets
    }
    STATUS      current
    DESCRIPTION
            "A collection of objects for providing information
            on LAN IP traffic."
    ::= { cabhPsGroups 4 }

cabhPsDevDeprecatedGroup OBJECT-GROUP
    OBJECTS {
        cabhPsDevWanManClientId,
        cabhPsDevProvCorrelationId
    }
    STATUS      deprecated
    DESCRIPTION
            "Group of deprecated PSDev MIB objects."
    ::= { cabhPsGroups 5 }

cabhPsNotificationGroup NOTIFICATION-GROUP
    NOTIFICATIONS { 
        cabhPsDevInitTLVUnknownTrap, 
        cabhPsDevInitTrap,
        cabhPsDevInitRetryTrap,
        cabhPsDevDHCPFailTrap, 
        cabhPsDevSwUpgradeInitTrap, 
        cabhPsDevSwUpgradeFailTrap,
        cabhPsDevSwUpgradeSuccessTrap, 
        cabhPsDevSwUpgradeCVCFailTrap, 
        cabhPsDevTODFailTrap,
        cabhPsDevCdpWanDataIpTrap, 
        cabhPsDevCdpThresholdTrap, 
        cabhPsDevCspTrap, 
        cabhPsDevCapTrap, 
        cabhPsDevCtpTrap, 
        cabhPsDevProvEnrollTrap, 
        cabhPsDevCdpLanIpPoolTrap,
        cabhPsDevUpnpMultiplePHTrap
    }
    STATUS      current
    DESCRIPTION
            "These notifications indicate change in status of the
            Portal Services set of functions in a device complying
            with CableLabs CableHome(tm) specifications."
    ::= { cabhPsGroups 6 }

cabhPsDevAccessControlGroup OBJECT-GROUP
    OBJECTS {
        cabhPsDevAccessControlEnable,
        cabhPsDevAccessControlPhysAddr,
        cabhPsDevAccessControlRowStatus
    }
    STATUS      current
    DESCRIPTION
            "Group of Access Control objects for the CableHome PSDev
            MIB."
    ::= { cabhPsGroups 7 }

cabhPsDevUIGroup OBJECT-GROUP
    OBJECTS {
        cabhPsDevUILogin,
        cabhPsDevUIPassword,
        cabhPsDevUISelection,
        cabhPsDevUIServerUrl,
        cabhPsDevUISelectionDisabledBodyText
    }
    STATUS      current
    DESCRIPTION
            "A collection of objects for configuring the selection and
            operation of the User Interface displayed to an HTTP
            client, if a UI is implemented."
    ::= { cabhPsGroups 8 }

cabhPsDev802dot11Group OBJECT-GROUP
    OBJECTS {
               cabhPsDev802dot11BaseSetToDefault,
               cabhPsDev802dot11BaseLastSetToDefault,
               cabhPsDev802dot11BaseAdvertiseSSID,
               cabhPsDev802dot11BasePhyCapabilities,
               cabhPsDev802dot11BasePhyOperMode,
               cabhPsDev802dot11SecCapabilities,
               cabhPsDev802dot11SecOperMode,
               cabhPsDev802dot11SecPassPhraseToWEPKey,
               cabhPsDev802dot11SecUsePassPhraseToWEPKeyAlg,
               cabhPsDev802dot11SecPSKPassPhraseToKey,
               cabhPsDev802dot11SecWPAPreSharedKey,
               cabhPsDev802dot11SecWPARekeyTime,
               cabhPsDev802dot11SecControl,
               cabhPsDev802dot11SecCommitStatus
            }
    STATUS      current
    DESCRIPTION
            "Group of CableHome proprietary objects for the 
            management of IEEE 80211 interfaces."
    ::= { cabhPsGroups 9 }

cabhPsDevUpnpGroup OBJECT-GROUP
    OBJECTS {
               cabhPsDevUpnpEnabled,
               cabhPsDevUpnpCommandIpType,
               cabhPsDevUpnpCommandIp,
               cabhPsDevUpnpCommand,
               cabhPsDevUpnpCommandUpdate,
               cabhPsDevUpnpLastCommandUpdate,
               cabhPsDevUpnpCommandStatus,
               cabhPsDevUpnpInfoXmlFragment
              }
    STATUS      current
    DESCRIPTION
            "Group of MIB objects for the  
            management interface of UPnP Services."
    ::= { cabhPsGroups 10 }

cabhPsDevObsoleteGroup OBJECT-GROUP
    OBJECTS {
        cabhPsDevBpDeviceType,
        cabhPsDevBpManufacturer,
        cabhPsDevBpManufacturerUrl,
        cabhPsDevBpSerialNumber,
        cabhPsDevBpHardwareVersion,
        cabhPsDevBpHardwareOptions,
        cabhPsDevBpModelName,
        cabhPsDevBpModelNumber,
        cabhPsDevBpModelUrl,
        cabhPsDevBpModelUpc,
        cabhPsDevBpModelSoftwareOs,
        cabhPsDevBpModelSoftwareVersion,
        cabhPsDevBpLanInterfaceType,
        cabhPsDevBpNumberInterfacePriorities,
        cabhPsDevBpPhysicalLocation,
        cabhPsDevBpPhysicalAddress
    }
    STATUS      obsolete
    DESCRIPTION
            "Group of BP related objects with obsoleted status."
    ::= { cabhPsGroups 11 }

END