smilint output for ./DOCS-SUBMGT-MIB


Message Severities
SeverityCount
error1
Message Types
TypeCount
object-identifier-not-prefix (error)1

Messages:

DOCS-SUBMGT-MIB

   1: -- extracted from draft-ietf-ipcdn-subscriber-mib-08.txt
   2: -- at Sat Jan 25 06:11:44 2003
   3: 
   4:    DOCS-SUBMGT-MIB  DEFINITIONS ::= BEGIN
   5: 
   6:    IMPORTS
   7:            MODULE-IDENTITY,
   8:            OBJECT-TYPE,
   9:            Counter32,
  10:            Integer32,
  11:            mib-2
  12:            -- , BITS
  13:                    FROM SNMPv2-SMI
  14:            RowStatus,
  15:            TruthValue,
  16:            TimeStamp,
  17:            StorageType
  18:                    FROM SNMPv2-TC
  19:            OBJECT-GROUP,
  20:            MODULE-COMPLIANCE
  21:                    FROM SNMPv2-CONF
  22:            InetAddressType,
  23:            InetAddress,
  24:            InetAddressPrefixLength,
  25:            InetPortNumber
  26:                    FROM INET-ADDRESS-MIB
  27:            docsIfCmtsCmStatusIndex,
  28:            docsIfCmtsCmStatusEntry
  29:                    FROM DOCS-IF-MIB;  -- RFC2670
  30: 
  31:    docsSubMgt MODULE-IDENTITY
  32:            LAST-UPDATED    "200301100000Z" -- January 10, 2003
  33:            ORGANIZATION    "IETF IPCDN Working Group"
  34:            CONTACT-INFO
  35:                "        Wilson Sawyer
  36:                 Postal: ARRIS
  37:                         6 Riverside Drive
  38:                         Andover, MA 01810
  39:                         U.S.A.
  40:                 Phone:  +1 978 946 4711
  41:                 E-mail: wsawyer@ieee.org
  42: 
  43:                 IETF IPCDN Working Group
  44:                 General Discussion: ipcdn@ietf.org
  45:                 Subscribe: http://www.ietf.org/mailman/listinfo/ipcdn
  46:                 Archive: ftp://ftp.ietf.org/ietf-mail-archive/ipcdn
  47:                 Co-chairs: Richard Woundy, rwoundy@broadband.att.com
  48:                            Jean-Francois Mule, jf.mule@cablelabs.com"
  49:            DESCRIPTION
  50:                "This is the CMTS centric subscriber management MIB for
  51:            DOCSIS compliant CMTS. Copyright (C) The Internet Society
  52:            (2003). This version of this MIB module is part of RFC xxxx;
  53:            see the RFC itself for full legal notices."
  54:         REVISION "200301100000Z" -- January 10, 2003
  55:            DESCRIPTION
  56:               "Initial version, published as RFC xxxx."
  57:               -- RFC editor to assign xxxx
  58:            ::= { mib-2 xx }   -- xx to be assigned by IANA
  58: error - Object identifier element `xx' name only allowed as first element
  59: 
  60: 
  61:    docsSubMgtObjects OBJECT IDENTIFIER ::= { docsSubMgt 1 }
  62: 
  63:    docsSubMgtCpeControlTable OBJECT-TYPE
  64:        SYNTAX  SEQUENCE OF DocsSubMgtCpeControlEntry
  65:        MAX-ACCESS not-accessible
  66:        STATUS  current
  67:        DESCRIPTION
  68:            "This table AUGMENTs the docsIfCmtsCmStatusTable and adds
  69:        four WRITEable objects which reflect the state of subscriber
  70:        management on a particular CM."
  71:        ::= { docsSubMgtObjects 1 }
  72: 
  73:    docsSubMgtCpeControlEntry OBJECT-TYPE
  74:        SYNTAX  DocsSubMgtCpeControlEntry
  75:        MAX-ACCESS not-accessible
  76:        STATUS  current
  77:        DESCRIPTION
  78:            "A row in the docsSubMgtCpeControlTable.  All values are set
  79:        at successful modem registration, either from the system default,
  80:        or from objects included in the DOCSIS registration request sent
  81:        upstream to the CMTS from the CM. The contents of this entry are
  82:        meaningless unless the corresponding docsIfCmtsCmStatusValue is
  83:        registrationComplete(6). The persistence of this row is
  84:        determined solely by the lifespan of the corresponding
  85:        docsIfCmtsCmStatusEntry (normally StorageType=volatile)."
  86:        AUGMENTS { docsIfCmtsCmStatusEntry }
  87:        ::= {docsSubMgtCpeControlTable 1 }
  88: 
  89:    DocsSubMgtCpeControlEntry ::= SEQUENCE
  90:        {
  91:        docsSubMgtCpeControlMaxCpeIp        Integer32,
  92:        docsSubMgtCpeControlActive          TruthValue,
  93:        docsSubMgtCpeControlLearnable       TruthValue,
  94:        docsSubMgtCpeControlReset           TruthValue,
  95:        docsSubMgtCpeControlLastReset       TimeStamp
  96:        }
  97: 
  98:    docsSubMgtCpeControlMaxCpeIp OBJECT-TYPE
  99:        SYNTAX  Integer32(0..2147483647)
 100:        MAX-ACCESS read-write
 101:        STATUS  current
 102:        DESCRIPTION
 103:            "The number of simultaneous IP addresses permitted behind
 104:        the CM. If this is set to zero, all CPE traffic from the CM is
 105:        dropped.  If the provisioning object corresponding to
 106:        docsSubMgtCpeIpTable includes more CPE IP address entries for
 107:        this modem than the value of this object, then this object is
 108:        set to the count of the number of rows in docsSubMgtCpeIpTable
 109:        that have the same docsIfCmtsCmStatusIndex value. (E.g. if the
 110:        CM has 5 IP addresses specified for it, this value is 5). This
 111:        limit applies to learned and docsis-provisioned entries, but
 112:        does not limit entries added through some administrative
 113:        process at the CMTS. If not set through DOCSIS provisioning,
 114:        this object defaults to docsSubMgtCpeMaxIpDefault. Note that
 115:        this object is only meaningful if docsSubMgtCpeControlActive
 116:        is true."
 117:        ::= { docsSubMgtCpeControlEntry 1 }
 118: 
 119:    docsSubMgtCpeControlActive OBJECT-TYPE
 120:        SYNTAX  TruthValue
 121:        MAX-ACCESS read-write
 122:        STATUS  current
 123:        DESCRIPTION
 124:            "If this is set to true, CMTS based CPE control is active and
 125:        all the actions required by the various filter tables and
 126:        controls apply at the CMTS.  If this is set to false, no
 127:        subscriber management filtering is done at the CMTS (but other
 128:        filters may apply). If not set through DOCSIS provisioning,
 129:        this object defaults to docsSubMgtCpeActiveDefault."
 130:        ::= { docsSubMgtCpeControlEntry 2 }
 131: 
 132:    docsSubMgtCpeControlLearnable OBJECT-TYPE
 133:        SYNTAX  TruthValue
 134:        MAX-ACCESS read-write
 135:        STATUS  current
 136:        DESCRIPTION
 137:            "If this is set to true, the CMTS may learn up to
 138:        docsSubMgtMaxCpeIp addresses (less any DOCSIS-provisioned
 139:        entries) related to this CM.  Those IP addresses are added (by
 140:        internal process) to the docsSubMgtCpeIpTable. The nature of the
 141:        learning mechanism is not specified here. If not set through
 142:        DOCSIS provisioning, this object defaults to
 143:        docsSubMgtCpeLearnableDefault. Note that this object is only
 144:        meaningful if docsSubMgtCpeControlActive is true."
 145:        ::= { docsSubMgtCpeControlEntry 3 }
 146: 
 147:    docsSubMgtCpeControlReset OBJECT-TYPE
 148:        SYNTAX  TruthValue
 149:        MAX-ACCESS read-write
 150:        STATUS  current
 151:        DESCRIPTION
 152:            "This object always returns false on read.  If this object is
 153:        set to true, the rows with  'learned' addresses in
 154:        docsSubMgtCpeIpTable for this CM are deleted from that table."
 155:        ::= { docsSubMgtCpeControlEntry 4 }
 156: 
 157:    docsSubMgtCpeControlLastReset OBJECT-TYPE
 158:        SYNTAX  TimeStamp
 159:        MAX-ACCESS read-only
 160:        STATUS  current
 161:        DESCRIPTION
 162:            "The value of sysUpTime when docsSubMgtCpeControlReset was
 163: 
 164:        last set true. Zero if never reset."
 165:        ::= { docsSubMgtCpeControlEntry 5 }
 166: 
 167:    docsSubMgtCpeMaxIpDefault OBJECT-TYPE
 168:        SYNTAX  Integer32(0..2147483647)
 169:        MAX-ACCESS read-write
 170:        STATUS  current
 171:        DESCRIPTION
 172:            "The default value for docsSubMgtCpeControlMaxCpeIp if not
 173:        signaled in the DOCSIS Registration request. Upon initial CMTS
 174:        initialization, this defaults to 16."
 175:        ::= { docsSubMgtObjects 2 }
 176: 
 177:    docsSubMgtCpeActiveDefault OBJECT-TYPE
 178:        SYNTAX  TruthValue
 179:        MAX-ACCESS read-write
 180:        STATUS  current
 181:        DESCRIPTION
 182:            "The default value for docsSubMgtCpeControlActive if not
 183:        signaled in the DOCSIS Registration request. Upon initial CMTS
 184:        initialization, this defaults to false."
 185:        ::= { docsSubMgtObjects 3 }
 186: 
 187:    docsSubMgtCpeLearnableDefault OBJECT-TYPE
 188:        SYNTAX  TruthValue
 189:        MAX-ACCESS read-write
 190:        STATUS  current
 191:        DESCRIPTION
 192:            "The default value for docsSubMgtCpeControlLearnable if not
 193:        signaled in the DOCSIS Registration request. Upon initial CMTS
 194:        initialization, this defaults to true."
 195:        ::= { docsSubMgtObjects 4 }
 196: 
 197:    docsSubMgtCpeIpTable OBJECT-TYPE
 198:        SYNTAX      SEQUENCE OF DocsSubMgtCpeIpEntry
 199:        MAX-ACCESS  not-accessible
 200:        STATUS      current
 201:        DESCRIPTION
 202:            "A table of CPE IP addresses known on a per CM basis."
 203:        ::= { docsSubMgtObjects 5 }
 204: 
 205:    docsSubMgtCpeIpEntry OBJECT-TYPE
 206:        SYNTAX      DocsSubMgtCpeIpEntry
 207:        MAX-ACCESS  not-accessible
 208:        STATUS      current
 209:        DESCRIPTION
 210:            "An entry in the docsSubMgtCpeIpTable.  The first index is
 211:        the specific modem we're referring to, the second index is the
 212:        specific CPE IP entry."
 213:        INDEX   { docsIfCmtsCmStatusIndex,
 214:                  docsSubMgtCpeIpIndex }
 215:        ::= {docsSubMgtCpeIpTable 1 }
 216: 
 217:    DocsSubMgtCpeIpEntry ::= SEQUENCE
 218:        {
 219:        docsSubMgtCpeIpIndex        Integer32,
 220:        docsSubMgtCpeIpAddressType  InetAddressType,
 221:        docsSubMgtCpeIpAddr         InetAddress,
 222:        docsSubMgtCpeIpLearned      TruthValue
 223:        }
 224: 
 225: 
 226:    docsSubMgtCpeIpIndex OBJECT-TYPE
 227:        SYNTAX      Integer32(1..2147483647)
 228:        MAX-ACCESS  not-accessible
 229:        STATUS      current
 230:        DESCRIPTION
 231:            "The index of this CPE IP address relative to the indexed CM.
 232:        An entry is created either through the included CPE IP addresses
 233:        in the provisioning object, or via learning.  If a CMTS receives
 234:        an IP packet from a CM that contains a source IP address which
 235:        does not match one of the docsSubMgtCpeIpAddr entries for this
 236:        CM, one of two things occurs.  If the number of entries is less
 237:        than docsSubMgtCpeControlMaxCpeIp, the source address is added to
 238:        the table and the packet is forwarded.  If the number of entries
 239:        equals the docsSubMgtCpeControlMaxCpeIp, AND
 240:        docsSubMgtCpeControlActive is true, then the packet is dropped.
 241:        Otherwise the packet is forwarded. "
 242:        ::= { docsSubMgtCpeIpEntry 1 }
 243: 
 244:    docsSubMgtCpeIpAddressType OBJECT-TYPE
 245:        SYNTAX      InetAddressType
 246:        MAX-ACCESS  read-only
 247:        STATUS      current
 248:        DESCRIPTION
 249:            "The type of internet address of docsSubMgtCpeIpAddr."
 250:        ::= { docsSubMgtCpeIpEntry 2 }
 251: 
 252:    docsSubMgtCpeIpAddr OBJECT-TYPE
 253:        SYNTAX      InetAddress
 254:        MAX-ACCESS  read-only
 255:        STATUS      current
 256:        DESCRIPTION
 257:            "The IP address either set from provisioning or learned via
 258:        address gleaning or other forwarding means. See
 259:        docsSubMgtCpeIpIndex for the mechanism."
 260:        ::= { docsSubMgtCpeIpEntry 3 }
 261: 
 262:    docsSubMgtCpeIpLearned OBJECT-TYPE
 263:        SYNTAX  TruthValue
 264:        MAX-ACCESS read-only
 265:        STATUS  current
 266:        DESCRIPTION
 267:            "If true, this entry was learned from IP packets sent
 268:        upstream rather than from the provisioning objects."
 269:        ::= { docsSubMgtCpeIpEntry 4 }
 270: 
 271:    -- The generic packet filter table.  Note that this just defines the
 272:    -- match criteria.  The docsSubMgtCmFilterTable links this table to
 273:    -- the specific modems.
 274: 
 275:    docsSubMgtPktFilterTable OBJECT-TYPE
 276:        SYNTAX      SEQUENCE OF DocsSubMgtPktFilterEntry
 277:        MAX-ACCESS  not-accessible
 278:        STATUS      current
 279:        DESCRIPTION
 280:            "A table of filter or classifier criteria. Classifiers are
 281:        assigned by group to the individual CMs.  That assignment is made
 282:        via the configuration objects sent upstream from the CM to the
 283:        CMTS during registration. Each filter in the group is applied
 284:        in index order to each packet. If the filter matches, then the
 285:        indicated action is taken. If no filter matches then the packet
 286:        is accepted for further processing."
 287:        ::= { docsSubMgtObjects 6 }
 288: 
 289:    docsSubMgtPktFilterEntry OBJECT-TYPE
 290:        SYNTAX      DocsSubMgtPktFilterEntry
 291:        MAX-ACCESS  not-accessible
 292:        STATUS      current
 293:        DESCRIPTION
 294:            "An entry in the docsSubMgtPktFilterTable."
 295:        INDEX   { docsSubMgtPktFilterGroup,
 296:                  docsSubMgtPktFilterIndex }
 297:        ::= {docsSubMgtPktFilterTable 1 }
 298: 
 299:    DocsSubMgtPktFilterEntry ::= SEQUENCE
 300:        {
 301:        docsSubMgtPktFilterGroup        Integer32,
 302:        docsSubMgtPktFilterIndex        Integer32,
 303:        docsSubMgtPktFilterAddrType     InetAddressType,
 304:        docsSubMgtPktFilterSrcAddr      InetAddress,
 305:        docsSubMgtPktFilterSrcMask      InetAddressPrefixLength,
 306:        docsSubMgtPktFilterDstAddr      InetAddress,
 307:        docsSubMgtPktFilterDstMask      InetAddressPrefixLength,
 308:        docsSubMgtPktFilterUlp          Integer32,
 309:        docsSubMgtPktFilterTosValue     OCTET STRING,
 310:        docsSubMgtPktFilterTosMask      OCTET STRING,
 311:        docsSubMgtPktFilterAction       INTEGER,
 312:        docsSubMgtPktFilterMatches      Counter32,
 313:        docsSubMgtPktFilterStatus       RowStatus,
 314:        docsSubMgtPktFilterStorageType  StorageType
 315:        }
 316: 
 317:    docsSubMgtPktFilterGroup OBJECT-TYPE
 318:        SYNTAX      Integer32(1..2147483647)
 319:        MAX-ACCESS  not-accessible
 320:        STATUS      current
 321:        DESCRIPTION
 322:            "Identifies an ordered group of filters. Each modem may be
 323:        associated with a filter group for its upstream traffic
 324:        (docsSubMgtCmFilterUpstream) and a filter group for its
 325:        downstream traffic (docsSubMgtCmFilterDownstream). Typically,
 326:        many modems will use the same filter group."
 327:        ::= { docsSubMgtPktFilterEntry 1 }
 328: 
 329:    docsSubMgtPktFilterIndex OBJECT-TYPE
 330:        SYNTAX      Integer32(1..2147483647)
 331:        MAX-ACCESS  not-accessible
 332:        STATUS      current
 333:        DESCRIPTION
 334:            "An index which describes the ordering of a set of filter
 335:        specifications within the group.  Filters are applied in index
 336:        order."
 337:        ::= { docsSubMgtPktFilterEntry 2 }
 338: 
 339:    docsSubMgtPktFilterAddrType OBJECT-TYPE
 340:        SYNTAX      InetAddressType
 341:        MAX-ACCESS  read-create
 342:        STATUS      current
 343:        DESCRIPTION
 344:            "The type of internet address of docsSubMgtPktFilterSrcAddr,
 345:        docsSubMgtPktFilterSrcMask, docsSubMgtPktFilterDstAddr, and
 346:        docsSubMgtPktFilterDstMask."
 347:        DEFVAL { ipv4 }
 348:        ::= { docsSubMgtPktFilterEntry 3 }
 349: 
 350:    docsSubMgtPktFilterSrcAddr OBJECT-TYPE
 351:        SYNTAX      InetAddress
 352:        MAX-ACCESS  read-create
 353:        STATUS      current
 354:        DESCRIPTION
 355:            "The source IP address to match in the packet to be
 356:        classified.  By default, this is the all-zero's IP v4 and v6
 357:        address. A packet matches the SrcAddr filter if the following is
 358:        true:
 359:             AND (FilterSrcAddr, maskFrom(FilterSrcMask)) ==
 360:             AND (Packet SrcAddr, maskFrom(FilterSrcMask))
 361:        where maskFrom(N) is a bitmask constructed with N leftmost 1's
 362:        bits. The mask value is applied to both the match value in this
 363:        table and to the packet IP address. The address type of this
 364:        object is specified by docsSubMgtPktFilterAddrType."
 365:        DEFVAL { '00000000'H }    -- 0.0.0.0
 366:        ::= { docsSubMgtPktFilterEntry 4 }
 367: 
 368:    docsSubMgtPktFilterSrcMask OBJECT-TYPE
 369:        SYNTAX      InetAddressPrefixLength
 370:        MAX-ACCESS  read-create
 371:        STATUS      current
 372:        DESCRIPTION
 373:            "Specifies the number of leftmost 1's bits in an address
 374:        bit mask. The bit mask that is applied to the source address
 375:        prior to matching. This, taken with the SrcAddr specifies a
 376:        matching criteria.  By default, the pair specifies a filter
 377:        which matches all source addresses. The address type of this
 378:        object is specified by docsSubMgtPktFilterAddrType."
 379:        DEFVAL { 0  }
 380:        ::= { docsSubMgtPktFilterEntry 5 }
 381: 
 382:    docsSubMgtPktFilterDstAddr OBJECT-TYPE
 383:        SYNTAX      InetAddress
 384:        MAX-ACCESS  read-create
 385:        STATUS      current
 386:        DESCRIPTION
 387:            "The destination IP address to match in the packet to be
 388:        classified.  By default, this is the all-zero's IP v4 and v6
 389:        address. A packet matches the DstAddr filter if the following is
 390:        true:
 391:             AND (FilterDstAddr, maskFrom(FilterDstMask)) ==
 392:             AND (Packet DstAddr, maskFrom(FilterDstMask))
 393:        where maskFrom(N) is a bitmask constructed with N leftmost 1's
 394:        bits. The mask value is applied to both the match value in this
 395:        table and to the packet IP address. The address type of this
 396:        object is specified by docsSubMgtPktFilterAddrType."
 397:        DEFVAL { '00000000'H }    -- 0.0.0.0
 398:        ::= { docsSubMgtPktFilterEntry 6 }
 399: 
 400:    docsSubMgtPktFilterDstMask OBJECT-TYPE
 401:        SYNTAX      InetAddressPrefixLength
 402:        MAX-ACCESS  read-create
 403:        STATUS      current
 404:        DESCRIPTION
 405:            "Specifies the number of leftmost 1's bits in an address
 406:        bit mask. The bit mask that is applied to the destination
 407:        address prior to matching. This, taken with the DstAddr specifies
 408:        a matching criteria.  By default, the pair specifies a filter
 409:        which matches all destination addresses. The address type of this
 410:        object is specified by docsSubMgtPktFilterAddrType."
 411:        DEFVAL { 0  }
 412:        ::= { docsSubMgtPktFilterEntry 7 }
 413: 
 414:    docsSubMgtPktFilterUlp OBJECT-TYPE
 415:        SYNTAX      Integer32 (0..256)
 416:        MAX-ACCESS  read-create
 417:        STATUS      current
 418:        DESCRIPTION
 419:            "Upper level protocol to match.  If this value is 256,
 420:        matches ALL ULP values.  Otherwise, this matches the specific
 421:        protocol value.  Note that if the packet ULP is either 6 (tcp) or
 422:        17 (udp), then docsSubMgtPktTcpUdpFilterTable must also be
 423:        consulted (if its entry exists) to see if this entry matches.
 424:        If this value is neither tcp(6) nor udp(17), then that
 425:        table is not consulted."
 426:        DEFVAL { 256 }
 427:        ::= { docsSubMgtPktFilterEntry 8 }
 428: 
 429:    docsSubMgtPktFilterTosValue OBJECT-TYPE
 430:        SYNTAX      OCTET STRING (SIZE(1))
 431:        MAX-ACCESS  read-create
 432:        STATUS      current
 433:        DESCRIPTION
 434:            "The TOS value to match in the IP packet."
 435:        DEFVAL { '00'h }
 436:        ::= { docsSubMgtPktFilterEntry 9 }
 437: 
 438:    docsSubMgtPktFilterTosMask OBJECT-TYPE
 439:        SYNTAX      OCTET STRING(SIZE(1))
 440:        MAX-ACCESS  read-create
 441:        STATUS      current
 442:        DESCRIPTION
 443:            "The mask to apply against the TOS value to be matched in the
 444:        IP packet.  The default for both these objects taken together
 445:        matches all TOS values. A packet matches this filter if the
 446:        following is true:
 447:            AND (FilterTosValue, FilterTosMask) ==
 448:            AND (Packet TOS Value, FilterTosMask)."
 449:        DEFVAL { '00'h }
 450:        ::= { docsSubMgtPktFilterEntry 10 }
 451: 
 452:    docsSubMgtPktFilterAction OBJECT-TYPE
 453:        SYNTAX      INTEGER
 454:                       {
 455:                       accept(1),
 456:                       drop(2)
 457:                       }
 458:        MAX-ACCESS  read-create
 459:        STATUS      current
 460:        DESCRIPTION
 461:            "The action to take upon this filter matching.  Accept(1)
 462:        means to end filter matching and to accept the packet for further
 463:        processing. Drop(2) means to drop the packet."
 464:        DEFVAL { accept }
 465:        ::= { docsSubMgtPktFilterEntry 11 }
 466: 
 467:    docsSubMgtPktFilterMatches OBJECT-TYPE
 468:        SYNTAX      Counter32
 469:        MAX-ACCESS  read-only
 470:        STATUS      current
 471:        DESCRIPTION
 472:            "This object counts the number of times this specific rule
 473:        has been matched.  This is incremented any time this rule is
 474:        encountered and all components match. It is only incremented for
 475:        the first (lowest-indexed) filter matching a packet."
 476:        ::= { docsSubMgtPktFilterEntry 12 }
 477: 
 478:    docsSubMgtPktFilterStatus OBJECT-TYPE
 479:        SYNTAX      RowStatus
 480:        MAX-ACCESS  read-create
 481:        STATUS      current
 482:        DESCRIPTION
 483:            "Standard rowStatus object for creating this row.  Any object
 484:        in this row which is writable may be changed at any time while
 485:        the row is active. Since all writable objects in the entry have
 486:        DEFVALs, a row may be made active without specifying any other
 487:        values."
 488:        ::= { docsSubMgtPktFilterEntry 13 }
 489: 
 490:    docsSubMgtPktFilterStorageType OBJECT-TYPE
 491:        SYNTAX     StorageType
 492:        MAX-ACCESS read-create
 493:        STATUS     current
 494:        DESCRIPTION
 495:            "This object defines whether this filter is kept in volatile
 496:        storage and lost upon reboot or if this row is backed up by
 497:        non-volatile or permanent storage. 'permanent' entries need not
 498:        allow writable access to any object."
 499:        DEFVAL { nonVolatile }
 500:        ::= { docsSubMgtPktFilterEntry 14 }
 501: 
 502:    docsSubMgtTcpUdpFilterTable OBJECT-TYPE
 503:        SYNTAX  SEQUENCE OF DocsSubMgtTcpUdpFilterEntry
 504:        MAX-ACCESS not-accessible
 505:        STATUS  current
 506:        DESCRIPTION
 507:            "This is an adjunct to docsSubMgtPktFilterTable. It provides
 508:             optional filtering based on elements in TCP or UDP headers.
 509:             This table is separate from docsSubMgtPktFilterTable only
 510:             because it is expected to be used more rarely. This table
 511:             is not consulted unless the upper-layer protocol is TCP or
 512:             UDP."
 513:        ::= { docsSubMgtObjects 7 }
 514: 
 515:    docsSubMgtTcpUdpFilterEntry OBJECT-TYPE
 516:        SYNTAX  DocsSubMgtTcpUdpFilterEntry
 517:        MAX-ACCESS not-accessible
 518:        STATUS  current
 519:        DESCRIPTION
 520:            "Defines filtering criteria for TCP and UDP headers.
 521:         Persistence of this row is controlled by
 522:         docsSubMgtPktFilterStorageType."
 523:        INDEX   { docsSubMgtPktFilterGroup, docsSubMgtPktFilterIndex }
 524:        ::= {docsSubMgtTcpUdpFilterTable 1 }
 525: 
 526:    DocsSubMgtTcpUdpFilterEntry ::= SEQUENCE
 527:        {
 528:        docsSubMgtTcpUdpSrcPort     InetPortNumber,
 529:        docsSubMgtTcpUdpDstPort     InetPortNumber,
 530:        docsSubMgtTcpFlagValues     BITS,
 531:        docsSubMgtTcpFlagMask       BITS,
 532:        docsSubMgtTcpUdpStatus      RowStatus
 533:        }
 534: 
 535:    docsSubMgtTcpUdpSrcPort OBJECT-TYPE
 536:        SYNTAX  InetPortNumber
 537:        MAX-ACCESS read-create
 538:        STATUS  current
 539:        DESCRIPTION
 540:            "The source port to match.  Zero matches any value in the
 541:        TCP or UDP source port field."
 542:        DEFVAL { 0 }
 543:        ::= { docsSubMgtTcpUdpFilterEntry 1 }
 544: 
 545:    docsSubMgtTcpUdpDstPort OBJECT-TYPE
 546:        SYNTAX  InetPortNumber
 547:        MAX-ACCESS read-create
 548:        STATUS  current
 549:        DESCRIPTION
 550:            "The destination port to match.  Zero matches any value in
 551:        the TCP or UDP destination port field."
 552:        DEFVAL { 0 }
 553:        ::= { docsSubMgtTcpUdpFilterEntry 2 }
 554: 
 555:    docsSubMgtTcpFlagValues OBJECT-TYPE
 556:        SYNTAX  BITS
 557:                    {
 558:                    urgent(0),
 559:                    ack(1),
 560:                    push(2),
 561:                    reset(3),
 562:                    syn(4),
 563:                    fin(5)
 564:                    }
 565:        MAX-ACCESS read-create
 566:        STATUS  current
 567:        DESCRIPTION
 568:            "The value of the flags of interest.  The value of this
 569:        object MUST always be a subset (proper or otherwise) of
 570:        docsSubMgtTcpFlagMask.  An attempt to violate this constraint
 571:        returns an inconsistentValue."
 572:        DEFVAL { {} }
 573:        ::= { docsSubMgtTcpUdpFilterEntry 3 }
 574: 
 575:    docsSubMgtTcpFlagMask OBJECT-TYPE
 576:        SYNTAX  BITS
 577:                    {
 578:                    urgent(0),
 579:                    ack(1),
 580:                    push(2),
 581:                    reset(3),
 582:                    syn(4),
 583:                    fin(5)
 584:                    }
 585:        MAX-ACCESS read-create
 586:        STATUS  current
 587:        DESCRIPTION
 588:            "This bit set indicates the flags of interest in the TCP
 589: 
 590:        header for the packet to be matched.  For example to match all
 591:        packets where the urgent bit is set, but that are not either syn
 592:        or fin, the value of docsSubMgtTcpFlagValues would be { urgent },
 593:        and the value of this object would be { urgent, syn, fin }"
 594:        DEFVAL { {} }
 595:        ::= { docsSubMgtTcpUdpFilterEntry 4 }
 596: 
 597:    docsSubMgtTcpUdpStatus OBJECT-TYPE
 598:        SYNTAX  RowStatus
 599:        MAX-ACCESS read-create
 600:        STATUS  current
 601:        DESCRIPTION
 602:            "Standard row object for this table.  Any object in the
 603:        conceptual row may be modified regardless of whether this row is
 604:        active or not. Since all writable objects in the entry have
 605:        DEFVALs, a row may be made active without specifying any other
 606:        values."
 607:        ::= { docsSubMgtTcpUdpFilterEntry 5 }
 608: 
 609:    docsSubMgtCmFilterTable OBJECT-TYPE
 610:        SYNTAX  SEQUENCE OF DocsSubMgtCmFilterEntry
 611:        MAX-ACCESS not-accessible
 612:        STATUS  current
 613:        DESCRIPTION
 614:            "Binds filter groups to modems. This table identifies for
 615:        each modem the upstream and downstream filter groups that apply
 616:        to packets for that modem. Zero is used as a distinguished value
 617:        to mean no filter group."
 618:        ::= { docsSubMgtObjects 8 }
 619: 
 620:    docsSubMgtCmFilterEntry OBJECT-TYPE
 621:        SYNTAX  DocsSubMgtCmFilterEntry
 622:        MAX-ACCESS not-accessible
 623:        STATUS  current
 624:        DESCRIPTION
 625:            "Binds a filter group to each direction of traffic for a
 626:        modem. The filters in this entry apply if
 627:        docsSubMgtCpeControlActive is true. The contents of this entry
 628:        are meaningless unless the corresponding docsIfCmtsCmStatusValue
 629:        is registrationComplete(6). The persistence of this row is
 630:        determined solely by the lifespan of the corresponding
 631:        docsIfCmtsCmStatusEntry (normally StorageType=volatile)."
 632:        AUGMENTS { docsIfCmtsCmStatusEntry }
 633:        ::= {docsSubMgtCmFilterTable 1 }
 634: 
 635:    DocsSubMgtCmFilterEntry ::= SEQUENCE
 636:        {
 637:        docsSubMgtSubFilterDownstream        Integer32,
 638:        docsSubMgtSubFilterUpstream          Integer32,
 639:        docsSubMgtCmFilterDownstream         Integer32,
 640:        docsSubMgtCmFilterUpstream           Integer32
 641:    }
 642:    docsSubMgtSubFilterDownstream OBJECT-TYPE
 643:        SYNTAX  Integer32(0..2147483647)
 644:        MAX-ACCESS read-write
 645:        STATUS  current
 646:        DESCRIPTION
 647:            "The filter group applied to traffic destined for subscribers
 648:        attached to the referenced CM.  This is set upon row creation to
 649:        either the default (docsSubMgtSubFilterDownDefault), or to the
 650:        value in the provisioning object sent upstream from the CM to the
 651:        CMTS during registration. The value of this object is a pointer
 652:        into the docsSubMgtPktFilterTable and refers to all filter rows
 653:        with matching docsSubMgtPktFilterGroup indices. If there are no
 654:        matching filter rows in that table, or if this object is set to
 655:        zero, no filtering is applied to traffic destined to hosts
 656:        attached to this CM."
 657:        ::= { docsSubMgtCmFilterEntry 1 }
 658: 
 659:    docsSubMgtSubFilterUpstream OBJECT-TYPE
 660:        SYNTAX  Integer32(0..2147483647)
 661:        MAX-ACCESS read-write
 662:        STATUS  current
 663:        DESCRIPTION
 664:            "The filter group applied to traffic originating from
 665:        subscribers attached to the referenced CM.  This is set upon row
 666:        creation to either the default (docsSubMgtSubFilterUpDefault), or
 667:        to the value in the provisioning object sent upstream from the CM
 668:        to the CMTS. The value of this object is a pointer into the
 669:        docsSubMgtPktFilterTable and refers to all filter rows with
 670:        matching docsSubMgtPktFilterGroup indices. If there are no
 671:        matching filter rows in that table, or if this object is set to
 672:        zero, no filtering is applied to traffic originating from
 673:        hosts attached to this CM."
 674:        ::= { docsSubMgtCmFilterEntry 2 }
 675: 
 676:    docsSubMgtCmFilterDownstream OBJECT-TYPE
 677:        SYNTAX  Integer32(0..2147483647)
 678:        MAX-ACCESS read-write
 679:        STATUS  current
 680:        DESCRIPTION
 681:            "The filter group applied to traffic destined for the
 682:        referenced CM itself.  This is set upon row creation to either
 683:        the default (docsSubMgtCmFilterDownDefault), or to the value in
 684:        the provisioning object sent upstream from the CM to the CMTS
 685:        during registration. The value of this object is a pointer into
 686:        the docsSubMgtPktFilterTable and refers to all filter rows with
 687:        matching docsSubMgtPktFilterGroup indices. If there are no
 688:        matching filter rows in that table, or if this object is set to
 689:        zero, no filtering is applied to traffic destined to this CM."
 690:        ::= { docsSubMgtCmFilterEntry 3 }
 691: 
 692:    docsSubMgtCmFilterUpstream OBJECT-TYPE
 693:        SYNTAX  Integer32(0..2147483647)
 694:        MAX-ACCESS read-write
 695:        STATUS  current
 696:        DESCRIPTION
 697:            "The filter group applied to traffic originating from the
 698:        referenced CM itself.  This is set upon row creation to either
 699:        the default (docsSubMgtCmFilterUpDefault), or to the value in
 700:        the provisioning object sent upstream from the CM to the CMTS.
 701:        The value of this object is a pointer into the
 702:        docsSubMgtPktFilterTable and refers to all filter rows with
 703:        matching docsSubMgtPktFilterGroup indices. If there are no
 704:        matching filter rows in that table, or if this object is set
 705:        to zero, no filtering is applied to traffic originating from
 706:        this CM."
 707:        ::= { docsSubMgtCmFilterEntry 4 }
 708: 
 709:    docsSubMgtSubFilterDownDefault OBJECT-TYPE
 710:        SYNTAX  Integer32(0..2147483647)
 711:        MAX-ACCESS read-write
 712:        STATUS  current
 713:        DESCRIPTION
 714:            "Upon a row creation in docsSubMgtCmFilterTable,
 715:        docsSubMgtSubFilterDownstream is set to this value if no
 716:        provisioning object is present to override it.  This object is
 717:        persistent across CMTS reboots.  Upon initial CMTS
 718:        initialization, this defaults to 0."
 719:        ::= { docsSubMgtObjects 9 }
 720: 
 721:    docsSubMgtSubFilterUpDefault OBJECT-TYPE
 722:        SYNTAX  Integer32(0..2147483647)
 723:        MAX-ACCESS read-write
 724:        STATUS  current
 725:        DESCRIPTION
 726:            "Upon a row creation in docsSubMgtCmFilterTable,
 727:        docsSubMgtSubFilterUpstream is set to this value if no
 728:        provisioning object is present to override it.  This object is
 729:        persistent across CMTS reboots.  Upon initial CMTS
 730:        initialization, this defaults to 0."
 731:        ::= { docsSubMgtObjects 10 }
 732: 
 733:    docsSubMgtCmFilterDownDefault OBJECT-TYPE
 734:        SYNTAX  Integer32(0..2147483647)
 735:        MAX-ACCESS read-write
 736:        STATUS  current
 737:        DESCRIPTION
 738:            "Upon a row creation in docsSubMgtCmFilterTable,
 739:        docsSubMgtCmFilterDownstream is set to this value if no
 740:        provisioning object is present to override it.  This object is
 741:        persistent across CMTS reboots.  Upon initial CMTS
 742:        initialization, this defaults to 0."
 743:        ::= { docsSubMgtObjects 11 }
 744: 
 745:    docsSubMgtCmFilterUpDefault OBJECT-TYPE
 746:        SYNTAX  Integer32(0..2147483647)
 747:        MAX-ACCESS read-write
 748:        STATUS  current
 749:        DESCRIPTION
 750:            "Upon a row creation in docsSubMgtCmFilterTable,
 751:        docsSubMgtCmFilterUpstream is set to this value if no
 752:        provisioning object is present to override it.  This object is
 753:        persistent across CMTS reboots.  Upon initial CMTS
 754:        initialization, this defaults to 0."
 755:        ::= { docsSubMgtObjects 12 }
 756: 
 757: 
 758:    docsSubMgtConformance OBJECT IDENTIFIER ::= { docsSubMgt 2 }
 759:    docsSubMgtCompliances OBJECT IDENTIFIER ::=
 760:                                            { docsSubMgtConformance 1 }
 761:    docsSubMgtGroups OBJECT IDENTIFIER      ::=
 762:                                            { docsSubMgtConformance 2 }
 763: 
 764:    docsSubMgtBasicCompliance MODULE-COMPLIANCE
 765:        STATUS      current
 766:        DESCRIPTION
 767:            "The compliance statement for CMTS devices that implement
 768:        CMTS centric subscriber management."
 769: 
 770:    MODULE
 771: 
 772:    MANDATORY-GROUPS {
 773:            docsSubMgtGroup
 774:            }
 775: 
 776:    OBJECT docsSubMgtCpeControlMaxCpeIp
 777:        SYNTAX Integer32(0..16)
 778:        DESCRIPTION
 779:            "An implementation is only required to support up to
 780:             sixteen addresses per modem."
 781: 
 782:    OBJECT docsSubMgtCpeMaxIpDefault
 783:        SYNTAX Integer32(0..16)
 784:        DESCRIPTION
 785:            "An implementation is only required to support up to
 786:             sixteen addresses per modem."
 787: 
 788:    OBJECT docsSubMgtCpeIpAddressType
 789:        SYNTAX InetAddressType { ipv4(1) }
 790:        DESCRIPTION
 791:            "An implementation is only required to support IPv4
 792:             addresses."
 793: 
 794:    OBJECT docsSubMgtCpeIpAddr
 795:        SYNTAX  InetAddress (SIZE(4))
 796:        DESCRIPTION
 797:            "An implementation is only required to support IPv4
 798:             addresses."
 799: 
 800:    OBJECT docsSubMgtPktFilterAddrType
 801:        SYNTAX InetAddressType { ipv4(1) }
 802:        DESCRIPTION
 803:            "An implementation is only required to support IPv4
 804:             addresses."
 805: 
 806:    OBJECT docsSubMgtPktFilterSrcAddr
 807:        SYNTAX InetAddress (SIZE(4))
 808:        DESCRIPTION
 809:            "An implementation is only required to support IPv4
 810:             addresses."
 811: 
 812:    OBJECT docsSubMgtPktFilterSrcMask
 813:        SYNTAX InetAddressPrefixLength(0..32)
 814:        DESCRIPTION
 815:            "An implementation is only required to support IPv4
 816:             addresses."
 817: 
 818:    OBJECT docsSubMgtPktFilterDstAddr
 819:        SYNTAX InetAddress (SIZE(4))
 820:        DESCRIPTION
 821:            "An implementation is only required to support IPv4
 822:             addresses."
 823: 
 824:    OBJECT docsSubMgtPktFilterDstMask
 825:        SYNTAX InetAddressPrefixLength(0..32)
 826:        DESCRIPTION
 827:            "An implementation is only required to support IPv4
 828:             addresses."
 829: 
 830:    OBJECT docsSubMgtPktFilterStorageType
 831:        SYNTAX StorageType { nonVolatile(3) }
 832:        DESCRIPTION
 833:            "An implementation is only required to support nonvolatile
 834:             storage of filter entries."
 835: 
 836:    OBJECT docsSubMgtSubFilterDownstream
 837:        SYNTAX  Integer32(0..30)
 838:        DESCRIPTION
 839:            "An implementation is only required to support thirty
 840:        filter groups."
 841: 
 842:    OBJECT docsSubMgtSubFilterUpstream
 843:        SYNTAX  Integer32(0..30)
 844:        DESCRIPTION
 845:            "An implementation is only required to support thirty
 846:        filter groups."
 847: 
 848:    OBJECT docsSubMgtCmFilterDownstream
 849:        SYNTAX  Integer32(0..30)
 850:        DESCRIPTION
 851:            "An implementation is only required to support thirty
 852:        filter groups."
 853: 
 854:    OBJECT docsSubMgtCmFilterUpstream
 855:        SYNTAX  Integer32(0..30)
 856:        DESCRIPTION
 857:            "An implementation is only required to support thirty
 858:        filter groups."
 859: 
 860:    OBJECT docsSubMgtSubFilterDownDefault
 861:        SYNTAX  Integer32(0..30)
 862:        DESCRIPTION
 863:            "An implementation is only required to support thirty
 864:        filter groups."
 865: 
 866:    OBJECT docsSubMgtSubFilterUpDefault
 867:        SYNTAX  Integer32(0..30)
 868:        DESCRIPTION
 869:            "An implementation is only required to support thirty
 870:        filter groups."
 871: 
 872:    OBJECT docsSubMgtCmFilterDownDefault
 873:        SYNTAX  Integer32(0..30)
 874:        DESCRIPTION
 875:            "An implementation is only required to support thirty
 876:        filter groups."
 877: 
 878:    OBJECT docsSubMgtCmFilterUpDefault
 879:        SYNTAX  Integer32(0..30)
 880:        DESCRIPTION
 881:            "An implementation is only required to support thirty
 882:        filter groups."
 883: 
 884:            ::= { docsSubMgtCompliances 1 }
 885: 
 886:    docsSubMgtGroup OBJECT-GROUP
 887:            OBJECTS {
 888:                docsSubMgtCpeControlMaxCpeIp,
 889:                docsSubMgtCpeControlActive,
 890:                docsSubMgtCpeControlLearnable,
 891:                docsSubMgtCpeControlReset,
 892:                docsSubMgtCpeControlLastReset,
 893:                docsSubMgtCpeMaxIpDefault,
 894:                docsSubMgtCpeActiveDefault,
 895:                docsSubMgtCpeLearnableDefault,
 896:                docsSubMgtCpeIpAddressType,
 897:                docsSubMgtCpeIpAddr,
 898:                docsSubMgtCpeIpLearned,
 899:                docsSubMgtPktFilterAddrType,
 900:                docsSubMgtPktFilterSrcAddr,
 901:                docsSubMgtPktFilterSrcMask,
 902:                docsSubMgtPktFilterDstAddr,
 903:                docsSubMgtPktFilterDstMask,
 904:                docsSubMgtPktFilterUlp,
 905:                docsSubMgtPktFilterTosValue,
 906:                docsSubMgtPktFilterTosMask,
 907:                docsSubMgtPktFilterAction,
 908:                docsSubMgtPktFilterMatches,
 909:                docsSubMgtPktFilterStatus,
 910:                docsSubMgtPktFilterStorageType,
 911:                docsSubMgtTcpUdpSrcPort,
 912:                docsSubMgtTcpUdpDstPort,
 913:                docsSubMgtTcpFlagValues,
 914:                docsSubMgtTcpFlagMask,
 915:                docsSubMgtTcpUdpStatus,
 916:                docsSubMgtSubFilterDownstream,
 917:                docsSubMgtSubFilterUpstream,
 918:                docsSubMgtCmFilterDownstream,
 919:                docsSubMgtCmFilterUpstream,
 920:                docsSubMgtSubFilterDownDefault,
 921:                docsSubMgtSubFilterUpDefault,
 922:                docsSubMgtCmFilterDownDefault,
 923:                docsSubMgtCmFilterUpDefault
 924:                }
 925:                STATUS      current
 926:                DESCRIPTION
 927:                    "The objects use to managed host-based cable modems
 928:                    via a set of CMTS enforced controls."
 929:                ::= {  docsSubMgtGroups 1 }
 930: 
 931:    END
 932: 
 933: -- 
 934: --    Copyright (C) The Internet Society (2001). All Rights Reserved.
 935: -- 
 936: -- 
 937: --    This document and translations of it may be copied and furnished to
 938: --    others, and derivative works that comment on or otherwise explain it
 939: --    or assist in its implementation may be prepared, copied, published
 940: --    and distributed, in whole or in part, without restriction of any
 941: --    kind, provided that the above copyright notice and this paragraph are
 942: --    included on all such copies and derivative works.  However, this
 943: --    document itself may not be modified in any way, such as by removing
 944: --    the copyright notice or references to the Internet Society or other
 945: --    Internet organizations, except as needed for the  purpose of
 946: --    developing Internet standards in which case the procedures for
 947: --    copyrights defined in the Internet Standards process must be
 948: --    followed, or as required to translate it into languages other than
 949: --    English.
 950: -- 
 951: --    The limited permissions granted above are perpetual and will not be
 952: --    revoked by the Internet Society or its successors or assigns.
 953: -- 
 954: -- 
 955: --    This document and the information contained herein is provided on an
 956: --    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
 957: --    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
 958: --    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
 959: --    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
 960: --    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
 961: -- 
 962: