Softwire                                                         Y. Fu
Internet Draft                                                S. Jiang
Intended status: Standards Track          Huawei Technologies Co., Ltd
Expires: March 01, May 08, 2014                                          J. Dong
                                                               Y. Chen
                                                   Tsinghua University
                                                       August 28,
                                                      November 4, 2013

               DS-Lite Management Information Base (MIB)
                   draft-ietf-softwire-dslite-mib-03
                   draft-ietf-softwire-dslite-mib-04

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 March 01, May 08, 2014.

Copyright Notice

   Copyright (c) 2013 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.

Abstract

This memo defines a portion of the Management Information Base (MIB) for
using with network management protocols in the Internet community. In
particular, it defines managed objects for DS-Lite. Dual-Stack Lite (DS-Lite).

Table of Contents

   1. Introduction ................................................. 3
   2. The Internet-Standard Management Framework ................... 3
   3. Terminology .................................................. 3
   4. Relationship to the IF-MIB ................................... 3
   5. Difference from the IP tunnel MIB and NAT MIB ................ 3
   5. Relationship to the IF-MIB ................................... 5 4
   6. Structure of the MIB Module .................................. 5
      6.1. The Object Group ........................................ 5
         6.1.1. The dsliteTunnel Subtree ........................... 5
         6.1.2. The dsliteNAT Subtree .............................. 5
         6.1.3. The dsliteInfo Subtree ............................. 6 5
      6.2. The Notification Group .................................. 6 5
         6.2.1. The dsliteTrap Subtree ............................. 6
      6.3. The Conformance Group ................................... 6
   7. MIB modules required for IMPORTS ............................. 6
   8. Definitions .................................................. 6
   9. Extending this MIB for Gateway Initiated Dual-Stack Lite .....27
   10. IANA Considerations......................................... 27
   11. Considerations ......................................... 18
   10. Security Considerations .................................... 28
   12. 18
   11. References ................................................. 29
      12.1. 20
      11.1. Normative References .................................. 29
      12.2. 20
      11.2. Informative References ................................ 30 21
   Author's Addresses ............................................. 30 21

1. Introduction

   Dual-Stack Lite [RFC 6333] is a solution to offer both IPv4 and IPv6
   connectivity to customers crossing an IPv6 only infrastructure. One
   of its key components is an IPv4-over-IPv6 tunnel, which is used to
   provide IPv4 connection connectivity across a service provider's IPv6 network.
   Another key component is a carrier-grade IPv4-IPv4 NAT Network Address
   Translation (NAT) to share service provider IPv4 addresses among
   customers.

   This document defines a portion of the Management Information Base
   (MIB) for using with network management protocols in the Internet
   community. This MIB module may be used for configuration and
   monitoring the devices in the a Dual-Stack Lite scenario.
   This MIB also can be extended to the application for Gateway
   Initiated Dual-Stack Lite [RFC 6674].

2. The Internet-Standard Management Framework

   For a detailed overview of the documents that describe the current
   Internet-Standard Management Framework, please refer to section 7 of
   RFC 3410 [RFC3410].

   Managed objects are accessed via a virtual information store, termed
   the Management Information Base or MIB. MIB objects are generally
   accessed through the Simple Network Management Protocol (SNMP).

   Objects
   (SNMP).Objects in the MIB are defined using the mechanisms defined in
   the Structure of Management Information (SMI).  This memo specifies a
   MIB module that is compliant to the SMIv2, which is described in STD
   58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC
   2580 [RFC2580].

3. Terminology

   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 BCP 14, RFC2119
   [RFC2119].

4. Relationship to the IF-MIB

   The Interfaces MIB [RFC2863] defines generic managed objects for
   managing interfaces. Each logical interface (physical or virtual)has
   an ifEntry. Tunnels are handled by creating a logical interface
   (ifEntry) for each tunnel. Each DS-Lite tunnel also acts as a virtual
   interface, which has a corresponding entry in the IP Tunnel MIB and
   Interface MIB. Those corresponding entries are indexed by ifIndex.

   The ifOperStatus in ifTable is used to represent whether the
   DS-Lite tunnel function has been originated. The ifInUcastPkts
   defined in ifTable will represent the number of IPv4 packets that
   have been encapsulated into IPv6 packets sent to a B4. The
   ifOutUcastPkts defined in ifTable contains the number of IPv6 packets
   that can be decapsulated to IPv4 in the virtual interface. Also, the
   IF-MIB defines ifMtu for the MTU of this tunnel interface, so DS-Lite
   MIB does not need to define the MTU for the tunnel.

5. Difference from the IP tunnel MIB and NAT MIB

   The key technologies for DS-Lite are IP in IP (IPv4-in-IPv6) tunnel tunnels
   and NAT (IPv4 to IPv4 translation).

   Notes: According to the section 5.2 of RFC6333, RFC 6333 [RFC6333], DS-Lite only
   defines IPv4 in IPv6 tunnels at this moment, but other types of
   encapsulation could be defined in the future. So this DS-Lite MIB
   only support supports IP in IP encapsulation, if the RFC6333 another RFC defined other
   tunnel types in the future, this DS-Lite MIB will be updated then.

   The NAT-MIB [RFC4008] NAT MIB[I-D.ietf-behave-nat-mib] is designed to carry translation
   from any address family to any address family, therefore it supports
   IPv4 to IPv4 translation.

   The tunnel IP Tunnel MIB [RFC4087] is designed for managing tunnels of any
   type over IPv4 and IPv6 networks, therefore it supports IP in IP
   tunnels.

   However, the NAT MIB and tunnel IP Tunnel MIB together are not sufficient to
   support DS-Lite. This document describes the specific MIB
   requirements for DS-Lite, as below.

         In a DS-Lite scenario, the tunnel type is IP in IP, more
         precisely, is IPv4 in IPv6.  Therefore, it is unnecessary to
         describe tunnel type in DS-Lite MIB.

         In a DS-Lite scenario, the translation type is IPv4 private
         address to IPv4 public address. Therefore, it is unnecessary to
         describe the type of address in the corresponding
         tunnelIfLocalInetAddress and tunnelIfRemoteInetAddress objects
         which are defined in tunnel the IP Tunnel MIB for DS-Lite MIB.

         In a DS-Lite scenario, the AFTR is not only the tunnel end
         concentrator, but also a 4-4 translator. Within the AFTR, Address
         Family Transition Router (AFTR), tunnel information and
         translation information MUST be mapped each other. Two independent But the
         tunnel entry defined in the IP Tunnel MIB is not able to reflect and the NAT mapping
         entry defined in the NAT MIB are not able to reflect this
         mapping relationship. Therefore, a combined MIB is necessary.

         If the Gateway Initiated Dual-Stack Lite scenario[RFC 6674] is
         required, the MIB defined in this document could be easily
         extended for GI-DS-Lite. CID (Context Identifier) can be
         extended to the tunnel MIB to identifier the access devices
         which have the same IPv4 address. And both CID and SWID
         (Softwire Identifier) can be extended to the NAT MIB for
         performing the NAT binding look up.

   The implementation of the IP Tunnel MIB is required for DS-Lite. The
   tunnelIfEncapsMethod in the tunnelIfEntry should be set to
   dsLite("xx"), and a corresponding entry in the DS-Lite module will
   exist for every tunnelIfEntry with this tunnelIfEncapsMethod. The
   tunnelIfRemoteInetAddress must be set to "::".

5. Relationship to the IF-MIB

   The Interfaces MIB [RFC2863] defines generic managed objects for
   managing interfaces. Each logical interface (physical or virtual)has
   an ifEntry. Tunnels are handled by creating a logical interface
   (ifEntry) for each tunnel. DS-Lite tunnel also acts as a virtual
   interface, which has corresponding entries in IP Tunnel MIB and
   Interface MIB. Those corresponding entries are indexed by ifIndex.

   The ifOperStatus in ifTable would be used to represent whether the
   DS-Lite tunnel function has been originated. The ifInUcastPkts
   defined in ifTabel will represent the number of IPv4 packets which
   have been encapsulated into IPv6 packets sent to B4. The
   ifOutUcastPkts defined in ifTabel contains the number of IPv6 packets
   which can be decapsulated to IPv4 in the virtual interface. Also, the
   IF-MIB defines ifMtu for the MTU of this tunnel interface, so DS-Lite
   MIB does not need to define the MTU for tunnel.

6. Structure of the MIB Module

   The DS-Lite MIB provides a way to monitor and manage the devices
   (AFTRs)in DS-Lite scenario through SNMP.

   The DS-Lite MIB is configurable on a per-interface basis. It depends
   on several parts of the IF-MIB [RFC2863], tunnel IP Tunnel MIB [RFC4087],
   and NAT MIB [RFC4008]. [I-D.ietf-behave-nat-mib].

6.1. The Object Group

   This Group defines objects which that are needed for DS-Lite MIB.

6.1.1. The dsliteTunnel Subtree

   The dsliteTunnel subtree describes managed objects used for managing
   tunnels in the DS-Lite scenario. Because some objects defined in the
   IP Tunnel MIB are not access, "not access", a few new objects are defined in DS-Lite DS-
   Lite MIB.

6.1.2. The dsliteNAT Subtree

   The dsliteNAT Subtree subtree describes managed objects used for
   configuration as well as monitoring of AFTR which is capable of a NAT
   function. Because the NAT MIB supports the NAT management function in
   DS-Lite, we may reuse it in DS-Lite MIB. The dsliteNAT Subtree subtree also
   provides the information of mapping relationship between the tunnel
   MIB
   entry and NAT MIB entry by extending the IPv6 address of B4 to the bind table
   natMappingTableEntry in the NAT MIB.

6.1.3. The dsliteInfo Subtree

   The dsliteInfo Subtree subtree provides the statistical information for DS-
   lite. DS-Lite.

6.2. The Notification Group

   This Group group defines some notification objects for DS-Lite MIB. DS-Lite.

6.2.1. The dsliteTrap Subtree

   The dsliteTrap Subtree subtree provides trap information in DS-Lite instance. scenario.

6.3. The Conformance Group

   The dsliteConformance Subtree subtree provides conformance information of MIB
   objects.

7. MIB modules required for IMPORTS

   This MIB module IMPORTs objects from [RFC4008], [RFC2580], [RFC2578],
   [RFC2863], [RFC4001], [RFC3411].

8. Definitions

   DSLite-MIB DEFINITIONS  ::=  BEGIN

      IMPORTS
         MODULE-IDENTITY, OBJECT-TYPE, transmission,
         NOTIFICATION-TYPE,Gauge32,TimeTicks,
         Integer32, Counter64 Counter64,Unsigned32
            FROM SNMPv2-SMI

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

         DisplayString
            FROM SNMPv2-TC

         SnmpAdminString
            FROM SNMP-FRAMEWORK-MIB

         ifIndex
            FROM IF-MIB

        InetAddress, InetAddressType,InetPortNumber InetAddressType, InetAddressPrefixLength,
        InetPortNumber
              FROM INET-ADDRESS-MIB

         NatAddrMapId, NatBindId

        ProtocolNumber, NatBehaviorType,
        NatPoolingType, SubscriberIdentifier
             FROM NAT-MIB;

      dsliteMIB MODULE-IDENTITY
      LAST-UPDATED "201308280000Z" "201311040000Z"        -- August 28, November 04, 2013
      ORGANIZATION "IETF Softwire Working Group"
      CONTACT-INFO
         "Yu Fu
          Huawei Technologies Co., Ltd
          Huawei Building, 156 Beiqing Rd., Hai-Dian District
          Beijing, P.R. China 100095
          EMail: eleven.fuyu@huawei.com

          Sheng Jiang
          Huawei Technologies Co., Ltd
          Huawei Building, 156 Beiqing Rd., Hai-Dian District
          Beijing, P.R. China 100095
          EMail: jiangsheng@huawei.com

          Jiang Dong
          Tsinghua University
          Department of Computer Science, Tsinghua University
          Beijing  100084
          P.R. China
          Email:  knight.dongjiang@gmail.com

          Yuchi Chen
          Tsinghua University
          Department of Computer Science, Tsinghua University
          Beijing  100084
          P.R. China
          Email:  flashfoxmx@gmail.com "

      DESCRIPTION
         "The MIB module is defined for management of object in the
         DS-Lite scenario. "
      REVISION    "201308280000Z"
      DESCRIPTION
         "Initial version. Published as RFC xxxx."
   --RFC Ed.: RFC-edtitor pls fill
         Copyright (C) The Internet Society (2013).  This version
         of this MIB module is part of RFC yyyy; see the RFC itself
         for full legal notices. "
      REVISION    "201311040000Z"
      DESCRIPTION
         "Initial version. Published as RFC xxxx."
   --RFC Ed.: RFC-edtitor pls fill in xxxx
         ::=  {  transmission xxx  }
   --RFC Ed.: assigned by IANA, see section 10 for details

   --Top level components of this MIB module

      dsliteMIBObjects OBJECT IDENTIFIER
         ::=  { dsliteMIB 1 }

      dsliteTunnel   OBJECT IDENTIFIER
         ::=  { dsliteMIBObjects 1 }

      dsliteNAT   OBJECT IDENTIFIER
         ::=  { dsliteMIBObjects 2 }

      dsliteInfo   OBJECT IDENTIFIER
         ::=  { dsliteMIBObjects 3 }

   --Notifications section

      dsliteTraps

      dsliteNotifications  OBJECT IDENTIFIER
         ::=  { dsliteMIB 2 0 }

      dsliteTraps  OBJECT IDENTIFIER
            ::=  { dsliteNotifications 1  }

   --dsliteTunnel

   --dsliteTunnelTable

      dsliteTunnelTable OBJECT-TYPE
         SYNTAX     SEQUENCE OF DsliteTunnelEntry
         MAX-ACCESS  not-accessible
         STATUS     current
         DESCRIPTION
            "The (conceptual) table containing information on configured
             tunnels. This table can be used to map CPE address to the
             associated AFTR address. It can also be used for row
             creation."
         ::=  { dsliteTunnel 1 }

      dsliteTunnelEntry OBJECT-TYPE
         SYNTAX     DsliteTunnelEntry
         MAX-ACCESS  not-accessible
         STATUS     current
         DESCRIPTION
            "Each entry in this table contains the information on a
             particular configured tunnel."
             INDEX   { dsliteTunnelAddressType,
                       dsliteTunnelStartAddress,
                       dsliteTunnelEndAddress,
                       ifIndex
                       dsliteTunnelEndAddress }
         ::=  { dsliteTunnelTable 1 }

      DsliteTunnelEntry  ::=
         SEQUENCE {
          dsliteTunnelStartAddressType    InetAddressType,
          dsliteTunnelStartAddress        InetAddress,
          dsliteTunnelStartAddPreLen      Integer32,
          dsliteTunnelEndAddressType      InetAddressType,      InetAddressPrefixLength,
          dsliteTunnelEndAddress          InetAddress
      }

       dsliteTunnelStartAddressType OBJECT-TYPE
          SYNTAX     InetAddressType
          MAX-ACCESS read-create not-accessible
          STATUS     current
          DESCRIPTION
              "In this object, it
              " This object MUST be set to the value of 2 to
               present IPv6 type. ipv6(2).
                It describes the address type of the start point of the tunnel." IPv4-in-IPv6
                tunnel startpoint and endpoint."
          ::= { dsliteTunnelEntry 1 }

      dsliteTunnelStartAddress OBJECT-TYPE
          SYNTAX     InetAddress
          MAX-ACCESS not-accessible
          STATUS     current
          DESCRIPTION
             "The address of the start point of the tunnel."
          ::= { dsliteTunnelEntry 2 }

      dsliteTunnelStartAddPreLen

      dsliteTunnelEndAddress OBJECT-TYPE
          SYNTAX Integer32 (0..128)     InetAddress
          MAX-ACCESS read-create not-accessible
          STATUS     current
          DESCRIPTION
             "IPv6 prefix length of the IP
             "The address of the
              start point endpoint of the tunnel."
          ::= { dsliteTunnelEntry 3 }

       dsliteTunnelEndAddressType

      dsliteTunnelStartAddPreLen OBJECT-TYPE
          SYNTAX     InetAddressType InetAddressPrefixLength
          MAX-ACCESS read-create read-only
          STATUS current
          DESCRIPTION
              "In this object, it MUST be set to the value
             "IPv6 prefix length of 2 to
               present IPv6 type. It describes the IP address type of the end
              start point of the tunnel."
          ::= { dsliteTunnelEntry 4 }

      dsliteTunnelEndAddress OBJECT-TYPE
          SYNTAX     InetAddress
          MAX-ACCESS not-accessible
          STATUS     current
          DESCRIPTION
             "The address of the endpoint of the tunnel."
          ::= { dsliteTunnelEntry 5 }

    --dsliteNAT
    --dsliteNATMapTable(define address pool) pool, natPoolTable and
    --natPoolRangeTable defined in draft-ietf-behave-nat-mib
    --are sufficient)
    --dsliteNATBindTable(NAPT)

      dsliteNATMapTable
       dsliteNATBindTable OBJECT-TYPE
         SYNTAX     SEQUENCE OF DsliteNATMapEntry DsliteNATBindEntry
         MAX-ACCESS not-accessible
         STATUS     current
         DESCRIPTION
            "This table contains information about currently
             active NAT binds in AFTR. This table extends the
             natMappingTable designed in NAT MIB
             (draft-ietf-behave-nat-mib) by IPv6 address map
            parameters." of B4."
         ::=  { dsliteNAT 1 }

      dsliteNATMapEntry

      dsliteNATBindEntry OBJECT-TYPE
         SYNTAX     DsliteNATMapEntry     DsliteNATBindEntry
         MAX-ACCESS not-accessible
         STATUS     current
         DESCRIPTION
            " This
            "Each entry represents an address map to be used for
              NAT and contributes to in this table holds the address mapping tables of
              AFTR." relationship between
             tunnel information and nat bind information. These entries
             are lost upon agent restart."
         INDEX   { ifIndex,
                   dsliteNATMapIndex dsliteNATBindMappingProto,
                   dsliteNATBindMappingExtRealm,
                   dsliteNATBindMappingExtAddressType,
                   dsliteNATBindMappingExtAddress,
                   dsliteNATBindMappingExtPort,
                   dsliteTunnelStartAddress,
                   dsliteTunnelStartAddPreLen }
         ::=  {  dsliteNATMapTable  dsliteNATBindTable 1   }

      DsliteNATMapEntry

     DsliteNATBindEntry  ::=
         SEQUENCE {
       dsliteNATMapIndex               NatAddrMapId,
       dsliteNATMapLocalAddrFromType   InetAddressType,
       dsliteNATMapLocalAddrFrom       InetAddress,
       dsliteNATMapLocalAddrToType
         dsliteNATBindMappingProto          ProtocolNumber,
         dsliteNATBindMappingExtRealm       SnmpAdminString,
         dsliteNATBindMappingExtAddressType InetAddressType,
       dsliteNATMapLocalAddrTo
         dsliteNATBindMappingExtAddress     InetAddress,
       dsliteNATMapLocalPortFrom       InetPortNumber,
       dsliteNATMapLocalPortTo
         dsliteNATBindMappingExtPort        InetPortNumber,
       dsliteNATMapGlobalAddrFromType  InetAddressType,
       dsliteNATMapGlobalAddrFrom      InetAddress,
       dsliteNATMapGlobalAddrToType
         dsliteNATBindMappingIntRealm       SnmpAdminString,
         dsliteNATBindMappingIntAddressType InetAddressType,
       dsliteNATMapGlobalAddrTo
         dsliteNATBindMappingIntAddress     InetAddress,
       dsliteNATMapGlobalPortFrom
         dsliteNATBindMappingIntPort        InetPortNumber,
       dsliteNATMapGlobalPortTo        InetPortNumber,
       dsliteNATMapAddrUsed            Gauge32
         dsliteNATBindMappingPool           Unsigned32,
         dsliteNATBindMappingMapBehavior    NatBehaviorType,
         dsliteNATBindMappingFilterBehavior NatBehaviorType,
         dsliteNATBindMappingAddressPooling NatPoolingType
         }

      dsliteNATMapIndex

      dsliteNATBindMappingProto OBJECT-TYPE
          SYNTAX      NatAddrMapId      ProtocolNumber
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
            "Along with ifIndex, this
          " This object uniquely
             identifies an entry in the dsliteNATMapTable.
             Address map entries are applied in specifies the order
             specified by dsliteNATMapIndex." mapping's transport protocol
          number."
          ::= { dsliteNATMapEntry dsliteNATBindEntry 1 }

   dsliteNATMapLocalAddrFromType

     dsliteNATBindMappingExtRealm OBJECT-TYPE
          SYNTAX     InetAddressType     SnmpAdminString (SIZE(0..32))
          MAX-ACCESS read-create not-accessible
          STATUS     current
          DESCRIPTION
             "It describes the address type of the
              dsliteNATMapLocalAddrFrom object. In this
              object, it MUST be set to the value of 1
          " The realm to
              present IPv4 type. It complies the textule
              convention of IPv4 address defined in [RFC4001]." which natMappingExtAddress belongs."
          ::= { dsliteNATMapEntry dsliteNATBindEntry 2 }

      dsliteNATMapLocalAddrFrom

      dsliteNATBindMappingExtAddressType OBJECT-TYPE
          SYNTAX      InetAddress InetAddressType
          MAX-ACCESS  read-create not-accessible
          STATUS current
          DESCRIPTION
            "This object specifies the first IP address
          "Type of the range
             of IP addresses mapped by this translation entry.
             The value of this object must be less than or
             equal to the value of the dsliteNATMapLocalAddrTo
             object."
         ::= { dsliteNATMapEntry 3 }

      dsliteNATMapLocalAddrToType OBJECT-TYPE
         SYNTAX     InetAddressType
         MAX-ACCESS read-create
         STATUS     current
         DESCRIPTION
             "It describes the address type of the
              dsliteNATMapLocalAddrTo object. In this
              object, it MUST be set to the value of 1 to
              present IPv4 type. It complies the textule
              convention of IPv4 address defined in [RFC4001]."
         ::= { dsliteNATMapEntry 4 }

      dsliteNATMapLocalAddrTo OBJECT-TYPE
         SYNTAX      InetAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
          "This object specifies the last IP address of the range of
           IP addresses mapped by this translation entry. If only
           a single address is being mapped, the value of this
           object is equal to the value of natAddrMapLocalAddrFrom.
           The value of this object must be greater than or equal to
           the value of the natAddrMapLocalAddrFrom object."
         ::= { dsliteNATMapEntry 5 }

      dsliteNATMapLocalPortFrom OBJECT-TYPE
         SYNTAX      InetPortNumber
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
            "The value of this object must be less than or equal
             to the value of the dsliteNATMapLocalPortTo object.
             If the translation specifies a single port, then the
             value of this object is equal to the value of
             dsliteNATMapLocalPortTo."
         DEFVAL { 0 }
         ::= { dsliteNATMapEntry 6 }

      dsliteNATMapLocalPortTo OBJECT-TYPE
         SYNTAX      InetPortNumber
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
            "The value of this object must be greater than or equal
             to the value of the dsliteNATMapLocalPortFrom object.
             If the translation specifies a single port, then
             the value of this object is equal to the value of
             dsliteNATMapLocalPortFrom."
         DEFVAL { 0 }
         ::= { dsliteNATMapEntry 7 }

      dsliteNATMapGlobalAddrFromType OBJECT-TYPE
         SYNTAX     InetAddressType
         MAX-ACCESS read-create
         STATUS     current
         DESCRIPTION
             "It describes the address type of the
              dsliteNATMapGlobalAddrFrom object. In this
              object, it MUST be set to the value of 1 to
              present IPv4 type. It complies the textule
              convention of IPv4 address defined in [RFC4001]."
         ::= { dsliteNATMapEntry 8 }

      dsliteNATMapGlobalAddrFrom OBJECT-TYPE
         SYNTAX    InetAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
               "This object specifies the first IP address of
                the range of IP addresses being mapped to.
                The value of this object must be less than
                or equal to the value of the
                dsliteNATMapGlobalAddrTo object."
      ::= { dsliteNATMapEntry 9 }

      dsliteNATMapGlobalAddrToType OBJECT-TYPE
         SYNTAX     InetAddressType
         MAX-ACCESS read-create
         STATUS     current
         DESCRIPTION
             "It describes the address type of the
              dsliteNATMapGlobalAddrTo object. In this
              object, it MUST be set to the value of 1 to
              present IPv4 type. It complies the textule
              convention of IPv4 address defined in [RFC4001]."
         ::= { dsliteNATMapEntry 10 }

      dsliteNATMapGlobalAddrTo OBJECT-TYPE
         SYNTAX      InetAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
            "This object specifies the last IP address of the range
             of IP addresses being mapped to. If only a single
             address is being mapped to, the value of this object
             is equal to the value of dsliteNATMapGlobalAddrFrom.
             The value of this object must be greater than or equal
             to the value of the dsliteNATMapGlobalAddrFrom object."
         ::= { dsliteNATMapEntry 11 }

      dsliteNATMapGlobalPortFrom OBJECT-TYPE
         SYNTAX      InetPortNumber
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
            "The value of this object must be less than or equal
             to the value of the dsliteNATMapGlobalPortTo object.
             If the translation specifies a single port, then the
             value of this object is equal to the value
             dsliteNATMapGlobalPortTo."
         DEFVAL { 0 }
         ::= { dsliteNATMapEntry 12 }

      dsliteNATMapGlobalPortTo OBJECT-TYPE
         SYNTAX      InetPortNumber
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
            "The value of this object must be greater than or
             equal to the value of the dsliteNATMapGlobalPortFrom
             object. If the translation specifies a single port,
             then the value of this object is equal to the
             value of dsliteNATMapGlobalPortFrom."
         DEFVAL { 0 }
         ::= { dsliteNATMapEntry 13 }

      dsliteNATMapAddrUsed OBJECT-TYPE
         SYNTAX     Gauge32
         MAX-ACCESS read-only
         STATUS     current
         DESCRIPTION
            "The number of addresses pertaining to this address
             map that are currently being used from the NAT pool."
       ::= { dsliteNATMapEntry 14 }

       dsliteNATBindTable OBJECT-TYPE
         SYNTAX     SEQUENCE OF DsliteNATBindEntry
         MAX-ACCESS not-accessible
         STATUS     current
         DESCRIPTION
            "This table contains information about currently
             active NAT binds in AFTR. This table extends the
             natAddrPortBindTable designed in NAT MIB (RFC
             4008) by IPv6 address of B4."
         ::=  { dsliteNAT 2 }

      dsliteNATBindEntry OBJECT-TYPE
         SYNTAX     DsliteNATBindEntry
         MAX-ACCESS not-accessible
         STATUS     current
         DESCRIPTION
            "Each entry in this table holds the relationship between
             tunnel information and nat bind information. These entries
             are lost upon agent restart."
         INDEX   { ifIndex,
                   dsliteNATBindLocalAddr,
                   dsliteNATBindLocalPort,
                   dsliteTunnelStartAddress,
                   dsliteTunnelStartAddPreLen }
         ::=  {  dsliteNATBindTable 1   }

      DsliteNATBindEntry  ::=
         SEQUENCE {
       dsliteNATBindLocalAddrType       InetAddressType,
       dsliteNATBindLocalAddr           InetAddress,
       dsliteNATBindLocalPort           InetPortNumber,
       dsliteNATBindGlobalAddrType      InetAddressType,
       dsliteNATBindGlobalAddr          InetAddress,
       dsliteNATBindGlobalPort          InetPortNumber,
       dsliteNATBindId                  NatBindId,
       dsliteNATBindMapIndex            NatAddrMapId,
       dsliteNATBindSessions            Gauge32,
       dsliteNATBindMaxIdleTime         TimeTicks,
       dsliteNATBindCurrentIdleTime     TimeTicks,
       dsliteNATBindInTranslates        Counter64,
       dsliteNATBindOutTranslates       Counter64
      }

      dsliteNATBindLocalAddrType OBJECT-TYPE
         SYNTAX      InetAddressType
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
            " This object specifies the address type used for
              dsliteNATBindLocalAddr."
         ::= { dsliteNATBindEntry 1 }

     dsliteNATBindLocalAddr OBJECT-TYPE
         SYNTAX     InetAddress
         MAX-ACCESS not-accessible
         STATUS     current
         DESCRIPTION
            "This object represents the private IP address of host."
         ::= { dsliteNATBindEntry 2 }

      dsliteNATBindLocalPort OBJECT-TYPE
         SYNTAX     InetPortNumber
          MAX-ACCESS not-accessible
          STATUS     current
          DESCRIPTION
             "For a protocol value TCP or UDP, this object represents
              the private-realm specific port number.  On the other
              hand, for ICMP a bind is created only for query/response
              type ICMP messages such as ICMP echo, Timestamp, and
              Information request messages, and this object represents
              the private-realm specific identifier in the ICMP
              message, as defined in RFC 792 for ICMPv4."
          ::= { dsliteNATBindEntry 3 }

     dsliteNATBindGlobalAddrType OBJECT-TYPE
         SYNTAX      InetAddressType
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
            " This object specifies the address type used for
              dsliteNATBindGlobalAddr."
         ::= { dsliteNATBindEntry 4 }

      dsliteNATBindGlobalAddr OBJECT-TYPE
         SYNTAX     InetAddress
         MAX-ACCESS read-only
         STATUS     current
         DESCRIPTION
            "This object represents the public-realm IP
             address of host."
         ::= { dsliteNATBindEntry 5 }

      dsliteNATBindGlobalPort OBJECT-TYPE
         SYNTAX     InetPortNumber
         MAX-ACCESS read-only
         STATUS     current
         DESCRIPTION
            "For a protocol value TCP or UDP, this object represents
             the public-realm specific port number.  On the other
             hand, for ICMP a bind is created only for query/response
             type ICMP messages such as ICMP echo, Timestamp, and
             Information request messages, and this object represents
             the public-realm specific identifier in the ICMP
             message, as defined in RFC 792 for ICMPv4."
         ::= { dsliteNATBindEntry 6 }

      dsliteNATBindId OBJECT-TYPE
         SYNTAX     NatBindId
         MAX-ACCESS read-only
         STATUS     current
         DESCRIPTION
            "This object represents a bind id that is
             dynamically assigned to each bind by AFTR.
             Each bind is represented by a unique bind
             id across the dsliteNATBindTable."
          ::= { dsliteNATBindEntry 7 }

      dsliteNATBindMapIndex OBJECT-TYPE
         SYNTAX     NatAddrMapId
         MAX-ACCESS read-only
         STATUS     current
         DESCRIPTION
            "This object is a pointer to the dsliteNATMapTable
             entry used in creating this BIND."
         ::= { dsliteNATBindEntry 8 }

      dsliteNATBindSessions OBJECT-TYPE
         SYNTAX     Gauge32
         MAX-ACCESS read-only
         STATUS     current
         DESCRIPTION
            " This object represents the number of sessions currently
              using this BIND."
         ::= { dsliteNATBindEntry 9 }

      dsliteNATBindMaxIdleTime OBJECT-TYPE
         SYNTAX     TimeTicks
         MAX-ACCESS read-only
         STATUS     current
       DESCRIPTION
          "This object indicates the maximum time for
           which this bind can be idle without any sessions
           attached to it."
       ::= { dsliteNATBindEntry 10 }

      dsliteNATBindCurrentIdleTime OBJECT-TYPE
         SYNTAX     TimeTicks
         MAX-ACCESS read-only
         STATUS     current
       DESCRIPTION
          "At any given instance, this object indicates the
           time that this bind has been idle without any sessions
           attached to it."
       ::= { dsliteNATBindEntry 11 }

      dsliteNATBindInTranslates OBJECT-TYPE
         SYNTAX     Counter64
         MAX-ACCESS read-only
         STATUS     current
         DESCRIPTION
            "The number of inbound packets that were
             translated as per this bind entry."
        ::= { dsliteNATBindEntry 12 }

      dsliteNATBindOutTranslates OBJECT-TYPE
         SYNTAX     Counter64
         MAX-ACCESS read-only
         STATUS     current
         DESCRIPTION
            "The number of outbound packets that were
             translated as per this bind entry." mapping's external address."
          ::= { dsliteNATBindEntry 13 }

      --dsliteInfo

      dsliteSessionLimitTable OBJECT-TYPE
         SYNTAX     SEQUENCE OF DsliteSessionLimitEntry
         MAX-ACCESS not-accessible
         STATUS     current
         DESCRIPTION
            "The (conceptual) table containing information about session
             limit. It can also be used for row creation."
       ::=  { dsliteInfo 1 { dsliteNATBindEntry 3 }

      dsliteSessionLimitEntry

     dsliteNATBindMappingExtAddress OBJECT-TYPE
          SYNTAX      DsliteSessionLimitEntry InetAddress (SIZE (4|16))
          MAX-ACCESS not-accessible
          STATUS current
          DESCRIPTION
            "Each entry in
          "The mapping's external address. If this table contains is the information undefined
          address, all external addresses are mapped to be
             used for configuring session limits for DS-lite."
             INDEX   { dsliteSessionLimitInstanceName,
                       dsliteSessionLimitType }
        ::=  { dsliteSessionLimitTable 1 }

      DsliteSessionLimitEntry the internal
          address."
          ::=
         SEQUENCE {
       dsliteSessionLimitInstanceName         DisplayString,
       dsliteSessionLimitType                 INTEGER,
       dsliteSessionLimitNumber               Integer32 dsliteNATBindEntry 4 }

      dsliteSessionLimitInstanceName

      dsliteNATBindMappingExtPort OBJECT-TYPE
          SYNTAX      DisplayString (SIZE (1..31)) InetPortNumber
          MAX-ACCESS not-accessible
          STATUS current
          DESCRIPTION
            " This object represents the instance name
              that
          "The mapping's external port number. If this is limited." zero, all
          external ports are mapped to the internal port."
          ::= { dsliteSessionLimitEntry 1 dsliteNATBindEntry 5 }

      dsliteSessionLimitType

       dsliteNATBindMappingIntRealm OBJECT-TYPE
          SYNTAX  INTEGER
           {
               tcp(0),
               udp(1),
               icmp(2),
               total(3)
            } SnmpAdminString
          MAX-ACCESS not-accessible read-only
          STATUS current
          DESCRIPTION
            "This object represents the session limit type:
             tcp or udp or totally."
          "The realm to which natMappingIntAddress belongs."
          ::= { dsliteSessionLimitEntry 2 dsliteNATBindEntry 6 }

      dsliteSessionLimitNumber

      dsliteNATBindMappingIntAddressType OBJECT-TYPE
          SYNTAX Integer32 (1..65535) InetAddressType
          MAX-ACCESS read-create read-only
          STATUS current
          DESCRIPTION
            " This table represents the limit number
          "Type of the session." mapping's internal address."
          ::= { dsliteSessionLimitEntry 3 dsliteNATBindEntry 7 }

      dslitePortLimitTable

      dsliteNATBindMappingIntAddress OBJECT-TYPE
          SYNTAX SEQUENCE OF DslitePortLimitEntry InetAddress
          MAX-ACCESS not-accessible read-only
          STATUS current
          DESCRIPTION
            "This table
          "The mapping's internal address. If this is used to configure port limits for a
             DS-Lite instance." the undefined
          address, addresses are not translated."
          ::= { dsliteInfo 2 dsliteNATBindEntry 8 }

      dslitePortLimitEntry

      dsliteNATBindMappingIntPort OBJECT-TYPE
          SYNTAX DslitePortLimitEntry InetPortNumber
          MAX-ACCESS not-accessible read-only
          STATUS current
          DESCRIPTION
            "Each entry in this table contains the information to be
             used for configuring
           "The mapping's internal port limits for DS-lite."
             INDEX { dslitePortLimitInstanceName,
                     dslitePortLimitType }
         ::= { dslitePortLimitTable 1 }

      DslitePortLimitEntry number. If this is zero, ports
            are not translated."
           ::=
         SEQUENCE {
       dslitePortLimitInstanceName            DisplayString,
       dslitePortLimitType                    INTEGER,
       dslitePortLimitNumber                  Integer32 dsliteNATBindEntry 9 }

      dslitePortLimitInstanceName

      dsliteNATBindMappingPool OBJECT-TYPE
          SYNTAX DisplayString (SIZE (1..31)) Unsigned32 (0|1..4294967295)
          MAX-ACCESS not-accessible read-only
          STATUS current
          DESCRIPTION
            " This object represents
          "Index of the instance name pool that contains this mapping's external
          address and port. If zero, no pool is limited." associated with this
          mapping."
          ::= { dslitePortLimitEntry 1 dsliteNATBindEntry 10 }

      dslitePortLimitType

      dsliteNATBindMappingMapBehavior OBJECT-TYPE
          SYNTAX  INTEGER NatBehaviorType
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
          "Mapping behavior as described in [RFC4787] section 4.1."
          ::= {
               tcp(0),
               udp(1),
               icmp(2),
               total(3) dsliteNATBindEntry 11 }

      dsliteNATBindMappingFilterBehavior OBJECT-TYPE
          SYNTAX NatBehaviorType
          MAX-ACCESS not-accessible read-only
          STATUS current
          DESCRIPTION
            "This object represents the port limit
             type: tcp or udp or totally."
         ::=
          "Filtering behavior as described in [RFC4787] section 5."::=
          { dslitePortLimitEntry 2 dsliteNATBindEntry 12 }

      dslitePortLimitNumber

      dsliteNATBindMappingAddressPooling OBJECT-TYPE
          SYNTAX Integer32 (1..300000) NatPoolingType
          MAX-ACCESS read-create read-only
          STATUS current
          DESCRIPTION
            "This object represents the limit number
          "Type of the
             port usage." address pooling behavior that was used to create
          this mapping."
          ::= { dslitePortLimitEntry 3 dsliteNATBindEntry 13 }

      --dsliteInfo

      dsliteAFTRAlarmScalar OBJECT IDENTIFIER ::= { dsliteInfo 3 1 }

      dsliteAFTRAlarmB4Addr OBJECT-TYPE
         SYNTAX  DisplayString  InetAddress
         MAX-ACCESS accessible-for-notify
         STATUS current
         DESCRIPTION
            "This object indicate the IP address of
             B4 that send alarm "
         ::= { dsliteAFTRAlarmScalar 1 }

      dsliteAFTRAlarmProtocolType OBJECT-TYPE
         SYNTAX DisplayString
         MAX-ACCESS accessible-for-notify
         STATUS current
         DESCRIPTION
            "This object indicate the procotol type of alarm,
             0:tcp,1:udp,2:icmp,3:total "
         ::= { dsliteAFTRAlarmScalar 2 }

      dsliteAFTRAlarmMapAddrName OBJECT-TYPE
         SYNTAX DisplayString
         MAX-ACCESS accessible-for-notify
         STATUS current
         DESCRIPTION
            "This object indicate the name of dsliteNATMapAddrName "
         ::= { dsliteAFTRAlarmScalar 3 }

      dsliteAFTRAlarmSpecificIP OBJECT-TYPE
         SYNTAX DisplayString InetAddress
         MAX-ACCESS accessible-for-notify
         STATUS current
         DESCRIPTION
            " This object indicate the IP address whose port usage
             reach threshold "
         ::= { dsliteAFTRAlarmScalar 4 }

      dsliteAFTRAlarmConnectNumber OBJECT-TYPE
         SYNTAX Integer32 (60..90)
         MAX-ACCESS read-write
         STATUS current
         DESCRIPTION
            " This object indicate the threshold of DS-Lite
              connections alarm."
         ::= { dsliteAFTRAlarmScalar 5 }

      dsliteStatisticTable OBJECT-TYPE
         SYNTAX SEQUENCE OF DsliteStatisticEntry
         MAX-ACCESS not-accessible
         STATUS current
         DESCRIPTION
            "This table provides statistical information
             of DS-Lite."
         ::= { dsliteInfo 4 2 }

      dsliteStatisticEntry OBJECT-TYPE
         SYNTAX DsliteStatisticEntry
         MAX-ACCESS not-accessible
         STATUS current
         DESCRIPTION
            "This table provides statistical information
             of DS-Lite."
         INDEX { dsliteStatisticInstanceName dsliteStatisticSubscriberIdentifier }
         ::= { dsliteStatisticTable 1 }

      DsliteStatisticEntry ::=
         SEQUENCE {
       dsliteStatisticInstanceName           DisplayString,
       dsliteStatisticSubscriberIdentifier   SubscriberIdentifier,
       dsliteStatisticDiscard                Counter64,
       dsliteStatisticReceived               Counter64,
       dsliteStatisticTransmitted            Counter64,
       dsliteStatisticIpv4Session            Counter64,
       dsliteStatisticIpv6Session            Counter64
      }

      dsliteStatisticInstanceName

      dsliteStatisticSubscriberIdentifier OBJECT-TYPE
         SYNTAX DisplayString
         SubscriberIdentifier (SIZE (1..31)) (3|4|16))
         MAX-ACCESS not-accessible
         STATUS current
         DESCRIPTION
            " This object indicate the instance name
             that address used for uniquely
             identifying the subscriber. It is limited."
         ::= { dsliteStatisticEntry 1 }

      dsliteStatisticDiscard OBJECT-TYPE
         SYNTAX Counter64
         MAX-ACCESS read-only
         STATUS current
         DESCRIPTION
            " This object indicate the count number IPv6 address
             of
              the discarded packet." B4 in DS-Lite."
         ::= { dsliteStatisticEntry 2 1 }

      dsliteStatisticReceived

      dsliteStatisticDiscard OBJECT-TYPE
         SYNTAX Counter64
         MAX-ACCESS read-only
         STATUS current
         DESCRIPTION
            "This
            " This object indicate the count number of
             received packet count." packets
              discarded from this subscriber."
        ::= { dsliteStatisticEntry 3 2 }

       dsliteStatisticTransmitted OBJECT-TYPE
         SYNTAX Counter64
         MAX-ACCESS read-only
         STATUS current
         DESCRIPTION
            "This
            " This object indicate the count number of
             transmitted packet count." packets received
              from or sent to this subscriber."
         ::= { dsliteStatisticEntry 4 3 }

      dsliteStatisticIpv4Session OBJECT-TYPE
         SYNTAX Counter64
         MAX-ACCESS read-only
         STATUS current
         DESCRIPTION
            " This object indicate the number of the
              current IPv4 Session."
         ::= { dsliteStatisticEntry 5 4 }

      dsliteStatisticIpv6Session OBJECT-TYPE
         SYNTAX Counter64
         MAX-ACCESS read-only
         STATUS current
         DESCRIPTION
           " This object indicate the number of the
              current IPv6 Session."
        ::= { dsliteStatisticEntry 6 5 }

   ---dslite trap

      dsliteTunnelNumAlarm NOTIFICATION-TYPE
         STATUS current
         DESCRIPTION
            "This trap is triggered when dslite tunnel
             reach the threshold."
         ::= { dsliteTraps 1 }

      dsliteAFTRUserSessionNumAlarm NOTIFICATION-TYPE
         OBJECTS { dsliteAFTRAlarmProtocolType,
                dsliteAFTRAlarmB4Addr }
         STATUS current
         DESCRIPTION
         " This trap is triggered when sessions of
           user reach the threshold."
         ::= { dsliteTraps 2 }

      dsliteAFTRPortUsageOfSpecificIpAlarm NOTIFICATION-TYPE
         OBJECTS { dsliteAFTRAlarmMapAddrName,
                dsliteAFTRAlarmSpecificIP }
         STATUS current
         DESCRIPTION
            "This trap is triggered when used NAT
             ports of map address reach the threshold."
         ::= { dsliteTraps 3 }

   --Module Conformance statement

      dsliteConformance   OBJECT IDENTIFIER
         ::=  { dsliteMIB 3 2 }

      dsliteCompliances OBJECT IDENTIFIER ::= { dsliteConformance 1 }

      dsliteGroups OBJECT IDENTIFIER ::= { dsliteConformance 2 }

   -- compliance statements

      dsliteCompliance MODULE-COMPLIANCE
          STATUS current
          DESCRIPTION
             " Description the minimal requirements for conformance
               to the DS-Lite MIB."
          MODULE -- this module
              MANDATORY-GROUPS { dsliteNATMapGroup,dsliteNATBindGroup, dsliteNATBindGroup,
                  dsliteTunnelGroup, dsliteSessionLimitGroup,
                  dslitePortLimitGroup,
                  dsliteStatisticGroup,
                  dsliteTrapsGroup,dsliteAFTRAlarmScalarGroup }
          ::= { dsliteCompliances 1 }

        dsliteNATMapGroup

      dsliteNATBindGroup OBJECT-GROUP
         OBJECTS {
                  dsliteNATMapLocalAddrFromType,
                  dsliteNATMapLocalAddrFrom,
                  dsliteNATMapLocalAddrTo, dsliteNATMapLocalAddrToType,
                  dsliteNATMapLocalPortFrom,
                  dsliteNATMapLocalPortTo, dsliteNATMapGlobalAddrFrom,
                  dsliteNATMapGlobalAddrFromType,
                  dsliteNATMapGlobalAddrTo,
                  dsliteNATMapGlobalAddrToType,
                  dsliteNATMapGlobalPortFrom,
                  dsliteNATMapGlobalPortTo, dsliteNATMapAddrUsed
                  dsliteNATBindMappingIntRealm,
                  dsliteNATBindMappingIntAddressType,
                  dsliteNATBindMappingIntAddress,
                  dsliteNATBindMappingIntPort,
                  dsliteNATBindMappingPool,
                  dsliteNATBindMappingMapBehavior,
                  dsliteNATBindMappingFilterBehavior,
                  dsliteNATBindMappingAddressPooling }
         STATUS current
         DESCRIPTION
            " The collection of this objects are used to give the
             information about NAT address mapping." Bind."
          ::= { dsliteGroups 1 }

      dsliteTunnelGroup OBJECT-GROUP
         OBJECTS { dsliteTunnelStartAddressType,
                   dsliteTunnelStartAddPreLen,
                   dsliteTunnelEndAddressType dsliteTunnelStartAddPreLen }
         STATUS current
         DESCRIPTION
            " The collection of this objects are used to give the
             information of tunnel in ds-lite."
         ::= { dsliteGroups 2 }

      dsliteNATBindGroup OBJECT-GROUP
         OBJECTS {
                  dsliteNATBindLocalAddrType,
                  dsliteNATBindGlobalAddrType,
                  dsliteNATBindGlobalAddr,
                  dsliteNATBindGlobalPort,
                  dsliteNATBindId,
                  dsliteNATBindMapIndex,
                  dsliteNATBindSessions,
                  dsliteNATBindMaxIdleTime,
                  dsliteNATBindCurrentIdleTime,
                  dsliteNATBindInTranslates,
                  dsliteNATBindOutTranslates }
         STATUS current
         DESCRIPTION
            " The collection of this objects are used to give the
             information about NAT Bind."
          ::= { dsliteGroups 3 }

      dsliteSessionLimitGroup OBJECT-GROUP
         OBJECTS { dsliteSessionLimitNumber }
         STATUS current
         DESCRIPTION
            " The collection of this objects are used to give the
             information about port limit."
          ::= { dsliteGroups 4 }

      dslitePortLimitGroup OBJECT-GROUP
         OBJECTS { dslitePortLimitNumber }
         STATUS current
         DESCRIPTION
            " The collection of this objects are used to give the
             information about port limit."
          ::= { dsliteGroups 5 }

      dsliteStatisticGroup OBJECT-GROUP
         OBJECTS { dsliteStatisticDiscard,
                   dsliteStatisticReceived,
                   dsliteStatisticTransmitted,
                   dsliteStatisticIpv4Session,
                   dsliteStatisticIpv6Session }
        STATUS current
        DESCRIPTION
           " The collection of this objects are used to give the
             statistical information of ds-lite."
          ::= { dsliteGroups 6 3 }

      dsliteTrapsGroup NOTIFICATION-GROUP
         NOTIFICATIONS { dsliteTunnelNumAlarm,
                         dsliteAFTRUserSessionNumAlarm,
                         dsliteAFTRPortUsageOfSpecificIpAlarm }
         STATUS current
         DESCRIPTION
            "The collection of this objects are used to give the
             trap information of ds-lite."
         ::= { dsliteGroups 7 }

       dsliteAFTRAlarmScalarGroup OBJECT-GROUP
         OBJECTS { dsliteAFTRAlarmB4Addr, dsliteAFTRAlarmProtocolType,
             dsliteAFTRAlarmMapAddrName, dsliteAFTRAlarmSpecificIP,
             dsliteAFTRAlarmConnectNumber }

         STATUS current
         DESCRIPTION
            " The collection of this objects are used to give the
             information about AFTR alarming Scalar."
         ::= { dsliteGroups 8 }

             END

