Subject: EuroModem mib

From: [email-masked]
Date: Wed, 06 Oct 1999 15:26:27 +0000 (GMT)

Hi,

Please find attached the DVB EuroModem mib (SMIv2) as discussed in outline at 
the last IETF.  Hopefully we can discuss this mib at the November IETF for 
possible inclusion into the IPCDN WG.  We are now working on an SNMPv3 + USM 
version.

The mibs for the DVB interfaces and security will follow.

thanks

Andrew Valentine
Hughes Network Systems Europe Ltd

---

From: Guenter Roeck <[email-masked]>
Date: Wed, 6 Oct 1999 09:48:58 -0700 (PDT)

You can't have DEFVAL with scalar objects.
The compiler accepts this, I know,
but I got burned with it in IETF review
when writing the ISDN MIB. But maybe policy has
changed in the meantime.

What is dvbCdmStaticIpTable for ? I am under the 
impression that it duplicates ipAddrTable of MIB-II.

Some of the objects, specifically dvbCdmOperStatus
and dvbCdmModemtype, are actually interface related.
By specifying those objects as scalar objects,
you mandate that EuroModems MUST NOT have more than
one cable interface. 

The way dvbCdmIpFilterAction is defined, this MIB
strictly speaking mandates NAT implementation
(as there is no compliance statement saying that nat()
does not have to be implemented). Not sure if this is
intentional.

Guenter

