CABH-CDP-MIB DEFINITIONS ::= BEGIN 
IMPORTS 
    MODULE-IDENTITY, 
    OBJECT-TYPE, 
    Integer32, 
    Unsigned32            FROM SNMPv2-SMI 
    PhysAddress, 
    TruthValue, 
    DateAndTime,
    TimeStamp, 
    RowStatus             FROM SNMPv2-TC --RFC2579
    OBJECT-GROUP, 
    MODULE-COMPLIANCE     FROM SNMPv2-CONF 
    InetAddressType, 
    InetAddress           FROM INET-ADDRESS-MIB
    SnmpAdminString       FROM SNMP-FRAMEWORK-MIB
    clabProjCableHome     FROM CLAB-DEF-MIB; 
    
cabhCdpMib MODULE-IDENTITY 
    LAST-UPDATED    "200412160000Z"  -- December 16, 2004
    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 CableHome DHCP Portal (CDP) portion of the PS 
            database."
    ::=  { clabProjCableHome 4 }

cabhCdpObjects         OBJECT IDENTIFIER ::= { cabhCdpMib 1 }
cabhCdpBase            OBJECT IDENTIFIER ::= { cabhCdpObjects 1 }
cabhCdpAddr            OBJECT IDENTIFIER ::= { cabhCdpObjects 2 }
cabhCdpServer          OBJECT IDENTIFIER ::= { cabhCdpObjects 3 }

--
--    The following group describes the base objects in the CableHome
--    DHCP Portal.  The rest of this group deals addresses defined on
--    the LAN side.
--

cabhCdpSetToFactory OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Reading this object always returns false(2). When the
            cabhCdpSetToFactory object is set to true(1), the PS must
            take the following actions:
            1. Clear all cabhCdpLanAddrEntries in the CDP LAN Address
               Table.
            2. The CDS must offer the factory default DHCP options
               at the next lease renewal time.
            3. Reset the following objects to their factory default
               values:

               cabhCdpLanTransThreshold,
               cabhCdpLanTransAction,
               cabhCdpWanDataIpAddrCount,
               cabhCdpTimeOffsetSelection,
               cabhCdpSnmpSetTimeOffset,
               cabhCdpDaylightSavingTimeEnable,
               cabhCdpLanPoolStartType,
               cabhCdpLanPoolStart,
               cabhCdpLanPoolEndType,
               cabhCdpLanPoolEnd,
               cabhCdpServerNetworkNumberType,
               cabhCdpServerNetworkNumber,
               cabhCdpServerSubnetMaskType,
               cabhCdpServerSubnetMask,
               cabhCdpServerTimeOffset,
               cabhCdpServerRouterType,
               cabhCdpServerRouter,
               cabhCdpServerDnsAddressType,
               cabhCdpServerDnsAddress,
               cabhCdpServerSyslogAddressType,
               cabhCdpServerSyslogAddress,
               cabhCdpServerDomainName,
               cabhCdpServerTTL,
               cabhCdpServerInterfaceMTU,
               cabhCdpServerVendorSpecific,
               cabhCdpServerLeaseTime,
               cabhCdpServerDhcpAddressType,
               cabhCdpServerDhcpAddress,
               cabhCdpServerCommitStatus"
::= { cabhCdpBase 1 }

cabhCdpLanTransCurCount OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The current number of active leases in the
            cabhCdpLanAddrTable (the number of row entries in the
            table that have a cabhCdpLanAddrMethod value of
            reservationActive(2) or dynamicActive (4)).  This count
            does not include expired leases or reservations not
            associated with a current lease."
    ::= { cabhCdpBase 2 }

cabhCdpLanTransThreshold OBJECT-TYPE
    SYNTAX      INTEGER (0..65533)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The threshold number of LAN-Trans IP addresses allocated
            or assigned above which the PS generates an alarm
            condition. Whenever an attempt is made to allocate a
            LAN-Trans IP address when cabhCdpLanTransCurCount is
            greater than or equal to cabhCdpLanTransThreshold, an
            event is generated. A value of 0 indicates that the CDP
            sets the threshold at the highest number of addresses in
            the LAN address pool."
    DEFVAL { 0 }
    ::= { cabhCdpBase 3 }

