<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
     There has to be one entity for each item to be referenced. 
     An alternate method (rfc include) is described in the references. -->
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2629 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2629.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
     please see http://xml.resource.org/authoring/README.html. -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="3"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space 
     (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="std" docName="draft-ietf-softwire-dslite-mib-05"
     ipr="trust200902">
  <front>
    <title abbrev="draft-ietf-softwire-dslite-mib-05">DS-Lite Management
    Information Base (MIB)</title>

    <author fullname="Yu Fu" initials="Y." surname="Fu">
      <organization>Huawei Technologies Co., Ltd</organization>

      <address>
        <postal>
          <street>Q14, Huawei Campus, No.156 Beiqing Road</street>

          <city>Hai-Dian District, Beijing, 100095</city>

          <country>P.R. China</country>
        </postal>

        <email>eleven.fuyu@huawei.com</email>
      </address>
    </author>

    <author fullname="Sheng Jiang" initials="S." surname="Jiang">
      <organization>Huawei Technologies Co., Ltd</organization>

      <address>
        <postal>
          <street>Q14, Huawei Campus, No.156 Beiqing Road</street>

          <city>Hai-Dian District, Beijing, 100095</city>

          <country>P.R. China</country>
        </postal>

        <email>jiangsheng@huawei.com</email>
      </address>
    </author>

    <author fullname="Jiang Dong" initials="J." surname="Dong">
      <organization>Tsinghua University</organization>

      <address>
        <postal>
          <street>Department of Computer Science, Tsinghua University</street>

          <city>Beijing </city>

          <code>100084</code>

          <country>P.R. China</country>
        </postal>

        <email>knight.dongjiang@gmail.com</email>
      </address>
    </author>

    <author fullname="Yuchi Chen" initials="Y." surname="Chen">
      <organization>Tsinghua University</organization>

      <address>
        <postal>
          <street>Department of Computer Science, Tsinghua University</street>

          <city>Beijing</city>

          <code>100084</code>

          <country>P.R. China</country>
        </postal>

        <email>flashfoxmx@gmail.com</email>
      </address>
    </author>

    <date month="" year="2014" />

    <area>Internet Area</area>

    <workgroup>Internet Engineering Task Force</workgroup>

    <keyword>IPv6</keyword>

    <abstract>
      <t>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 Dual-Stack Lite
      (DS-Lite).</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>Dual-Stack Lite [RFC6333] 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 connectivity across a service provider's IPv6 network. Another key
      component is a carrier-grade IPv4-IPv4 Network Address Translation (NAT)
      to share service provider IPv4 addresses among customers.</t>

      <t>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
      devices in a Dual-Stack Lite scenario.</t>
    </section>

    <section title="Requirements Language">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
      "OPTIONAL" in this document are to be interpreted as described in <xref
      target="RFC2119"></xref> when they appear in ALL CAPS. When these words
      are not in ALL CAPS (such as "should" or "Should"), they have their
      usual English meanings, and are not to be interpreted as <xref
      target="RFC2119"></xref> key words.</t>
    </section>

    <section title="The Internet-Standard Management Framework">
      <t>For a detailed overview of the documents that describe the current
      Internet-Standard Management Framework, please refer to section 7 of
      <xref target="RFC3410"></xref>.</t>

      <t>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
      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 <xref
      target="RFC2578"></xref>, <xref target="RFC2579"></xref> and <xref
      target="RFC2580"></xref>.</t>
    </section>

    <section title="Relationship to the IF-MIB">
      <t>The Interfaces MIB <xref target="RFC2863"></xref> 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.</t>

      <t>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.</t>
    </section>

    <section title="Difference from the IP tunnel MIB and NAT MIB">
      <t>The key technologies for DS-Lite are IP in IP (IPv4-in-IPv6) tunnels
      and NAT (IPv4 to IPv4 translation).</t>

      <t>Notes: According to section 5.2 of <xref target="RFC6333"></xref>,
      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 supports IP in IP encapsulation, if another RFC defined other
      tunnel types in the future, this DS-Lite MIB will be updated then.</t>

      <t>The NAT MIB <xref target="I-D.ietf-behave-nat-mib"></xref> is
      designed to carry translation from any address family to any address
      family, therefore it supports IPv4 to IPv4 translation.</t>

      <t>The IP Tunnel MIB <xref target="RFC4087"></xref> is designed for
      managing tunnels of any type over IPv4 and IPv6 networks, therefore it
      supports IP in IP tunnels.</t>

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

      <t><list style="empty">
          <t>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.</t>

          <t>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 the IP Tunnel MIB for DS-Lite MIB.</t>

          <t>In a DS-Lite scenario, the AFTR is not only the tunnel end
          concentrator, but also a 4-4 translator. Within the Address Family
          Transition Router (AFTR), tunnel information and translation
          information MUST be mapped each other. But the tunnel entry defined
          in the IP Tunnel MIB and the NAT mapping entry defined in the NAT
          MIB are not able to reflect this mapping relationship. Therefore, a
          combined MIB is necessary.</t>
        </list>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 "::".</t>
    </section>

    <section title="Structure of the MIB Module">
      <t>The DS-Lite MIB provides a way to monitor and manage the devices
      (AFTRs) in DS-Lite scenario through SNMP.</t>

      <t>The DS-Lite MIB is configurable on a per-interface basis. It depends
      on several parts of the IF-MIB <xref target="RFC2863"></xref>, IP Tunnel
      MIB <xref target="RFC4087"></xref>, and NAT MIB <xref
      target="I-D.ietf-behave-nat-mib"></xref>.</t>

      <section title="The Object Group">
        <t>This Group defines objects that are needed for DS-Lite MIB.</t>

        <section title="The dsliteTunnel Subtree">
          <t>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", a few new objects are
          defined in DS- Lite MIB.</t>
        </section>

        <section title="The dsliteNAT Subtree">
          <t>The dsliteNAT 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 also provides the information of mapping relationship
          between the tunnel entry and NAT entry by extending the IPv6 address
          of B4 to the natMappingTableEntry in the NAT MIB.</t>
        </section>

        <section title="The dsliteInfo Subtree">
          <t>The dsliteInfo subtree provides statistical information for
          DS-Lite.</t>
        </section>
      </section>

      <section title="The Notification Group">
        <t>This group defines some notification objects for DS-Lite.</t>

        <section title="The dsliteTrap Subtree">
          <t>The dsliteTrap subtree provides trap information in DS-Lite
          scenario.</t>
        </section>
      </section>

      <section title="The Conformance Group">
        <t>The dsliteConformance subtree provides conformance information of
        MIB objects.</t>
      </section>
    </section>

    <section title="MIB modules required for IMPORTS">
      <t>This MIB module IMPORTs objects from <xref target="RFC2578"></xref>,
      <xref target="RFC2580"></xref>, <xref target="RFC2863"></xref>, <xref
      target="RFC3411"></xref>, <xref target="RFC4001"></xref> and <xref
      target="RFC4008"></xref>.</t>
    </section>

    <section title="Definitions">
      <t><figure>
          <artwork><![CDATA[   DSLite-MIB DEFINITIONS  ::=  BEGIN

      IMPORTS
         MODULE-IDENTITY, OBJECT-TYPE, transmission,
         NOTIFICATION-TYPE,Gauge32,TimeTicks,
         Integer32, 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, InetAddressPrefixLength,
        InetPortNumber
              FROM INET-ADDRESS-MIB

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

      dsliteMIB MODULE-IDENTITY
      LAST-UPDATED "201404290000Z"          -- April 29, 2014
      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.
         Copyright (C) The Internet Society (2014).  This version
         of this MIB module is part of RFC yyyy; see the RFC itself
         for full legal notices. "
      REVISION    "201405040000Z"
      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

      dsliteNotifications  OBJECT IDENTIFIER
         ::=  { dsliteMIB 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 }
         ::=  { dsliteTunnelTable 1 }

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

       dsliteTunnelStartAddressType OBJECT-TYPE
          SYNTAX     InetAddressType
          MAX-ACCESS not-accessible
          STATUS     current
          DESCRIPTION
              " This object MUST be set to the value of ipv6(2).
                It describes the address type of the 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 }

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

      dsliteTunnelStartAddPreLen OBJECT-TYPE
          SYNTAX InetAddressPrefixLength
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
             "IPv6 prefix length of the IP address of the
              start point of the tunnel."
          ::= { dsliteTunnelEntry 4 }



    --dsliteNAT
    --dsliteNATMapTable(define address pool, natPoolTable and
    --natPoolRangeTable defined in draft-ietf-behave-nat-mib
    --are sufficient)
    --dsliteNATBindTable(NAPT)
       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
             natMappingTable designed in NAT MIB
             (draft-ietf-behave-nat-mib) by IPv6 address of B4."
         ::=  { dsliteNAT 1 }

      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   { dsliteNATBindMappingProto,
                   dsliteNATBindMappingExtRealm,
                   dsliteNATBindMappingExtAddressType,
                   dsliteNATBindMappingExtAddress,
                   dsliteNATBindMappingExtPort,
                   dsliteTunnelStartAddress,
                   dsliteTunnelStartAddPreLen }
         ::=  {  dsliteNATBindTable 1   }

     DsliteNATBindEntry  ::=
         SEQUENCE {
         dsliteNATBindMappingProto          ProtocolNumber,
         dsliteNATBindMappingExtRealm       SnmpAdminString,
         dsliteNATBindMappingExtAddressType InetAddressType,
         dsliteNATBindMappingExtAddress     InetAddress,
         dsliteNATBindMappingExtPort        InetPortNumber,
         dsliteNATBindMappingIntRealm       SnmpAdminString,
         dsliteNATBindMappingIntAddressType InetAddressType,
         dsliteNATBindMappingIntAddress     InetAddress,
         dsliteNATBindMappingIntPort        InetPortNumber,
         dsliteNATBindMappingPool           Unsigned32,
         dsliteNATBindMappingMapBehavior    NatBehaviorType,
         dsliteNATBindMappingFilterBehavior NatBehaviorType,
         dsliteNATBindMappingAddressPooling NatPoolingType
         }

      dsliteNATBindMappingProto OBJECT-TYPE
          SYNTAX      ProtocolNumber
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
          " This object specifies the mapping's transport protocol
          number."
          ::= { dsliteNATBindEntry 1 }

     dsliteNATBindMappingExtRealm OBJECT-TYPE
          SYNTAX     SnmpAdminString (SIZE(0..32))
          MAX-ACCESS not-accessible
          STATUS     current
          DESCRIPTION
          " The realm to which natMappingExtAddress belongs."
          ::= { dsliteNATBindEntry 2 }

      dsliteNATBindMappingExtAddressType OBJECT-TYPE
          SYNTAX InetAddressType
          MAX-ACCESS not-accessible
          STATUS current
          DESCRIPTION
          "Type of the mapping's external address."
          ::= { dsliteNATBindEntry 3 }

     dsliteNATBindMappingExtAddress OBJECT-TYPE
          SYNTAX InetAddress (SIZE (4|16))
          MAX-ACCESS not-accessible
          STATUS current
          DESCRIPTION
          "The mapping's external address. If this is the undefined
          address, all external addresses are mapped to the internal
          address."
          ::= { dsliteNATBindEntry 4 }

      dsliteNATBindMappingExtPort OBJECT-TYPE
          SYNTAX InetPortNumber
          MAX-ACCESS not-accessible
          STATUS current
          DESCRIPTION
          "The mapping's external port number. If this is zero, all
          external ports are mapped to the internal port."
          ::= { dsliteNATBindEntry 5 }

       dsliteNATBindMappingIntRealm OBJECT-TYPE
          SYNTAX SnmpAdminString
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
          "The realm to which natMappingIntAddress belongs."
          ::= { dsliteNATBindEntry 6 }

      dsliteNATBindMappingIntAddressType OBJECT-TYPE
          SYNTAX InetAddressType
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
          "Type of the mapping's internal address."
          ::= { dsliteNATBindEntry 7 }

      dsliteNATBindMappingIntAddress OBJECT-TYPE
          SYNTAX InetAddress
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
          "The mapping's internal address. If this is the undefined
          address, addresses are not translated."
          ::= { dsliteNATBindEntry 8 }

      dsliteNATBindMappingIntPort OBJECT-TYPE
          SYNTAX InetPortNumber
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
           "The mapping's internal port number. If this is zero, ports
            are not translated."
           ::= { dsliteNATBindEntry 9 }

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

      dsliteNATBindMappingMapBehavior OBJECT-TYPE
          SYNTAX NatBehaviorType
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
          "Mapping behavior as described in [RFC4787] section 4.1."
          ::= { dsliteNATBindEntry 11 }

      dsliteNATBindMappingFilterBehavior OBJECT-TYPE
          SYNTAX NatBehaviorType
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
          "Filtering behavior as described in [RFC4787] section 5."::=
          { dsliteNATBindEntry 12 }

      dsliteNATBindMappingAddressPooling OBJECT-TYPE
          SYNTAX NatPoolingType
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
          "Type of address pooling behavior that was used to create
          this mapping."
          ::= { dsliteNATBindEntry 13 }

      --dsliteInfo

      dsliteAFTRAlarmScalar OBJECT IDENTIFIER ::= { dsliteInfo 1 }


      dsliteAFTRAlarmB4Addr OBJECT-TYPE
         SYNTAX  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 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 2 }

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

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

      dsliteStatisticSubscriberIdentifier OBJECT-TYPE
         SubscriberIdentifier (SIZE (3|4|16))
         MAX-ACCESS not-accessible
         STATUS current
         DESCRIPTION
            " This object indicate the address used for uniquely
             identifying the subscriber. It is the IPv6 address
             of B4 in DS-Lite."
         ::= { dsliteStatisticEntry 1 }

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

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

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

      dsliteStatisticIpv6Session OBJECT-TYPE
         SYNTAX Counter64
         MAX-ACCESS read-only
         STATUS current
         DESCRIPTION
           " This object indicate the number of the
              current IPv6 Session."
        ::= { dsliteStatisticEntry 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 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 { dsliteNATBindGroup,
                  dsliteTunnelGroup,
                  dsliteStatisticGroup,
                  dsliteTrapsGroup,dsliteAFTRAlarmScalarGroup }
          ::= { dsliteCompliances 1 }

      dsliteNATBindGroup OBJECT-GROUP
         OBJECTS {
                  dsliteNATBindMappingIntRealm,
                  dsliteNATBindMappingIntAddressType,
                  dsliteNATBindMappingIntAddress,
                  dsliteNATBindMappingIntPort,
                  dsliteNATBindMappingPool,
                  dsliteNATBindMappingMapBehavior,
                  dsliteNATBindMappingFilterBehavior,
                  dsliteNATBindMappingAddressPooling }
         STATUS current
         DESCRIPTION
            " The collection of this objects are used to give the
             information about NAT Bind."
          ::= { dsliteGroups 1 }

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

      dsliteStatisticGroup OBJECT-GROUP
         OBJECTS { dsliteStatisticDiscard,
                   dsliteStatisticTransmitted,
                   dsliteStatisticIpv4Session,
                   dsliteStatisticIpv6Session }
        STATUS current
        DESCRIPTION
           " The collection of this objects are used to give the
             statistical information of ds-lite."
          ::= { dsliteGroups 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 4 }

       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 5 }

             END
]]></artwork>
        </figure></t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>There are a number of management objects defined in this MIB module
      with a MAX-ACCESS clause of read-write and/or read-create. Such objects
      may be considered sensitive or vulnerable in some network environments.
      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:</t>

      <t><list style="empty">
          <t>Notification thresholds: An attacker setting an arbitrarily low
          treshold can cause many useless notifications to be generated.
          Setting an arbitrarily high threshold can effectively disable
          notifications, which could be used to hide another attack.</t>

          <t>dsliteAFTRAlarmConnectNumber</t>
        </list></t>

      <t>Some of the readable objects in this MIB module (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 objects and possibly to even
      encrypt the values of these objects when sending them over the network
      via SNMP. These are the tables and objects and their
      sensitivity/vulnerability:<list style="empty">
          <t>dsliteTunnelStartAddPreLen</t>

          <t>dsliteNATBindMappingIntRealm</t>

          <t>dsliteNATBindMappingIntAddressType</t>

          <t>dsliteNATBindMappingIntAddress</t>

          <t>dsliteNATBindMappingIntPort</t>

          <t>dsliteNATBindMappingPool</t>

          <t>dsliteNATBindMappingMapBehavior</t>

          <t>dsliteNATBindMappingFilterBehavior</t>

          <t>dsliteNATBindMappingAddressPooling</t>

          <t>dsliteStatisticDiscard</t>

          <t>dsliteStatisticTransmitted</t>

          <t>dsliteStatisticIpv4Session</t>

          <t>dsliteStatisticIpv6Session</t>
        </list></t>

      <t>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.</t>

      <t>Implementations SHOULD provide the security features described by the
      SNMPv3 framework (see [RFC3410]), and implementations claiming
      compliance to the SNMPv3 standard MUST include full support for
      authentication and 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].</t>

      <t>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.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>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:</t>

      <t><figure>
          <artwork><![CDATA[      Descriptor        OBJECT IDENTIFIER value
      ----------        -----------------------
      DSLite-MIB         { transmission XXX }

      IANAtunnelType ::= TEXTUAL-CONVENTION

                 SYNTAX     INTEGER {

                            dsLite ("XX")        -- dslite tunnel

                            }
]]></artwork>
        </figure>Notes: As 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 tunnel, but it is still difficult to distinguish
      DS-Lite tunnel packets from normal IP in IP tunnel packets in the
      scenario of the AFTR connecting to both a DS-lite tunnel and an IP in IP
      tunnel.</t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>The authors would like to thanks the valuable comments made by Suresh
      Krishnan, Ian Farrer, Yiu Lee, Qi Sun, Yong Cui, Dave Thaler, Tassos
      Chatzithomaoglou and other members of SOFTWIRE WG.</t>

      <t>This document was produced using the xml2rfc tool <xref
      target="RFC2629"></xref>.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include='reference.RFC.2119'?>

      <?rfc include='reference.RFC.2578'?>

      <?rfc include='reference.RFC.2579'?>

      <?rfc include='reference.RFC.2580'?>

      <?rfc include='reference.RFC.2863'?>

      <?rfc include='reference.RFC.3411'?>

      <?rfc include='reference.RFC.3414'?>

      <?rfc include='reference.RFC.3826'?>

      <?rfc include='reference.RFC.4001'?>

      <?rfc include='reference.RFC.4008'?>

      <?rfc include='reference.RFC.4087'?>

      <?rfc include='reference.RFC.4787'?>

      <?rfc include='reference.RFC.5591'?>

      <?rfc include='reference.RFC.5592'?>

      <?rfc include='reference.RFC.6333'?>

      <?rfc include='reference.RFC.6353'?>
    </references>

    <references title="Informative References">
      <?rfc include='reference.RFC.3410'?>

      <?rfc include='reference.RFC.2629'?>

      <?rfc include='reference.I-D.ietf-behave-nat-mib'?>
    </references>
  </back>
</rfc>