9. Extending this MIB for Gateway Initiated Dual-Stack Lite

   Similar to DS-lite, GI-DS-lite enables the service provider to
   share public IPv4 addresses among different customers by combining
   tunneling and NAT. GI-DS-lite extends existing access tunnels
   beyond the access gateway to an IPv4-IPv4 NAT using softwires with
   an embedded context identifier that uniquely identifies the end host
   the tunneled packets belong to. The MIB defined in this document can
   easily extended to use for GI-DS-Lite scenario. New object as CID
   SHOULD be extended to the dsliteTunnelTable. And a new object as
   dsliteTunnelID can be defined in DS-Lite MIB as SWID in GI-DS-Lite.
   Both CID and SWID SHOULD be extended
         NOTIFICATIONS { dsliteTunnelNumAlarm,
                         dsliteAFTRUserSessionNumAlarm,
                         dsliteAFTRPortUsageOfSpecificIpAlarm }
         STATUS current
         DESCRIPTION
            "The collection of this objects are used to give the dsliteNATBindTable.The
   combination
             trap information of CID and SWID will be ds-lite."
         ::= { dsliteGroups 4 }

       dsliteAFTRAlarmScalarGroup OBJECT-GROUP
         OBJECTS { dsliteAFTRAlarmB4Addr, dsliteAFTRAlarmProtocolType,
             dsliteAFTRAlarmMapAddrName, dsliteAFTRAlarmSpecificIP,
             dsliteAFTRAlarmConnectNumber }
         STATUS current
         DESCRIPTION
            " The collection of this objects are used as the unique identifier for
   the end host and store it in to give the NAT binding entry.

