TOC 
ANCPM. Rohit
Internet-DraftA. Aniruddha
Intended status: InformationalCisco Systems
Expires: June 3, 2011A. Karmakar
 Cisco Systems International Sarl
 November 30, 2010


ANCP MIB module for NAS
draft-rohit-ancp-nas-mib-02

Abstract

This memo defines a portion of the Management Information Base (MIB) for managing NAS (Network Access Server) that are using Access Node Control Protocol (ANCP).

Status of this Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as “work in progress.”

This Internet-Draft will expire on June 3, 2011.

Copyright Notice

Copyright (c) 2010 IETF Trust and the persons identified as the document authors. All rights reserved.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.



Table of Contents

1.  Introduction
2.  Conventions
3.  Overview
4.  Structure of the MIB Module
    4.1.  Textual Conventions
    4.2.  The ANCP NAS MIB Module Subtree
    4.3.  The Notifications Subtree
    4.4.  The Table Structures
5.  Relationship With Other MIB Modules
    5.1.  MIB modules required for IMPORTS
6.  ANCP MIB Definitions for the Network Access Server
7.  Security Considerations
8.  IANA Considerations
9.  Acknowledgements
10.  References
    10.1.  Normative References
    10.2.  Informative References
§  Authors' Addresses




 TOC 

1.  Introduction

This memo defines a portion of the Management Information Base (MIB) for managing Network Access Servers (NAS) that are using Access Node Control Protocol defined in [ANCPPR] (Wadhwa, S., Moisand, J., Subramanian, S., Haag, T., Voigt, N., and R. Maglione, “Protocol for Access Node Control Mechanism in Broadband Networks,” July 2009.)



 TOC 

2.  Conventions

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] (Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” March 1997.).



 TOC 

3.  Overview

In [ANCPFW] (Ooghe, S., Voigt, N., Platnic, M., Haag, T., and S. Wadhwa, “Framework and Requirements for an Access Node Control Mechanism in Broadband Multi-Service Networks,” October 2009.), the framework for the Access Node Control Protocol (ANCP) is described. It defines 2 network entities, the Access Node (AN) and the Network Access Server (NAS), between which ANCP sessions are established. The detailed protocol specification of ANCP is described in [ANCPPR] (Wadhwa, S., Moisand, J., Subramanian, S., Haag, T., Voigt, N., and R. Maglione, “Protocol for Access Node Control Mechanism in Broadband Networks,” July 2009.). This document specifies a MIB module for a Network Access Server that supports ANCP.

Note: the current MIB definition is specific for [ANCPPR] (Wadhwa, S., Moisand, J., Subramanian, S., Haag, T., Voigt, N., and R. Maglione, “Protocol for Access Node Control Mechanism in Broadband Networks,” July 2009.) If [ANCPPR] (Wadhwa, S., Moisand, J., Subramanian, S., Haag, T., Voigt, N., and R. Maglione, “Protocol for Access Node Control Mechanism in Broadband Networks,” July 2009.) gets updated later, then the MIB definition in this document will also follow these changes.



 TOC 

4.  Structure of the MIB Module



 TOC 

4.1.  Textual Conventions

The following new textual conventions are introduced: AncpSessionState, AncpSessionCapabilities, AncpDslLineState, and AncpDslLineType.



 TOC 

4.2.  The ANCP NAS MIB Module Subtree

This document defines mib modules ANCP-NAS-MIB under mib-2.



 TOC 

4.3.  The Notifications Subtree

Notifications are defined to inform the management station about state changes of ANCP sessions and ANCP ports. The notification ancpNasPortUp is to inform the management station when a ANCP Port-Up message is received, and ancpNasPortDown is to inform when a ANCP Port-Down message is received. The notification ancpNasSessionUp is to inform when a session comes up and ancpNasSessionDown to inform session going down.

To enable and disable the generation of these notifications, attributes ancpNasPortStatusNotifEnable and ancpNasSessionNotifEnable are defined. The attribute ancpNasPortStatusNotifEnable controls the generation of ancpNasPortUp and ancpNasPortDown, and ancpNasPortStatusNotifEnable controls the generation of ancpNasSessionUp and ancpNasSessionDown.



 TOC 

4.4.  The Table Structures

The ANCP MIB module for the NAS has the following tables:

Following groups are defined:



 TOC 

5.  Relationship With Other MIB Modules

ANCP NAS MIB module uses ifIndex (defined in ifTable of IF-MIB [RFC2863] (McCloghrie, K. and F. Kastenholz, “The Interfaces Group MIB,” June 2000.)) to index ancpNasIfConfigTable.



 TOC 

5.1.  MIB modules required for IMPORTS

The ANCP MIB module for Network Access Server requires following MIB modules for IMPORTS:



 TOC 

6.  ANCP MIB Definitions for the Network Access Server

ANCP-NAS-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    Unsigned32,
    NOTIFICATION-TYPE,
    mib-2
         FROM SNMPv2-SMI                            -- [RFC2578]
    TEXTUAL-CONVENTION,
    MacAddress,
    TruthValue
         FROM SNMPv2-TC                             -- [RFC2579]
    SnmpAdminString
         FROM SNMP-FRAMEWORK-MIB                    -- [RFC3411]
    MODULE-COMPLIANCE,
    OBJECT-GROUP,
    NOTIFICATION-GROUP
         FROM SNMPv2-CONF                           -- [RFC2580]
    InterfaceIndex,
    ifIndex
         FROM IF-MIB                                -- [RFC2863]
    InetAddressType,
    InetAddress,
    InetPortNumber
         FROM INET-ADDRESS-MIB                      -- [RFC4001]
    GsmpNameType
         FROM GSMP-MIB;                             -- [RFC3295]

ancpNasMIB MODULE-IDENTITY
    LAST-UPDATED "201011300000Z"
    ORGANIZATION "Cisco"
    CONTACT-INFO
        "
                  Rohit. M
                  Cisco Systems
          Postal: Cessna Business Park
                  Bangalore, Karnataka  560 103
                  India
          Phone:  +91 80 4426 0713
          Email:  rrohit@cisco.com

                  Anirban Karmakar
                  Cisco Systems International Sarl
          Postal: Ecole polytechnique federale de Lausanne
                  Quartier de l'Innovation batiment E
                  Ecublens, Vaud 1015
                  Switzerland
          Phone:  +41 21 694 3824
          Email:  akarmaka@cisco.com

                  Aniruddha. A
                  Cisco Systems
          Postal: Cessna Business Park
                  Bangalore, Karnataka  560 103
                  India
          Phone:  +91 80 4426 1649
          Email:  anira@cisco.com
        "
    DESCRIPTION
          "This MIB module defines the managed objects that support
           the monitoring and configuration of ANCP from the
           Network Access Server (NAS) perspective.

           Definition of terms and acronyms:

                NAS    :  Network Access Server

                AN     :  Access Node

                ANCP   :  Access Node Control Protocol.
          "

     REVISION     "201011300000Z"  -- 30th Nov 2010
     DESCRIPTION
             "ANCP NAS MIB Module version 02."
    ::= { mib-2 xxx }               -- To be assigned

AncpSessionState ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
          "A value that represents the state of an ANCP TCP session.

           estab(1)    Represents the state where state synchronization
                       is achieved across a link.
           synrcvd(2)  Represents the state where an endpoint received a
                       SYN from its peer.
           synsent(3)  Represents the state where an endpoint has sent a
                       SYN message to its peer.
          "
    SYNTAX INTEGER {
        estab(1),
        synrcvd(2),
        synsent(3)
    }

AncpSessionCapabilities ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
          "A value that represents ANCP capabilities that could be
           supported on a session after capability negotiation.

           dslTopologyDiscovery(0)
                         Represents the support of Port-Up and
                         Port-Down messages to receive the DSL line
                         parameters from AN.

           dslLineConfiguration(1)
                         Represents the support of extensions to
                         Port Management message to convey service
                         attributes of DSL lines to AN.

           mcastNasInitiatedReplication(2)
                         Represents the support of a mode of operation
                         where IGMP/MLD requests are terminated at the
                         NAS, or to allow NAS to respond to multicast
                         replication requests.

           dslLineTest(3)
                         Represents the support of extensions to Port
                         Management message to test end-to-end loopback.

           mcastCommittedBandwidthReporting(4)
                         Represents the support in NAS to know the
                         amount of multicast bandwidth committed to
                         each access line.

           mcastConditionalAccessWhiteBlack(5)
                         Represents the support for named multicast
                         service profiles containing White and Black
                         lists on the AN.

           mcastConditionalAccessGrey(6)
                         Represents the support for named multicast
                         service profiles containing Grey lists on
                         the AN.

           mcastBandwidthDelegation(7)
                         Represents the support in NAS to provision an
                         initial amount of delegated multicast bandwidth
                         for each access line.
           "
    SYNTAX BITS {
        dslTopologyDiscovery(0),
        dslLineConfiguration(1),
        mcastNasInitiatedReplication(2),
        dslLineTest(3),
        mcastCommittedBandwidthReporting(4),
        mcastConditionalAccessWhiteBlack(5),
        mcastConditionalAccessGrey(6),
        mcastBandwidthDelegation(7),
    }

AncpDslLineState ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
          "A value that represents the DSL line state of an AN port.

           unknown(0)   DSL line state is not known to NAS.
           showtime(1)  DSL line is up and ready
           idle(2)      DSL line is idle (not willing to accept
                        connections)
           silent(3)    DSL line is in training state (no traffic can
                        flow until a steady state is reached)
           "
    SYNTAX INTEGER {
        unknown(0),
        showtime(1),
        idle(2),
        silent(3)
    }

AncpDslLineType ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
          "A value that represents a DSL line type of a port on the AN.

           unknown(0)      An unknown DSL line type
           adsl1(1)        Asymmetric Digital Subscriber Line
           adsl2(2)        Asymmetric DSL with downstream up to 12Mbps
           adsl2Plus(3)    Asymmetric DSL with double the downstream of
                           ADSL2
           vdsl1(4)        Very High bit rate DSL
           vdsl2(5)        Very High bit rate DSL with profiles
           sdsl(6)         Symmetric DSL
          "
    SYNTAX INTEGER {
        unknown(0),
        adsl1(1),
        adsl2(2),
        adsl2Plus(3),
        vdsl1(4),
        vdsl2(5),
        sdsl(6)
    }

ancpNasNotifications      OBJECT IDENTIFIER ::= { ancpNasMIB 0 }
ancpNasObjects            OBJECT IDENTIFIER ::= { ancpNasMIB 1 }
ancpNasConformance        OBJECT IDENTIFIER ::= { ancpNasMIB 2 }

ancpNasConfiguration      OBJECT IDENTIFIER ::= { ancpNasObjects 1 }
ancpNasInformation        OBJECT IDENTIFIER ::= { ancpNasObjects 2 }
ancpNasNotifControl       OBJECT IDENTIFIER ::= { ancpNasObjects 3 }


--
-- Objects
--
ancpNasAdjacencyTimer OBJECT-TYPE
     SYNTAX Unsigned32
     MAX-ACCESS read-write
     STATUS current
     DESCRIPTION
           "Timer for the ANCP keepalives (SYNs).  The default timer
            value is 100 milliseconds (10 seconds). ANCP connection will
            be lost if 3 successive keepalives are lost."
     DEFVAL          { 100 }
     ::= { ancpNasConfiguration 1 }

ancpTrafficShaperFactor OBJECT-TYPE
     SYNTAX Unsigned32
     MAX-ACCESS read-write
     STATUS current
     DESCRIPTION
           "Shaper factor associated with the downstream rate.
            i.e. the downstream rate is multiplied by this value."
     DEFVAL          { 0 }
     ::= { ancpNasConfiguration 2 }

ancpNasIfConfigTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF  AncpNasIfConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
          "This table provides configuration and monitoring of
           the interface specific ANCP parameters.

           This table has a sparse depedant relationship on
           the ifTable, containing a row for each ifEntry
           which can be controlled by ANCP."
    ::= { ancpNasConfiguration 3 }

ancpNasIfConfigEntry OBJECT-TYPE
    SYNTAX      AncpNasIfConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
          "This entry represents an interface, which can be
           controlled by ANCP. When such an interface is deleted
           from the ifTable, the corresponding row in this table
           has to be removed by the agent."
    INDEX { ifIndex }
    ::= { ancpNasIfConfigTable 1 }

AncpNasIfConfigEntry  ::= SEQUENCE {
    ancpNasIfEnable          TruthValue,
    ancpNasIfNeighbourName   SnmpAdminString,
    ancpNasIfID              SnmpAdminString,
    ancpNasIfClientID        SnmpAdminString
}

ancpNasIfEnable OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
          "Enable ANCP on the interface specified by the ifIndex,
           This may involve the following:
            - To start an ANCP message handler process if it weren't
              already started and
            - Listen on the TCP port 6068."
    ::= { ancpNasIfConfigEntry 1 }

ancpNasIfNeighbourName OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
          "A string to identify the AN on NAS. This can be the
           hostname of the AN."
    ::= { ancpNasIfConfigEntry 2 }

ancpNasIfID OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
          "A string to uniquely identify the AN, this can be the
           IP address of the client end (AN) of the ANCP session
           or the MAC address associated with the client side IP."
    ::= { ancpNasIfConfigEntry 3 }

ancpNasIfClientID OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
          "The client-ID is the access-loop circuit ID of the port
           In the case of ATM based local loop, the string will be
           of the form:
             Access-Node-Identifier atm slot/port:vpi.vci
           In case of Ethernet based (and tagged) local loop, the
           string will be of the form:
             Access-Node-Identifier eth slot/port[:vlan-id] "
    ::= { ancpNasIfConfigEntry 4 }

ancpNasCapabilities OBJECT-TYPE
    SYNTAX AncpSessionCapabilities
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
          "Capabilities supported by the NAS. Per session
           capabilities may differ after the negotiation with peer."
    ::= { ancpNasInformation 1 }

ancpNasSessionTable OBJECT-TYPE
    SYNTAX SEQUENCE OF AncpNasSessionEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
          "The ANCP TCP sessions on the NAS.
           NAS listens for ANCP connections on the TCP port 6068, the
           session is initiated from the AN."
    ::= { ancpNasInformation 2 }

ancpNasSessionEntry OBJECT-TYPE
    SYNTAX AncpNasSessionEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
          "An entry for a specific ANCP session.
           A row in this table is created whenever an ANCP session
           request from the AN results in a ANCP session creation
           on the NAS. A row in this table is deleted whenever
           the corresponding ANCP session is terminated."
    INDEX { ancpNasSessionID }
    ::= { ancpNasSessionTable 1 }

AncpNasSessionEntry ::= SEQUENCE {
    ancpNasSessionID                 Unsigned32,
    ancpNasSessionState              AncpSessionState,
    ancpNasSessionCapabilities       AncpSessionCapabilities,
    ancpNasSessionLocalIPType        InetAddressType,
    ancpNasSessionLocalIP            InetAddress,
    ancpNasSessionRemoteIPType       InetAddressType,
    ancpNasSessionRemoteIP           InetAddress,
    ancpNasSessionLocalPort          InetPortNumber,
    ancpNasSessionRemotePort         InetPortNumber,
    ancpNasSessionLocalMAC           MacAddress,
    ancpNasSessionRemoteMAC          MacAddress,
    ancpNasSessionIfIndex            InterfaceIndex,
    ancpNasSessionSenderName         GsmpNameType,
    ancpNasSessionReceiverName       GsmpNameType,
    ancpNasSessionSenderInstance     Unsigned32,
    ancpNasSessionReceiverInstance   Unsigned32
}

ancpNasSessionID  OBJECT-TYPE
    SYNTAX Unsigned32 (1..2147483647)
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
          "Each of ANCP session occupies a row in the
           ancpNasSessionTable.  This object is the row selector."
    ::= { ancpNasSessionEntry 1 }

ancpNasSessionState OBJECT-TYPE
    SYNTAX AncpSessionState
    MAX-ACCESS  read-only
    STATUS current
    DESCRIPTION
          "The current state of this ANCP session."
    ::= { ancpNasSessionEntry 2 }

ancpNasSessionCapabilities OBJECT-TYPE
    SYNTAX AncpSessionCapabilities
    MAX-ACCESS  read-only
    STATUS current
    DESCRIPTION
          "The current capability negotiation value for this
           ANCP session."
    ::= { ancpNasSessionEntry 3 }

ancpNasSessionLocalIPType OBJECT-TYPE
    SYNTAX InetAddressType
    MAX-ACCESS  read-only
    STATUS current
    DESCRIPTION
          "The physical / virtual IP address type on the NAS where
           this ANCP session terminates."
    ::= { ancpNasSessionEntry 4 }

ancpNasSessionLocalIP OBJECT-TYPE
    SYNTAX InetAddress
    MAX-ACCESS  read-only
    STATUS current
    DESCRIPTION
          "The physical / virtual IP address on the NAS where this
           ANCP session terminates."
    ::= { ancpNasSessionEntry 5 }

ancpNasSessionRemoteIPType OBJECT-TYPE
    SYNTAX InetAddressType
    MAX-ACCESS  read-only
    STATUS current
    DESCRIPTION
          "Remote IP address Type of this ANCP session, i.e, on the AN."
    ::= { ancpNasSessionEntry 6 }

ancpNasSessionRemoteIP OBJECT-TYPE
    SYNTAX InetAddress
    MAX-ACCESS  read-only
    STATUS current
    DESCRIPTION
          "Remote IP address of this ANCP session, i.e, on the AN."
    ::= { ancpNasSessionEntry 7 }

ancpNasSessionLocalPort OBJECT-TYPE
    SYNTAX InetPortNumber
    MAX-ACCESS  read-only
    STATUS current
    DESCRIPTION
          "The NAS TCP port where this ANCP session is established."
    ::= { ancpNasSessionEntry 8 }

ancpNasSessionRemotePort OBJECT-TYPE
    SYNTAX InetPortNumber
    MAX-ACCESS  read-only
    STATUS current
    DESCRIPTION
          "The remote port (AN) where this ANCP session is established"
    ::= { ancpNasSessionEntry 9 }

ancpNasSessionLocalMAC OBJECT-TYPE
    SYNTAX MacAddress
    MAX-ACCESS  read-only
    STATUS current
    DESCRIPTION
          "The Physical / virtual MAC associated with the local IP
           on the NAS for this ANCP session."
    ::= { ancpNasSessionEntry 10 }

ancpNasSessionRemoteMAC OBJECT-TYPE
    SYNTAX MacAddress
    MAX-ACCESS  read-only
    STATUS current
    DESCRIPTION
          "The AN MAC assocaited with this ANCP session."
    ::= { ancpNasSessionEntry 11 }

ancpNasSessionIfIndex OBJECT-TYPE
    SYNTAX InterfaceIndex
    MAX-ACCESS  read-only
    STATUS current
    DESCRIPTION
          "Interface associated with this ANCP session."
    ::= { ancpNasSessionEntry 12 }

ancpNasSessionSenderName OBJECT-TYPE
    SYNTAX GsmpNameType
    MAX-ACCESS  read-only
    STATUS current
    DESCRIPTION
         "This object represents the name of the entity sending the
          message for this ANCP session. The Sender Name is a 48-bit
          value that is unique within the operational context of the
          device.  A 48-bit IEEE 802 MAC address, if available, may be
          used for the Sender Name."
    ::= { ancpNasSessionEntry 13 }

ancpNasSessionReceiverName OBJECT-TYPE
    SYNTAX GsmpNameType
    MAX-ACCESS  read-only
    STATUS current
    DESCRIPTION
          "This object represents the name of the entity that the
           sender of the message believes is at the far end of the
           link for this ANCP session.  If the sender of the message
           does not know the name of the entity at the far end of the
           link, this object's value will be empty."
    ::= { ancpNasSessionEntry 14 }

ancpNasSessionSenderInstance OBJECT-TYPE
    SYNTAX Unsigned32 (1..16777215)
    MAX-ACCESS  read-only
    STATUS current
    DESCRIPTION
          "This object represents the sender's instance number for the
           link for this ANCP session. It is used to detect when the
           link comes back up after going down or when the identity of
           the entity at the other end of the link changes.

           The instance number is a 24-bit number that is guaranteed to
           be unique within the recent past and to change when the link
           or node comes back up after going down (0 is not a valid
           instance number)."
    ::= { ancpNasSessionEntry 15 }

ancpNasSessionReceiverInstance OBJECT-TYPE
    SYNTAX Unsigned32 (0..16777215)
    MAX-ACCESS  read-only
    STATUS current
    DESCRIPTION
          "This object represents the instance number for the link of
           the entity that the sender of the message believes is at the
           far end of the link for this ANCP session.

           If the sender of the message does not know the current
           instance number at the far end of the link, this object's
           value will be zero."
    ::= { ancpNasSessionEntry 16 }

-- End of session information

ancpNasPortTable OBJECT-TYPE
    SYNTAX SEQUENCE OF AncpNasPortEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
          "This table list the ANCP ports known to this NAS
           (configured or learnt via event messages)."
     ::= { ancpNasInformation 3 }


ancpNasPortEntry OBJECT-TYPE
    SYNTAX AncpNasPortEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
          "An entry for each ANCP port.
           Each entry consists of Port name and DSL Line attributes
           of the port. DSL line attributes are sent as sub-TLVs in
           the event message, and some of them are optional, as
           indicated in the Objects's description."
    INDEX { ancpNasPortName }
    ::= { ancpNasPortTable 1 }

AncpNasPortEntry ::= SEQUENCE {
    ancpNasPortName                                   SnmpAdminString,
    ancpNasPortDSLType                                AncpDslLineType,
    ancpNasPortDSLState                               AncpDslLineState,
    ancpNasPortDSLParamActualNetDataRateUp            Unsigned32,
    ancpNasPortDSLParamActualNetDataRateDown          Unsigned32,
    ancpNasPortDSLParamMinNetDataRateUp               Unsigned32,
    ancpNasPortDSLParamMinNetDataRateDown             Unsigned32,
    ancpNasPortDSLParamAttainableNetDataRateUp        Unsigned32,
    ancpNasPortDSLParamAttainableNetDataRateDown      Unsigned32,
    ancpNasPortDSLParamMaxNetDataRateUp               Unsigned32,
    ancpNasPortDSLParamMaxNetDataRateDown             Unsigned32,
    ancpNasPortDSLParamMinNetLowPowerDataRateUp       Unsigned32,
    ancpNasPortDSLParamMinNetLowPowerDataRateDown     Unsigned32,
    ancpNasPortDSLParamMaxInterleavingDelayUp         Unsigned32,
    ancpNasPortDSLParamActualInterleavingDelayUp      Unsigned32,
    ancpNasPortDSLParamMaxInterleavingDelayDown       Unsigned32,
    ancpNasPortDSLParamActualInterleavingDelayDown    Unsigned32
}

ancpNasPortName OBJECT-TYPE
    SYNTAX SnmpAdminString
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
          "The Access Loop Circuit ID (client-ID/port-ID) of the AN
           port. The format for this object is described in
           ancpNasIfClientID object."
    ::= { ancpNasPortEntry 1 }

ancpNasPortDSLType OBJECT-TYPE
    SYNTAX AncpDslLineType
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
          "DSL line Type for this port."
    ::= { ancpNasPortEntry 2 }

ancpNasPortDSLState OBJECT-TYPE
    SYNTAX AncpDslLineState
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
          "DSL line state for this port"
    ::= { ancpNasPortEntry 3 }

ancpNasPortDSLParamActualNetDataRateUp  OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
          "Actual upstream net data rate for this port."
    ::= { ancpNasPortEntry  4 }

ancpNasPortDSLParamActualNetDataRateDown  OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
          "Actual downstream net data rate for this port."
    ::= { ancpNasPortEntry  5 }

ancpNasPortDSLParamMinNetDataRateUp  OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
          "Minimum net data rate desired by the operator for this port.
           This object is an optional port attribute and should reflect
           zero value if not present."
    ::= { ancpNasPortEntry  6 }

ancpNasPortDSLParamMinNetDataRateDown  OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
          "Minimum net data rate desired by the operator for this port.
           This object is an optional port attribute and should reflect
           zero value if not present."
    ::= { ancpNasPortEntry  7 }

ancpNasPortDSLParamAttainableNetDataRateUp  OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
          "Maximum net upstream rate that can be attained for this port.
           This object is an optional port attribute and should reflect
           zero value if not present."
    ::= { ancpNasPortEntry  8 }

ancpNasPortDSLParamAttainableNetDataRateDown  OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
          "Maximum net downstream rate that can be attained for this
           port.  This object is an optional port attribute and should
           reflect zero value if not present."
    ::= { ancpNasPortEntry  9 }

ancpNasPortDSLParamMaxNetDataRateUp  OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
          "Maximum net data rate desired by the operator for this port.
           This object is an optional port attribute and should reflect
           zero value if not present."
    ::= { ancpNasPortEntry  10 }

ancpNasPortDSLParamMaxNetDataRateDown  OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
          "Maximum net data rate desired by the operator for this port.
           This object is an optional port attribute and should reflect
           zero value if not present."
    ::= { ancpNasPortEntry  11 }

ancpNasPortDSLParamMinNetLowPowerDataRateUp  OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
          "Minimum net data rate desired by the operator in low power
           state for this port.
           This object is an optional port attribute and should reflect
           zero value if not present."
    ::= { ancpNasPortEntry  12 }

ancpNasPortDSLParamMinNetLowPowerDataRateDown  OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
          "Minimum net data rate desired by the operator in low power
           state for this port.
           This object is an optional port attribute and should reflect
           zero value if not present."
    ::= { ancpNasPortEntry  13 }

ancpNasPortDSLParamMaxInterleavingDelayUp  OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
          "Maximum one way interleaving delay for this port.
           This object is an optional port attribute and should reflect
           zero value if not present."
    ::= { ancpNasPortEntry  14 }

ancpNasPortDSLParamActualInterleavingDelayUp  OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
          "Value corresponding to the interleaving setting for this port
           This object is an optional port attribute and should reflect
           zero value if not present."
    ::= { ancpNasPortEntry  15 }

ancpNasPortDSLParamMaxInterleavingDelayDown  OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
          "Maximum one way interleaving delay for this port.
           This object is an optional port attribute and should reflect
           zero value if not present."
    ::= { ancpNasPortEntry  16 }

ancpNasPortDSLParamActualInterleavingDelayDown  OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
          "Value corresponding to the interleaving setting for this port
           This object is an optional port attribute and should reflect
           zero value if not present."
    ::= { ancpNasPortEntry  17 }


-- Objects for enabling/disabling notifications

ancpNasPortStatusNotifEnable OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
          " This object specifies whether the device should generate
            notifications related to port admin status. "
    DEFVAL          { false }
    ::= { ancpNasNotifControl 1 }

ancpNasSessionNotifEnable OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
          " This object specifies whether the device should generate
            notifications related to ancp session status."
    DEFVAL          { false }
    ::= { ancpNasNotifControl 2 }


-- Notifications

ancpNasPortUp NOTIFICATION-TYPE
    OBJECTS {
              ancpNasPortDSLType,
              ancpNasPortDSLState,
              ancpNasPortDSLParamActualNetDataRateUp,
              ancpNasPortDSLParamActualNetDataRateDown
            }
    STATUS current
    DESCRIPTION
          " This notification is generated when NAS receives a Port-Up
            Event message for a known ANCP port (in ancpNasPortTable),
            and the value of ancpNasPortStatusNotifEnable is true."
    ::= { ancpNasNotifications 1 }

ancpNasPortDown NOTIFICATION-TYPE
    OBJECTS {
              ancpNasPortDSLType,
              ancpNasPortDSLState
            }
    STATUS current
    DESCRIPTION
          "This notification is generated when NAS receives a Port-Down
           Event message for a known ANCP port (in ancpNasPortTable),
           and the value of ancpNasPortStatusNotifEnable is true."
    ::= { ancpNasNotifications 2 }

ancpNasSessionUp NOTIFICATION-TYPE
     OBJECTS {
               ancpNasSessionState,
               ancpNasSessionCapabilities,
               ancpNasSessionLocalIPType,
               ancpNasSessionLocalIP,
               ancpNasSessionRemoteIPType,
               ancpNasSessionRemoteIP,
               ancpNasSessionLocalPort,
               ancpNasSessionRemotePort
     }
    STATUS current
    DESCRIPTION
          "This notification is generated when the ANCP session reaches
           'estab' state (as given by ancpNasSessionState) and the value
           of ancpNasSessionNotifEnable is true. "
    ::= { ancpNasNotifications 3 }

ancpNasSessionDown NOTIFICATION-TYPE
    OBJECTS {
               ancpNasSessionLocalIPType,
               ancpNasSessionLocalIP,
               ancpNasSessionRemoteIPType,
               ancpNasSessionRemoteIP,
               ancpNasSessionLocalPort,
               ancpNasSessionRemotePort
           }
    STATUS current
    DESCRIPTION
          "This notification is generated when a session is torn down
           and the value of ancpNasSessionNotifEnable is true. The
           session can be torn down either due to ANCP adjacency timer
           firing or underlying TCP closing the session (due to
           various reasons)."
    ::= { ancpNasNotifications 4 }

-- conformance statements

ancpNasCompliances      OBJECT IDENTIFIER ::= { ancpNasConformance 1 }
ancpNasGroups           OBJECT IDENTIFIER ::= { ancpNasConformance 2 }

ancpNasFullCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
          "The compliance statement for implementations of the
           ANCP-NAS-MIB.

           When this MIB is implemented with support for
           read-write, then such an implementation can claim
           full compliance.  Such devices can then be both
           monitored and configured with this MIB."

     MODULE      -- this module

     MANDATORY-GROUPS {
         ancpNasSessionGroup,
         ancpNasConfigGroup
     }

     GROUP       ancpNasPortGroup
     DESCRIPTION
               "This group is optional."

     GROUP       ancpNasNotifControlGroup
     DESCRIPTION
               "This group is optional."

     GROUP       ancpNasNotificationGroup
     DESCRIPTION
               "This group is optional."

    OBJECT  ancpNasSessionLocalIPType
    SYNTAX  InetAddressType { ipv4(1), ipv6(2) }
    DESCRIPTION
            "An implementation is required to support
             global IPv4 and/or IPv6 addresses, depending
             on its support for IPv4 and IPv6."

    OBJECT  ancpNasSessionLocalIP
    SYNTAX  InetAddress (SIZE(4|16))
    DESCRIPTION
            "An implementation is required to support
             global IPv4 and/or IPv6 addresses, depending
             on its support for IPv4 and IPv6."

    OBJECT  ancpNasSessionRemoteIPType
    SYNTAX  InetAddressType { ipv4(1), ipv6(2) }
    DESCRIPTION
            "An implementation is required to support
             global IPv4 and/or IPv6 addresses, depending
             on its support for IPv4 and IPv6."

    OBJECT  ancpNasSessionRemoteIP
    SYNTAX  InetAddress (SIZE(4|16))
    DESCRIPTION
            "An implementation is required to support
             global IPv4 and/or IPv6 addresses, depending
             on its support for IPv4 and IPv6."
     ::= { ancpNasCompliances 1 }

ancpNasReadOnlyCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
         "When this MIB is implemented without support for
          read-write (i.e., in read-only mode), then such an
          implementation can claim read-only compliance.
          Such a device can then be monitored but cannot be
          configured with this MIB."

     MODULE      -- this module

     MANDATORY-GROUPS {
         ancpNasSessionGroup,
         ancpNasConfigGroup
     }

     GROUP       ancpNasPortGroup
     DESCRIPTION
               "This group is optional."

     GROUP       ancpNasNotifControlGroup
     DESCRIPTION
               "This group is optional."

     GROUP       ancpNasNotificationGroup
     DESCRIPTION
               "This group is optional."

     OBJECT  ancpNasAdjacencyTimer
     SYNTAX  Unsigned32
     MIN-ACCESS   read-only
     DESCRIPTION
             "Write access is not required."

     OBJECT  ancpTrafficShaperFactor
     SYNTAX  Unsigned32
     MIN-ACCESS   read-only
     DESCRIPTION
             "Write access is not required."

     OBJECT  ancpNasIfEnable
     SYNTAX  TruthValue
     MIN-ACCESS   read-only
     DESCRIPTION
             "Write access is not required."

     OBJECT  ancpNasIfNeighbourName
     SYNTAX  SnmpAdminString
     MIN-ACCESS   read-only
     DESCRIPTION
             "Write access is not required."

     OBJECT  ancpNasIfID
     SYNTAX  SnmpAdminString
     MIN-ACCESS   read-only
     DESCRIPTION
             "Write access is not required."

     OBJECT  ancpNasIfClientID
     SYNTAX  SnmpAdminString
     MIN-ACCESS   read-only
     DESCRIPTION
           "Write access is not required."

    OBJECT  ancpNasSessionLocalIPType
    SYNTAX  InetAddressType
    DESCRIPTION
          "An implementation is required to support
           global IPv4 and/or IPv6 addresses, depending
           on its support for IPv4 and IPv6."

    OBJECT  ancpNasSessionLocalIP
    SYNTAX  InetAddress (SIZE(4|16))
    DESCRIPTION
          "An implementation is required to support
           global IPv4 and/or IPv6 addresses, depending
           on its support for IPv4 and IPv6."

    OBJECT  ancpNasSessionRemoteIPType
    SYNTAX  InetAddressType
    DESCRIPTION
          "An implementation is required to support
           global IPv4 and/or IPv6 addresses, depending
           on its support for IPv4 and IPv6."

    OBJECT  ancpNasSessionRemoteIP
    SYNTAX  InetAddress (SIZE(4|16))
    DESCRIPTION
          "An implementation is required to support
           global IPv4 and/or IPv6 addresses, depending
           on its support for IPv4 and IPv6."
     ::= { ancpNasCompliances 2 }

ancpNasSessionGroup    OBJECT-GROUP
    OBJECTS         {
                        ancpNasCapabilities,
                        ancpNasSessionState,
                        ancpNasSessionCapabilities,
                        ancpNasSessionLocalIPType,
                        ancpNasSessionLocalIP,
                        ancpNasSessionRemoteIPType,
                        ancpNasSessionRemoteIP,
                        ancpNasSessionLocalPort,
                        ancpNasSessionRemotePort,
                        ancpNasSessionLocalMAC,
                        ancpNasSessionRemoteMAC,
                        ancpNasSessionIfIndex,
                        ancpNasSessionSenderName,
                        ancpNasSessionReceiverName,
                        ancpNasSessionSenderInstance,
                        ancpNasSessionReceiverInstance
                    }
    STATUS          current
    DESCRIPTION
          "A collection of ANCP session specific objects."
    ::= { ancpNasGroups 1 }

ancpNasPortGroup    OBJECT-GROUP
    OBJECTS         {
                        ancpNasPortDSLType,
                        ancpNasPortDSLState,
                        ancpNasPortDSLParamActualNetDataRateUp,
                        ancpNasPortDSLParamActualNetDataRateDown,
                        ancpNasPortDSLParamMinNetDataRateUp,
                        ancpNasPortDSLParamMinNetDataRateDown,
                        ancpNasPortDSLParamAttainableNetDataRateUp,
                        ancpNasPortDSLParamAttainableNetDataRateDown,
                        ancpNasPortDSLParamMaxNetDataRateUp,
                        ancpNasPortDSLParamMaxNetDataRateDown,
                        ancpNasPortDSLParamMinNetLowPowerDataRateUp,
                        ancpNasPortDSLParamMinNetLowPowerDataRateDown,
                        ancpNasPortDSLParamMaxInterleavingDelayUp,
                        ancpNasPortDSLParamActualInterleavingDelayUp,
                        ancpNasPortDSLParamMaxInterleavingDelayDown,
                        ancpNasPortDSLParamActualInterleavingDelayDown
                    }
    STATUS          current
    DESCRIPTION
          "A collection of ANCP port specific objects."
    ::= { ancpNasGroups 2 }