cabhCdpLanTransAction OBJECT-TYPE
    SYNTAX      INTEGER {
                    normal(1),
                    noAssignment(2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The action taken when the CDS assigns a LAN-Trans
            address and the number of LAN-Trans addresses assigned
            (cabhCdpLanTransCurCount) is greater than the threshold
            (cabhCdpLanTransThreshold) The actions are as follows:
            normal - assign a LAN-Trans IP address as would
            normally occur if the threshold was not exceeded.
            noAssignment - do not assign a LAN-Trans IP address."
    DEFVAL { normal }
    ::= { cabhCdpBase 4 }

cabhCdpWanDataIpAddrCount OBJECT-TYPE
    SYNTAX      INTEGER ( 0..63 )
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "This is the number of WAN-Data IP addresses the
            PS's CDC must attempt to acquire via DHCP. When
            this MIB object is incremented the CDC MUST
            immediately attempt to acquire additional WAN-Data
            IP addresses. When this MIB object is decremented the
            CDC MUST not renew the leases for the appropriate
            number of WAN-Data IP addresses."
    DEFVAL { 0 }
    ::= { cabhCdpBase 5 }

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

cabhCdpTimeOffsetSelection OBJECT-TYPE
    SYNTAX      INTEGER {
                useDhcpOption2 (1),
                useSnmpSetOffset(2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "This object selects the source to be used by the PS in 
            determining the time offset to the time of day acquired
            from the time server. It is intended to be used in cases
            where the time zone information provisioned by the ToD
            server or DHCP Server (in DHCP Option 2) is different from
            the time zone where the provisioned device is physically
            located.

            Setting this object to useDhcpOption2(1) configures the PS
            to use the value of DHCP Option 2 from the DHCP ACK message
            for time of day offset. Setting this object to
            useSnmpSetOffset(2) configures the PS to use the value of
            cabhCdpServerSnmpSetTimeOffset for time of day offset, and
            to ignore DHCP Option 2. When the value of this object is
            changed the PS MUST immediately begin using the time
            offset specified by the value of this object, regardless
            of which time offset the PS was using before the update
            occurred."
    DEFVAL { useDhcpOption2 }
 ::= { cabhCdpBase 7 }

cabhCdpSnmpSetTimeOffset OBJECT-TYPE
    SYNTAX      Integer32 (-43200..46800)  --  -12 to +13 hours (seconds)
    UNITS       "seconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "This object is intended to be used in cases where the
            service provider's provisioning system serves devices in
            multiple time zones, or for other times when the service
            provider wants UTC time offset to be provisioned in a
            device other than from the ToD server or from the DHCP
            Server (in DHCP Option 2).

            This object allows a manager to set a value for UTC time
            offset. If DHCP Option 2 is not present in the DHCP ACK
            message, or if the value of DHCP Option 2 is null, and time
            offset information is not provided in the response received
            from the time of day server, the PS MUST add the value of 
            cabhCdpServerTimeOffset to the UTC time acquired from the
            time of day server to create the current time of day.

            If the value of cabhCdpServerTimeOffsetSelection is 
            useSnmpSetOffset(2), the PS adds the value of 
            cabhCdpServerSnmpSetTimeOffset to the UTC time acquired
            from the time of day server to create the current time
            of day.

            If the value of cabhCdpServerTimeOffsetSelection is
            useDhcpOption2(1) the PS ignores
            cabhCdpServerSnmpSetTimeOffset."
    DEFVAL { 0 }
    ::= { cabhCdpBase 8 }

cabhCdpDaylightSavingTimeEnable OBJECT-TYPE
    SYNTAX      INTEGER{
                enabled(1),
                disabled(2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "This object allows a manager to configure the PS to adjust
            the current time of day based on Daylight Saving Time. If
            the value of this object is enabled(1), the PS adds 3600
            seconds and the time offset specified by 
            cabhCdpServerTimeOffsetSelection to the UTC time acquired
            from the time of day server to create the current time of
            day during Daylight Saving Time, and adds only the time
            offset specified by cabhCdpServerTimeOffsetSelection to the
            UTC time acquired from the time of day server during
            standard time. The PS is responsible for knowing the date
            and time of each transition between Daylight Saving Time
            and standard time.

            If the value of this object is disabled(2), the PS adds
            only the time offset specified by
            cabhCdpServerTimeOffsetSelection to the UTC time acquired
            from the time of day server."
    DEFVAL { disabled }
    ::= { cabhCdpBase 9 }
--
--    CDP Address Management Tables
--
--====================================================================
--
--    cabhCdpLanAddrTable (CDP LAN Address Table)
--
--    The cabhCdpLanAddrTable contains the DHCP parameters
--    for each IP address served to the LAN-Trans realm.
--
--    This table contains a list of entries for the LAN side CDP 
--    parameters. These parameters can be set 
--    either by the CDP or by the cable operator through the CMP.
--
--=========================================================================

cabhCdpLanAddrTable OBJECT-TYPE 
       SYNTAX      SEQUENCE OF CabhCdpLanAddrEntry 
       MAX-ACCESS  not-accessible 
       STATUS      current 
       DESCRIPTION 
               "This table is a list of LAN-Trans realm parameters.
               This table has one row entry for each allocated
               LAN-Trans IP address.  Each row must have at least a
               valid cabhCdpLanAddrMethod, a cabhCdpLanAddrIpType, a
               unique cabhCdpLanAddrIp, and a unique
               cabhCdpLanAddrClientId value.

               Static/Manual address assignment: To create a new DHCP
               address reservation, the NMS creates a row with: an
               index comprised of a new cabhCdpLanAddrIp and its
               cabhCdpLanAddrIpType, a new unique
               cabhCdpLanAddrClientID, (an empty LeaseCreateTime and
               empty LeaseExpireTime,) and a
               cabhCdpLanDataAddrRowStatus of createAndGo(4).  If the
               syntax and values of the new row - indicating a
               reservation - are valid, the PS must set
               cabhCdpLanAddrMethod to reservationInactive(1) and
               cabhCdpLanDataAddrRowStatus to active(1).  When the PS
               grants a lease for a reserved IP, it must set the
               cabhCdpLanAddrMethod object for that row to
               reservationActive(2).  When a lease for a reserved IP
               expires, the PS must set the corresponding row's
               cabhCdpLanAddrMethod object to reservationInactive(1).
               For row entries that represent lease reservations - rows
               in which the cabhCdpLanAddrMethod object has a value of
               either reservationInactive(1) or reservationActive(2) -
               the cabhCdpLanAddrIpType, cabhCdpLanAddrIp,
               cabhCdpLanAddrClientID, cabhCdpLanAddrMethod, and
               cabhCdpLanAddrHostName object values must persist across
               PS reboots.

               Dynamic address assignment:  When the PS grants a lease
               for a non-reserved IP, it must set the
               cabhCdpLanAddrMethod object for that row to
               dynamicActive(4).  When a lease for a non-reserved IP
               expires, the PS must set the corresponding row's
               cabhCdpLanAddrMethod object to dynamicInactive(3).  The
               PS must create new row entries using cabhCdpLanAddrIp
               values that are unique to this table.  If all
               cabhCdpLanAddrIp values in the range defined by
               cabhCdpLanPoolStart and cabhCdpLanPoolEnd are in use in
               this table, the PS may overwrite the
               cabhCdpLanAddrClientId of a row that has a
               cabhCdpLanAddrMethod object with a value of
               dynamicInactive(3) with a new cabhCdpLanAddrClientId
               value and use that cabhCdpLanAddrIp as part of a new
               lease.  For row entries that represent active leases -
               rows in which the cabhCdpLanAddrMethod object has a
               value of dynamicActive(4) - the cabhCdpLanAddrIpType,
               cabhCdpLanAddrIp, cabhCdpLanAddrClientID,
               cabhCdpLanAddrMethod, and cabhCdpLanAddrHostName object
               values must persist across PS reboots."
    ::= { cabhCdpAddr 1 } 
    
cabhCdpLanAddrEntry OBJECT-TYPE 
    SYNTAX      CabhCdpLanAddrEntry 
    MAX-ACCESS  not-accessible 
    STATUS      current 
    DESCRIPTION 
            "List of general parameters pertaining to LAN-Trans IP
            address reservations and leases." 
    INDEX { cabhCdpLanAddrIpType, cabhCdpLanAddrIp } 
    ::= { cabhCdpLanAddrTable 1 } 
    
CabhCdpLanAddrEntry ::= SEQUENCE { 
    cabhCdpLanAddrIpType             InetAddressType,
    cabhCdpLanAddrIp                 InetAddress, 
    cabhCdpLanAddrClientID           PhysAddress, 
    cabhCdpLanAddrLeaseCreateTime    DateAndTime, 
    cabhCdpLanAddrLeaseExpireTime    DateAndTime, 
    cabhCdpLanAddrMethod             INTEGER, 
    cabhCdpLanAddrHostName           SnmpAdminString, 
    cabhCdpLanAddrRowStatus          RowStatus 
    } 
    
cabhCdpLanAddrIpType OBJECT-TYPE 
    SYNTAX      InetAddressType 
    MAX-ACCESS  not-accessible 
    STATUS      current 
    DESCRIPTION 
            "The type of IP address assigned to the LAN IP Device
            in the LAN-Trans Realm."
    ::= { cabhCdpLanAddrEntry 1 } 
    
cabhCdpLanAddrIp OBJECT-TYPE 
    SYNTAX      InetAddress 
    MAX-ACCESS  not-accessible 
    STATUS      current 
    DESCRIPTION  
            "The address assigned to the LAN IP Device. This parameter
            is entered by the CDP when the CDS grants a lease to a
            LAN IP Device in the LAN-Trans realm and creates a row
            in this table. Alternatively, this parameter can be
            entered by the NMS through the CMP, when the NMS creates
            a new DHCP address reservation.  Each cabhCdpLanAddrIp
            in the table must fall within the range of IPs defined
            inclusively by cabhCdpLanPoolStart and 
            cabhCdpLanPoolEnd.  The PS must return an 
            inconsistentValue error if the NMS attempts to
            create a row entry with a cabhCdpLanAddrIP value that falls
            outside of this range or is not unique from all existing
            cabhCdpLanAddrIP entries in this table. The address type of
            this object is specified by cabhCdpLanAddrIpType."
    ::= { cabhCdpLanAddrEntry 2 } 
    
cabhCdpLanAddrClientID OBJECT-TYPE 
    SYNTAX      PhysAddress 
    MAX-ACCESS  read-create 
    STATUS      current 
    DESCRIPTION 
            "The client's (i.e., LAN IP Device's) hardware address as
            indicated in the chaddr field of its DHCP REQUEST message.
            There is a one-to-one relationship between the hardware
            address and the LAN IP Device. This parameter is entered
            by the PS (CDP) when the CDS grants a lease to a LAN IP
            Device in the LAN-Trans realm and creates a row in this
            table. Alternatively this parameter can be created by the
            NMS through the CMP, when the NMS creates a new DHCP
            address reservation by accessing the 
            cabhCdpLanDataAddrRowStatus object with an index 
            comprised of a unique cabhCdpLanAddrIp and creating
            a row with a unique cabhCdpLanAddrClientID."
    ::= { cabhCdpLanAddrEntry 3 } 

cabhCdpLanAddrLeaseCreateTime OBJECT-TYPE 
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only 
    STATUS      current 
    DESCRIPTION 
            "This is the date and time when the LAN IP lease was
            created (if it has not yet been renewed) or last renewed.
            This MIB object contains a zero valued 11 byte string
            when a reservation is created for a LAN IP address
            and it maintains this value until the LAN IP Device
            acquires its lease and cabhCdpLanAddrMethod
            becomes reservationActive(2)."
    ::= { cabhCdpLanAddrEntry 4 }
    
cabhCdpLanAddrLeaseExpireTime OBJECT-TYPE 
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only 
    STATUS      current 
    DESCRIPTION 
            "This is the date and time when the LAN IP address lease
            expired or will expire. This MIB object contains a zero
            valued 11 byte string when a reservation is created for
            a LAN IP address and it maintains this value until the
            LAN IP Device acquires its lease and
            cabhCdpLanAddrMethod becomes reservationActive(2)."
    ::= { cabhCdpLanAddrEntry 5 }
    
cabhCdpLanAddrMethod OBJECT-TYPE 
    SYNTAX      INTEGER { 
                    mgmtReservationInactive(1),
                    mgmtReservationActive(2),
                    dynamicInactive(3),
                    dynamicActive(4),
                    psReservationInactive(5),
                    psReservationActive(6)  
                } 
    MAX-ACCESS  read-only 
    STATUS      current 
    DESCRIPTION 
            "The IP allocation method indicated by this row.

            The value of mgmtReservationInactive(1)
            indicates an externally provisioned IP address
            reservation that has not yet been leased or that
            has an expired lease. This indicates an IP address
            lease reservation created either by an operator or
            a user.
            
            The value of mgmtReservationActive(2)
            indicates an externally provisioned IP address
            reservation that has an active lease. This indicates
            an IP address lease reservation created either
            by an operator or a user.

            The value of dynamicInactive(3) indicates an
            IP address that was once dynamically assigned to a 
            LAN-Trans by the PS device but currently
            has an expired lease.
 
            The value of dynamicActive(4)indicates an IP 
            Address that was dynamically assigned to a
            LAN-Trans device by the PS and has a current
            active lease.
            
            The value of psReservationInactive(5)
            indicates an IP address reservation created by some
            internal process of the PS and has not yet been
            leased or has an expired lease.
            
            The value of psReservationActive(6)
            indicates an IP address reservation created by some
            internal process of the PS that has an active lease." 
    ::= { cabhCdpLanAddrEntry 6 } 
    
cabhCdpLanAddrHostName OBJECT-TYPE 
    SYNTAX      SnmpAdminString(SIZE(0..80)) 
    MAX-ACCESS  read-only 
    STATUS      current 
    DESCRIPTION 
            "This is the Host Name of the LAN IP address, based on DCHP
            option 12." 
    ::= { cabhCdpLanAddrEntry 7 } 
    
cabhCdpLanAddrRowStatus OBJECT-TYPE 
    SYNTAX      RowStatus 
    MAX-ACCESS  read-create 
    STATUS      current 
    DESCRIPTION 
            "The RowStatus interlock for creation and deletion of row
            entries. The PS must not allow the NMS to set RowStatus
            to notInService(2). The PS must assign a RowStatus of
            notInService(2) to any new row entry created with a
            non-unique, cabhCdpLanAddrClientID value. The PS must
            assign a RowStatus of notReady(3) to any new row entry
            created without a cabhCdpLanAddrClientID.  The PS will
            prevent modification of this table's columns and return an
            inconsistentValue error, if the NMS attempts to make such 
            modifications while the RowStatus is active(1)." 
    ::= { cabhCdpLanAddrEntry 8 } 

--========================================================================
--
--    cabhCdpWanDataAddrTable (CDP WAN-Data Address Table)
--
--    The cabhCdpWanDataAddrTable contains the configuration or DHCP 
--    parameters for each IP address mapping per WAN-Data IP Address.
--
--=========================================================================

cabhCdpWanDataAddrTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CabhCdpWanDataAddrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "This table contains WAN-Data address realm information."
    ::= { cabhCdpAddr 2 }

cabhCdpWanDataAddrEntry OBJECT-TYPE
    SYNTAX      CabhCdpWanDataAddrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "List of general parameter for CDP WAN-Data address realm."
    INDEX { cabhCdpWanDataAddrIndex }
    ::= { cabhCdpWanDataAddrTable 1 }

CabhCdpWanDataAddrEntry ::= SEQUENCE {
    cabhCdpWanDataAddrIndex        INTEGER,
    cabhCdpWanDataAddrClientId     OCTET STRING,
    cabhCdpWanDataAddrIpType       InetAddressType,
    cabhCdpWanDataAddrIp           InetAddress,
    cabhCdpWanDataAddrRenewalTime  Integer32,
    cabhCdpWanDataAddrRowStatus    RowStatus,
    cabhCdpWanDataAddrLeaseCreateTime	DateAndTime,
    cabhCdpWanDataAddrLeaseExpireTime	DateAndTime
    }

cabhCdpWanDataAddrIndex OBJECT-TYPE
    SYNTAX      INTEGER (1..65535)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Index into table."
    ::= { cabhCdpWanDataAddrEntry 1 }

cabhCdpWanDataAddrClientId OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (1..80))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "A unique WAN-Data ClientID used when attempting
            to acquire a WAN-Data IP Address via DHCP."
    ::= { cabhCdpWanDataAddrEntry 2 }

cabhCdpWanDataAddrIpType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The address type assigned on the WAN-Data side." 
    DEFVAL { ipv4 }
    ::= { cabhCdpWanDataAddrEntry 3 }

cabhCdpWanDataAddrIp OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The address assigned on the WAN-Data side."
    ::= { cabhCdpWanDataAddrEntry 4 }
    
cabhCdpWanDataAddrRenewalTime OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      deprecated
    DESCRIPTION
            "This is the time remaining before the lease expires.
            This is based on DHCP Option 51."
    ::= { cabhCdpWanDataAddrEntry 5 }

cabhCdpWanDataAddrRowStatus OBJECT-TYPE 
    SYNTAX      RowStatus 
    MAX-ACCESS  read-create 
    STATUS      current 
    DESCRIPTION 
            "The RowStatus interlock for creation and deletion of row
            entries.  Any writable object in a row can be modified at
            any time while the row is active(1).  The PS must assign a
            RowStatus of notInService(2) to any new row entry created
            with a cabhCdpWanDataAddrClientId that is not unique within
            this table." 
    ::= { cabhCdpWanDataAddrEntry 6 }

cabhCdpWanDataAddrLeaseCreateTime OBJECT-TYPE 
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only 
    STATUS      current 
    DESCRIPTION 
            "This is the date and time when the WAN-Data address lease
            was created (if it has not yet been renewed) or last
            renewed."
    ::= { cabhCdpWanDataAddrEntry 7 }

cabhCdpWanDataAddrLeaseExpireTime OBJECT-TYPE 
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only 
    STATUS      current 
    DESCRIPTION 
            "This is the date and time when the WAN-Data address
             lease expired or will expire."
    ::= { cabhCdpWanDataAddrEntry 8 }

--===================================================================
--
-- cabhCdpWanDnsServerTable (CDP WAN DNS Server Table)
--
-- The cabhCdpWanDnsServerTable is a table of 3 cable network
-- and Internet DNS Servers.
--
--===================================================================
cabhCdpWanDnsServerTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CabhCdpWanDnsServerEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
            "This table contains the IP addresses of cable network and
            Internet DNS servers, in the order of preference in which
            the PS's CNP will query them, when it cannot resolve a DNS
            query using local information. Entries in this table are
            updated with the information contained in DHCP Option 6,
            received during both the WAN-Man and WAN-Data IP 
            acquisition processes."
    ::= { cabhCdpAddr 3 }

cabhCdpWanDnsServerEntry OBJECT-TYPE
    SYNTAX      CabhCdpWanDnsServerEntry
    MAX-ACCESS  not-accessible
    STATUS     current
    DESCRIPTION
            "List of cable network and Internet DNS servers."
    INDEX { cabhCdpWanDnsServerOrder }
    ::= { cabhCdpWanDnsServerTable 1 }

CabhCdpWanDnsServerEntry ::= SEQUENCE {
    cabhCdpWanDnsServerOrder  INTEGER,
    cabhCdpWanDnsServerIpType InetAddressType,
    cabhCdpWanDnsServerIp     InetAddress
    }

cabhCdpWanDnsServerOrder OBJECT-TYPE
    SYNTAX      INTEGER {
                    primary(1),
                    secondary(2),
                    tertiary(3)
                }
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The order of preference for cable network and Internet DNS
            servers, as listed in DHCP option 6 (Domain Server). Any
            time the CDC receives valid IP address information within
            DHCP Option 6, as part of lease acquisition or renewal of
            a WAN-Man or WAN-Data IP, it must update this information
            into this table.  As entries in DHCP Option 6 are listed in
            order of preference, the highest priority entry in DHCP
            Option 6 must correspond to the row with a
            cabhCdpWanDnsServerOrder with a value of 1. If DHCP
            Option 6 contains 1 valid IP address, the PS MUST update
            the row with a cabhCdpWanDnsServerOrder value of 1 and
            MUST NOT modify rows with 
            cabhCdpWanDnsServerOrder values of 2 & 3
            (if they exist). If DHCP Option 6 contains 2 valid
            IP addresses, the PS MUST update the rows with
            cabhCdpWanDnsServerOrder values of 1 and 2
            and MUST NOT modify the row with cabhCdpWanDnsServerOrder
            value of 3 (if it exists). If DHCP Option 6 contains 3
            valid IP addresses, the PS MUST update rows with 
            cabhCdpWanDnsServerOrder values of 1, 2, and 3.  
            Any DNS server information included in DHCP Option 6
            beyond primary, secondary and tertiary will not be
            represented in this table."
    ::= { cabhCdpWanDnsServerEntry 1 }

cabhCdpWanDnsServerIpType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
            "This parameter indicates the IP address type of a
            WAN DNS server."
    DEFVAL { ipv4 }
    ::= { cabhCdpWanDnsServerEntry 2 }

cabhCdpWanDnsServerIp OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This parameter indicates the IP address of a WAN DNS
            server. The type of this address is specified by 
            cabhCdpWanDnsServerIpType."
    ::= { cabhCdpWanDnsServerEntry 3 }

--
--    DHCP Server Side (CDS) Option Values for the LAN-Trans realm
--

cabhCdpLanPoolStartType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The Address type of the start of range LAN Trans IP
            Addresses."
    DEFVAL { ipv4 }    
    ::= { cabhCdpServer 1 }

cabhCdpLanPoolStart OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The start of range LAN Trans IP Addresses. The type of
            this address is specified by cabhCdpLanPoolStartType."
    DEFVAL { 'c0a8000a'h }    -- 192.168.0.10 
    -- 192.168.0.0 is the network number
    -- 192.168.0.255 is broadcast 
    -- address and 192.168.0.1
    -- is reserved for the router
    ::= { cabhCdpServer 2 }

cabhCdpLanPoolEndType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The Address type of the end of range LAN Trans IP
            Addresses."
    DEFVAL { ipv4 }    
    ::= { cabhCdpServer 3 }

cabhCdpLanPoolEnd OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The end of range for LAN-Trans IP Addresses. The type of
            this address is specified by cabhCdpLanPoolEndType."
    DEFVAL { 'c0a800fe'h }    -- 192.168.0.254
    ::= { cabhCdpServer 4 }

cabhCdpServerNetworkNumberType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The IP address type of the LAN-Trans network number."
    DEFVAL { ipv4 }
    ::= { cabhCdpServer 5 }

cabhCdpServerNetworkNumber OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The LAN-Trans network number. The type of this address is
            specified by cabhCdpServerNetworkNumberType."
    DEFVAL { 'c0a80000'h } --192.168.0.0
    ::= { cabhCdpServer 6 }

cabhCdpServerSubnetMaskType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Type of LAN-Trans Subnet Mask."
    DEFVAL { ipv4 }
    ::= { cabhCdpServer 7 }

cabhCdpServerSubnetMask OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The PS MUST provide the value of this MIB
            object in the Option 1 (Subnet Mask) of
            DHCP OFFER and ACK messages sent to a LAN IP Device."
    DEFVAL { 'ffffff00'h }    -- 255.255.255.0
    ::= { cabhCdpServer 8 }

cabhCdpServerTimeOffset OBJECT-TYPE
    SYNTAX      Integer32 (-86400..86400) -- 0 to 24 hours (in seconds)
    UNITS       "seconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The PS MUST provide the value of this MIB object in
            the Option 2 (Time Offset from Coordinated
            Universal Time-UTC) in the DHCP OFFER and ACK
            messages sent to the LAN IP Device."
    DEFVAL { 0 }    -- UTC
    ::= { cabhCdpServer 9 }

cabhCdpServerRouterType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Type of Address, Router for the LAN-Trans 
            address realm."
    DEFVAL { ipv4 } 
    ::= { cabhCdpServer 10 }

cabhCdpServerRouter OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The type of this address is specified by
            cabhCdpServerRouterType. The PS MUST
            provide the value of this MIB object in the
            Option 3 (Router IP address) of the DHCP
            OFFER and ACK messages sent to the LAN IP Device."
    DEFVAL { 'c0a80001'h }    -- 192.168.0.1
    ::= { cabhCdpServer 11 }

cabhCdpServerDnsAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The Type of IP Addresses of the LAN-Trans address realm
            DNS servers."  
    DEFVAL { ipv4 } 
    ::= { cabhCdpServer 12 }

cabhCdpServerDnsAddress OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The default value of this MIB object is the
            same as the value of the cabhCdpServerRouter
            object. The NMS may set the value of this
            object to a value different than the value
            of cabhCdpServerRouter (e.g. DNS server in the
            cable data network) so that a LAN IP Device can direct its
            DNS queries to a server other than the PS DNS
            server. The type of this address is specified
            by cabhCdpServerDnsAddressType. The PS MUST
            provide the value of this MIB object in the Option 6
            (Domain Name Server) of DHCP OFFER and ACK
            messages sent to a LAN IP Device."
    ::= { cabhCdpServer 13 }

cabhCdpServerSyslogAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The Type of IP Address of the LAN-Trans SYSLOG servers."
    DEFVAL { ipv4 }  
    ::= { cabhCdpServer 14 }

cabhCdpServerSyslogAddress OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "If the value of this object is nonzero the PS will
            include the value of this object in DHCP Option 7
            (Log Servers) in DHCP OFFER and DHCP ACK messages
            sent to the LAN IP Device."
    DEFVAL { '00000000'h }    -- 0.0.0.0
    ::= { cabhCdpServer 15 }

cabhCdpServerDomainName OBJECT-TYPE
    SYNTAX      SnmpAdminString(SIZE(0..128))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The PS MUST provide the value of this MIB object
            in the Option 15 (Domain Name Option) of the DHCP
            OFFER and ACK messages sent to the LAN IP Device."
    DEFVAL { "" }
    ::= { cabhCdpServer 16 }

cabhCdpServerTTL OBJECT-TYPE
    SYNTAX      INTEGER (1..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The PS MUST provide the value of this MIB
             object in the Option 23 (Default IP TTL) of
             DHCP OFFER and ACK messages sent to a LAN IP Device."
    DEFVAL { 64 }
    ::= { cabhCdpServer 17 }

cabhCdpServerInterfaceMTU OBJECT-TYPE
    SYNTAX      Integer32 (0 | 68..4096)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The PS MUST provide the value of this MIB object in the
            Option 26 (Interface MTU Option) of the DHCP OFFER
            and ACK messages sent to the LAN IP Device. If the value
            of this object is 0, the PS must not include this option
            in its DHCP OFFER or DHCP ACK messages to LAN IP Devices."
    DEFVAL { 0 }
    ::= { cabhCdpServer 18 }

cabhCdpServerVendorSpecific OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..255))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The PS MUST provide the value of this MIB object in the
            Option 43 (Vendor Specific Information) of the DHCP OFFER 
            and ACK messages sent to the LAN IP Device. If the value of
            this object is ' 'h  then the PS MUST NOT include this
            option in its DHCP OFFER or DHCP ACK messages to LAN IP
            Devices."
    DEFVAL { ''h } 
    ::= { cabhCdpServer 19 }

cabhCdpServerLeaseTime OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "seconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The PS MUST provide the value of this MIB object in the
            Option 51 (IP Address lease time) of the DHCP OFFER and
            ACK messages sent to the LAN IP Device."
    DEFVAL { 3600 }
    ::= { cabhCdpServer 20 }

cabhCdpServerDhcpAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Type of LAN DHCP server IP address. The
            IP address of LAN DHCP server is provided by
            the PS in option 54 of DHCP OFFER or ACK."
    DEFVAL { ipv4 }
    ::= { cabhCdpServer 21 }

cabhCdpServerDhcpAddress OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The value of this MIB object is always the
            same as the value of the cabhCdpServerRouter
            object. The type of this address is specified
            by cabhCdpServerDhcpAddressType.
            The PS MUST provide the value of this MIB
            object in the Option 54 (DHCP server identifier)
            field of DHCP OFFER and ACK messages
            sent to a LAN IP device."
    ::= { cabhCdpServer 22 }


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

            If changes are made to the cabhCdpServer mib objects which 
            are not yet successfully committed to the CDS, the 
            cabhCdpServerControl object can be used to rollback all 
            changes to the last valid CDS configuration and discard 
            all intermediate changes.

            restoreConfig - Setting cabhCdpServerControl to this value 
            will cause any changes to the cabhCdpServer objects not yet
            committed be reset to the values from the current running 
            configuration of the CDS.

            commitConfig - Setting cabhCdpServerControl to this value 
            will cause the CDS to validate and apply the valid 
            cabhCdpServer mib settings to its running configuration. 
            The cabhCdpServerCommitStatus object will detail the 
            status of this operation."
    DEFVAL { restoreConfig }
    ::= { cabhCdpServer 23 }

cabhCdpServerCommitStatus OBJECT-TYPE
    SYNTAX      INTEGER {
                    commitSucceeded(1),
                    commitNeeded(2),
                    commitFailed(3)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Indicates the status of committing the current 
            cabhCdpServer mib object values to the running
            configuration of the CDS (DHCP Server).
 
            commitSucceeded - indicates the current cabhCdpServer 
            mib object values are valid and have been successfully 
            committed to the running configuration of the CDS.

            commitNeeded - indicates that the value of one or more
            objects in cabhCdpServer mib group have been changed
            but not yet committed to the running configuration
            of the CDS. 

            commitFailed - indicates the PS was unable to commit the 
            cabhCdpServer mib object values to the running
            configuration of the CDS due to conflicts in those
            values."
    DEFVAL { commitSucceeded }
    ::= { cabhCdpServer 24 }

cabhCdpServerUseCableDataNwDnsAddr OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "If the value of this object is false(2), the PS will 
            provide the DNS Server IP address as specified in 
            cabhCdpServerDnsAddress MIB object in the Option 6
            (Domain Name Server), of the DHCP OFFER and ACK messages
            sent to a LAN IP Device.

            When the object cabhCdpServerUseCableDataNwDnsAddr is set
            to true(1), the PS must take the following actions:
            The PS will provide in Option 6 (Domain Name Server), of
            the DHCP OFFER and ACK messages sent to a LAN IP Device, 
            the DNS server address(es) which is/are being used by the
            PS itself, i.e., the DNS server address(es) provided to the
            PS in DHCP Option 6 and made available through PS MIB
            object cabhCdpWanDnsServerIp.

            The LAN IP Device can then direct its DNS queries to a 
            server other than the PS DNS server. The PS MUST provide
            the value of this."
    DEFVAL { false }
    ::= { cabhCdpServer 25 }

--
-- notification group is for future extension.
-- 

cabhCdpNotification OBJECT IDENTIFIER ::= { cabhCdpMib 2 }
cabhCdpNotifications OBJECT IDENTIFIER ::= { cabhCdpNotification 0 }
cabhCdpConformance  OBJECT IDENTIFIER ::= { cabhCdpMib 3 }
cabhCdpCompliances  OBJECT IDENTIFIER ::= { cabhCdpConformance 1 }
cabhCdpGroups       OBJECT IDENTIFIER ::= { cabhCdpConformance 2 }

--
--    Notification Group
--


-- compliance statements

cabhCdpBasicCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
            "The compliance statement for devices that implement 
            the CableHome Portal Services functionality."
    MODULE   --cabhCdpMib


-- unconditionally mandatory groups

MANDATORY-GROUPS {
    cabhCdpGroup
    }

    ::= { cabhCdpCompliances 3 }

cabhCdpGroup OBJECT-GROUP 
    OBJECTS {
    cabhCdpSetToFactory, 
    cabhCdpLanTransCurCount, 
    cabhCdpLanTransThreshold, 
    cabhCdpLanTransAction, 
    cabhCdpWanDataIpAddrCount,
    cabhCdpLastSetToFactory,
    cabhCdpTimeOffsetSelection,
    cabhCdpSnmpSetTimeOffset,
    cabhCdpDaylightSavingTimeEnable,
    
    cabhCdpLanAddrClientID, 
    cabhCdpLanAddrLeaseCreateTime, 
    cabhCdpLanAddrLeaseExpireTime, 
    cabhCdpLanAddrMethod, 
    cabhCdpLanAddrHostName, 
    cabhCdpLanAddrRowStatus, 
    
    cabhCdpWanDataAddrClientId, 
    cabhCdpWanDataAddrIpType, 
    cabhCdpWanDataAddrIp, 
    -- cabhCdpWanDataAddrRenewalTime, 
    cabhCdpWanDataAddrRowStatus, 
    cabhCdpWanDataAddrLeaseCreateTime,
    cabhCdpWanDataAddrLeaseExpireTime,
    
    cabhCdpWanDnsServerIpType,
    cabhCdpWanDnsServerIp,
    
    cabhCdpLanPoolStartType, 
    cabhCdpLanPoolStart, 
    cabhCdpLanPoolEndType, 
    cabhCdpLanPoolEnd, 
    cabhCdpServerNetworkNumberType, 
    cabhCdpServerNetworkNumber, 
    cabhCdpServerSubnetMaskType, 
    cabhCdpServerSubnetMask, 
    cabhCdpServerTimeOffset, 
    cabhCdpServerRouterType, 
    cabhCdpServerRouter,
    cabhCdpServerDnsAddressType,
    cabhCdpServerDnsAddress,
    cabhCdpServerSyslogAddressType,
    cabhCdpServerSyslogAddress,
    cabhCdpServerDomainName,
    cabhCdpServerTTL,
    cabhCdpServerInterfaceMTU,
    cabhCdpServerVendorSpecific,
    cabhCdpServerLeaseTime,
    cabhCdpServerDhcpAddressType,
    cabhCdpServerDhcpAddress,
    cabhCdpServerControl,
    cabhCdpServerCommitStatus,
    cabhCdpServerUseCableDataNwDnsAddr
    }
    STATUS      current
    DESCRIPTION
            "Group of objects for CableHome CDP MIB."
    ::= { cabhCdpGroups 1 }

END