> 
> --Boundary_[ID_8JOtySM29NqWTzTMzjMaYw]
> Content-type: TEXT/PLAIN
> 
> Hi,
> 
> --Boundary_[ID_8JOtySM29NqWTzTMzjMaYw]
> Content-type: TEXT/PLAIN; NAME=Euromodem.txt
> Content-disposition: ATTACHMENT; FILENAME=Euromodem.txt
> 
> DVB-CABLE-MODEM-MIB DEFINITIONS ::= BEGIN
> 
> 
> IMPORTS
>     MODULE-IDENTITY,
>     OBJECT-TYPE,
>     Counter32,
>     Integer32,
>     Unsigned32,
>     IpAddress,
>     experimental
>         FROM SNMPv2-SMI
>     RowStatus,
>     DateAndTime,
>     TruthValue,
>     TEXTUAL-CONVENTION
>         FROM SNMPv2-TC
>     SnmpAdminString
>         FROM SNMP-FRAMEWORK-MIB
>     OBJECT-GROUP,
>     MODULE-COMPLIANCE
>         FROM SNMPv2-CONF
>     InterfaceIndexOrZero,
>     InterfaceIndex,
>     ifIndex,
>         FROM IF-MIB;
> 
> 
> -- Before this MIB will parse it requires a valid SMI subtree
> -- For the purposes of parsing the MIB I have put the MIB under the
> -- 'experimental' subtree.  Strictly this is reserved for MIBs being
> -- developed by IETF working groups. xx should be replaced with a
> -- numeric value which will not clash with any MIBs local to your
> -- organsation and it should only be used for the purpose of testing.
> -- If this MIB becomes part of the IETF IPCN work then the issue of a
> -- valid subtree will be resolved, otherwise it is recommended that
> -- ECCA obtain an enterprise number from IANA under which this MIB
> -- can be placed.
> dvbDevice OBJECT IDENTIFIER ::= { experimental xx } -- See Above
> 
> dvbCdm MODULE-IDENTITY
>     LAST-UPDATED    "9910010000Z"
>     ORGANIZATION    "DVB/DAVIC Interoperability Consortium Technical
>                      Working Group"
>     CONTACT-INFO
>            "        Andrew Valentine
>             Postal: Hughes Network Systems Ltd
>                     Saxon Street,
>                     Linford Wood,
>                     Milton Keynes.
>                     MK14 6LD
>                     ENGLAND
> 
>                Tel: +44 1908 221122
>                Fax: +44 1908 221127
>             E-mail: [email-masked]"
> 
>     DESCRIPTION     "The MIB modules for cable data modems that
>                      conform to the EuroModem specification.  This
>                      MIB assumes the modem implements MIB-II RFC 1213"
> 
>     REVISION        "9910010000Z"
>     DESCRIPTION     "The mib has been modified to incorporate the 
>                      comments made by the WGT during the 
>                      27/28 Sep 1999 meeting.  The most significant
>                      changes were to the DHCP group and to the 
>                      management of traps.  Also some groups are now
>                      optional."
> 
>     REVISION        "9907071500Z"
>     DESCRIPTION     "The initial version of the MIB"
> ::= {dvbDevice 1}
> 
> -- Sub divided dvbCdm into MIB objects and conformance
> 
> dvbCdmMIBobjects OBJECT IDENTIFIER ::= {dvbCdm 1}
> dvbCdmMIBConform OBJECT IDENTIFIER ::= {dvbCdm 2}
> 
> -- Define groups under dvbCdmMIBobjects
> 
> dvbCdmSystem     OBJECT IDENTIFIER ::= {dvbCdmMIBobjects 1}
> dvbCdmSoftware   OBJECT IDENTIFIER ::= {dvbCdmMIBobjects 2}
> dvbCdmDhcp       OBJECT IDENTIFIER ::= {dvbCdmMIBobjects 3}
> dvbCdmEvent      OBJECT IDENTIFIER ::= {dvbCdmMIBobjects 4}
> dvbCdmIpFilter   OBJECT IDENTIFIER ::= {dvbCdmMIBobjects 5}
> dvbCdmNat        OBJECT IDENTIFIER ::= {dvbCdmMIBobjects 6}
> dvbCdmNapt	     OBJECT IDENTIFIER ::= {dvbCdmMIBobjects 7}
> dvdCdmEthFilter  OBJECT IDENTIFIER ::= {dvbCdmMIBobjects 8}
> 
> --Define identifiers under dvbCdmMIBConform
> 
> dvbCdmCompliances  OBJECT IDENTIFIER ::= {dvbCdmMIBConform 1}
> dvbCdmGroups       OBJECT IDENTIFIER ::= {dvbCdmMIBConform 2}
> 
>  
> -- Definition of textual conventions
> 
> DvbEventPriority ::= TEXTUAL-CONVENTION
>     STATUS         current
>     DESCRIPTION
>            "This represents possible event priorities.  These are 
>             ordered from most (emergency) critical to least
>             (debug)critical."
>     SYNTAX       INTEGER {
>                      emergency(1),
>                      alert(2),
>                      critical(3),
>                      error(4),
>                      warning(5),
>                      notice(6),
>                      information(7),
>                      debug(8)
>                  }
> 
> -- Definition of MIB objects
> 
> -- ===============================================================
> -- =  Modem System Group                                         =
> -- ===============================================================
> 
> dvbCdmMibVersion OBJECT-TYPE
>     SYNTAX      SnmpAdminString
>     MAX-ACCESS  read-only
>     STATUS      current
>     DESCRIPTION
>         "The MIB version number."
>     DEFVAL      {"1.0"}
> ::= { dvbCdmSystem 1}
> 
> dvbCdmSerialNum OBJECT-TYPE
>     SYNTAX      SnmpAdminString
>     MAX-ACCESS  read-only
>     STATUS      current
>     DESCRIPTION
>         "This is the serial number of the equipment.  It should
>          identify the manufacturer, model and revsion of the 
>          equiment"
> ::= { dvbCdmSystem 2 }
> 
> dvbCdmResetNow OBJECT-TYPE
>     SYNTAX      INTEGER {
>                     resetNow(1),
>                     ready(2)
>                 }
>     MAX-ACCESS  read-write
>     STATUS      current
>     DESCRIPTION
>         "When this object is set to resetNow it will cause a
>          hardware reset followed by sign on.  When read this object
>          returns ready."
>     DEFVAL      { ready }
> ::= { dvbCdmSystem 3 }
> 
> dvbCdmResetCounts OBJECT-TYPE
>     SYNTAX      Counter32
>     MAX-ACCESS  read-only
>     STATUS      current
>     DESCRIPTION
>         "This counts the number of system resets since last power
>          on."
> ::= { dvbCdmSystem 4}
> 
> dvbCdmDateAndTime OBJECT-TYPE
>     SYNTAX      DateAndTime
>     MAX-ACCESS  read-write
>     STATUS      current
>     DESCRIPTION
>         "The date and time.  See RFC1903"
> ::= { dvbCdmSystem 5}
> 
> dvbCdmOperStatus OBJECT-TYPE
>     SYNTAX      INTEGER {
>                     scanningForCarrier(1),
>                     provisioning(2),
>                     invalidSTBNIU(3),
>                     timingRangingError(4),
>                     powerRangingError(5),
>                     running(6),
>                     stopped(7),
>                     none(8),
>                     waitingForDHCPoffer(9),
>                     waitingForDHCPack(10),
>                     other(11)
>                 }
>     MAX-ACCESS  read-only
>     STATUS      current
>     DESCRIPTION
>         "The operational status of the modem.  The statuses 1-8 are
>          from ETS 300 800.  The statuses 9 and 10 are for when the
>          modem is retieving its IP address using DHCP/BOOTP.  
>          other is used for any case that is not explicitly
> identified"    
> ::= { dvbCdmSystem 6 }
> 
> dvbCdmModemtype OBJECT-TYPE
>     SYNTAX      INTEGER {
>                     classA(1),
>                     classB(2),
>                     other(3)
>                 }
>     MAX-ACCESS  read-only
>     STATUS      current
>     DESCRIPTION
>         "The EuroModem class to which the modem belongs as specified 
>          in ECCA EuroModem Specification version 1.0"
> ::= { dvbCdmSystem 7 }
> 
> -- Static IP address assignment table
> 
> dvbCdmStaticIpTable OBJECT-TYPE
>     SYNTAX      SEQUENCE OF DvbCdmStaticIpEntry
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "This table is used to assign static IP addresses to cable
>          modem interfaces.  It needs to be used with care! DHCP/BOOTP
>          assigned addresses overide entries in this table.  
>          The table is related to ifTable in the IF-MIB."
> ::= { dvbCdmSystem 8 }
> 
> dvbCdmStaticIpEntry OBJECT-TYPE
>     SYNTAX      DvbCdmStaticIpEntry
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "A row can only be created if there is a corresponding row in
>          ifTable.  The IP address to be assigned must be unique
>          within the modem.  The interface is identified by ifIndex.
>          For the HFC interface which is identified by 3 interfaces,
>          the dvbRccMacLayer I/F shall be used to identify it.
>          Rows are created/delete using dvbCdmStaticIpStatus."
>     INDEX { ifIndex, dvbCdmStaticIpIndex }
> ::= { dvbCdmStaticIpTable 1 }
> 
> DvbCdmStaticIpEntry ::= SEQUENCE {
>     dvbCdmStaticIpIndex   Unsigned32, 
>     dvbCdmStaticIpAddr    IpAddress,
>     dvbCdmStaticIpMask    IpAddress,
>     dvbCdmStaticIpStatus  RowStatus
> }
> 
> dvbCdmStaticIpIndex OBJECT-TYPE
>     SYNTAX      Unsigned32
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "The unique index for this row.  There are no ordering
>          requirements for this table and any valid index may be
>          specified."
> ::= { dvbCdmStaticIpEntry 1 }
> 
> dvbCdmStaticIpAddr OBJECT-TYPE
>     SYNTAX      IpAddress
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "The IP address assigned to the interface."
> ::= { dvbCdmStaticIpEntry 2 }
> 
> dvbCdmStaticIpMask OBJECT-TYPE
>     SYNTAX      IpAddress
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "The IP subnet mask for the interface."
> ::= { dvbCdmStaticIpEntry 3 }
> 
> dvbCdmStaticIpStatus OBJECT-TYPE
>     SYNTAX      RowStatus
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "This controls and reflects the status of the row.
>          Rows can be created by using both createAndGo and
>          createAndWait.  Rows can be modified/deleted ONLY if the 
>          SNMP set request destination IP address is NOT assigned by
>          the row being modified/deleted unless."
> ::= { dvbCdmStaticIpEntry 4 }
> 
> 
> -- End of static IP address assignment table
> 
> -- The following table provides one level of security for access
> -- to the device by network management stations.
> -- Note that access is also constrained by the
> -- community strings and any vendor-specific security.
> 
> -- NOTE: An empty table will ONLY allow network management access
> --         from the HFC network, any IP address is accepted.
> 
> dvbCdmNmAccessTable OBJECT-TYPE
>     SYNTAX      SEQUENCE OF DvbCdmNmAccessEntry
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "This table controls access to SNMP objects by network
>          management stations. If the table is empty, access
>          to SNMP objects is unrestricted.  This table exists only
>          on SNMPv1 or v2c agents and does not exist on SNMPv3
>          agents. See the conformance section for details.
>          Specifically, for v3 agents, the appropriate MIBs and
>          security models apply in lieu of this table.
>          An empty table will ONLY allow network management access
>          from the HFC network, any IP address is accepted.
>          Simultaneous write access to this MIB is not recommended"
> ::= { dvbCdmSystem 9 }
> 
> dvbCdmNmAccessEntry OBJECT-TYPE
>     SYNTAX      DvbCdmNmAccessEntry
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "An entry describing  access to SNMP objects by a
>          particular network management station. An entry in
>          this table is not readable unless the management station
>          has read-write permission (either implicit if the table
>          is empty, or explicit through an entry in this table.
>          Entries are ordered by dvbCdmNmAccessIndex.  The first
>          matching entry (e.g. matching IP address and community
>          string) is used to derive access."
>     INDEX { dvbCdmNmAccessIndex  }
> ::= {  dvbCdmNmAccessTable 1 }
> 
> 
> DvbCdmNmAccessEntry ::= SEQUENCE {
>     dvbCdmNmAccessIndex         Unsigned32,
>     dvbCdmNmAccessIp            IpAddress,
>     dvbCdmNmAccessIpMask        IpAddress,
>     dvbCdmNmAccessCommunity     OCTET STRING,
>     dvbCdmNmAccessControl       INTEGER,
>     dvbCdmNmAccessInterfaces    OCTET STRING,
>     dvbCdmNmAccessStatus        RowStatus
> }
> 
> dvbCdmNmAccessIndex OBJECT-TYPE
>     SYNTAX      Unsigned32
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "Index used to order the application of access
>          entries."
> ::= { dvbCdmNmAccessEntry 1 }
> 
> dvbCdmNmAccessIp OBJECT-TYPE
>     SYNTAX      IpAddress
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "The IP address (or subnet) of the network management
>          station. The address 255.255.255.255 is defined to mean
>          any NMS. If traps are enabled for this entry, then the
>          value must be the address of a specific device."
>     DEFVAL { 'FFFFFFFF'H }
> ::= { dvbCdmNmAccessEntry 2 }
> 
> dvbCdmNmAccessIpMask OBJECT-TYPE
>     SYNTAX      IpAddress
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "The IP subnet mask of the network management stations.
>          If traps are enabled for this entry, then the value must
>          be 255.255.255.255."
>     DEFVAL { 'FFFFFFFF'H }
> ::= { dvbCdmNmAccessEntry 3 }
> 
> dvbCdmNmAccessCommunity OBJECT-TYPE
>     SYNTAX      OCTET STRING
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "The community string to be matched for access by this
>          entry. If set to a zero length string then any community
>          string will match.  When read, this object SHOULD return a
>          zero length string."
>     DEFVAL { "public" }
> ::= { dvbCdmNmAccessEntry 4 }
> 
> dvbCdmNmAccessControl OBJECT-TYPE
>     SYNTAX      INTEGER {
>                     none(1),
>                     read(2),
>                     readWrite(3),
>                     roWithTraps(4),
>                     rwWithTraps(5),
>                     trapsOnly(6)
>                 }
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "Specifies the type of access allowed to this NMS. Setting
>          this object to none(1) causes the table entry to be
>          destroyed. Read(2) allows access by 'get' and 'get-next'
>          PDUs. ReadWrite(3) allows access by 'set' as well.
>          RoWithtraps(4), rwWithTraps(5), and trapsOnly(6)
>          control distribution of Trap PDUs transmitted by this
>          device."
>     DEFVAL { read }
> ::= { dvbCdmNmAccessEntry 5 }
> 
> -- The syntax of the following object was copied from RFC1493,
> -- dot1dStaticAllowedToGoTo.
> 
> dvbCdmNmAccessInterfaces OBJECT-TYPE
>         SYNTAX      OCTET STRING
>         MAX-ACCESS  read-create
>         STATUS      current
>         DESCRIPTION
>             "Specifies the set of interfaces from which requests from
>              this NMS will be accepted.  Each octet within the value
>              of this object specifies a set of eight interfaces, with
>              the first octet specifying ports 1 through 8, the second
>              octet specifying interfaces 9 through 16, etc.  Within 
>              each octet, the most significant bit represents the 
>              lowest numbered interface, and the least significant bit
>              represents the highest numbered interface.  Thus, each
>              interface is represented by a single bit within
>              the value of this object. If that bit has a value of '1'
>              then that interface is included in the set.
> 
>              Note that entries in this table apply only to link-layer
>              interfaces (e.g., Ethernet and DVB MAC). Upstream and
>              downstream channel interfaces must not be specified."
> --         DEFVAL is the bitmask corresponding to the HFC interfaces
> ::= { dvbCdmNmAccessEntry 6 }
> 
> dvbCdmNmAccessStatus OBJECT-TYPE
>     SYNTAX      RowStatus
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "Controls and reflects the status of rows in this
>          table. Rows in this table may be created by either the
>          create-and-go or create-and-wait paradigms.  There is no
>          restriction on changing values in a row of this table while
>          the row is active.  Rows can be modified/deleted ONLY if the
>          SNMP set request source IP address will not be denied access
>          after the set request is actioned."
> ::= { dvbCdmNmAccessEntry 7 }
> 
> -- End of network management access table
> 
> dvbCdmConfigSet OBJECT-TYPE
>     SYNTAX      INTEGER {
>                     storeConfig(1),
>                     readConfig(2),
>                     setFactory(3),
>                     local(4),
>                     localUnsaved(5),
>                     localSaved(6),
>                     factoryDefault(7)
>                 }
>     MAX-ACCESS  read-write
>     STATUS      current
>     DESCRIPTION
>         "This object is used to manage the configuration of the
>          modem.  The following can be used to set the object.
> 
>          storeConfig - stores the current configuration to non
>                        volatile storage.  This action changes 
>                        configuration status to localSaved
>          readConfig  - retrieves the configuration held in non
>                        volatile storage.  This action changes 
>                        configuration status to local
>          setFactory  - sets the current configuration to factory
>                        default.  This excludes static assigned IP 
>                        addresses.  This action changes configuration
>                        status to factoryDefault
>          
>          When the object is read it reports the configuration being
>          used. 
>    
>          local          - the configuration is unchanged since being
>                           retrieved from non volatile storage. When 
>                           changed it becomes localUnsaved
>          localUnsaved   - the configuration has changed and requires
>                           storing.  When stored it becomes localSaved
>          localSaved     - the current configuration has been saved
>                           since being retrieved from non volatile 
>                           storage
>          factoryDefault - the current configuration is the factory
>                           default and requires saving.  Once saved it
>                           becomes localSaved. If modified it becomes
>                           localUnsaved"
> ::= { dvbCdmSystem 10 }
> 
> dvbCdmImplSet OBJECT-TYPE
>     SYNTAX      BITS {
>                     dhcp(0),
>                     ipFilters(1),
>                     ethFilters(2),
>                     addrTransNat(3),
>                     addrTransNapt(4)
>                 }
>     MAX-ACCESS  read-only
>     STATUS      current
>     DESCRIPTION
>         "This object when read identifies which optional groups have
>          been implemented.  Implemented groups have their bit set.
>          The bits represent the following:
>            dhcp          - dvbCdmDhcp group
>            ipFilters     - dvbCdmIpFilter group
>            ethFilters    - dvbCdmEthFileter group
>            addrTransNat  - dvbCdmNat group
>            addrTransNapt - dvbCdmNapt group"
> ::= { dvbCdmSystem 11 }
> 
> -- ===============================================================
> -- =  Software Group                                             =
> -- ===============================================================
> 
> -- Software version table
> 
> dvbCdmSwVerTable OBJECT-TYPE
>     SYNTAX      SEQUENCE OF DvbCdmSwVerEntry
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "This table is used to check the versions of software stored
>          in the modem.  It is also used to configure which/when 
>          versions of software is executed."
> ::= { dvbCdmSoftware 1 }
> 
> dvbCdmSwVerEntry OBJECT-TYPE
>     SYNTAX      DvbCdmSwVerEntry
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "There will be a row for every storage slot within the
>          modem.  A slot is a location where a full software image
>          can be stored.  Slot 0, is reserved for RAM."
>     INDEX { dvbCdmSwIndex }
> ::= { dvbCdmSwVerTable 1 }
> 
> DvbCdmSwVerEntry ::= SEQUENCE {
>     dvbCdmSwIndex     Unsigned32, 
>     dvbCdmSwSlot      Integer32,
>     dvbCdmSwVersion   SnmpAdminString,
>     dvbCdmSwState     INTEGER,
>     dvbCdmSwAction    INTEGER,
>     dvbCdmSwDateTime  DateAndTime
> }
> 
> dvbCdmSwIndex OBJECT-TYPE
>     SYNTAX      Unsigned32
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "The unique index for this row.  There are no ordering
>          requirements for this table and any valid index may be
>          specified."
> ::= { dvbCdmSwVerEntry 1 }
> 
> 
> dvbCdmSwSlot OBJECT-TYPE
>     SYNTAX      Integer32 (1..100)
>     MAX-ACCESS  read-only
>     STATUS      current
>     DESCRIPTION
>         "The slot number the software image is held in. Slot 0 is
>          reserved for RAM, it is used to identify an image directly
>          loaded into RAM e.g. for debug purposes. The slots should
>          be consecutively numbered starting from 1."
> ::= { dvbCdmSwVerEntry 2 }
> 
> dvbCdmSwVersion OBJECT-TYPE
>     SYNTAX      SnmpAdminString
>     MAX-ACCESS  read-only
>     STATUS      current
>     DESCRIPTION
>         "The version of the software located in the slot. This is
>          a manufacturer dependant string."
> ::= { dvbCdmSwVerEntry 3 }
> 
> dvbCdmSwState OBJECT-TYPE
>     SYNTAX      INTEGER {
>                     executing(1),
>                     failed(2),
>                     none(3)
>                 }
>     MAX-ACCESS  read-only
>     STATUS      current
>     DESCRIPTION
>         "The execution state of the software in the slot.  If the s/w
>          is currently executing the state will be executing(1).  If
>          the s/w tried to execute but failed it will be failed(2). 
>          If the s/w is not in use then it will be none(3)."
> ::= { dvbCdmSwVerEntry 4 }
> 
> dvbCdmSwAction OBJECT-TYPE
>     SYNTAX      INTEGER {
>                     boot(1),
>                     backup(2),
>                     none(3),
>                     emptySlot(4)
>                 }
>     MAX-ACCESS  read-write
>     STATUS      current
>     DESCRIPTION
>         "When the modem is initialising, this identifies which s/w
>          image should be used.  
>     
>              boot   - identifies that this s/w should be used at
>                       initialisation.  There must be one s/w version
>                       with this action and there must be only one.
>              backup - is used to identify a s/w version to use in the
>                       event that the boot version fails.  Multiple 
>                       s/w versions may have this action.  In this 
>                       case they will be tried in slot order.
>              none   - is used to identify a s/w version that is not 
>                       used at initialisation.
>              emptySlot - identifies the slot as containing no s/w.
>                          If this is applied to a slot that currently
>                          contains a s/w image the image will be 
>                          erased and not identified in the slot."
> ::= { dvbCdmSwVerEntry 5 }
> 
> dvbCdmSwDateTime OBJECT-TYPE
>     SYNTAX      DateAndTime
>     MAX-ACCESS  read-only
>     STATUS      current
>     DESCRIPTION
>         "The date and time the image was downloaded to the slot."
> ::= { dvbCdmSwVerEntry 6 }
> 
> -- End of software version table
> 
> 
> dvbCdmSwServer OBJECT-TYPE
>     SYNTAX      IpAddress
>     MAX-ACCESS  read-write
>     STATUS      current
>     DESCRIPTION
>         "This is the IP address of the TFTP server used for s/w
>          updates"
> ::= { dvbCdmSoftware 2 }
> 
> dvbCdmSwFilename OBJECT-TYPE
>     SYNTAX      OCTET STRING (SIZE(0..500))
>     MAX-ACCESS  read-write
>     STATUS      current
>     DESCRIPTION
>         "This is the filename including the path for the software
>          image that is to be downloaded."
> ::= { dvbCdmSoftware 3 }
> 
> dvbCdmSwDownloadSlot OBJECT-TYPE
>     SYNTAX      Integer32 (0..100)
>     MAX-ACCESS  read-write
>     STATUS      current
>     DESCRIPTION
>         "This identifies the image slot which the software is to be
>          downloaded into.  The operator can manually select the slot 
>          to download into. Slot 0 is a special case which is used to
>          identify a direct to RAM download, which should only be used
>          for diagnostic purposes.  By default this object will point 
>          to the first empty slot.  If there are no empty slots it 
>          will point to the first backup image."
> ::= { dvbCdmSoftware 4 }
> 
> dvbCdmSwAdminStatus OBJECT-TYPE
>     SYNTAX      INTEGER {
>                     initUpgrd(1),
>                     contactingTFTPServer(2),
>                     downloadInProgress(3),
>                     failureTFTP(4),
>                     badImage(5),
>                     badHardware(6),
>                     downloadSuccessful(7),
>                     idle(8)
>                 }
>     MAX-ACCESS  read-write
>     STATUS      current
>     DESCRIPTION
>         "This will administer the software upgrade and 
>          provide status of its progress.
> 
>          InitiateUpgrade      - This is the only admin selectable 
>                                 value and initiates the upgrade
>          ContactingTFTPServer - The TFTP server is being contacted
>          DownloadInProgress   - The image is currently being 
>                                 downloaded to the CDM
>          TFTPFailure          - There was a failure at the TFTP layer 
>                                 while downloading
>          BadImage             - The downloaded software image failed
>                                 an integrity check
>          BadHardware          - The downloaded software image is not
>                                 suitable for the H/W platform
>          DownloadSuccessful   - The downloaded software image has 
>                                 been successful
>          Idle                 - No attempt to download software has 
>                                 been made since the last reset"
> ::= { dvbCdmSoftware 5 }
> 
> -- ===============================================================
> -- =  DHCP Group                                                 =
> -- ===============================================================
> 
> dvbCdmDhcpTable OBJECT-TYPE
>     SYNTAX      SEQUENCE OF DvbCdmDhcpEntry
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "This table is used to manage the DHCP/BOOTP functionality
>          on a per interface basis.  All DHCP/BOOTP requests will
>          be via the HFC interface."
> ::= { dvbCdmDhcp 1 }
> 
> dvbCdmDhcpEntry OBJECT-TYPE
>     SYNTAX      DvbCdmDhcpEntry
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "There will be a row for every interface within the equipment
>          For the HFC interface which is identified by 3 interfaces,
>          the dvbRccMacLayer I/F shall be used to identify it.
>          For an interface it is possible to specify the DHCP/BOOTP 
>          server to be used to obtain an IP address for the interface
>          and any DHCP/BOOTP requests received on that interface that
>          require relaying."
>     INDEX { ifIndex }
> ::= { dvbCdmDhcpTable 1 }
> 
> DvbCdmDhcpEntry ::= SEQUENCE {
>     dvbCdmDhcpServer  IpAddress,
>     dvbCdmDhcpRelay   INTEGER,
>     dvdCdmDhcpReqIf   INTEGER
> }
> 
> dvbCdmDhcpServer OBJECT-TYPE
>     SYNTAX      IpAddress
>     MAX-ACCESS  read-write
>     STATUS      current
>     DESCRIPTION
>         "The IP address of the DHCP / BOOTP server to be used for
>          DHCP/BOOTP requests for the / received by the interface.
>          This server MUST be accessible through the HFC interface.
>          an IP address of 255.255.255.255 (broadcast) should be used
>          when the IP address in unspecified."
>     DEFVAL       { 'FFFFFFFF'H } -- IP address 255.255.255.255
> ::= { dvbCdmDhcpEntry 1 }
> 
> dvbCdmDhcpRelay OBJECT-TYPE
>     SYNTAX      INTEGER  {
>                     enabled(1),
>                     disabled(2)
>                 }
>     MAX-ACCESS  read-write
>     STATUS      current
>     DESCRIPTION
>         "This is used to select whether the NIU will relay
>          DHCP/BootP requests received from this interface to the HFC
>          interface.  This option is ignored for the HFC interface.
>              enabled  - relay DHCP/BootP as per RFCs 951,1542, 2131
>              disabled - discard DHCP/BootP"
>     DEFVAL      { disabled }
> ::= { dvbCdmDhcpEntry 2 }
> 
> dvdCdmDhcpReqIf OBJECT-TYPE
>     SYNTAX      INTEGER  {
>                     enabled(1),
>                     disabled(2)
>                 }
>     MAX-ACCESS  read-write
>     STATUS      current
>     DESCRIPTION
>         "This is used to select whether the NIU will request an IP
>          address by DHCP/BootP for this interface via the HFC
>          interface.  If this is disabled then there must be an entry
>          in the static IP table for this interface.
>              enabled  - request address by DHCP/BootP
>              disabled - Use static IP address assignment"
> --    DEFVAL { enabled } for the HFC interface
> ::= { dvbCdmDhcpEntry 3 }
> 
> 
> -- ===============================================================
> -- =  Event Group                                                =
> -- ===============================================================
> 
> 
> dvbCdmEventPolicy OBJECT-TYPE
>     SYNTAX      INTEGER {
>                     wrap(1),
>                     stop(2),
>                     oneHour(3),
>                     clearNow(4)
>                 }
>     MAX-ACCESS  read-write
>     STATUS      current
>     DESCRIPTION
>         "This defines event log policy.
>              wrap        When full the log wraps
>              stop        Stop event logging when full
>              oneHour     Clear the log at the start of every hour
>              clearNow    Clears the event log. Previous policy is
>                          restored."
>     DEFVAL      { wrap }
> ::= { dvbCdmEvent 1 }
> 
> -- Event control table
> 
> dvbCdmEventControlTable OBJECT-TYPE
>     SYNTAX      SEQUENCE OF DvbCdmEventControlEntry
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "This table defines the action to be taken for the defined
>          event priorities.  A row will exist for each priority: 
>          Emergency, Alert, Critical, Error, Warning, Notice, 
>          Information and Debug. A bit field is used to identify the
>          action to be taken for the event priority. Actions can be: 
>          place the event in the event table; issue an SNMP Trap"
> ::= { dvbCdmEvent 2 }
> 
> dvbCdmEventControlEntry OBJECT-TYPE
>     SYNTAX      DvbCdmEventControlEntry
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "There is a row per event and are recorded in chronological
>          order."  
>     INDEX { dvbCdmEventCtrlPriority }
> ::= { dvbCdmEventControlTable 1 }
> 
> DvbCdmEventControlEntry ::= SEQUENCE { 
>     dvbCdmEventControlPriority    DvbEventPriority,
>     dvbCdmEventControlAction      BITS
> }
> 
> dvbCdmEventControlPriority OBJECT-TYPE
>     SYNTAX      DvbEventPriority
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "The priority level that is controlled by this entry. 
>          These are ordered from most (emergency) to least (debug)
>          critical.  Each event with a CM or CMTS has a particular
>          priority level associated with it (as defined by the
>          vendor). During normal operation no event more critical than
>          notice(6) should be generated. Events between warning and
>          emergency should be generated at appropriate levels of
>          problems (e.g. emergency when the box is about to
>          crash)."
> ::= { dvbCdmEventControlEntry 1 }
> 
> dvbCdmEventControlAction OBJECT-TYPE
>     SYNTAX      BITS {
>                     local(0),
>                     trap(1)
>                 }
>     MAX-ACCESS  read-write
>     STATUS      current
>     DESCRIPTION
>         "This defines the actions to perform when an event happens
>          of this priority. local causes the event to be written to 
>          the local event log. trap causes a trap to be issued."
> ::= { dvbCdmEventControlEntry 2 }
> 
> -- Currently no traps are defined, these need to be added.
> 
> -- End of Event control table
> 
> dvbCdmEventTableMaxSize OBJECT-TYPE
>     SYNTAX      Integer32 (1..2147483647)
>     MAX-ACCESS  read-only
>     STATUS      current
>     DESCRIPTION
>         "The maximum number of entries the event log may hold"
> ::= { dvbCdmEvent 3 }
> 
> -- Event table
> 
> dvbCdmEventTable OBJECT-TYPE
>     SYNTAX      SEQUENCE OF DvbCdmEventEntry
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "This table defines the action to be taken for the defined
>          event priorities.  A row will exist for each priority: 
>          Emergency, Alert, Critical, Error, Warning, Notice, 
>          Information and Debug. A bit field is used to identify the
>          action to be taken for the event priority.
>          Actions can be: place the event in the event table; issue
>          an SNMP Trap"
> ::= { dvbCdmEvent 4 }
> 
> dvbCdmEventEntry OBJECT-TYPE
>     SYNTAX      DvbCdmEventEntry
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "Entries are created when an event occurrs. 
>          dvbCdmEventPolicy can be used to clear the table in addition
>          individual events can be deleted."  
>     INDEX { dvbCdmEventIndex }
> ::= { dvbCdmEventTable 1 }
> 
> DvbCdmEventEntry ::= SEQUENCE { 
>     dvbCdmEventIndex        Unsigned32,
>     dvbCdmEventType         DvbEventPriority,
>     dvbCdmEventDateTime     DateAndTime,
>     dvbCdmEventDescription  SnmpAdminString,
>     dvbCdmEventCode         SnmpAdminString,
>     dvbCdmEventStatus       RowStatus
> }
> 
> dvbCdmEventIndex OBJECT-TYPE
>     SYNTAX      Unsigned32
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION 
>         "This provides relative ordering of the objects in the event
>          log. This object will always increase except when
>              (a) the log is reset via dvbCdmEventPolicy,
>              (b) the device reboots and does not implement non-
>                  volatile storage for this log, or (c) it reaches the
>                  value 2^31. The next entry for all the above cases 
>                  is 1."
> ::= { dvbCdmEventEntry 1 }
> 
> dvbCdmEventType OBJECT-TYPE
>     SYNTAX      DvbEventPriority
>     MAX-ACCESS  read-only
>     STATUS      current
>     DESCRIPTION 
>         "This is the priority of the event."
> ::= { dvbCdmEventEntry 2 }
> 
> dvbCdmEventDateTime OBJECT-TYPE
>     SYNTAX      DateAndTime
>     MAX-ACCESS  read-only
>     STATUS      current
>     DESCRIPTION 
>         "This is the date and time the event occurred."
> ::= { dvbCdmEventEntry 3 }
> 
> dvbCdmEventDescription OBJECT-TYPE
>     SYNTAX      SnmpAdminString
>     MAX-ACCESS  read-only
>     STATUS      current
>     DESCRIPTION 
>         "This is a vendor specific textual description of the event."
> ::= { dvbCdmEventEntry 4 }
> 
> dvbCdmEventCode OBJECT-TYPE
>     SYNTAX      SnmpAdminString
>     MAX-ACCESS  read-only
>     STATUS      current
>     DESCRIPTION 
>         "This is the event code which uniquely identifies the event.
>          The event codes should be in the form tppxxxxx where:-
>          t  - identifies who allocated the event identifier; d =
>               dvb, v = vendor
>          pp - identifies the priority; em = emergency, al = alert,
>               cr = critical, er = error, wa = warning, no = notice,
>               in = information, de = debug
>          xxxxxxx - the event identifier which is 5 characters."
> ::= { dvbCdmEventEntry 5 }
> 
> dvbCdmEventStatus OBJECT-TYPE
>     SYNTAX      RowStatus
>     MAX-ACCESS  read-write
>     STATUS      current
>     DESCRIPTION 
>         "This is used to delete individual events.  The only valid
>          management operation is destroy, which causes the event to 
>          be deleted.  When read this object should always return 
>          active."
> ::= { dvbCdmEventEntry 6 }
> 
> -- End of Event table
> 
> These apply to traps sent to all
> 
> dvbCdmEvThrottleAdminStatus OBJECT-TYPE
>     SYNTAX      INTEGER {
>                     unconstrained(1),
>                     maintainBelowThreshold(2),
>                     stopAtThreshold(3),
>                     inhibited(4)
>                 }
>     MAX-ACCESS  read-write
>     STATUS      current
>     DESCRIPTION
>         "Controls the transmission of traps with respect to the
>          trap pacing threshold.
>          unconstrained(1) causes traps to be transmitted without
>          regard to the threshold settings.
>          maintainBelowThreshold(2) causes trap transmission to be
>          suppressed if the number of traps would otherwise exceed
>          the threshold.
>          stopAtThreshold(3) causes trap transmission to cease
>          at the threshold, and not resume until directed to do so.
>          See also RFC 1224.
>          inhibited(4) causes all trap transmission messages to be
>          suppressed. 
> 
>          Writing to this object resets the thresholding state.
> 
>          At initial startup, this object has a default value of
>          unconstrained(1).
> 
>          All the network managers with the trap capability 
>          (dvbCdmNmAccessEntry) will be treated as a single entity 
>          with regard to Trap management.  This is done to simplify
>          implementation within the NIU."
> ::= { dvbCdmEvent 5 }
> 
> dvbCdmEvThrottleInhibited OBJECT-TYPE
>     SYNTAX      TruthValue
>     MAX-ACCESS  read-only
>     STATUS      current
>     DESCRIPTION
>         "If true(1), trap is currently inhibited due to thresholds
>          and/or the current setting of dvbCdmEvThrottleAdminStatus.
>          In addition, this is set to true(1) if transmission is
>          inhibited due to no trap (dvbCdmNmAccessEntry)
>          destinations having been set."
> ::= { dvbCdmEvent 6 }
> 
> dvbCdmEvThrottleThreshold OBJECT-TYPE
>     SYNTAX      Unsigned32
>     MAX-ACCESS  read-write
>     STATUS      current
>     DESCRIPTION
>         "Number of trap events per DvbCdmEvThrottleInterval
>          to be transmitted before throttling.
> 
>          At initial startup, this object returns 0."
> ::= { dvbCdmEvent 7 }
> 
> dvbCdmEvThrottleInterval OBJECT-TYPE
>     SYNTAX      Integer32 (1..2147483647)
>     UNITS       "seconds"
>     MAX-ACCESS  read-write
>     STATUS      current
>     DESCRIPTION
>         "The interval over which the trap threshold applies.
>          At initial startup, this object has a value of 1."
> ::= { dvbCdmEvent 8 }
> 
> 
> 
> -- ===============================================================
> -- =  IP Filter Group                                            =
> -- ===============================================================
> 
> dvbCdmIpFilterEnable OBJECT-TYPE
>     SYNTAX      INTEGER {
>                     enabled(1),
>                     enabledAuto(2),
>                     countHits(3),
>                     disabled(4)
>                 }
>     MAX-ACCESS  read-write
>     STATUS      current
>     DESCRIPTION
>         "This controls the IP filter table.
>              enable     - Enables the IP filter table.
>              enableAuto - Enables the IP filter table with automatic
>                           IP anti-spoofing population by sniffing 
>                           DHCP and examining the static IP address
>                           assignment table.
>              countHits  - This option is used to debug the filter
>                           table.  It allows packets to be checked 
>                           against the filter table and increments
>                           dvbCdmIpFilterMatches for a matching
>                           filter, but ALL PACKETS ARE ALLOWED 
>                           THROUGH.                          
>              disabled   - Disables IP filtering, all packets are
>                           allowed through."
>     DEFVAL { enabledAuto }
> ::= { dvbCdmIpFilter 1 }
> 
> 
> dvbCdmIpFilterTable OBJECT-TYPE
>     SYNTAX      SEQUENCE OF DvbCdmIpFilterEntry
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "An ordered list of filters or classifiers to apply to
>          IP traffic. Filter application is ordered by the filter
>          index, rather than by a best match algorithm (Note that
>          this implies that the filter table may have gaps in the
>          index values). Packets which match no filters will be
>          discarded.
> 
>          Any IP packet can theoretically match multiple rows of
>          this table.  When considering a packet, the table is
>          scanned in row index order (e.g. filter 10 is checked
>          before filter 20).  If the packet matches that filter
>          (which means that it matches ALL criteria for that row),
>          actions appropriate to dvbCdmIpFilterAction and
>          dvbCdmIpFilterActionPtr are taken.  If the packet was
>          discarded processing is complete.  If
>          dvbCdmIpFilterContinue is set to true, the filter
>          comparison continues with the next row in the table
>          looking for additional matches."
> ::= { dvbCdmIpFilter 2 }
> 
> dvbCdmIpFilterEntry OBJECT-TYPE
>     SYNTAX      DvbCdmIpFilterEntry
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "Describes a filter to apply to IP traffic received on a
>          specified interface.  All identity objects in this table
>          (e.g. source and destination address/mask, protocol,
>          source/dest port, TOS/mask, interface and direction) must
>          match their respective fields in the packet for any given
>          filter to match.
> 
>          To create an entry in this table, dvbCdmIpFilterIfIndex
>          must be specified."
>          INDEX { dvbCdmIpFilterIndex }
> ::= { dvbCdmIpFilterTable 1 }
> 
> DvbCdmIpFilterEntry ::= SEQUENCE {
>     dvbCdmIpFilterIndex          Unsigned32,
>     dvbCdmIpFilterStatus         RowStatus,
>     dvbCdmIpFilterAssignedBy     INTEGER,
>     dvbCdmIpFilterIfIndex        InterfaceIndexOrZero,
>     dvbCdmIpFilterDirection      INTEGER,
>     dvbCdmIpFilterTos            OCTET STRING,
>     dvbCdmIpFilterTosMask        OCTET STRING,
>     dvbCdmIpFilterSrcAddr        IpAddress,
>     dvbCdmIpFilterSrcMask        IpAddress,
>     dvbCdmIpFilterDstAddr        IpAddress,
>     dvbCdmIpFilterDstMask        IpAddress,
>     dvbCdmIpFilterProtocol       Integer32,
>     dvbCdmIpFilterSrcPortLow     Integer32,
>     dvbCdmIpFilterSrcPortHigh    Integer32,
>     dvbCdmIpFilterDstPortLow     Integer32,
>     dvbCdmIpFilterDstPortHigh    Integer32,
>     dvbCdmIpFilterAction         INTEGER,
>     dvbCdmIpFilterMatches        Counter32,
>     dvbCdmIpFilterContinue       TruthValue,
>     dvbCdmIpFilterActionPtr      Integer32
> }
> 
> dvbCdmIpFilterIndex OBJECT-TYPE
>     SYNTAX      Unsigned32
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "Index used to order the application of filters.
>          The filter with the lowest index is always applied
>          first."
> ::= { dvbCdmIpFilterEntry 1 }
> 
> dvbCdmIpFilterStatus OBJECT-TYPE
>     SYNTAX      RowStatus
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "Controls and reflects the status of rows in this
>          table. Specifying only this object (with the appropriate
>          index) on a CDM is sufficient to create a filter row which
>          matches all inbound packets on the ethernet interface,
>          and results in the packets being discarded.  Creation of the
>          rows may be done via either create-and-wait or
>          create-and-go, but the filter is not applied until this
>          object is set to (or changes to) active. There is no
>          restriction in changing any object in a row while this
>          object is set to active."
> ::= { dvbCdmIpFilterEntry 2 }
> 
> dvbCdmIpFilterAssignedBy OBJECT-TYPE
>     SYNTAX      INTEGER {
>                     dhcp(1),
>                     static(2),
>                     operator(3)
>                 }
>     MAX-ACCESS  read-only
>     STATUS      current
>     DESCRIPTION
>         "This identifies what created the filter and is automaticly
>          set when a filter is created.
> 
>          dhcp     - The filter was created by sniffing a DHCP
>                     request/response.  These types of filter should 
>                     be held in non-volitile RAM and can only be
>                     deleted by the network manager or a DHCP release.
>                     The filter will be for a subnet.
>          static   - The filter was created based on an entry in
>                     dvbCdmStaticIpTable
>                     It can be deleted by the network manager or when
>                     the entry in the dvbCdmStaticIpTable is modified.
>                     The filter will be for a subnet.
>          operator - The filter was created by the network manager. 
>                     These types of filter should be held in 
>                     non-volitile RAM and can only be deleted by the
>                     network manager."
> ::= { dvbCdmIpFilterEntry 3 }
> 
> dvbCdmIpFilterIfIndex OBJECT-TYPE
>     SYNTAX      InterfaceIndexOrZero
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "The entry interface to which this filter applies. The
>          value corresponds to ifIndex for either a CATV MAC or
>          another network interface. If the value is zero, the
>          filter applies to all interfaces. Default value in Cable
>          Modems is the index of the customer-side (e.g. ethernet)
>          interface."
> ::= { dvbCdmIpFilterEntry 4 }
> 
> dvbCdmIpFilterDirection OBJECT-TYPE
>     SYNTAX INTEGER {
>                inbound(1),
>                outbound(2),
>                both(3)
>            }
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "Determines whether the filter is applied to inbound(1)
>          traffic, outbound(2) traffic, or traffic in both(3)
>          directions."
>     DEFVAL { inbound }
> ::= { dvbCdmIpFilterEntry 5 }
> 
> dvbCdmIpFilterTos  OBJECT-TYPE
>     SYNTAX      OCTET STRING ( SIZE (1))
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "This is the value to be matched to the packet's
>          TOS (Type of Service) value (after the TOS value
>          is AND'd with dvbCdmIpFilterTosMask).  A value for this
>          object of 0 and a mask of 0 matches all TOS values."
>     DEFVAL { '00'h }
> ::= { dvbCdmIpFilterEntry 6 }
> 
> dvbCdmIpFilterTosMask OBJECT-TYPE
>     SYNTAX      OCTET STRING ( SIZE (1) )
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "The mask to be applied to the packet's TOS value before
>          matching."
>     DEFVAL { '00'h }
> ::= { dvbCdmIpFilterEntry 7 }
> 
> dvbCdmIpFilterSrcAddr OBJECT-TYPE
>     SYNTAX      IpAddress
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "The source IP address, or portion thereof, that is to be
>          matched for this filter.  The source address is first
>          masked (and'ed) against dvbCdmIpFilterSrcMask before being
>          compared  to this value.  A value of 0 for this object
>          and 0 for the mask matches all IP addresses."
>     DEFVAL { '00000000'h } -- IP Address 0.0.0.0
> ::= { dvbCdmIpFilterEntry 8 }
> 
> dvbCdmIpFilterSrcMask OBJECT-TYPE
>     SYNTAX      IpAddress
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "A bit mask that is to be applied to the source address
>          prior to matching. This mask is not necessarily the same
>          as a subnet mask, but 1's bits must be leftmost and
>          contiguous."
>     DEFVAL { '00000000'h }
> ::= { dvbCdmIpFilterEntry 9 }
> 
> dvbCdmIpFilterDstAddr OBJECT-TYPE
>     SYNTAX      IpAddress
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "The destination IP address, or portion thereof, that is
>          to be matched for this filter. The destination address is
>          first masked (and'ed) against dvbCdmIpFilterDstMask before
> being
>          compared  to this value.  A value of 0 for this object
>          and 0 for the mask matches all IP addresses."
>     DEFVAL { '00000000'h }
> ::= { dvbCdmIpFilterEntry 10 }
> 
> dvbCdmIpFilterDstMask OBJECT-TYPE
>     SYNTAX      IpAddress
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "A bit mask that is to be applied to the destination
>          address prior to matching. This mask is not necessarily
>          the same as a subnet mask, but 1's bits must be leftmost
>          and contiguous."
>     DEFVAL { '00000000'h }
> ::= { dvbCdmIpFilterEntry 11 }
> 
> dvbCdmIpFilterProtocol OBJECT-TYPE
>     SYNTAX Integer32 (0..256)
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "The IP protocol value that is to be matched. For example:
>          icmp is 1, tcp is 6, udp is 17. A value of 256 matches
>          ANY protocol."
>     DEFVAL { 256 }
> ::= { dvbCdmIpFilterEntry 12 }
> 
> dvbCdmIpFilterSrcPortLow OBJECT-TYPE
>     SYNTAX      Integer32 (0..65535)
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "If dvbCdmIpFilterProtocol is udp or tcp, this is the
>          inclusive lower bound of the transport-layer source port
>          range that is to be matched, otherwise it is ignored
>          during matching."
>     DEFVAL { 0 }
> ::= { dvbCdmIpFilterEntry 13 }
> 
> dvbCdmIpFilterSrcPortHigh OBJECT-TYPE
>     SYNTAX      Integer32 (0..65535)
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "If dvbCdmIpFilterProtocol is udp or tcp, this is the
>          inclusive upper bound of the transport-layer source port
>          range that is to be matched, otherwise it is ignored
>          during matching."
>     DEFVAL { 65535 }
> ::= { dvbCdmIpFilterEntry 14 }
> 
> dvbCdmIpFilterDstPortLow OBJECT-TYPE
>     SYNTAX      Integer32 (0..65535)
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "If dvbCdmIpFilterProtocol is udp or tcp, this is the
>          inclusive lower bound of the transport-layer destination
>          port range that is to be matched, otherwise it is ignored
>          during matching."
>     DEFVAL { 0 }
> ::= { dvbCdmIpFilterEntry 15 }
> 
> dvbCdmIpFilterDstPortHigh OBJECT-TYPE
>     SYNTAX      Integer32 (0..65535)
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "If dvbCdmIpFilterProtocol is udp or tcp, this is the
>          inclusive upper bound of the transport-layer destination
>          port range that is to be matched, otherwise it is ignored
>          during matching."
>     DEFVAL { 65535 }
> ::= { dvbCdmIpFilterEntry 16 }
> 
> dvbCdmIpFilterAction OBJECT-TYPE
>     SYNTAX      INTEGER {
>                     discard(1),
>                     accept(2),
>                     nat(3),
>                     napt(4),
>                     tosmap(5)
>                 }
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "This is the action to be performed if there is a match
>          against this filter.  Possible actions are:
>          discard - Discard the packet.
>          accept  - Accept the packet for further processing / 
>                    forwarding.
>          nat     - Perform network address translation on this 
>                    packet.
>                    This is used to identify internal addresses that
>                    can be mapped to external addresses.
>          napt    - Perform network port address translation on this
>                    packet. This is used to identify internal
>                    adresses that can be mapped to an external 
>                    address/port.
>          tosmap  - Apply TOS to this packet."
>     DEFVAL { discard }
> ::= { dvbCdmIpFilterEntry 17 }
> 
> dvbCdmIpFilterMatches OBJECT-TYPE
>     SYNTAX      Counter32
>     MAX-ACCESS  read-only
>     STATUS      current
>     DESCRIPTION
>         "Counts the number of times this filter was matched.
>          This object is initialized to 0 at boot, or at row
>          creation, and is reset only upon reboot."
> ::= { dvbCdmIpFilterEntry 18 }
> 
> dvbCdmIpFilterContinue OBJECT-TYPE
>     SYNTAX      TruthValue
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "If this value is set to true and dvbCdmIpFilterAction
>          is not discard, continue scanning and applying
>          matching filter actions."
>     DEFVAL { false }
> ::= { dvbCdmIpFilterEntry 19 }
> 
> dvbCdmIpFilterActionPtr OBJECT-TYPE
>     SYNTAX      Integer32 (0..2147483647)
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "This object identifies the dvbCdmIpTosMapPolicyId
>          in dvbCdmIpTOSMapTable that is to be applied if 
>          dvbCdmIpFilterAction is set to tosMap. 
>          If no matching policy exists, treat as if
>          dvbCdmIpFilterAction were set to accept (1).
>          If this object is set to the value of 0, there is no
>          matching policy, and dvbCdmIpTOSMapTable MUST NOT be
>          consulted."
>     DEFVAL { 0 }
> ::= { dvbCdmIpFilterEntry 20 }
> 
> -- End of IP filter table
> 
> -- TOS Map Table
> 
> dvbCdmIpTOSMapTable OBJECT-TYPE
>     SYNTAX      SEQUENCE OF DvbCdmIpTOSMapEntry
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "A Table which maps between a policy id 
>          (dvbCdmIpTosMapPolicyId) and a policy to be applied.  This
>          table applies only to the TOS within the IP header.
> 	   Policy ID 0 is reserved."
> ::= { dvbCdmIpFilter 3 }
> 
> dvbCdmIpTOSMapEntry OBJECT-TYPE
>     SYNTAX      DvbCdmIpTOSMapEntry
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "Table used to describe Type of Service (TOS) bits
>          processing.
> 
>          This table is an adjunct to the dvbCdmIpFilterTable.
>          Entries in the latter table can point to specific rows 
>          in this (and other)tables and cause specific actions to
>          be taken.  This table permits the manipulation of the value
>          of the Type of Service bits in the IP header of the matched
>          packet as follows:
>          Set the tosBits of the packet to
>          (tosBits & dvbCdmIpTosMapAndMask) | dvbCdmIpTosMapOrMask
> 
>          This construct allows you to do a clear and set of all
>          the TOS bits in a flexible manner."
>     INDEX { dvbCdmIpTosMapIndex }
> ::= { dvbCdmIpTOSMapTable 1 }
> 
> DvbCdmIpTOSMapEntry ::= SEQUENCE {
>     dvbCdmIpTosMapIndex     Unsigned32, 
>     dvbCdmIpTosMapPolicyId  Unsigned32,
>     dvbCdmIpTosMapStatus    RowStatus,
>     dvbCdmIpTosMapAndMask   OCTET STRING (SIZE (1)),
>     dvbCdmIpTosMapOrMask    OCTET STRING (SIZE (1))
> }
> 
> dvbCdmIpTosMapIndex OBJECT-TYPE
>     SYNTAX      Unsigned32
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION 
>         "The unique index for this row.  There are no ordering
>          requirements for this table and any valid index may be
>          specified."
> ::= { dvbCdmIpTOSMapEntry 1 }
> 
> dvbCdmIpTosMapPolicyId OBJECT-TYPE
>     SYNTAX      Unsigned32
>     MAX-ACCESS  read-only
>     STATUS      current
>     DESCRIPTION 
>         "The unique index for this row.  There are no ordering
>          requirements for this table and any valid index may be
>          specified.  This index is used by dvbCdmIpFilterPolicyId as
>          the pointer to the TOS mapping to be performed."
> ::= { dvbCdmIpTOSMapEntry 2 }
> 
> dvbCdmIpTosMapStatus OBJECT-TYPE
>     SYNTAX      RowStatus
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "The object used to create and delete entries in this
>          table. A row created by specifying just this object
>          results in a row which specifies no change to the TOS
>          bits.   A row may be created using either the create-and-go
>          or create-and-wait paradigms. There is no restriction on
>          the ability to change values in this row while the row is
>          active."
> ::= { dvbCdmIpTOSMapEntry 3 }
> 
> dvbCdmIpTosMapAndMask OBJECT-TYPE
>     SYNTAX      OCTET STRING (SIZE (1))
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "This value is bitwise AND'd with the matched  packet's
>         TOS bits."
>     DEFVAL { 'ff'h }
> ::= { dvbCdmIpTOSMapEntry 4 }
> 
> dvbCdmIpTosMapOrMask OBJECT-TYPE
>     SYNTAX      OCTET STRING (SIZE (1))
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "After bitwise AND'ing with the above bits, the packet's
>          TOS bits are bitwise OR'd with these bits."
>     DEFVAL { '00'h }
> ::= { dvbCdmIpTOSMapEntry 5 }
> 
> -- End of TOS Map table
> 
> -- ===============================================================
> -- =  NAT Group                                                  =
> -- ===============================================================
> 
> -- NAT assignment table
> 
> dvbCdmNatTable OBJECT-TYPE
>     SYNTAX      SEQUENCE OF DvbCdmNatEntry
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "This table is used to list external IP addresses available
>          for assignment to internal IP addresses.  The filter table 
>          is used to identify internal addresses that require NAT 
>          before entering the external domain.  NAT assignment 
>          algorithims are vendor dependant.  When an external IP 
>          address is no longer assigned to an IP addess, 
>          dvbCdmNatIntIp should be 0.0.0.0. If there are no free 
>          external addresses the packet requiring translation should
>          be dropped."
> ::= { dvbCdmNat 1 }
> 
> dvbCdmNatEntry OBJECT-TYPE
>     SYNTAX      DvbCdmNatEntry
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "A row should be created for each external IP address
>          available for translation.  When an internal address is
>          assignened to an external address, dvbCdmNatIntIp will 
>          contained the mapped internal address."
>     INDEX { dvbCdmNatIndex }
> ::= { dvbCdmNatTable 1 }
> 
> DvbCdmNatEntry ::= SEQUENCE { 
>     dvbCdmNatIndex    Unsigned32,
>     dvbCdmNatExtIp    IpAddress,
>     dvbCdmNatIntIp    IpAddress,
>     dvbCdmNatStatus   RowStatus
> }
> 
> dvbCdmNatIndex OBJECT-TYPE
>     SYNTAX      Unsigned32
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "The unique index for this row.  There are no ordering
>          requirements for this table and any valid index may be
>          specified."
> ::= { dvbCdmNatEntry 1 }
> 
> 
> dvbCdmNatExtIp OBJECT-TYPE
>     SYNTAX      IpAddress
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "An external IP address available for NAT assignment"
> ::= { dvbCdmNatEntry 2 }
> 
> dvbCdmNatIntIp OBJECT-TYPE
>     SYNTAX      IpAddress
>     MAX-ACCESS  read-only
>     STATUS      current
>     DESCRIPTION
>         "The internal IP address assigned to the external IP address.
>          If no address is assigned this will be 0.0.0.0"
>     DEFVAL { '00000000'h } -- IP Address 0.0.0.0
> ::= { dvbCdmNatEntry 3 }
> 
> dvbCdmNatStatus OBJECT-TYPE
>     SYNTAX      RowStatus
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "This controls and reflects the status of the row.
>          Rows can be created by using both createAndGo and
>          createAndWait.  Rows can be modified/deleted ONLY if the
>          dvbCdmNatIntIp is 0.0.0.0.  notInService can be applied to a
>          row which currently has dvbCdmNatIntIp
>          assigned, in this case when dvbCdmNatIntIp become free
>          (0.0.0.0) the associated dvbCdmNatExtIp cannot be used for
>          further assigments."
> ::= { dvbCdmNatEntry 4 }
> 
> -- End of NAT table
> 
> 
> -- ===============================================================
> -- =  NAPT Group                                                 =
> -- ===============================================================
> 
> dvdCdmNaptAddr OBJECT-TYPE
>     SYNTAX      IpAddress
>     MAX-ACCESS  read-write
>     STATUS      current
>     DESCRIPTION
>         "The external IP address to be used for NAPT.
>          The filter table is used to identify internal
>          addresses that require NAPT before entering the
>          external domain.  NAPT assignment algorithims are
>          vendor dependant.  The value 0.0.0.0 specifies
>          that NAPT is not available and the packet requiring
>          it should be discarded.  The value 255.255.255.255 specifies
>          that NAPT will use the IP address assigned to the HFC
>          interface."
>     DEFVAL { '00000000'h } -- IP address 0.0.0.0
> ::= { dvbCdmNapt 1 }
> 
> -- NAPT assignment table
> 
> dvbCdmNaptTable OBJECT-TYPE
>     SYNTAX      SEQUENCE OF DvbCdmNaptEntry
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "This table lists the current internal/external port
> assignments.
>          The NAPT assignment algorithims used for port assignments 
>          are vendor dependant."
> ::= { dvbCdmNapt 2 }
> 
> dvbCdmNaptEntry OBJECT-TYPE
>     SYNTAX      DvbCdmNaptEntry
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "A row should be created for each internal to external port
>          mapping.  Each row contains the internal and external ports
>          used in the mapping, and the internal IP address of the
>          host being mapped.  When the assignment is no longer 
>          required the row should be deleted."
>     INDEX { dvbCdmNaptIndex }
> ::= { dvbCdmNaptTable 1 }
> 
> DvbCdmNaptEntry ::= SEQUENCE {
>     dvbCdmNaptIndex    Unsigned32, 
>     dvbCdmNaptExtPort  Integer32,
>     dvbCdmNaptIntPort  Integer32,
>     dvbCdmNaptIntIP    IpAddress
> }
> 
> dvbCdmNaptIndex OBJECT-TYPE
>     SYNTAX      Unsigned32
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "The unique index for this row.  There are no ordering
>          requirements for this table and any valid index may be
>          specified."
> ::= { dvbCdmNaptEntry 1 }
> 
> dvbCdmNaptExtPort OBJECT-TYPE
>     SYNTAX      Integer32 (1..65535)
>     MAX-ACCESS  read-only
>     STATUS      current
>     DESCRIPTION
>         "The external port assigned to the internal port."
> ::= { dvbCdmNaptEntry 2 }
> 
> dvbCdmNaptIntPort OBJECT-TYPE
>     SYNTAX      Integer32 (1..65535)
>     MAX-ACCESS  read-only
>     STATUS      current
>     DESCRIPTION
>         "The internal port that required mapping to the external
>          port."
> ::= { dvbCdmNaptEntry 3 }
> 
> dvbCdmNaptIntIP OBJECT-TYPE
>     SYNTAX      IpAddress
>     MAX-ACCESS  read-only
>     STATUS      current
>     DESCRIPTION
>         "The internal IP address of the host to which the port 
>          mapping is being applied."
> ::= { dvbCdmNaptEntry 4 }
> 
> -- End of NAPT table
> 
> -- ===============================================================
> -- =  Ethernet Filters Group                                     =
> -- ===============================================================
> 
> dvbCdmEthernetFilterEnable
>  OBJECT-TYPE
>     SYNTAX      INTEGER {
>                     enabled(1),
>                     countHits(2),
>                     disabled(3)
>                 }
>     MAX-ACCESS  read-write
>     STATUS      current
>     DESCRIPTION
>         "This controls the Ethernet filter table.
>              enable     - Enables the Ethernet filter table.
>              countHits  - This option is used to debug the filter
>                           table.  It allows framess to be checked
>                           against the filter table and increments
>                           dvbCdmEthernetFilterMatches for a matching
>                           filter, but ALL frames ARE ALLOWED
>                           THROUGH.           
>              disabled   - Disables Ethernet filtering, all frames
>                           are allowed through."
>     DEFVAL { disabled }
> ::= { dvdCdmEthFilter 1 }
> 
> dvbCdmEthernetFilterTable OBJECT-TYPE
>     SYNTAX      SEQUENCE OF DvbCdmEthernetFilterEntry
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "A list of filters to apply to Ethernet type frames to
>          control the types of upper layer protocols that can be
>          transported.  The EtherType/LLC field is examined and
>          the filter table is checked to see if there is a filter
>          for the protocol.  If no match is found the frame is
>          discarded, otherwise the filter action is performed.
> 
>          The filter table does not have to be ordered as there
>          can be only one possible match."
> ::= { dvdCdmEthFilter 2 }
> 
> dvbCdmEthernetFilterEntry OBJECT-TYPE
>     SYNTAX      DvbCdmEthernetFilterEntry
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION
>         "Describes a filter to apply to Ethernet frame received on a
>          specified interface.  The dvbCdmEthernetFilterProtocol in 
>          this table must match its respective fields in the frame
>          for any given filter to match."
>          INDEX { dvbCdmEthernetFilterIndex }
> ::= { dvbCdmEthernetFilterTable 1 }
> 
> DvbCdmEthernetFilterEntry ::= SEQUENCE {
>     dvbCdmEthernetFilterIndex        Unsigned32,
>     dvbCdmEthernetFilterStatus       RowStatus,
>     dvbCdmEthernetFilterIfIndex      InterfaceIndexOrZero,
>     dvbCdmEthernetFilterEtherType    INTEGER,
>     dvbCdmEthernetFilterProtocol     Integer32,
>     dvbCdmEthernetFilterAction       INTEGER,
>     dvbCdmEthernetFilterMatches      Counter32
> }
> 
> dvbCdmEthernetFilterIndex OBJECT-TYPE
>     SYNTAX      Unsigned32
>     MAX-ACCESS  not-accessible
>     STATUS      current
>     DESCRIPTION 
>         "The unique index for this row.  There are no ordering
>          requirements for this table and any valid index may be
>          specified."
> ::= { dvbCdmEthernetFilterEntry 1 }
> 	
> dvbCdmEthernetFilterStatus OBJECT-TYPE
>     SYNTAX      RowStatus
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "Controls and reflects the status of rows in this
>          table.  Creation of the rows may be done via either 
>          create-and-wait or create-and-go, but the filter is 
>          not applied until this object is set to (or changes to)
>          active. There is no restriction in changing any object
>          in a row while this object is set to active."
> ::= { dvbCdmEthernetFilterEntry 2 }
> 
> dvbCdmEthernetFilterIfIndex OBJECT-TYPE
>     SYNTAX      InterfaceIndexOrZero
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "The entry interface to which this filter applies. The
>          value corresponds to ifIndex for either a CATV MAC or
>          another network interface. If the value is zero, the
>          filter applies to all interfaces. Default value in Cable
>          Modems is the index of the customer-side (e.g. ethernet)
>          interface."
> ::= { dvbCdmEthernetFilterEntry 3 }
> 
> dvbCdmEthernetFilterEtherType OBJECT-TYPE
>     SYNTAX      INTEGER {
>                     ethernet2(1),
>                     snap(2),
>                     llc(3)
>                 }
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "The format of the etherent frame.  This can be Ethernet2,
>           802.2 SNAP or 802.2 LLC.  This is used to correctly
>           locate the field identifying the protocol being 
>           transported."
> ::= { dvbCdmEthernetFilterEntry 4 }
> 
> dvbCdmEthernetFilterProtocol OBJECT-TYPE
>     SYNTAX      Integer32 (1..65535)
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "The protocol to filter on.  For Ethernet2 and 802.2 SNAP
>          the value in the EtherType field is checked.  For 802.2 LLC
>          the valus in the SAP field is checked."
> ::= { dvbCdmEthernetFilterEntry 4 }
> 
> dvbCdmEthernetFilterAction OBJECT-TYPE
>     SYNTAX      INTEGER {
>                     accept(1),
>                     discard(2)
>                 }
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "The action to be taken when there is a filter match.  If 
>          it is accept, the frame will be forwarded otherwise 
>          the frame will be discarded."
> ::= { dvbCdmEthernetFilterEntry 5 }
> 
> dvbCdmEthernetFilterMatches OBJECT-TYPE
>     SYNTAX      Counter32
>     MAX-ACCESS  read-create
>     STATUS      current
>     DESCRIPTION
>         "Counts the number of times this filter was matched.
>          This object is initialized to 0 at boot, or at row
>          creation, and is reset only upon reboot."
> ::= { dvbCdmEthernetFilterEntry 6 }
> 		
> 
> -- The NMS access, IP filtering and events are based on the
> -- DOCSIS MIB draft-ietf-ipcdn-cable-device-mib-08.txt
> 
> 
> -- Conformance statements 
> 
> dvbCdmCompliance MODULE-COMPLIANCE
>     STATUS      current
>     DESCRIPTION
>         "The compliance statement for EuroModem cable modems 
>          which implement the DVB-CABLE-MODEM-MIB MIB."
> MODULE  -- dvbCdm
>     MANDATORY-GROUPS { dvbCdmSystem, 
>                        dvbCdmSoftware,
>                        dvbCdmEvent
>                      }
>     GROUP dvbCdmDhcp  
>         DESCRIPTION
>             "The group is optional but should be implemented if 
>              DHCP/BOOTP is implemented."
> 
>     GROUP dvbCdmIpFilter  
>         DESCRIPTION
>             "The group is optional but should be implemented to make
>              efficient use of the dvbCdmNat and dvdCdmNapt 
>              functionality."
> 
>     GROUP dvbCdmNat  
>         DESCRIPTION
>             "The group is optional but should be implemented if NAT
>              is implemented."
> 
>     GROUP dvbCdmNapt  
>         DESCRIPTION
>             "The group is optional but should be implemented if NAPT
>              is implemented."
> 
>     GROUP dvdCdmEthFilter  
>         DESCRIPTION
>             "The group is optional but should be implemented if 
>              Ethernet filtering is implemented.  If the NIU supports
>              bridging then it is strongly recommended this group is
>              implemented."
> 
> ::= { dvbCdmCompliances 1 }
> 
> 
> 
> dvbCdmSystemGroup OBJECT-GROUP
>     OBJECTS     {
>                   dvbCdmConfigSet,
>                   dvbCdmMibVersion,
>                   dvbCdmSerialNum,
>                   dvbCdmResetNow,
>                   dvbCdmResetCounts,
>                   dvbCdmDateAndTime,
>                   dvbCdmOperStatus,
>                   dvbCdmModemtype,
>                   dvbCdmNmAccessIp,
>                   dvbCdmNmAccessIpMask,
>                   dvbCdmNmAccessCommunity,
>                   dvbCdmNmAccessControl,
>                   dvbCdmNmAccessInterfaces,
>                   dvbCdmNmAccessStatus,
>                   dvbCdmStaticIpAddr,
>                   dvbCdmStaticIpMask,
>                   dvbCdmStaticIpStatus,
>                   dvbCdmImplSet
>                 }
>     STATUS      current
>     DESCRIPTION
>         "A collection of objects providing basic system level
>          control and instrumentation of the EuroModem."
> ::= { dvbCdmGroups 1 }
> 
> dvbCdmSoftwareGroup OBJECT-GROUP
>     OBJECTS     {
>                   dvbCdmSwVerEntry,
>                   dvbCdmSwVersion,
>                   dvbCdmSwState,
>                   dvbCdmSwAction,
>                   dvbCdmSwDateTime,
>                   dvbCdmSwServer,
>                   dvbCdmSwFilename,
>                   dvbCdmSwDownloadSlot,
>                   dvbCdmSwAdminStatus
>                 }
>     STATUS      current
>     DESCRIPTION
>         "A collection of objects providing control and 
>          instrumentation of the EuroModem's software."
> ::= { dvbCdmGroups 2 }
> 
> dvbCdmDhcpGroup OBJECT-GROUP
>     OBJECTS     {
>                   dvbCdmDhcpServer,
>                   dvbCdmDhcpRelay,
>                   dvdCdmDhcpReqIf
>                 }
>     STATUS      current
>     DESCRIPTION
>         "A collection of objects providing control over the
>          EuroModem's DHCP/Bootp functionality."
> ::= { dvbCdmGroups 3 }
> 
> dvbCdmEventGroup OBJECT-GROUP
>     OBJECTS     {
>                   dvbCdmEventPolicy,
>                   dvbCdmEventControlTable,
>                   dvbCdmEventTableMaxSize,
>                   dvbCdmTrapRate,
>                   dvbCdmEventControlPriority,
>                   dvbCdmEventControlAction,
>                   dvbCdmEventType,
>                   dvbEventDateTime,
>                   dvbEventDescription,
>                   dvbEventCode,
>                   dvbEventStatus,
>                   dvbCdmEvThrottleAdminStatus,
>                   dvbCdmEvThrottleInhibited,
>                   dvbCdmEvThrottleThreshold,
>                   dvbCdmEvThrottleInterval     
>                 }
>     STATUS      current
>     DESCRIPTION
>         "A collection of objects used to control and monitor
>          EuroModem events."
> ::= { dvbCdmGroups 4 }
> 
> dvbCdmIpFilterGroup OBJECT-GROUP
>     OBJECTS     {
>                   dvbCdmIpFilterDstAddr,
>                   dvbCdmIpFilterDstMask,
>                   dvbCdmIpFilterStatus,
>                   dvbCdmIpFilterPolicyId,
>                   dvbCdmIpFilterAssignedBy,
>                   dvbCdmIpFilterProtocol,
>                   dvbCdmIpFilterIfIndex,
>                   dvbCdmIpFilterSrcPortLow,
>                   dvbCdmIpFilterDirection,
>                   dvbCdmIpFilterSrcPortHigh,
>                   dvbCdmIpFilterTos,
>                   dvbCdmIpFilterDstPortLow,
>                   dvbCdmIpFilterTosMask,
>                   dvbCdmIpFilterDstPortHigh,
>                   dvbCdmIpFilterSrcAddr,
>                   dvbCdmIpFilterAction,
>                   dvbCdmIpFilterMatches,
>                   dvbCdmIpFilterSrcMask,
>                   dvbCdmIpFilterContinue,
>                   dvbCdmIpFilterEnable,
>                   dvbCdmIpTosMapIndex,
>                   dvbCdmIpTosMapStatus,
>                   dvbCdmIpTosMapAndMask,
>                   dvbCdmIpTosMapOrMask
>                 }
>     STATUS      current
>     DESCRIPTION
>         "A collection of objects providing a filtering capability
>          at the IP layer."
> ::= { dvbCdmGroups 5 }
> 
> dvbCdmEthFilterGroup OBJECT-GROUP
>     OBJECTS     {
>                   dvbCdmEthernetFilterStatus,
>                   dvbCdmEthernetFilterIfIndex,
>                   dvbCdmEthernetFilterEtherType,
>                   dvbCdmEthernetFilterAction,
>                   dvbCdmEthernetFilterMatches,
>                   dvbCdmEthernetFilterEnable
>                 }
>     STATUS      current
>     DESCRIPTION
>         "A collection of objects providing a filtering capability
>          at the Ethernet layer."
> ::= { dvbCdmGroups 6 }
> 
> dvbCdmAddrTranGroup OBJECT-GROUP
>     OBJECTS     {
>                   dvdCdmNaptAddr,
>                   dvbCdmNaptExtPort,
>                   dvbCdmNaptIntPort,
>                   dvbCdmNaptIntIP,
>                   dvbCdmNatExtIp,
>                   dvbCdmNatIntIp,
>                   dvbCdmNatStatus
>                 }
>     STATUS      current
>     DESCRIPTION
>         "A collection of objects providing address translation at
>          either the Address or port level"
> ::= { dvbCdmGroups 7 }
> 
> END
> 
> 
> 
> --Boundary_[ID_8JOtySM29NqWTzTMzjMaYw]--
>

---

From: [email-masked]
Date: Thu, 7 Oct 1999 12:49:39 +0200

Hello,

> impression that it duplicates ipAddrTable of MIB-II.

To my understanding the table is intended to provide a list of static 
IP addresses that are assigned to be used for e.g. PCs inside the 
home LAN, attached to the modem via the (e.g. Ethernet-) interface. 
This list is referred in the IP Filter Group, parameter 
dvbCdmFilterEnable (setting "enableAuto")

> does not have to be implemented). Not sure if this is

It's for sure not intentional. There should be a note saying that NAT 
is optional.

With greetings

Christof

--------------------------------------------------------------
Christof Ricken              Alcatel SEL AG
Carrier Data Division        D-70435 Stuttgart, Germany
CDD Germany                  Dept.:   IAS/EA
                             Phone:   +49 (0)711 821 - 4 42 74
                             Telefax: +49 (0)711 821 - 4 50 68
                             E-Mail:  [email-masked]
                  http://home.t-online.de/home/Christof.Ricken
--------------------------------------------------------------