10.
             information about AFTR alarming Scalar."
         ::= { dsliteGroups 5 }

             END

9. IANA Considerations

   The MIB module in this document uses the following IANA-assigned
   OBJECT IDENTIFIER values recorded in the SMI Numbers registry, and
   the following IANA-assigned tunnelType values recorded in the
   IANAtunnelType-MIB registry:

      Descriptor        OBJECT IDENTIFIER value
      ----------        -----------------------
      DSLite-MIB         { transmission XXX }

      IANAtunnelType ::= TEXTUAL-CONVENTION

                 SYNTAX     INTEGER {

                            dsLite ("XX")        -- dslite tunnel

                            }

   Notes: As the Appendix A of the IP Tunnel MIB[RFC4087] described that it
   has already assigned the value direct(2) to indicate the tunnel type
   is IP in ip IP tunnel, but it is still difficult to distinguish the DS-Lite
   tunnel packets and the from normal IP in IP tunnel packets in the scenario of
   the AFTR connecting to both the a DS-lite tunnel and an IP in IP tunnel.

11.

10. Security Considerations

   The DS-Lite

   There are a number of management objects defined in this MIB module can
   with a MAX-ACCESS clause of read-write and/or read-create.  Such
   objects may be used considered sensitive or vulnerable in some network
   environments.  The support for configuration of certain
   objects, SET operations in a non-secure
   environment without proper protection can have a negative effect on
   network operations.  These are the tables and anything that objects and their
   sensitivity/vulnerability:

   Notification thresholds:  An attacker setting an arbitrarily low
   treshold can cause many useless notifications to be incorrectly configured, with
   potentially disastrous results. Because generated.
   Setting an arbitrarily high threshold can effectively disable
   notifications, which could be used to hide another attack.

   dsliteAFTRAlarmConnectNumber

   Some of the readable objects in this MIB module reuses the
   IP tunnel MIB and nat MIB, the security considerations for (i.e., objects with a
   MAX-ACCESS other than not-accessible) may be considered sensitive or
   vulnerable in some network environments.  It is thus important to
   control even GET and/or NOTIFY access to these MIBs
   are also applicable objects and possibly
   to even encrypt the DS-Lite MIB.

   Unauthorized read access todsliteTunnelEndAddress, or any object in values of these objects when sending them over
   the dsliteBindRelationTable or dslitePortBindRelationTable would
   reveal information about network via SNMP.  These are the mapping information. tables and objects and their
   sensitivity/vulnerability:

   dsliteTunnelStartAddPreLen
   dsliteNATBindMappingIntRealm
   dsliteNATBindMappingIntAddressType
   dsliteNATBindMappingIntAddress
   dsliteNATBindMappingIntPort
   dsliteNATBindMappingPool
   dsliteNATBindMappingMapBehavior
   dsliteNATBindMappingFilterBehavior
   dsliteNATBindMappingAddressPooling
   dsliteStatisticDiscard
   dsliteStatisticTransmitted
   dsliteStatisticIpv4Session
   dsliteStatisticIpv6Session

   SNMP versions prior to SNMPv3 did not include adequate security.
   Even if the network itself is secure (for example by using IPSec),
   even then, there is no control as to who on the secure network is
   allowed to access and GET/SET (read/change/create/delete) the objects
   in this MIB module.

   It is RECOMMENDED that implementers consider

   Implementations SHOULD provide the security features as
   provided described by the
   SNMPv3 framework (see [RFC3410], section 8),
   including [RFC3410]), and implementations claiming
   compliance to the SNMPv3 standard MUST include full support for the SNMPv3 cryptographic mechanisms (for
   authentication and privacy). privacy via the User-based Security Model (USM)
   [RFC3414] with the AES cipher algorithm [RFC3826]. Implementations
   MAY also provide support for the Transport Security Model (TSM)
   [RFC5591] in combination with a secure transport such as SSH [RFC5592]
   or TLS/DTLS [RFC6353].

   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.