ancpNasConfigGroup  OBJECT-GROUP
    OBJECTS         {
                        ancpNasAdjacencyTimer,
                        ancpTrafficShaperFactor,
                        ancpNasIfEnable,
                        ancpNasIfNeighbourName,
                        ancpNasIfID,
                        ancpNasIfClientID
                    }
    STATUS          current
    DESCRIPTION
          "A collection of configuration-related information
           required to support management of devices supporting
           ANCP."
    ::= { ancpNasGroups 3 }

ancpNasNotifControlGroup  OBJECT-GROUP
    OBJECTS         {
                        ancpNasPortStatusNotifEnable,
                        ancpNasSessionNotifEnable
                    }
    STATUS          current
    DESCRIPTION
          "A collection of ANCP notification control objects."
    ::= { ancpNasGroups 4 }

ancpNasNotificationGroup  NOTIFICATION-GROUP
    NOTIFICATIONS   {
                         ancpNasPortUp,
                         ancpNasPortDown,
                         ancpNasSessionUp,
                         ancpNasSessionDown
                    }
    STATUS          current
    DESCRIPTION
          "A collection of notifications generated by
           devices supporting this MIB."
    ::= { ancpNasGroups 5 }

END



 TOC 

7.  Security Considerations

Unauthorized access to the write-able objects could cause a denial of service and/or widespread network disturbance. Hence, the support for SET operations in a non-secure environment without proper protection can have a negative effect on network operations. These are the tables and objects and their sensitivity/vulnerability:

It is recommended that the implementers consider the security features as provided by the SNMPv3 framework (see [RFC3410] (Case, J., Mundy, R., Partain, D., and B. Stewart, “Introduction and Applicability Statements for Internet Standard Management Framework,” December 2002.) , section 8), including full support for the SNMPv3 cryptographic mechanisms (for authentication and privacy). Further, deployment of SNMP versions prior to SNMPv3 is NOT RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and to enable cryptographic security. It is then a customer/operator responsibility to ensure that the SNMP entity giving access to an instance of this MIB module is properly configured to give access to the objects only to those principals (users) that have legitimate rights to indeed GET or SET (change/create/delete) them.



 TOC 

8.  IANA Considerations

IANA is requested to assign OID (marked xxx) under mib-2 for ANCP-NAS-MIB.



 TOC 

9.  Acknowledgements



 TOC 

10.  References



 TOC 

10.1. Normative References

[ANCPPR] Wadhwa, S., Moisand, J., Subramanian, S., Haag, T., Voigt, N., and R. Maglione, “Protocol for Access Node Control Mechanism in Broadband Networks,” July 2009.
[RFC2119] Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” BCP 14, RFC 2119, March 1997 (TXT, HTML, XML).
[RFC2578] McCloghrie, K., Perkins, D., and J. Schoenwaelder, “Structure of Management Information Version 2 (SMIv2),” April 1999.
[RFC2579] McCloghrie, K., Perkins, D., and J. Schoenwaelder, “Textual Conventions for SMIv2,” April 1999.
[RFC2580] McCloghrie, K., Perkins, D., and J. Schoenwaelder, “Conformance Statements for SMIv2,” April 1999.
[RFC2863] McCloghrie, K. and F. Kastenholz, “The Interfaces Group MIB,” June 2000.
[RFC3295] Sjostrand, H., Buerkle, J., and B. Srinivasan, “Definitions of Managed Objects for the General Switch Management Protocol (GSMP),” June 2002.
[RFC4001] Daniele, M., Haberman, B., Routhier, S., and J. Schoenwaelder, “Textual Conventions for Internet Network Addresses,” February 2005.
[RFC4363] Levi, D. and D. Harrington, “Definitions of Managed Objects for Bridges with Traffic Classes, Multicast Filtering, and Virtual LAN Extensions,” January 2006.
[RFC4502] Waldbusser, S., “Remote Network Monitoring Management Information Base Version 2,” May 2006.


 TOC 

10.2. Informative References

[ANCPFW] Ooghe, S., Voigt, N., Platnic, M., Haag, T., and S. Wadhwa, “Framework and Requirements for an Access Node Control Mechanism in Broadband Multi-Service Networks,” October 2009.
[RFC3410] Case, J., Mundy, R., Partain, D., and B. Stewart, “Introduction and Applicability Statements for Internet Standard Management Framework,” December 2002.


 TOC 

Authors' Addresses

  Rohit. M
  Cisco Systems
  Cessna Business Park
  Kadubeesanahalli Village
  Varthur Hobli,
  Sarjapur Marathalli Outer Ring Road
  Bangalore, Karnataka 560 103
  India
Phone:  +91 80 4426 0713
Email:  rrohit@cisco.com
  
  Aniruddha. A
  Cisco Systems
  Cessna Business Park
  Kadubeesanahalli Village
  Varthur Hobli,
  Sarjapur Marathalli Outer Ring Road
  Bangalore, Karnataka 560 103
  India
Phone:  +91 80 4426 1649
Email:  anira@cisco.com
  
  Anirban Karmakar
  Cisco Systems International Sarl
  Ecole polytechnique federale de Lausanne
  Quartier de l'Innovation batiment E
  Ecublens, Vaud 1015
  Switzerland
Phone:  +41 21 694 3824
Email:  akarmaka@cisco.com