12.

11. References

     12.1.

     11.1. Normative References

   [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
             Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2578] McCloghrie, K., Perkins, D., and J. Schoenwaelder,
             "Structure of Management Information Version 2 (SMIv2)",
             STD 58, RFC 2578, April 1999.

   [RFC2579] McCloghrie, K., Perkins, D., and J. Schoenwaelder, "Textual
             Conventions for SMIv2", STD 58, RFC 2579, April 1999.

   [RFC2580] McCloghrie, K., Perkins, D., and J. Schoenwaelder,
             "Conformance Statements for SMIv2", STD 58, RFC 2580, April
             1999.

   [RFC2863] McCloghrie, K. and F. Kastenholz. "The Interfaces Group
             MIB", RFC 2863, June 2000.

   [RFC3411] Harrington, D., Presuhn, R., and B. Wijnen, "An
             Architecture for Describing Simple Network Management
             Protocol (SNMP) Management Frameworks", RFC 3411, December
             2002.

   [RFC4001] Daniele, M., Haberman, B., Routhier, S., and J.
             Schoenwaelder, "Textual Conventions for Internet Network
             Addresses", RFC 4001, February 2005.

   [RFC4008] Rohit, R., Srisuresh, P., Raghunarayan,R., Pai, N., and
             Wang, C., "Definitions of Managed Objects for Network
             Address Translators (NAT)", RFC 4008, March 2005.

   [RFC4087] Thaler, D., "IP Tunnel MIB", RFC 4087, June 2005.

   [RFC6333] Durand, A., Droms, R., Woodyatt, J., and Y. Lee, "Dual-
             Stack Lite Broadband Deployments Following IPv4
             Exhaustion", RFC6333, August 2011.

   [RFC6674] Brockners, F., Gundavelli, S., Speicher, S., Ward, D.
             "Gateway-Initiated Dual-Stack Lite Deployment", RFC 6674,
             July 2012.

     12.2.

     11.2. Informative References

   [RFC3410] Case, J., Mundy, R., Partain, D., and B. Stewart,
             "Introduction and Applicability Statements for Internet-
             Standard Management Framework", RFC 3410, December 2002.

Author's Addresses

   Yu Fu
   Huawei Technologies Co., Ltd
   Huawei Building, 156 Beiqing Rd.,
   Hai-Dian District, Beijing 100095
   P.R. China
   Email: eleven.fuyu@huawei.com

   Sheng Jiang
   Huawei Technologies Co., Ltd
   Huawei Building, 156 Beiqing Rd.,
   Hai-Dian District, Beijing 100095
   P.R. China
   Email: jiangsheng@huawei.com

   Jiang Dong
   Tsinghua University
   Department of Computer Science, Tsinghua University
   Beijing  100084
   P.R. China
   Email: knight.dongjiang@gmail.com

   Yuchi Chen
   Tsinghua University
   Department of Computer Science, Tsinghua University
   Beijing  100084
   P.R. China
   Email: flashfoxmx@gmail.com