<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="info" docName="draft-chz-simple-cu-separation-bng-protocol-06" indexInclude="true" ipr="trust200902" number="8772" prepTime="2020-05-11T16:49:12" scripts="Common,Latin" sortRefs="false" submissionType="independent" symRefs="true" tocDepth="3" tocInclude="true" xml:lang="en">
  <link href="https://datatracker.ietf.org/doc/draft-chz-simple-cu-separation-bng-protocol-06" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc8772" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="Simple BNG CUSP">The China Mobile, Huawei, and ZTE Broadband Network Gateway (BNG) Simple Control and User Plane Separation Protocol (S-CUSP)</title>
    <seriesInfo name="RFC" value="8772" stream="independent"/>
    <author fullname="Shujun Hu" initials="S." surname="Hu">
      <organization showOnFrontPage="true">China Mobile</organization>
      <address>
        <postal>
          <street>32 Xuanwumen West Ave</street>
          <cityarea>Xicheng District</cityarea>
          <city>Beijing</city>
          <code>100053</code>
          <country>China</country>
        </postal>
        <email>hushujun@chinamobile.com</email>
      </address>
    </author>
    <author fullname="Donald Eastlake 3rd" initials="D." surname="Eastlake 3rd">
      <organization showOnFrontPage="true">Futurewei Technologies</organization>
      <address>
        <postal>
          <street>2386 Panoramic Circle</street>
          <city>Apopka</city>
          <region>FL</region>
          <code>32703</code>
          <country>US</country>
        </postal>
        <phone>+1-508-333-2270</phone>
        <email>d3e3e3@gmail.com</email>
      </address>
    </author>
    <author fullname="Fengwei Qin" initials="F." surname="Qin">
      <organization showOnFrontPage="true">China Mobile</organization>
      <address>
        <postal>
          <street>32 Xuanwumen West Ave</street>
          <cityarea>Xicheng District</cityarea>
          <city>Beijing</city>
          <code>100053</code>
          <country>China</country>
        </postal>
        <email>qinfengwei@chinamobile.com</email>
      </address>
    </author>
    <author fullname="Tee Mong Chua" initials="T." surname="Chua">
      <organization abbrev="Singapore Telecommunications" showOnFrontPage="true">Singapore Telecommunications Limited</organization>
      <address>
        <postal>
          <street>31 Exeter Road, #05-04 Comcentre Podium Block</street>
          <city>Singapore</city>
          <code>239732</code>
          <country>Singapore</country>
        </postal>
        <email>teemong@singtel.com</email>
      </address>
    </author>
    <author fullname="Daniel Huang" initials="D." surname="Huang">
      <organization showOnFrontPage="true">ZTE</organization>
      <address>
        <email>huang.guangping@zte.com.cn</email>
      </address>
    </author>
    <date month="05" year="2020"/>
    <keyword>CUPS</keyword>
    <keyword>CUSP</keyword>
    <keyword>BRAS</keyword>
    <keyword>BBRAS</keyword>
    <abstract pn="section-abstract">
      <t pn="section-abstract-1">
   A Broadband Network Gateway (BNG) in a fixed wireline access network is an
   Ethernet-centric IP edge router and the aggregation point for subscriber
   traffic. Control and User Plane Separation (CUPS) for such a BNG improves
   flexibility and scalability but requires various communication between the
   User Plane (UP) and the Control Plane (CP).  China Mobile, Huawei
   Technologies, and ZTE have developed a simple CUPS control channel protocol
   to support such communication: the
   Simple Control and User Plane Separation Protocol (S-CUSP). S-CUSP is
   defined in this document.
</t>
      <t pn="section-abstract-2">
   This document is not an IETF standard and does not have IETF
   consensus.  S-CUSP is presented here to make its specification
   conveniently available to the Internet community to enable diagnosis
   and interoperability.</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t pn="section-boilerplate.1-1">
            This document is not an Internet Standards Track specification; it is
            published for informational purposes.
        </t>
        <t pn="section-boilerplate.1-2">
            This is a contribution to the RFC Series, independently of any
            other RFC stream.  The RFC Editor has chosen to publish this
            document at its discretion and makes no statement about its value
            for implementation or deployment.  Documents approved for
            publication by the RFC Editor are not candidates for any level of
            Internet Standard; see Section 2 of RFC 7841.
        </t>
        <t pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc8772" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t pn="section-boilerplate.2-1">
            Copyright (c) 2020 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) 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.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
          </li>
          <li pn="section-toc.1-1.2">
            <t pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terminology">Terminology</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2">
              <li pn="section-toc.1-1.2.2.1">
                <t keepWithNext="true" pn="section-toc.1-1.2.2.1.1"><xref derivedContent="2.1" format="counter" sectionFormat="of" target="section-2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-implementation-requirement-">Implementation Requirement Keywords</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.2">
                <t keepWithNext="true" pn="section-toc.1-1.2.2.2.1"><xref derivedContent="2.2" format="counter" sectionFormat="of" target="section-2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terms">Terms</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.3">
            <t pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bng-cups-overview">BNG CUPS Overview</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2">
              <li pn="section-toc.1-1.3.2.1">
                <t pn="section-toc.1-1.3.2.1.1"><xref derivedContent="3.1" format="counter" sectionFormat="of" target="section-3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bng-cups-motivation">BNG CUPS Motivation</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.2">
                <t pn="section-toc.1-1.3.2.2.1"><xref derivedContent="3.2" format="counter" sectionFormat="of" target="section-3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bng-cups-architecture-overv">BNG CUPS Architecture Overview</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.3">
                <t pn="section-toc.1-1.3.2.3.1"><xref derivedContent="3.3" format="counter" sectionFormat="of" target="section-3.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bng-cups-interfaces">BNG CUPS Interfaces</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2.3.2">
                  <li pn="section-toc.1-1.3.2.3.2.1">
                    <t pn="section-toc.1-1.3.2.3.2.1.1"><xref derivedContent="3.3.1" format="counter" sectionFormat="of" target="section-3.3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-service-interface-si">Service Interface (Si)</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.3.2.2">
                    <t pn="section-toc.1-1.3.2.3.2.2.1"><xref derivedContent="3.3.2" format="counter" sectionFormat="of" target="section-3.3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-control-interface-ci">Control Interface (Ci)</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.3.2.3">
                    <t pn="section-toc.1-1.3.2.3.2.3.1"><xref derivedContent="3.3.3" format="counter" sectionFormat="of" target="section-3.3.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-management-interface-mi">Management Interface (Mi)</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.3.2.4">
                <t pn="section-toc.1-1.3.2.4.1"><xref derivedContent="3.4" format="counter" sectionFormat="of" target="section-3.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bng-cups-procedure-overview">BNG CUPS Procedure Overview</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.4">
            <t pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-s-cusp-protocol-overview">S-CUSP Protocol Overview</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2">
              <li pn="section-toc.1-1.4.2.1">
                <t pn="section-toc.1-1.4.2.1.1"><xref derivedContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-control-channel-procedures">Control Channel Procedures</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.1.2">
                  <li pn="section-toc.1-1.4.2.1.2.1">
                    <t pn="section-toc.1-1.4.2.1.2.1.1"><xref derivedContent="4.1.1" format="counter" sectionFormat="of" target="section-4.1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-s-cusp-session-establishmen">S-CUSP Session Establishment</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.1.2.2">
                    <t pn="section-toc.1-1.4.2.1.2.2.1"><xref derivedContent="4.1.2" format="counter" sectionFormat="of" target="section-4.1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-keepalive-timer-and-deadtim">Keepalive Timer and DeadTimer</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.4.2.2">
                <t pn="section-toc.1-1.4.2.2.1"><xref derivedContent="4.2" format="counter" sectionFormat="of" target="section-4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-node-procedures">Node Procedures</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.2.2">
                  <li pn="section-toc.1-1.4.2.2.2.1">
                    <t pn="section-toc.1-1.4.2.2.2.1.1"><xref derivedContent="4.2.1" format="counter" sectionFormat="of" target="section-4.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-up-resource-report">UP Resource Report</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.2.2.2">
                    <t pn="section-toc.1-1.4.2.2.2.2.1"><xref derivedContent="4.2.2" format="counter" sectionFormat="of" target="section-4.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-update-bas-function-on-acce">Update BAS Function on Access Interface</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.2.2.3">
                    <t pn="section-toc.1-1.4.2.2.2.3.1"><xref derivedContent="4.2.3" format="counter" sectionFormat="of" target="section-4.2.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-update-network-routing">Update Network Routing</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.2.2.4">
                    <t pn="section-toc.1-1.4.2.2.2.4.1"><xref derivedContent="4.2.4" format="counter" sectionFormat="of" target="section-4.2.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-cgn-public-ip-address-alloc">CGN Public IP Address Allocation</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.2.2.5">
                    <t pn="section-toc.1-1.4.2.2.2.5.1"><xref derivedContent="4.2.5" format="counter" sectionFormat="of" target="section-4.2.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-data-synchronization-betwee">Data Synchronization between the CP and UP</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.4.2.3">
                <t pn="section-toc.1-1.4.2.3.1"><xref derivedContent="4.3" format="counter" sectionFormat="of" target="section-4.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-subscriber-session-procedur">Subscriber Session Procedures</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.3.2">
                  <li pn="section-toc.1-1.4.2.3.2.1">
                    <t pn="section-toc.1-1.4.2.3.2.1.1"><xref derivedContent="4.3.1" format="counter" sectionFormat="of" target="section-4.3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-create-subscriber-session">Create Subscriber Session</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.3.2.2">
                    <t pn="section-toc.1-1.4.2.3.2.2.1"><xref derivedContent="4.3.2" format="counter" sectionFormat="of" target="section-4.3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-update-subscriber-session">Update Subscriber Session</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.3.2.3">
                    <t pn="section-toc.1-1.4.2.3.2.3.1"><xref derivedContent="4.3.3" format="counter" sectionFormat="of" target="section-4.3.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-delete-subscriber-session">Delete Subscriber Session</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.3.2.4">
                    <t pn="section-toc.1-1.4.2.3.2.4.1"><xref derivedContent="4.3.4" format="counter" sectionFormat="of" target="section-4.3.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-subscriber-session-events-r">Subscriber Session Events Report</xref></t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.5">
            <t pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-s-cusp-call-flows">S-CUSP Call Flows</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2">
              <li pn="section-toc.1-1.5.2.1">
                <t pn="section-toc.1-1.5.2.1.1"><xref derivedContent="5.1" format="counter" sectionFormat="of" target="section-5.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ipoe">IPoE</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2.1.2">
                  <li pn="section-toc.1-1.5.2.1.2.1">
                    <t pn="section-toc.1-1.5.2.1.2.1.1"><xref derivedContent="5.1.1" format="counter" sectionFormat="of" target="section-5.1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-dhcpv4-access">DHCPv4 Access</xref></t>
                  </li>
                  <li pn="section-toc.1-1.5.2.1.2.2">
                    <t pn="section-toc.1-1.5.2.1.2.2.1"><xref derivedContent="5.1.2" format="counter" sectionFormat="of" target="section-5.1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-dhcpv6-access">DHCPv6 Access</xref></t>
                  </li>
                  <li pn="section-toc.1-1.5.2.1.2.3">
                    <t pn="section-toc.1-1.5.2.1.2.3.1"><xref derivedContent="5.1.3" format="counter" sectionFormat="of" target="section-5.1.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ipv6-stateless-address-auto">IPv6 Stateless Address Autoconfiguration (SLAAC) Access</xref></t>
                  </li>
                  <li pn="section-toc.1-1.5.2.1.2.4">
                    <t pn="section-toc.1-1.5.2.1.2.4.1"><xref derivedContent="5.1.4" format="counter" sectionFormat="of" target="section-5.1.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-dhcpv6-and-slaac-access">DHCPv6 and SLAAC Access</xref></t>
                  </li>
                  <li pn="section-toc.1-1.5.2.1.2.5">
                    <t pn="section-toc.1-1.5.2.1.2.5.1"><xref derivedContent="5.1.5" format="counter" sectionFormat="of" target="section-5.1.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-dhcp-dual-stack-access">DHCP Dual-Stack Access</xref></t>
                  </li>
                  <li pn="section-toc.1-1.5.2.1.2.6">
                    <t pn="section-toc.1-1.5.2.1.2.6.1"><xref derivedContent="5.1.6" format="counter" sectionFormat="of" target="section-5.1.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-l2-static-subscriber-access">L2 Static Subscriber Access</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.5.2.2">
                <t pn="section-toc.1-1.5.2.2.1"><xref derivedContent="5.2" format="counter" sectionFormat="of" target="section-5.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-pppoe">PPPoE</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2.2.2">
                  <li pn="section-toc.1-1.5.2.2.2.1">
                    <t pn="section-toc.1-1.5.2.2.2.1.1"><xref derivedContent="5.2.1" format="counter" sectionFormat="of" target="section-5.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ipv4-pppoe-access">IPv4 PPPoE Access</xref></t>
                  </li>
                  <li pn="section-toc.1-1.5.2.2.2.2">
                    <t pn="section-toc.1-1.5.2.2.2.2.1"><xref derivedContent="5.2.2" format="counter" sectionFormat="of" target="section-5.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ipv6-pppoe-access">IPv6 PPPoE Access</xref></t>
                  </li>
                  <li pn="section-toc.1-1.5.2.2.2.3">
                    <t pn="section-toc.1-1.5.2.2.2.3.1"><xref derivedContent="5.2.3" format="counter" sectionFormat="of" target="section-5.2.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-pppoe-dual-stack-access">PPPoE Dual-Stack Access</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.5.2.3">
                <t pn="section-toc.1-1.5.2.3.1"><xref derivedContent="5.3" format="counter" sectionFormat="of" target="section-5.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-wlan-access">WLAN Access</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.4">
                <t pn="section-toc.1-1.5.2.4.1"><xref derivedContent="5.4" format="counter" sectionFormat="of" target="section-5.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-l2tp">L2TP</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2.4.2">
                  <li pn="section-toc.1-1.5.2.4.2.1">
                    <t pn="section-toc.1-1.5.2.4.2.1.1"><xref derivedContent="5.4.1" format="counter" sectionFormat="of" target="section-5.4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-l2tp-lac-access">L2TP LAC Access</xref></t>
                  </li>
                  <li pn="section-toc.1-1.5.2.4.2.2">
                    <t pn="section-toc.1-1.5.2.4.2.2.1"><xref derivedContent="5.4.2" format="counter" sectionFormat="of" target="section-5.4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-l2tp-lns-ipv4-access">L2TP LNS IPv4 Access</xref></t>
                  </li>
                  <li pn="section-toc.1-1.5.2.4.2.3">
                    <t pn="section-toc.1-1.5.2.4.2.3.1"><xref derivedContent="5.4.3" format="counter" sectionFormat="of" target="section-5.4.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-l2tp-lns-ipv6-access">L2TP LNS IPv6 Access</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.5.2.5">
                <t pn="section-toc.1-1.5.2.5.1"><xref derivedContent="5.5" format="counter" sectionFormat="of" target="section-5.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-cgn-carrier-grade-nat">CGN (Carrier Grade NAT)</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.6">
                <t pn="section-toc.1-1.5.2.6.1"><xref derivedContent="5.6" format="counter" sectionFormat="of" target="section-5.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-l3-leased-line-access">L3 Leased Line Access</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2.6.2">
                  <li pn="section-toc.1-1.5.2.6.2.1">
                    <t pn="section-toc.1-1.5.2.6.2.1.1"><xref derivedContent="5.6.1" format="counter" sectionFormat="of" target="section-5.6.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-web-authentication">Web Authentication</xref></t>
                  </li>
                  <li pn="section-toc.1-1.5.2.6.2.2">
                    <t pn="section-toc.1-1.5.2.6.2.2.1"><xref derivedContent="5.6.2" format="counter" sectionFormat="of" target="section-5.6.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-user-traffic-trigger">User Traffic Trigger</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.5.2.7">
                <t pn="section-toc.1-1.5.2.7.1"><xref derivedContent="5.7" format="counter" sectionFormat="of" target="section-5.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-multicast-service-access">Multicast Service Access</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.6">
            <t pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-s-cusp-message-formats">S-CUSP Message Formats</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2">
              <li pn="section-toc.1-1.6.2.1">
                <t pn="section-toc.1-1.6.2.1.1"><xref derivedContent="6.1" format="counter" sectionFormat="of" target="section-6.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-common-message-header">Common Message Header</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.2">
                <t pn="section-toc.1-1.6.2.2.1"><xref derivedContent="6.2" format="counter" sectionFormat="of" target="section-6.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-control-messages">Control Messages</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2.2.2">
                  <li pn="section-toc.1-1.6.2.2.2.1">
                    <t pn="section-toc.1-1.6.2.2.2.1.1"><xref derivedContent="6.2.1" format="counter" sectionFormat="of" target="section-6.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-hello-message">Hello Message</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.2.2.2">
                    <t pn="section-toc.1-1.6.2.2.2.2.1"><xref derivedContent="6.2.2" format="counter" sectionFormat="of" target="section-6.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-keepalive-message">Keepalive Message</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.2.2.3">
                    <t pn="section-toc.1-1.6.2.2.2.3.1"><xref derivedContent="6.2.3" format="counter" sectionFormat="of" target="section-6.2.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sync_request-message">Sync_Request Message</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.2.2.4">
                    <t pn="section-toc.1-1.6.2.2.2.4.1"><xref derivedContent="6.2.4" format="counter" sectionFormat="of" target="section-6.2.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sync_begin-message">Sync_Begin Message</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.2.2.5">
                    <t pn="section-toc.1-1.6.2.2.2.5.1"><xref derivedContent="6.2.5" format="counter" sectionFormat="of" target="section-6.2.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sync_data-message">Sync_Data Message</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.2.2.6">
                    <t pn="section-toc.1-1.6.2.2.2.6.1"><xref derivedContent="6.2.6" format="counter" sectionFormat="of" target="section-6.2.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sync_end-message">Sync_End Message</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.2.2.7">
                    <t pn="section-toc.1-1.6.2.2.2.7.1"><xref derivedContent="6.2.7" format="counter" sectionFormat="of" target="section-6.2.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-update_request-message">Update_Request Message</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.2.2.8">
                    <t pn="section-toc.1-1.6.2.2.2.8.1"><xref derivedContent="6.2.8" format="counter" sectionFormat="of" target="section-6.2.8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-update_response-message">Update_Response Message</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.6.2.3">
                <t pn="section-toc.1-1.6.2.3.1"><xref derivedContent="6.3" format="counter" sectionFormat="of" target="section-6.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-event-message">Event Message</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.4">
                <t pn="section-toc.1-1.6.2.4.1"><xref derivedContent="6.4" format="counter" sectionFormat="of" target="section-6.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-report-message">Report Message</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.5">
                <t pn="section-toc.1-1.6.2.5.1"><xref derivedContent="6.5" format="counter" sectionFormat="of" target="section-6.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-cgn-messages">CGN Messages</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2.5.2">
                  <li pn="section-toc.1-1.6.2.5.2.1">
                    <t pn="section-toc.1-1.6.2.5.2.1.1"><xref derivedContent="6.5.1" format="counter" sectionFormat="of" target="section-6.5.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-addr_allocation_req-message">Addr_Allocation_Req Message</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.5.2.2">
                    <t pn="section-toc.1-1.6.2.5.2.2.1"><xref derivedContent="6.5.2" format="counter" sectionFormat="of" target="section-6.5.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-addr_allocation_ack-message">Addr_Allocation_Ack Message</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.5.2.3">
                    <t pn="section-toc.1-1.6.2.5.2.3.1"><xref derivedContent="6.5.3" format="counter" sectionFormat="of" target="section-6.5.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-addr_renew_req-message">Addr_Renew_Req Message</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.5.2.4">
                    <t pn="section-toc.1-1.6.2.5.2.4.1"><xref derivedContent="6.5.4" format="counter" sectionFormat="of" target="section-6.5.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-addr_renew_ack-message">Addr_Renew_Ack Message</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.5.2.5">
                    <t pn="section-toc.1-1.6.2.5.2.5.1"><xref derivedContent="6.5.5" format="counter" sectionFormat="of" target="section-6.5.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-addr_release_req-message">Addr_Release_Req Message</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.5.2.6">
                    <t pn="section-toc.1-1.6.2.5.2.6.1"><xref derivedContent="6.5.6" format="counter" sectionFormat="of" target="section-6.5.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-addr_release_ack-message">Addr_Release_Ack Message</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.6.2.6">
                <t pn="section-toc.1-1.6.2.6.1"><xref derivedContent="6.6" format="counter" sectionFormat="of" target="section-6.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-vendor-message">Vendor Message</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.7">
                <t pn="section-toc.1-1.6.2.7.1"><xref derivedContent="6.7" format="counter" sectionFormat="of" target="section-6.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-error-message">Error Message</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.7">
            <t pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-s-cusp-tlvs-and-sub-tlvs">S-CUSP TLVs and Sub-TLVs</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2">
              <li pn="section-toc.1-1.7.2.1">
                <t pn="section-toc.1-1.7.2.1.1"><xref derivedContent="7.1" format="counter" sectionFormat="of" target="section-7.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-common-tlv-header">Common TLV Header</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.2">
                <t pn="section-toc.1-1.7.2.2.1"><xref derivedContent="7.2" format="counter" sectionFormat="of" target="section-7.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-basic-data-fields">Basic Data Fields</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.3">
                <t pn="section-toc.1-1.7.2.3.1"><xref derivedContent="7.3" format="counter" sectionFormat="of" target="section-7.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sub-tlv-format-and-sub-tlvs">Sub-TLV Format and Sub-TLVs</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2.3.2">
                  <li pn="section-toc.1-1.7.2.3.2.1">
                    <t pn="section-toc.1-1.7.2.3.2.1.1"><xref derivedContent="7.3.1" format="counter" sectionFormat="of" target="section-7.3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-name-sub-tlvs">Name Sub-TLVs</xref></t>
                  </li>
                  <li pn="section-toc.1-1.7.2.3.2.2">
                    <t pn="section-toc.1-1.7.2.3.2.2.1"><xref derivedContent="7.3.2" format="counter" sectionFormat="of" target="section-7.3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ingress-car-sub-tlv">Ingress-CAR Sub-TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.7.2.3.2.3">
                    <t pn="section-toc.1-1.7.2.3.2.3.1"><xref derivedContent="7.3.3" format="counter" sectionFormat="of" target="section-7.3.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-egress-car-sub-tlv">Egress-CAR Sub-TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.7.2.3.2.4">
                    <t pn="section-toc.1-1.7.2.3.2.4.1"><xref derivedContent="7.3.4" format="counter" sectionFormat="of" target="section-7.3.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-if-desc-sub-tlv">If-Desc Sub-TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.7.2.3.2.5">
                    <t pn="section-toc.1-1.7.2.3.2.5.1"><xref derivedContent="7.3.5" format="counter" sectionFormat="of" target="section-7.3.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ipv6-address-list-sub-tlv">IPv6 Address List Sub-TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.7.2.3.2.6">
                    <t pn="section-toc.1-1.7.2.3.2.6.1"><xref derivedContent="7.3.6" format="counter" sectionFormat="of" target="section-7.3.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-vendor-sub-tlv">Vendor Sub-TLV</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.7.2.4">
                <t pn="section-toc.1-1.7.2.4.1"><xref derivedContent="7.4" format="counter" sectionFormat="of" target="section-7.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-hello-tlv">Hello TLV</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.5">
                <t pn="section-toc.1-1.7.2.5.1"><xref derivedContent="7.5" format="counter" sectionFormat="of" target="section-7.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-keepalive-tlv">Keepalive TLV</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.6">
                <t pn="section-toc.1-1.7.2.6.1"><xref derivedContent="7.6" format="counter" sectionFormat="of" target="section-7.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-error-information-tlv">Error Information TLV</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.7">
                <t pn="section-toc.1-1.7.2.7.1"><xref derivedContent="7.7" format="counter" sectionFormat="of" target="section-7.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bas-function-tlv">BAS Function TLV</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.8">
                <t pn="section-toc.1-1.7.2.8.1"><xref derivedContent="7.8" format="counter" sectionFormat="of" target="section-7.8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-routing-tlvs">Routing TLVs</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2.8.2">
                  <li pn="section-toc.1-1.7.2.8.2.1">
                    <t pn="section-toc.1-1.7.2.8.2.1.1"><xref derivedContent="7.8.1" format="counter" sectionFormat="of" target="section-7.8.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ipv4-routing-tlv">IPv4 Routing TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.7.2.8.2.2">
                    <t pn="section-toc.1-1.7.2.8.2.2.1"><xref derivedContent="7.8.2" format="counter" sectionFormat="of" target="section-7.8.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ipv6-routing-tlv">IPv6 Routing TLV</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.7.2.9">
                <t pn="section-toc.1-1.7.2.9.1"><xref derivedContent="7.9" format="counter" sectionFormat="of" target="section-7.9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-subscriber-tlvs">Subscriber TLVs</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2.9.2">
                  <li pn="section-toc.1-1.7.2.9.2.1">
                    <t pn="section-toc.1-1.7.2.9.2.1.1"><xref derivedContent="7.9.1" format="counter" sectionFormat="of" target="section-7.9.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-basic-subscriber-tlv">Basic Subscriber TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.7.2.9.2.2">
                    <t pn="section-toc.1-1.7.2.9.2.2.1"><xref derivedContent="7.9.2" format="counter" sectionFormat="of" target="section-7.9.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ppp-subscriber-tlv">PPP Subscriber TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.7.2.9.2.3">
                    <t pn="section-toc.1-1.7.2.9.2.3.1"><xref derivedContent="7.9.3" format="counter" sectionFormat="of" target="section-7.9.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ipv4-subscriber-tlv">IPv4 Subscriber TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.7.2.9.2.4">
                    <t pn="section-toc.1-1.7.2.9.2.4.1"><xref derivedContent="7.9.4" format="counter" sectionFormat="of" target="section-7.9.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ipv6-subscriber-tlv">IPv6 Subscriber TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.7.2.9.2.5">
                    <t pn="section-toc.1-1.7.2.9.2.5.1"><xref derivedContent="7.9.5" format="counter" sectionFormat="of" target="section-7.9.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ipv4-static-subscriber-dete">IPv4 Static Subscriber Detect TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.7.2.9.2.6">
                    <t pn="section-toc.1-1.7.2.9.2.6.1"><xref derivedContent="7.9.6" format="counter" sectionFormat="of" target="section-7.9.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ipv6-static-subscriber-dete">IPv6 Static Subscriber Detect TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.7.2.9.2.7">
                    <t pn="section-toc.1-1.7.2.9.2.7.1"><xref derivedContent="7.9.7" format="counter" sectionFormat="of" target="section-7.9.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-l2tp-lac-subscriber-tlv">L2TP-LAC Subscriber TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.7.2.9.2.8">
                    <t pn="section-toc.1-1.7.2.9.2.8.1"><xref derivedContent="7.9.8" format="counter" sectionFormat="of" target="section-7.9.8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-l2tp-lns-subscriber-tlv">L2TP-LNS Subscriber TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.7.2.9.2.9">
                    <t pn="section-toc.1-1.7.2.9.2.9.1"><xref derivedContent="7.9.9" format="counter" sectionFormat="of" target="section-7.9.9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-l2tp-lac-tunnel-tlv">L2TP-LAC Tunnel TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.7.2.9.2.10">
                    <t pn="section-toc.1-1.7.2.9.2.10.1"><xref derivedContent="7.9.10" format="counter" sectionFormat="of" target="section-7.9.10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-l2tp-lns-tunnel-tlv">L2TP-LNS Tunnel TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.7.2.9.2.11">
                    <t pn="section-toc.1-1.7.2.9.2.11.1"><xref derivedContent="7.9.11" format="counter" sectionFormat="of" target="section-7.9.11"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-update-response-tlv">Update Response TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.7.2.9.2.12">
                    <t pn="section-toc.1-1.7.2.9.2.12.1"><xref derivedContent="7.9.12" format="counter" sectionFormat="of" target="section-7.9.12"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-subscriber-policy-tlv">Subscriber Policy TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.7.2.9.2.13">
                    <t pn="section-toc.1-1.7.2.9.2.13.1"><xref derivedContent="7.9.13" format="counter" sectionFormat="of" target="section-7.9.13"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-subscriber-cgn-port-range-t">Subscriber CGN Port Range TLV</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.7.2.10">
                <t pn="section-toc.1-1.7.2.10.1"><xref derivedContent="7.10" format="counter" sectionFormat="of" target="section-7.10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-device-status-tlvs">Device Status TLVs</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2.10.2">
                  <li pn="section-toc.1-1.7.2.10.2.1">
                    <t pn="section-toc.1-1.7.2.10.2.1.1"><xref derivedContent="7.10.1" format="counter" sectionFormat="of" target="section-7.10.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-interface-status-tlv">Interface Status TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.7.2.10.2.2">
                    <t pn="section-toc.1-1.7.2.10.2.2.1"><xref derivedContent="7.10.2" format="counter" sectionFormat="of" target="section-7.10.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-board-status-tlv">Board Status TLV</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.7.2.11">
                <t pn="section-toc.1-1.7.2.11.1"><xref derivedContent="7.11" format="counter" sectionFormat="of" target="section-7.11"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-cgn-tlvs">CGN TLVs</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2.11.2">
                  <li pn="section-toc.1-1.7.2.11.2.1">
                    <t pn="section-toc.1-1.7.2.11.2.1.1"><xref derivedContent="7.11.1" format="counter" sectionFormat="of" target="section-7.11.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-address-allocation-request-">Address Allocation Request TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.7.2.11.2.2">
                    <t pn="section-toc.1-1.7.2.11.2.2.1"><xref derivedContent="7.11.2" format="counter" sectionFormat="of" target="section-7.11.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-address-allocation-response">Address Allocation Response TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.7.2.11.2.3">
                    <t pn="section-toc.1-1.7.2.11.2.3.1"><xref derivedContent="7.11.3" format="counter" sectionFormat="of" target="section-7.11.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-address-renewal-request-tlv">Address Renewal Request TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.7.2.11.2.4">
                    <t pn="section-toc.1-1.7.2.11.2.4.1"><xref derivedContent="7.11.4" format="counter" sectionFormat="of" target="section-7.11.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-address-renewal-response-tl">Address Renewal Response TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.7.2.11.2.5">
                    <t pn="section-toc.1-1.7.2.11.2.5.1"><xref derivedContent="7.11.5" format="counter" sectionFormat="of" target="section-7.11.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-address-release-request-tlv">Address Release Request TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.7.2.11.2.6">
                    <t pn="section-toc.1-1.7.2.11.2.6.1"><xref derivedContent="7.11.6" format="counter" sectionFormat="of" target="section-7.11.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-address-release-response-tl">Address Release Response TLV</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.7.2.12">
                <t pn="section-toc.1-1.7.2.12.1"><xref derivedContent="7.12" format="counter" sectionFormat="of" target="section-7.12"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-event-tlvs">Event TLVs</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2.12.2">
                  <li pn="section-toc.1-1.7.2.12.2.1">
                    <t pn="section-toc.1-1.7.2.12.2.1.1"><xref derivedContent="7.12.1" format="counter" sectionFormat="of" target="section-7.12.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-subscriber-traffic-statisti">Subscriber Traffic Statistics TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.7.2.12.2.2">
                    <t pn="section-toc.1-1.7.2.12.2.2.1"><xref derivedContent="7.12.2" format="counter" sectionFormat="of" target="section-7.12.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-subscriber-detection-result">Subscriber Detection Result TLV</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.7.2.13">
                <t pn="section-toc.1-1.7.2.13.1"><xref derivedContent="7.13" format="counter" sectionFormat="of" target="section-7.13"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-vendor-tlv">Vendor TLV</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.8">
            <t pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-tables-of-s-cusp-codepoints">Tables of S-CUSP Codepoints</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.8.2">
              <li pn="section-toc.1-1.8.2.1">
                <t pn="section-toc.1-1.8.2.1.1"><xref derivedContent="8.1" format="counter" sectionFormat="of" target="section-8.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-message-types">Message Types</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.2">
                <t pn="section-toc.1-1.8.2.2.1"><xref derivedContent="8.2" format="counter" sectionFormat="of" target="section-8.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-tlv-types">TLV Types</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.3">
                <t pn="section-toc.1-1.8.2.3.1"><xref derivedContent="8.3" format="counter" sectionFormat="of" target="section-8.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-tlv-operation-codes">TLV Operation Codes</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.4">
                <t pn="section-toc.1-1.8.2.4.1"><xref derivedContent="8.4" format="counter" sectionFormat="of" target="section-8.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sub-tlv-types">Sub-TLV Types</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.5">
                <t pn="section-toc.1-1.8.2.5.1"><xref derivedContent="8.5" format="counter" sectionFormat="of" target="section-8.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-error-codes">Error Codes</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.6">
                <t pn="section-toc.1-1.8.2.6.1"><xref derivedContent="8.6" format="counter" sectionFormat="of" target="section-8.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-if-type-values">If-Type Values</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.7">
                <t pn="section-toc.1-1.8.2.7.1"><xref derivedContent="8.7" format="counter" sectionFormat="of" target="section-8.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-access-mode-values">Access-Mode Values</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.8">
                <t pn="section-toc.1-1.8.2.8.1"><xref derivedContent="8.8" format="counter" sectionFormat="of" target="section-8.8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-access-method-bits">Access Method Bits</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.9">
                <t pn="section-toc.1-1.8.2.9.1"><xref derivedContent="8.9" format="counter" sectionFormat="of" target="section-8.9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-route-type-values">Route-Type Values</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.10">
                <t pn="section-toc.1-1.8.2.10.1"><xref derivedContent="8.10" format="counter" sectionFormat="of" target="section-8.10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-access-type-values">Access-Type Values</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.9">
            <t pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.10">
            <t pn="section-toc.1-1.10.1"><xref derivedContent="10" format="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.11">
            <t pn="section-toc.1-1.11.1"><xref derivedContent="11" format="counter" sectionFormat="of" target="section-11"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.11.2">
              <li pn="section-toc.1-1.11.2.1">
                <t pn="section-toc.1-1.11.2.1.1"><xref derivedContent="11.1" format="counter" sectionFormat="of" target="section-11.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.11.2.2">
                <t pn="section-toc.1-1.11.2.2.1"><xref derivedContent="11.2" format="counter" sectionFormat="of" target="section-11.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.12">
            <t pn="section-toc.1-1.12.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></t>
          </li>
          <li pn="section-toc.1-1.13">
            <t pn="section-toc.1-1.13.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-contributors">Contributors</xref></t>
          </li>
          <li pn="section-toc.1-1.14">
            <t pn="section-toc.1-1.14.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.c"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="sect-1" numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t pn="section-1-1">
   A Broadband Network Gateway (BNG) in a fixed wireline access network is an
   Ethernet-centric IP edge router and the aggregation point for subscriber
   traffic.  To provide centralized session management, flexible address
   allocation, high scalability for subscriber management capacity, and
   cost-efficient redundancy, the CU-separated (CP/UP-separated) BNG framework is
   described in a technical report <xref target="TR-384" format="default" sectionFormat="of" derivedContent="TR-384"/>
   from the Broadband Forum (BBF). The CU-separated service CP, which is
   responsible for user access authentication and setting forwarding entries
   in UPs, can be virtualized and centralized.  The routing
   control and forwarding plane, i.e., the BNG UP (local), can be distributed
   across the infrastructure.  Other structures can also be supported, such as
   the CP and UP being virtual or both being physical.</t>
      <t pn="section-1-2">
   Note: In this document, the terms "user" and "subscriber" are used
   interchangeably.</t>
      <t pn="section-1-3">
    This document specifies the Simple CU Separation Protocol (S-CUSP) for
    communications over the BNG control channel between a BNG CP
    and a set of UPs.  S-CUSP is designed to be flexible
   and extensible so as to allow for easy addition of messages and data
   items, should further requirements be expressed in the future.</t>
      <t pn="section-1-4">
   This document is not an IETF standard and does not have IETF
   consensus.  S-CUSP was designed by China Mobile, Huawei Technologies,
   and ZTE. It is presented here to make the S-CUSP specification
   conveniently available to the Internet community to enable diagnosis
   and interoperability.</t>
      <t pn="section-1-5">
   At the time of writing this document, the BBF is
   working to produce <xref target="WT-459" format="default" sectionFormat="of" derivedContent="WT-459"/>, which will describe an architecture and
   requirements for a CP and UP separation of a
   disaggregated BNG.  Future work may attempt to show how the protocol
   described in this document addresses those requirements and may
   modify this specification to handle unaddressed requirements.</t>
    </section>
    <section anchor="sect-2" numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-terminology">Terminology</name>
      <t pn="section-2-1">
   This section specifies implementation requirement keywords and terms
   used in this document. S-CUSP messages are described in this document
   using Routing Backus-Naur Form (RBNF) as defined in <xref target="RFC5511" format="default" sectionFormat="of" derivedContent="RFC5511"/>.</t>
      <section anchor="sect-2.1" numbered="true" toc="include" removeInRFC="false" pn="section-2.1">
        <name slugifiedName="name-implementation-requirement-">Implementation Requirement Keywords</name>
        <t pn="section-2.1-1">
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
    described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> 
    when, and only when, they appear in all capitals, as shown here.
        </t>
      </section>
      <section anchor="sect-2.2" numbered="true" toc="include" removeInRFC="false" pn="section-2.2">
        <name slugifiedName="name-terms">Terms</name>
        <t pn="section-2.2-1">
   This section specifies terms used in this document.</t>
        <dl newline="false" spacing="normal" indent="13" pn="section-2.2-2">
          <dt pn="section-2.2-2.1">AAA:</dt>
          <dd pn="section-2.2-2.2"> Authentication Authorization Accounting.</dd>
          <dt pn="section-2.2-2.3">ACK:</dt>
          <dd pn="section-2.2-2.4"> Acknowledgement message.</dd>
          <dt pn="section-2.2-2.5">BAS:</dt>
          <dd pn="section-2.2-2.6"> Broadband Access Server, also known as a BBRAS, BNG, or BRAS.</dd>
          <dt pn="section-2.2-2.7">BNG:</dt>
          <dd pn="section-2.2-2.8"> Broadband Network Gateway.  A BNG (or Broadband Remote Access
       Server (BRAS)) routes traffic to and from broadband remote
       access devices such as digital subscriber line access
       multiplexers (DSLAM) on an Internet Service Provider's (ISP)
       network.  BNG / BRAS can also be referred to as a BAS or BBRAS.</dd>
          <dt pn="section-2.2-2.9">BRAS:</dt>
          <dd pn="section-2.2-2.10"> Broadband Remote Access Server, also known as a BAS, BBRAS, or BNG.</dd>
          <dt pn="section-2.2-2.11">CAR:</dt>
          <dd pn="section-2.2-2.12"> Committed Access Rate.</dd>
          <dt pn="section-2.2-2.13">CBS:</dt>
          <dd pn="section-2.2-2.14"> Committed Burst Size.</dd>
          <dt pn="section-2.2-2.15">CGN:</dt>
          <dd pn="section-2.2-2.16"> Carrier Grade NAT.</dd>
          <dt pn="section-2.2-2.17">Ci:</dt>
          <dd pn="section-2.2-2.18"> Control Interface.</dd>
          <dt pn="section-2.2-2.19">CIR:</dt>
          <dd pn="section-2.2-2.20"> Committed Information Rate.</dd>
          <dt pn="section-2.2-2.21">CoA:</dt>
          <dd pn="section-2.2-2.22"> Change of Authorization.</dd>
          <dt pn="section-2.2-2.23">CP:</dt>
          <dd pn="section-2.2-2.24"> Control Plane. CP is a user control management
	component that supports the management of the UP's resources such as
	the user entry and forwarding policy.</dd>
          <dt pn="section-2.2-2.25">CU:</dt>
          <dd pn="section-2.2-2.26"> Control Plane / User Plane.</dd>
          <dt pn="section-2.2-2.27">CUSP:</dt>
          <dd pn="section-2.2-2.28"> Control and User Plane Separation Protocol.</dd>
          <dt pn="section-2.2-2.29">DEI:</dt>
          <dd pn="section-2.2-2.30"> Drop Eligibility Indicator as defined in 
      <xref target="IEEE-802.1Q" format="default" sectionFormat="of" derivedContent="802.1Q"/>.  A bit in a VLAN
      tag after the priority and before the VLAN ID.  (This bit was formerly
      the CFI (Canonical Format Indicator).)</dd>
          <dt pn="section-2.2-2.31">DHCP:</dt>
          <dd pn="section-2.2-2.32"> Dynamic Host Configuration Protocol <xref target="RFC2131" format="default" sectionFormat="of" derivedContent="RFC2131"/>.</dd>
          <dt pn="section-2.2-2.33">dial-up:</dt>
          <dd pn="section-2.2-2.34"> This refers to the initial connection messages
	when a new subscriber appears. The name is left over from when
	subscribers literally dialed up on a modem-equipped phone line but
	herein is applied to other initial connection techniques. Initial
	connection is frequently indicated by the receipt of packets over
	PPPoE <xref target="RFC2516" format="default" sectionFormat="of" derivedContent="RFC2516"/> or IPoE.</dd>
          <dt pn="section-2.2-2.35">EMS:</dt>
          <dd pn="section-2.2-2.36"> Element Management System.</dd>
          <dt pn="section-2.2-2.37">IPoE:</dt>
          <dd pn="section-2.2-2.38"> IP over Ethernet.</dd>
          <dt pn="section-2.2-2.39">L2TP:</dt>
          <dd pn="section-2.2-2.40"> Layer 2 Tunneling Protocol <xref target="RFC2661" format="default" sectionFormat="of" derivedContent="RFC2661"/>.</dd>
          <dt pn="section-2.2-2.41">LAC:</dt>
          <dd pn="section-2.2-2.42"> L2TP Access Concentrator.</dd>
          <dt pn="section-2.2-2.43">LNS:</dt>
          <dd pn="section-2.2-2.44"> L2TP Network Server.</dd>
          <dt pn="section-2.2-2.45">MAC:</dt>
          <dd pn="section-2.2-2.46"> 48-bit Media Access Control address <xref target="RFC7042" format="default" sectionFormat="of" derivedContent="RFC7042"/>.</dd>
          <dt pn="section-2.2-2.47">MANO:</dt>
          <dd pn="section-2.2-2.48"> Management and Orchestration.</dd>
          <dt pn="section-2.2-2.49">Mi:</dt>
          <dd pn="section-2.2-2.50"> Management Interface.</dd>
          <dt pn="section-2.2-2.51">MSS:</dt>
          <dd pn="section-2.2-2.52"> Maximum Segment Size.</dd>
          <dt pn="section-2.2-2.53">MRU:</dt>
          <dd pn="section-2.2-2.54"> Maximum Receive Unit.</dd>
          <dt pn="section-2.2-2.55">NAT:</dt>
          <dd pn="section-2.2-2.56"> Network Address Translation <xref target="RFC3022" format="default" sectionFormat="of" derivedContent="RFC3022"/>.</dd>
          <dt pn="section-2.2-2.57">ND:</dt>
          <dd pn="section-2.2-2.58"> Neighbor Discovery.</dd>
          <dt pn="section-2.2-2.59">NFV:</dt>
          <dd pn="section-2.2-2.60"> Network Function Virtualization.</dd>
          <dt pn="section-2.2-2.61">NFVI:</dt>
          <dd pn="section-2.2-2.62"> NFV Infrastructure.</dd>
          <dt pn="section-2.2-2.63">PBS:</dt>
          <dd pn="section-2.2-2.64"> Peak Burst Size.</dd>
          <dt pn="section-2.2-2.65">PD:</dt>
          <dd pn="section-2.2-2.66"> Prefix Delegation.</dd>
          <dt pn="section-2.2-2.67">PIR:</dt>
          <dd pn="section-2.2-2.68"> Peak Information Rate.</dd>
          <dt pn="section-2.2-2.69">PPP:</dt>
          <dd pn="section-2.2-2.70"> Point-to-Point Protocol <xref target="RFC1661" format="default" sectionFormat="of" derivedContent="RFC1661"/>.</dd>
          <dt pn="section-2.2-2.71">PPPoE:</dt>
          <dd pn="section-2.2-2.72"> PPP over Ethernet <xref target="RFC2516" format="default" sectionFormat="of" derivedContent="RFC2516"/>.</dd>
          <dt pn="section-2.2-2.73">RBNF:</dt>
          <dd pn="section-2.2-2.74"> Routing Backus-Naur Form <xref target="RFC5511" format="default" sectionFormat="of" derivedContent="RFC5511"/>.</dd>
          <dt pn="section-2.2-2.75">RG:</dt>
          <dd pn="section-2.2-2.76"> Residential Gateway.</dd>
          <dt pn="section-2.2-2.77">S-CUSP:</dt>
          <dd pn="section-2.2-2.78"> Simple Control and User Plane Separation Protocol.</dd>
          <dt pn="section-2.2-2.79">Subscriber:</dt>
          <dd pn="section-2.2-2.80"> The remote user gaining network accesses
	via a BNG.</dd>
          <dt pn="section-2.2-2.81">Si:</dt>
          <dd pn="section-2.2-2.82"> Service Interface.</dd>
          <dt pn="section-2.2-2.83">TLV:</dt>
          <dd pn="section-2.2-2.84"> Type-Length-Value.  See Sections <xref target="sect-7.1" format="counter" sectionFormat="of" derivedContent="7.1"/> and <xref target="sect-7.3" format="counter" sectionFormat="of" derivedContent="7.3"/>.</dd>
          <dt pn="section-2.2-2.85">UP:</dt>
          <dd pn="section-2.2-2.86"> User Plane.  UP is a network edge and user policy
	implementation component.  The traditional router's control plane and
	forwarding plane are both preserved on BNG devices in the form of a
	user plane.</dd>
          <dt pn="section-2.2-2.87">URPF:</dt>
          <dd pn="section-2.2-2.88"> Unicast Reverse Path Forwarding.</dd>
          <dt pn="section-2.2-2.89">User:</dt>
          <dd pn="section-2.2-2.90"> Equivalent to "customer" or "subscriber".</dd>
          <dt pn="section-2.2-2.91">VRF:</dt>
          <dd pn="section-2.2-2.92"> Virtual Routing and Forwarding.</dd>
        </dl>
      </section>
    </section>
    <section anchor="sect-3" numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-bng-cups-overview">BNG CUPS Overview</name>
      <section anchor="sect-3.1" numbered="true" toc="include" removeInRFC="false" pn="section-3.1">
        <name slugifiedName="name-bng-cups-motivation">BNG CUPS Motivation</name>
        <t pn="section-3.1-1">
   The rapid development of new services, such as 4K TV, Internet of Things (IoT), etc., and
   increasing numbers of home broadband service users present some new
   challenges for BNGs such as:</t>
        <dl newline="false" spacing="normal" indent="3" pn="section-3.1-2">
          <dt pn="section-3.1-2.1">Low resource  utilization:</dt>
          <dd pn="section-3.1-2.2"> The traditional BNG acts as both a gateway for user
	access authentication and accounting and also an IP network's Layer 3
	edge. The mutually affecting nature of the tightly coupled control
	plane and forwarding plane makes it difficult to achieve the maximum
	performance of either plane.
	</dd>
          <dt pn="section-3.1-2.3">Complex management and maintenance:</dt>
          <dd pn="section-3.1-2.4"> Due to the large
	numbers of traditional BNGs, configuring each device in a network is
	very tedious when deploying global service policies. As the network
	expands and new services are introduced, this deployment mode will
	cease to be feasible as it is unable to manage services effectively
	and to rectify faults rapidly.
	</dd>
          <dt pn="section-3.1-2.5">Slow service provisioning:</dt>
          <dd pn="section-3.1-2.6"> The coupling of the CP and the forwarding plane, in addition to being a distributed network
	control mechanism, means that any new technology has to rely heavily
	on the existing network devices.
	</dd>
        </dl>
        <t pn="section-3.1-3">
   The framework for a cloud-based BNG with 
   CU separation to address these challenges for fixed networks is
   described in <xref target="TR-384" format="default" sectionFormat="of" derivedContent="TR-384"/>.  The main idea of CU separation is to extract
   and centralize the user management functions of multiple BNG devices,
   forming a unified and centralized CP. The
   traditional router's CP and forwarding plane are both
   preserved on BNG devices in the form of a UP.</t>
      </section>
      <section anchor="sect-3.2" numbered="true" toc="include" removeInRFC="false" pn="section-3.2">
        <name slugifiedName="name-bng-cups-architecture-overv">BNG CUPS Architecture Overview</name>
        <t pn="section-3.2-1">
    The functions in a traditional BNG can be divided into two parts:
    (1) the user access management function and (2) the routing
    function.  The user access management function can be deployed as
    a centralized module or device, called the BNG Control Plane
    (BNG-CP).  The routing function, which includes routing control
    and the forwarding engine, can be deployed in the form of the BNG
    User Plane (BNG-UP).
</t>
        <t pn="section-3.2-2">
    <xref target="fig1" format="default" sectionFormat="of" derivedContent="Figure 1"/> shows the architecture of a CU-separated BNG:</t>
        <figure anchor="fig1" align="left" suppress-title="false" pn="figure-1">
          <name slugifiedName="name-architecture-of-a-cu-separa">Architecture of a CU-Separated BNG</name>
          <artwork name="" type="" align="left" alt="" pn="section-3.2-3.1">
 +------------------------------------------------------------------+
 |        Neighboring policy and resource management systems        |
 |                                                                  |
 |   +-------------+   +-----------+   +---------+   +----------+   |
 |   | AAA Server  |   |DHCP Server|   |   EMS   |   |   MANO   |   |
 |   +-------------+   +-----------+   +---------+   +----------+   |
 +------------------------------------------------------------------+

 +------------------------------------------------------------------+
 |                       CU-separated BNG system                    |
 | +--------------------------------------------------------------+ |
 | |   +----------+  +----------+ +------++------++-----------+   | |
 | |   | Address  |  |Subscriber| | AAA  ||Access||    UP     |   | |
 | |   |management|  |management| |      || mgt  ||management |   | |
 | |   +----------+  +----------+ +------++------++-----------+   | |
 | |                              CP                              | |
 | +--------------------------------------------------------------+ |
 |                                                                  |
 |                                                                  |
 |                                                                  |
 | +---------------------------+      +--------------------------+  |
 | |  +------------------+     |      |  +------------------+    |  |
 | |  | Routing control  |     |      |  | Routing control  |    |  |
 | |  +------------------+     | ...  |  +------------------+    |  |
 | |  +------------------+     |      |  +------------------+    |  |
 | |  |Forwarding engine |     |      |  |Forwarding engine |    |  |
 | |  +------------------+  UP |      |  +------------------+  UP|  |
 | +---------------------------+      +--------------------------+  |
+------------------------------------------------------------------+
</artwork>
        </figure>
        <t pn="section-3.2-4">
   As shown in <xref target="fig1" format="default" sectionFormat="of" derivedContent="Figure 1"/>, the BNG-CP could be
   virtualized and centralized, which provides benefits such as centralized
   session management, flexible address allocation, high scalability for
   subscriber management capacity, cost-efficient redundancy, etc.  The
   functional components inside the BNG-CP can be implemented as
   Virtual Network Functions (VNFs) and hosted in an NFVI.</t>
        <t pn="section-3.2-5">
   The UP management module in the BNG-CP centrally manages
   the distributed BNG-UPs (e.g., load balancing), as well as the
   setup, deletion, and maintenance of channels between CPs and
   UPs.  Other modules in the BNG-CP, such as address
   management, AAA, etc., are responsible for the connection with external
   subsystems in order to fulfill those services. Note that the UP
   <bcp14>SHOULD</bcp14> support both physical and virtual network functions. For example,
   network functions related to BNG-UP L3 forwarding can be disaggregated
   and distributed across the physical infrastructure, and the other CP 
   management functions in the CU-separated BNG can be moved
   into the NFVI for virtualization <xref target="TR-384" format="default" sectionFormat="of" derivedContent="TR-384"/>.</t>
        <t pn="section-3.2-6">
   The details of the CU-separated BNG's function components are as follows:</t>
        <t pn="section-3.2-7">
   The CP is responsible for the following:</t>
        <ul spacing="normal" bare="false" empty="false" pn="section-3.2-8">
          <li pn="section-3.2-8.1">Address  management: Unified address pool management and CGN subscriber
	address traceability management.
	</li>
          <li pn="section-3.2-8.2">AAA: This component performs Authentication,
	Authorization, and Accounting, together with RADIUS/Diameter. The BNG
	communicates with the AAA server to check whether the subscriber who
	sent an access request has network access authority.  Once the
	subscriber goes online, this component (together with the Service
	Control component) implements accounting, data capacity limitation, and
	QoS enforcement policies.
	</li>
          <li pn="section-3.2-8.3">Subscriber management: User entry management and
	forwarding policy management.
	</li>
          <li pn="section-3.2-8.4">Access management: Process user dial-up packets, such
	as PPPoE, DHCP, L2TP, etc.
	</li>
          <li pn="section-3.2-8.5">UP management: Management of UP interface status and
	the setup, deletion, and maintenance of channels between CP and UP.
	</li>
        </ul>
        <t pn="section-3.2-9">
   The UP is responsible for the following:</t>
        <ul spacing="normal" bare="false" empty="false" pn="section-3.2-10">
          <li pn="section-3.2-10.1">Routing control functions: Responsible for instantiating routing forwarding plane
	(e.g., routing, multicast, MPLS, etc.).
	</li>
          <li pn="section-3.2-10.2">Routing and service forwarding plane functions: Responsibilities
          include traffic forwarding, QoS, and traffic statistics collection.
	</li>
          <li pn="section-3.2-10.3">Subscriber detection: Responsible for detecting whether
	a subscriber is still online.
	</li>
        </ul>
      </section>
      <section anchor="sect-3.3" numbered="true" toc="include" removeInRFC="false" pn="section-3.3">
        <name slugifiedName="name-bng-cups-interfaces">BNG CUPS Interfaces</name>
        <t pn="section-3.3-1">
   The three interfaces defined below support the communication between the
   CP and UP.  These are referred to as the Service
   Interface (Si), Control Interface (Ci), and Management Interface (Mi)
   as shown in <xref target="fig2" format="default" sectionFormat="of" derivedContent="Figure 2"/>.</t>
        <figure anchor="fig2" align="left" suppress-title="false" pn="figure-2">
          <name slugifiedName="name-interfaces-between-the-cp-a">Interfaces between the CP and UP of the BNG</name>
          <artwork name="" type="" align="left" alt="" pn="section-3.3-2.1">
          +-----------------------------------+
          |                                   |
          |               BNG-CP              |
          |                                   |
          +--+--------------+--------------+--+
             |              |              |
  1. Service |   2. Control | 3. Management|
   Interface |    Interface |    Interface |
        (Si) |         (Ci) |         (Mi) |
             |              |              |
             |           ___|___           |
             |       ___(       )___       |
            _|______(               )______|_
           (                                 )
          (         Network/Internet         )
           (________                 ________)
             |      (___         ___)      |
             |          (_______)          |
             |              |              |
             |              |              |
          +--+--------------+--------------+--+
          |                                   |
          |               BNG-UP              |
          |                                   |
          +-----------------------------------+
</artwork>
        </figure>
        <section anchor="sect-3.3.1" numbered="true" toc="include" removeInRFC="false" pn="section-3.3.1">
          <name slugifiedName="name-service-interface-si">Service Interface (Si)</name>
          <t pn="section-3.3.1-1">
   For a traditional BNG (without CU separation), the user dial-up
   signals are terminated and processed by the CP of a BNG.
   When the CP and UP of a BNG are separated, there needs to be a way to
   relay these signals between the CP and the UP.</t>
          <t pn="section-3.3.1-2">
   The Si is used to establish tunnels between the
   CP and UP. The tunnels are responsible for relaying the PPPoE-, IPoE-,
   and L2TP-related control packets that are received from a Residential
   Gateway (RG) over those tunnels. An appropriate tunnel type is 
   Virtual eXtensible Local Area Network (VXLAN)
   <xref target="RFC7348" format="default" sectionFormat="of" derivedContent="RFC7348"/>.</t>
          <t pn="section-3.3.1-3">
   The detailed definition of Si is out of scope for this document.</t>
        </section>
        <section anchor="sect-3.3.2" numbered="true" toc="include" removeInRFC="false" pn="section-3.3.2">
          <name slugifiedName="name-control-interface-ci">Control Interface (Ci)</name>
          <t pn="section-3.3.2-1">
   The CP uses the Ci to deliver subscriber session
   states, network routing entries, etc., to the UP (see <xref target="sect-6.2.7" format="default" sectionFormat="of" derivedContent="Section 6.2.7"/>).
   The UP uses this interface to report subscriber service statistics,
   subscriber detection results, etc., to the CP (see Sections <xref target="sect-6.3" format="counter" sectionFormat="of" derivedContent="6.3"/> and
   <xref target="sect-6.4" format="counter" sectionFormat="of" derivedContent="6.4"/>). A carrying protocol for this interface is specified in this
   document.</t>
        </section>
        <section anchor="sect-3.3.3" numbered="true" toc="include" removeInRFC="false" pn="section-3.3.3">
          <name slugifiedName="name-management-interface-mi">Management Interface (Mi)</name>
          <t pn="section-3.3.3-1">
   The Network Configuration Protocol (NETCONF) <xref target="RFC6241" format="default" sectionFormat="of" derivedContent="RFC6241"/> is the protocol used on the Mi between a CP and UP. It
   is used to configure the parameters of the Ci, Si, access interfaces,
   and QoS/ACL Templates. It is expected that implementations will make use of
   existing YANG models where possible but that new YANG models specific to
   S-CUSP will need to be defined. The definitions of the parameters that can
   be configured are out of scope for this document.</t>
        </section>
      </section>
      <section anchor="sect-3.4" numbered="true" toc="include" removeInRFC="false" pn="section-3.4">
        <name slugifiedName="name-bng-cups-procedure-overview">BNG CUPS Procedure Overview</name>
        <t pn="section-3.4-1">
   The following numbered sequences (<xref target="fig3" format="default" sectionFormat="of" derivedContent="Figure 3"/>) give a high-level view
   of the main BNG CUPS procedures.</t>
        <figure anchor="fig3" align="left" suppress-title="false" pn="figure-3">
          <name slugifiedName="name-bng-cups-procedures-overvie">BNG CUPS Procedures Overview</name>
          <artwork name="" type="" align="left" alt="" pn="section-3.4-2.1">
   RG              UP                      CP              AAA
   |               |Establish S-CUSP Channel|               |
   |              1|&lt;----------------------&gt;|               |
   |               |                        |               |
   |               | Report board interface |               |
   |               |      information       |               |
   |              2|------to CP via Ci-----&gt;|               |
   |               |                        |               |
   |               |  Update BAS function   |               |
   |              3|    request/response    |               |
   |               |&lt;-----on UP via Ci-----&gt;|               |
   |               |                        |               |
   |               | Update network routing |               |
   |               |    request/response    |               |
   |              4|&lt;------- via Ci--------&gt;|               |
   |  Online Req   |                        |               |
5.1|--------------&gt;|                        |               |
   |               | Relay the Online Req   |               |
   |            5.2|-----to CP via Si------&gt;| Authentication|
   |               |                        |    Req/Rep    |
   |               |                     5.3|&lt;-------------&gt;|
   |               | Send the Online Rep    |               |
   |            5.4|&lt;----to UP via Si-------|               |
   |               |                        |               |
   |               | Create subscriber      |               |
   |               |    session on UP       |               |
   |            5.5|&lt;--------via Ci--------&gt;|               |
   |  Online Rep   |                        |               |
5.6|&lt;--------------|                        |               |
   |               |                        |  CoA Request  |
   |               |                     6.1|&lt;--------------|
   |               | Update session on UP   |               |
   |            6.2|&lt;--------via Ci--------&gt;|               |
   |               |                        |  CoA Response |
   |  Offline Req  |                     6.3|--------------&gt;|
7.1|--------------&gt;|                        |               |
   |               | Relay the Offline Req  |               |
   |            7.2|------to CP via Si-----&gt;|               |
   |               |                        |               |
   |               | Send the Offline Rep   |               |
   |            7.3|&lt;-----to UP via Si------|               |
   |  Offline Rep  |                        |               |
7.4|&lt;--------------|                        |               |
   |               | Delete session on UP   |               |
   |            7.5|&lt;--------via Ci--------&gt;|               |
   |               |                        |               |
   |               |      Event report      |               |
   |              8|---------via Ci--------&gt;|               |
   |               |                        |               |
   |               | Data synchronization   |               |
   |              9|&lt;--------via Ci--------&gt;|               |
   |               |                        |               |
   |               | CGN address allocation |               |
   |             10|&lt;--------via Ci--------&gt;|               |
   |               |                        |               |</artwork>
        </figure>
        <ol spacing="normal" type="(%d)" start="1" pn="section-3.4-3">
          <li pn="section-3.4-3.1" derivedCounter="(1)"> S-CUSP session establishment: This is the first step of the BNG
	CUPS procedures. Once the Ci parameters are
	configured on a UP, it will start to set up S-CUSP sessions with the
	specified CPs. The detailed definition of S-CUSP session establishment
	can be found in <xref target="sect-4.1.1" format="default" sectionFormat="of" derivedContent="Section 4.1.1"/>.
	</li>
          <li pn="section-3.4-3.2" derivedCounter="(2)"> Board and interface report: Once the S-CUSP session is
          established between the UP and a CP, the UP will report status
          information on the boards and subscriber-facing interfaces of this
          UP to the CP. A board can also be called a Line/Service Process Unit
          (LPU/SPU) card. The subscriber-facing interfaces refer to the
          interfaces that connect the access network nodes (e.g., Optical Line
          Terminal (OLT), DSLAM, etc.). The CP can use this information to
          enable the Broadband Access Server (BAS) function (e.g., IPoE,
          PPPoE, etc.) on the specified interfaces. See Sections <xref target="sect-4.2.1" format="counter" sectionFormat="of" derivedContent="4.2.1"/> and <xref target="sect-7.10" format="counter" sectionFormat="of" derivedContent="7.10"/> for more details on resource reporting.
	</li>
          <li pn="section-3.4-3.3" derivedCounter="(3)"> BAS function enable: To enable the BAS
	function on the specified interfaces of a UP.
	</li>
          <li pn="section-3.4-3.4" derivedCounter="(4)"> Subscriber network route advertisement: The CP will allocate one
	or more IP address blocks to a UP. Each address block contains a
	series of IP addresses. Those IP addresses will be allocated to
	subscribers who are dialing up from the UP. To enable other nodes in
	the network to learn how to reach the subscribers, the CP needs to
	notify the UP to advertise to the network the routes that can reach
	those IP addresses.
	</li>
          <li pn="section-3.4-3.5" derivedCounter="(5)"> 5.1-5.6 is a complete call flow of a subscriber dial-up (as
	defined in <xref target="sect-4.3.1" format="default" sectionFormat="of" derivedContent="Section 4.3.1"/>) process.  When a UP receives a
	dial-up request, it will relay the request packet to a CP through the
	Si. The CP will parse the request. If everything is OK,
	it will send an authentication request to the AAA server to
	authenticate the subscriber. Once the subscriber passes the
	authentication, the AAA server will return a positive response to the
	CP. Then the CP will send the dial-up response packet to the UP, and
	the UP will forward the response packet to the subscriber (RG). At the
	same time, the CP will create a subscriber session on the UP, 
	enabling the subscriber to access the network.  For different access
	types, the process may be a bit different, but the high-level process
	is similar. For each access type, the detailed process can be found in
	<xref target="sect-5" format="default" sectionFormat="of" derivedContent="Section 5"/>.
	</li>
          <li pn="section-3.4-3.6" derivedCounter="(6)"> 6.1-6.3 is the sequence when updating an existing subscriber
	session. The AAA server initiates a Change of Authorization (CoA) and
	sends the CoA to the CP. The CP will then update the session according
	to the CoA.  See <xref target="sect-4.3.2" format="default" sectionFormat="of" derivedContent="Section 4.3.2"/> for more detail on CP
	messages updating UP tables.
	</li>
          <li pn="section-3.4-3.7" derivedCounter="(7)"> 7.1-7.5 is the sequence for deleting an existing subscriber
	session. When a UP receives an Offline Request, it will relay the
	request to a CP through the Si. The CP will send back a
	response to the UP through the Si. The UP will then
	forward the Offline Response to the subscriber.  Then the CP will
	delete the session on the UP through the Ci.
	</li>
          <li pn="section-3.4-3.8" derivedCounter="(8)">
            <t pn="section-3.4-3.8.1"> Event reports include the following two parts (more detail can
            be found in <xref target="sect-4.3.4" format="default" sectionFormat="of" derivedContent="Section 4.3.4"/>). Both
            are reported using the Event message: </t>
            <ul empty="true" spacing="normal" bare="false" pn="section-3.4-3.8.2">
              <li pn="section-3.4-3.8.2.1">
        8.1. Subscriber Traffic Statistics Report
            </li>
              <li pn="section-3.4-3.8.2.2">
	8.2.  Subscriber Detection Result Report
            </li>
            </ul>
          </li>
          <li pn="section-3.4-3.9" derivedCounter="(9)"> Data synchronization: See <xref target="sect-4.2.5" format="default" sectionFormat="of" derivedContent="Section 4.2.5"/> for more detail on CP and
	UP synchronization.
	</li>
          <li pn="section-3.4-3.10" derivedCounter="(10)"> CGN address allocation: See <xref target="sect-4.2.4" format="default" sectionFormat="of" derivedContent="Section 4.2.4"/> for more detail on CGN
	address allocation.
	</li>
        </ol>
      </section>
    </section>
    <section anchor="sect-4" numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-s-cusp-protocol-overview">S-CUSP Protocol Overview</name>
      <section anchor="sect-4.1" numbered="true" toc="include" removeInRFC="false" pn="section-4.1">
        <name slugifiedName="name-control-channel-procedures">Control Channel Procedures</name>
        <section anchor="sect-4.1.1" numbered="true" toc="include" removeInRFC="false" pn="section-4.1.1">
          <name slugifiedName="name-s-cusp-session-establishmen">S-CUSP Session Establishment</name>
          <t pn="section-4.1.1-1">
   A UP is associated with a CP and is controlled by that CP. In the
   case of a hot-standby or cold-standby, a UP is associated with two
   CPs: the master CP and standby CP.
   The association between a UP and its CPs is implemented by dynamic
   configuration.</t>
          <t pn="section-4.1.1-2">
   Once a UP knows its CPs, the UP starts to establish S-CUSP sessions
   with those CPs, as shown in <xref target="fig4" format="default" sectionFormat="of" derivedContent="Figure 4"/>.</t>
          <figure anchor="fig4" align="left" suppress-title="false" pn="figure-4">
            <name slugifiedName="name-s-cusp-session-establishment">S-CUSP Session Establishment</name>
            <artwork name="" type="" align="left" alt="" pn="section-4.1.1-3.1">
                 UP                               CP
                 |   TCP Session Establishment     |
                 |&lt;-------------------------------&gt;|
                 |                                 |
                 |   Hello (version, capability)   |
                 |--------------------------------&gt;|
                 |                                 |
                 |   Hello (version, capability)   |
                 |&lt;--------------------------------|
                 |                                 |</artwork>
          </figure>
          <t pn="section-4.1.1-4">
   The S-CUSP session establishment consists of two successive steps:</t>
          <ol spacing="normal" type="(%d)" start="1" pn="section-4.1.1-5">
            <li pn="section-4.1.1-5.1" derivedCounter="(1)"> Establishment of a TCP connection (3-way handshake) <xref target="RFC0793" format="default" sectionFormat="of" derivedContent="RFC793"/> between the CP and
            the UP using a configured port from the dynamic port range
            (49152-65535).
	</li>
            <li pn="section-4.1.1-5.2" derivedCounter="(2)"> Establishment of an S-CUSP session over the TCP connection.</li>
          </ol>
          <t pn="section-4.1.1-6"> Once the TCP connection is established, the CP and the UP initialize
   the S-CUSP session, during which the version and Keepalive timers are
   negotiated.</t>
          <t pn="section-4.1.1-7">
   The version information (Hello TLV, see <xref target="sect-7.4" format="default" sectionFormat="of" derivedContent="Section 7.4"/>) is carried
   within Hello messages (see <xref target="sect-6.2.1" format="default" sectionFormat="of" derivedContent="Section 6.2.1"/>).  A CP can support multiple
   versions, but a UP can only support one version; thus the version
   negotiation is based on whether a version can be supported by both
   the CP and the UP.  
   If a CP or UP receives a Hello message that does not indicate 
   a version supported by both, it responds with a Hello message  
   containing an Error Information TLV to notify the peer of the 
   Version-Mismatch error, and the session establishment phase 
   fails.</t>
          <t pn="section-4.1.1-8">
   Keepalive negotiation is performed by carrying a Keepalive TLV in the
   Hello message.  The Keepalive TLV includes a Keepalive timer and 
   DeadTimer field. The CP and UP have to agree on the Keepalive Timer and
   DeadTimer.  Otherwise, a subsequent Hello message with an Error
   Information TLV will be sent to its peer, and the session
   establishment phase fails.</t>
          <t pn="section-4.1.1-9">
   The S-CUSP session establishment phase fails if the CP or UP disagree
   on the version and keepalive parameters or if one of the CP or UP
   does not answer after the expiration of the Establishment timer.
   When the S-CUSP session establishment fails, the TCP connection is
   promptly closed. Successive retries are permitted, but an
   implementation <bcp14>SHOULD</bcp14> make use of an exponential backoff session
   establishment retry procedure.</t>
          <t pn="section-4.1.1-10">
   The S-CUSP session timer values that need to be configured are
   summarized in <xref target="tab-sess-timers" format="default" sectionFormat="of" derivedContent="Table 1"/>.</t>
          <table anchor="tab-sess-timers" align="center" pn="table-1">
            <name slugifiedName="name-s-cusp-session-timers">S-CUSP Session Timers</name>
            <thead>
              <tr>
                <th align="left" colspan="1" rowspan="1">Timer Name</th>
                <th align="left" colspan="1" rowspan="1">Range in Seconds</th>
                <th align="left" colspan="1" rowspan="1">Default Value</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left" colspan="1" rowspan="1">Establishment Timer</td>
                <td align="left" colspan="1" rowspan="1">1-32767</td>
                <td align="left" colspan="1" rowspan="1">45</td>
              </tr>
              <tr>
                <td align="left" colspan="1" rowspan="1">Keepalive Timer</td>
                <td align="left" colspan="1" rowspan="1">0-255</td>
                <td align="left" colspan="1" rowspan="1">30</td>
              </tr>
              <tr>
                <td align="left" colspan="1" rowspan="1">DeadTimer</td>
                <td align="left" colspan="1" rowspan="1">1-32767</td>
                <td align="left" colspan="1" rowspan="1">4 * Keepalive</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="sect-4.1.2" numbered="true" toc="include" removeInRFC="false" pn="section-4.1.2">
          <name slugifiedName="name-keepalive-timer-and-deadtim">Keepalive Timer and DeadTimer</name>
          <t pn="section-4.1.2-1">
   Once an S-CUSP session has been established, a UP or CP may want to
   know that its S-CUSP peer is still connected.</t>
          <t pn="section-4.1.2-2">
   Each end of an S-CUSP session runs a Keepalive timer.  It restarts
   the timer every time it sends a message on the session.  When the
   timer expires, it sends a Keepalive message. Thus, a message is
   transmitted at least as often as the value to which the Keepalive timer is
   reset, unless, as explained below, that value is the special value
   zero.</t>
          <t pn="section-4.1.2-3">
   Each end of an S-CUSP session also runs a DeadTimer and restarts that
   DeadTimer whenever a message is received on the session.  If the
   DeadTimer expires at an end of the session, that end declares the
   session dead and the session will be closed, unless their DeadTimer
   is set to the special value zero, in which case the session will not
   time out.</t>
          <t pn="section-4.1.2-4">
   The minimum value of the Keepalive timer is 1 second, and it is
   specified in units of 1 second.  The <bcp14>RECOMMENDED</bcp14> default value is 30
   seconds.  The recommended default for the DeadTimer is four times the
   value of the Keepalive timer used by the remote peer.  As above, the
   timers may be disabled by setting them to zero.</t>
          <t pn="section-4.1.2-5">
   The Keepalive timer and DeadTimer are negotiated through the
   Keepalive TLV carried in the Hello message.</t>
        </section>
      </section>
      <section anchor="sect-4.2" numbered="true" toc="include" removeInRFC="false" pn="section-4.2">
        <name slugifiedName="name-node-procedures">Node Procedures</name>
        <section anchor="sect-4.2.1" numbered="true" toc="include" removeInRFC="false" pn="section-4.2.1">
          <name slugifiedName="name-up-resource-report">UP Resource Report</name>
          <t pn="section-4.2.1-1">
   Once an S-CUSP session has been established between a CP and a UP, the UP
   reports the state information of the boards and access-facing interfaces on
   the UP to the CP, as shown in <xref target="fig5" format="default" sectionFormat="of" derivedContent="Figure 5"/>. Report messages are
   unacknowledged and are assumed to be delivered because the session runs
   over TCP.</t>
          <t pn="section-4.2.1-2">
   The CP can use that information to activate/enable the
   BAS functions (e.g., IPoE, PPPoE, etc.) on the
   specified interfaces.</t>
          <t pn="section-4.2.1-3">
   In addition, the UP resource report may trigger a UP warm-standby
   process.  In the case of warm-standby, a failure on a UP may trigger
   the CP to start a warm-standby process, by moving the online
   subscriber sessions to a standby UP and then directing the affected
   subscribers to access the Internet through the standby UP.</t>
          <figure anchor="fig5" align="left" suppress-title="false" pn="figure-5">
            <name slugifiedName="name-up-board-and-interface-repo">UP Board and Interface Report</name>
            <artwork name="" type="" align="left" alt="" pn="section-4.2.1-4.1">
                     UP                      CP
                     |  Report Board Status   |
                     |------to CP via Ci-----&gt;|
                     |                        |
                     | Report Interface Status|
                     |------to CP via Ci-----&gt;|
                     |                        |</artwork>
          </figure>
          <t pn="section-4.2.1-5">
   Board status information is carried in the Board Status TLV (<xref target="sect-7.10.2" format="default" sectionFormat="of" derivedContent="Section 7.10.2"/>), 
   and interface status information is carried in the 
   Interface Status TLV (<xref target="sect-7.10.1" format="default" sectionFormat="of" derivedContent="Section 7.10.1"/>). Both Board Status and
   Interface Status TLVs are carried in the Report message (<xref target="sect-6.4" format="default" sectionFormat="of" derivedContent="Section 6.4"/>).</t>
        </section>
        <section anchor="sect-4.2.2" numbered="true" toc="include" removeInRFC="false" pn="section-4.2.2">
          <name slugifiedName="name-update-bas-function-on-acce">Update BAS Function on Access Interface</name>
          <t pn="section-4.2.2-1"> Once the CP collects the interface status of a
	UP, it will activate/deactivate/modify the BAS functions on specified
	interfaces through the Update_Request and Update_Response message exchanges
	(<xref target="sect-6.2" format="default" sectionFormat="of" derivedContent="Section 6.2"/>), carrying the BAS Function TLV
	(<xref target="sect-7.7" format="default" sectionFormat="of" derivedContent="Section 7.7"/>).</t>
          <figure anchor="fig6" align="left" suppress-title="false" pn="figure-6">
            <name slugifiedName="name-update-bas-function">Update BAS Function</name>
            <artwork name="" type="" align="left" alt="" pn="section-4.2.2-2.1">
                     UP                       CP
                     |   Update BAS Function   |
                     |         Request         |
                     |&lt;-----on UP via Ci-------|
                     |                         |
                     |   Update BAS Function   |
                     |         Response        |
                     |------on UP via Ci------&gt;|
                     |                         |</artwork>
          </figure>
        </section>
        <section anchor="sect-4.2.3" numbered="true" toc="include" removeInRFC="false" pn="section-4.2.3">
          <name slugifiedName="name-update-network-routing">Update Network Routing</name>
          <t pn="section-4.2.3-1">
   The CP will allocate one or more address blocks to a UP. Each address
   block contains a series of IP addresses. Those IP addresses will be
   assigned to subscribers who are dialing up to the UP. To enable the
   other nodes in the network to learn how to reach the subscribers, the
   CP needs to install the routes on the UP and notify the UP to
   advertise the routes to the network.</t>
          <figure anchor="fig7" align="left" suppress-title="false" pn="figure-7">
            <name slugifiedName="name-update-network-routing-2">Update Network Routing</name>
            <artwork name="" type="" align="left" alt="" pn="section-4.2.3-2.1">
                     UP                       CP
                     | Subscriber network route|
                     |      update request     |
                     |&lt;------- via Ci----------|
                     |                         |
                     | Subscriber network route|
                     |      update response    |
                     |-------- via Ci---------&gt;|
                     |                         | </artwork>
          </figure>
          <t pn="section-4.2.3-3">
   The Update_Request and Update_Response message exchanges, carrying the
   IPv4/IPv6 Routing TLVs (<xref target="sect-7.8" format="default" sectionFormat="of" derivedContent="Section 7.8"/>), update the
   subscriber's network routing information.</t>
        </section>
        <section anchor="sect-4.2.4" numbered="true" toc="include" removeInRFC="false" pn="section-4.2.4">
          <name slugifiedName="name-cgn-public-ip-address-alloc">CGN Public IP Address Allocation</name>
          <t pn="section-4.2.4-1">
   The following sequences (<xref target="fig8" format="default" sectionFormat="of" derivedContent="Figure 8"/>) describe the procedures related to CGN address
   management.  Three independent procedures are defined: one each
   for CGN address allocation request/response, CGN address renewal
   request/response, and CGN address release request/response.</t>
          <t pn="section-4.2.4-2">
   CGN address allocation/renew/release procedures are designed for the case
   where the CGN function is running on the UP.  The UP has to map the
   subscriber private IP addresses to public IP addresses, and such mapping
   is performed by the UP locally when a subscriber dials up.  That means the
   UP has to ask for public IPv4 address blocks for CGN subscribers from the
   CP.</t>
          <t pn="section-4.2.4-3">
   In addition, when a public IP address is allocated to a UP, there
   will be a lease time (e.g., one day). Before the lease time expires,
   the UP can ask for renewal of the IP address lease from the CP. It is
   achieved by the exchange of the Addr_Renew_Req and Addr_Renew_Ack
   messages.</t>
          <t pn="section-4.2.4-4">
   If the public IP address will not be used anymore, the UP <bcp14>SHOULD</bcp14>
   release the address by sending an Addr_Release_Req message to the CP.</t>
          <t pn="section-4.2.4-5">
   If the CP wishes to withdraw addresses that it has previously leased
   to a UP, it uses the same procedures as above.  The Oper code 
   (see <xref target="sect-7.1" format="default" sectionFormat="of" derivedContent="Section 7.1"/>) in the IPv4/IPv6 Routing TLV 
   (see <xref target="sect-7.8" format="default" sectionFormat="of" derivedContent="Section 7.8"/>) determines whether the
   request is an update or withdraw.</t>
          <t pn="section-4.2.4-6">
   The relevant messages are defined in <xref target="sect-6.5" format="default" sectionFormat="of" derivedContent="Section 6.5"/>.</t>
          <figure anchor="fig8" align="left" suppress-title="false" pn="figure-8">
            <name slugifiedName="name-cgn-public-ip-address-alloca">CGN Public IP Address Allocation</name>
            <artwork name="" type="" align="left" alt="" pn="section-4.2.4-7.1">
                 UP                       CP
                 | CGN Address Allocation  |
                 |         Request         |
              1.1|-------- via Ci---------&gt;|
                 | CGN Address Allocation  |
                 |         Response        |
              1.2|&lt;------- via Ci----------|
                 |                         |
                 | CGN Address Renew       |
                 |         Request         |
              2.1|-------- via Ci---------&gt;|
                 | CGN Address Renew       |
                 |         Response        |
              2.2|&lt;------- via Ci----------|
                 |                         |
                 | CGN Address Release     |
                 |         Request         |
              3.1|-------- via Ci---------&gt;|
                 | CGN Address Release     |
                 |         Response        |
              3.3|&lt;------- via Ci----------|
                 |                         |</artwork>
          </figure>
        </section>
        <section anchor="sect-4.2.5" numbered="true" toc="include" removeInRFC="false" pn="section-4.2.5">
          <name slugifiedName="name-data-synchronization-betwee">Data Synchronization between the CP and UP</name>
          <t pn="section-4.2.5-1">
   For a CU-separated BNG, the UP will continue to function using the
   state that has been installed in it even if the CP fails or the
   session between the UP and CP fails.</t>
          <t pn="section-4.2.5-2">
   Under some circumstances, it is necessary to synchronize state
   between the CP and UP, for example, if a CP fails and the UP is
   switched to a different CP.</t>
          <t pn="section-4.2.5-3">
   Synchronization includes two directions.  One direction is from UP to
   CP; in that case, the synchronization information is mainly about the
   board/interface status of the UP.  The other direction is from CP to
   UP; in that case, the subscriber sessions, subscriber network routes,
   L2TP tunnels, etc., will be synchronized to the UP.</t>
          <t pn="section-4.2.5-4">
   The synchronization is triggered by a Sync_Request message, to which
   the receiver will (1) reply with a Sync_Begin message to notify the
   requester that synchronization will begin and (2) then start the
   synchronization using the Sync_Data message.  When synchronization
   finishes, a Sync_End message will be sent.</t>
          <t pn="section-4.2.5-5">
   <xref target="fig9" format="default" sectionFormat="of" derivedContent="Figure 9"/> shows the process of data synchronization
   between a UP and a CP.</t>
          <figure anchor="fig9" align="left" suppress-title="false" pn="figure-9">
            <name slugifiedName="name-data-synchronization">Data Synchronization</name>
            <artwork name="" type="" align="left" alt="" pn="section-4.2.5-6.1">
                     UP                       CP
                     | Synchronization Request |
                     |&lt;------- via Ci----------|
                     |                         |
                     | Synchronization Begin   |
                     |-------- via Ci---------&gt;|
                     |                         |
                     | Board/Interface Report  |
                     |-------- via Ci---------&gt;|
                     |                         |
                     | Synchronization End     |
                     |-------- via Ci---------&gt;|
                     |                         |
                    1) Synchronization from UP to CP

                     UP                       CP
                     | Synchronization Request |
                     |-------- via Ci---------&gt;|
                     |                         |
                     | Synchronization Begin   |
                     |&lt;-------- via Ci---------|
                     |                         |
                     |      Synchronizes       |
                     |Subscriber Session States|
                     |  Network Route Entries  |
                     |&lt;------- via Ci----------|
                     |                         |
                     | Synchronization End     |
                     |&lt;-------- via Ci---------|
                     |                         |
                    2) Synchronization from CP to UP </artwork>
          </figure>
        </section>
      </section>
      <section anchor="sect-4.3" numbered="true" toc="include" removeInRFC="false" pn="section-4.3">
        <name slugifiedName="name-subscriber-session-procedur">Subscriber Session Procedures</name>
        <t pn="section-4.3-1">
   A subscriber session consists of a set of forwarding states, policies, and
   security rules that are applied to the subscriber.  It is used for
   forwarding subscriber traffic in a UP.  To initialize a session on a UP, a
   collection of hardware resources (e.g., NP, TCAM, etc.) has to be allocated to
   a session on a UP as part of its initiation.</t>
        <t pn="section-4.3-2">
   Procedures related to subscriber sessions include subscriber session creation,
   update, deletion, and statistics reporting.  The following subsections give a
   high-level view of the procedures.</t>
        <section anchor="sect-4.3.1" numbered="true" toc="include" removeInRFC="false" pn="section-4.3.1">
          <name slugifiedName="name-create-subscriber-session">Create Subscriber Session</name>
          <t pn="section-4.3.1-1">
   The sequence below (<xref target="fig10" format="default" sectionFormat="of" derivedContent="Figure 10"/>) describes the DHCP IPv4 dial-up process. It is an
   example that shows how a subscriber session is created. (An example
   for IPv6 appears in <xref target="sect-5.1.2" format="default" sectionFormat="of" derivedContent="Section 5.1.2"/>.)</t>
          <figure anchor="fig10" align="left" suppress-title="false" pn="figure-10">
            <name slugifiedName="name-creating-a-subscriber-sessi">Creating a Subscriber Session</name>
            <artwork name="" type="" align="left" alt="" pn="section-4.3.1-2.1">
     RG              UP                       CP             AAA
     | Online Request|                        |               |
    1|--------------&gt;|                        |               |
     |               |Relay the Online Request|               |
     |              2|-----to CP via Si------&gt;| Authentication|
     |               |                        |    Req/Rep    |
     |               |                       3|&lt;-------------&gt;|
     |               |  Create Subscriber     |               |
     |               |   Session Request      |               |
     |              4|&lt;--------via Ci---------|               |
     |               |                        |               |
     |               |  Create Subscriber     |               |
     |               |   Session Response     |               |
     |              5|---------via Ci--------&gt;|               |
     |               |                        |   Accounting  |
     |               |                       6|&lt;-------------&gt;|
     |               |  Send Online Response  |               |
     |              7|&lt;----to UP via Si-------|               |
     |               |                        |               |
     |Online Response|                        |               |
    8|&lt;--------------|                        |               |
     |               |                        |               |</artwork>
          </figure>
          <t pn="section-4.3.1-3">
   The request starts from an Online Request message (step 1) from the
   RG (for example, a DHCP Discovery packet).  When the UP receives the
   Online Request from the RG, it will tunnel the Online Request to the
   CP through the Si (step 2). A tunneling technology
   implements the Si.</t>
          <t pn="section-4.3.1-4">
   When the CP receives the Online Request from the UP, it will send an
   authentication request to the AAA server to authenticate and
   authorize the subscriber (step 3).  When a positive reply is received
   from the AAA server, the CP starts to create a subscriber session for
   the request.  Relevant resources (e.g., IP address, bandwidth, etc.)
   will be allocated to the subscriber. Policies and security rules will
   be generated for the subscriber. Then the CP sends a request to
   create a session to the UP through the Ci (step
   4), and a response is expected from the UP to confirm the creation
   (step 5).</t>
          <t pn="section-4.3.1-5">
   Finally, the CP will notify the AAA server to start accounting (step
   6).  At the same time, an Online Response message (for example, a
   DHCP Ack packet) will be sent to the UP through the Si (step 7).  
   The UP will then forward the Online Response to the RG (step 8).</t>
          <t pn="section-4.3.1-6">
   That completes the subscriber activation process.</t>
        </section>
        <section anchor="sect-4.3.2" numbered="true" toc="include" removeInRFC="false" pn="section-4.3.2">
          <name slugifiedName="name-update-subscriber-session">Update Subscriber Session</name>
          <t pn="section-4.3.2-1">
   The following numbered sequence (<xref target="fig11" format="default" sectionFormat="of" derivedContent="Figure 11"/>) shows the process of updating the
   subscriber session.</t>
          <figure anchor="fig11" align="left" suppress-title="false" pn="figure-11">
            <name slugifiedName="name-updating-a-subscriber-sessi">Updating a Subscriber Session</name>
            <artwork name="" type="" align="left" alt="" pn="section-4.3.2-2.1">
            UP                       CP             AAA
            |                        |  CoA Request  |
            |                       1|&lt;--------------|
            | Session Update Request |               |
           2|&lt;--------via Ci---------|               |
            |                        |               |
            | Session Update Response|               |
           3|---------via Ci--------&gt;|               |
            |                        |  CoA Response |
            |                       4|--------------&gt;|
            |                        |               |</artwork>
          </figure>
          <t pn="section-4.3.2-3">
   When a subscriber session has been created on a UP, there may be
   requirements to update the session with new parameters (e.g.,
   bandwidth, QoS, policies, etc.).</t>
          <t pn="section-4.3.2-4">
   This procedure is triggered by a Change of Authorization (CoA)
   request message sent by the AAA server.  The CP will update the
   session on the UP according to the new parameters through the Ci.</t>
        </section>
        <section anchor="sect-4.3.3" numbered="true" toc="include" removeInRFC="false" pn="section-4.3.3">
          <name slugifiedName="name-delete-subscriber-session">Delete Subscriber Session</name>
          <t pn="section-4.3.3-1">
   The call flow below shows how S-CUSP deals with a subscriber Offline
   Request.</t>
          <figure anchor="fig12" align="left" suppress-title="false" pn="figure-12">
            <name slugifiedName="name-deleting-a-subscriber-sessi">Deleting a Subscriber Session</name>
            <artwork name="" type="" align="left" alt="" pn="section-4.3.3-2.1">
           RG               UP                       CP
            |Offline Request |                        |
           1|---------------&gt;|                        |
            |                |    Relay the Offline   |
            |                |        Request         |
            |               2|------to CP via Si-----&gt;|
            |                |                        |
            |                |    Send the Offline    |
            |                |        Response        |
            |               3|&lt;-----to UP via Si------|
            |Offline Response|                        |
           4|&lt;---------------|                        |
            |                |     Session Delete     |
            |                |        Request         |
            |                |&lt;--------via Ci---------|
            |                |     Session Delete     |
            |                |       Response         |
            |                |---------via Ci--------&gt;|
            |                |                        |</artwork>
          </figure>
          <t pn="section-4.3.3-3">
   Similar to the session creation process, when a UP receives an
   Offline Request from an RG, it will tunnel the request to a CP
   through the Si.</t>
          <t pn="section-4.3.3-4">
   When the CP receives the Offline Request, it will withdraw/release
   the resources (e.g., IP address, bandwidth) that have been allocated
   to the subscriber.  It then sends a reply to the UP through the
   Si, and the UP will forward the reply to the RG.  At
   the same time, it will delete all the status of the session on the UP
   through the Ci.</t>
        </section>
        <section anchor="sect-4.3.4" numbered="true" toc="include" removeInRFC="false" pn="section-4.3.4">
          <name slugifiedName="name-subscriber-session-events-r">Subscriber Session Events Report</name>
          <figure anchor="fig13" align="left" suppress-title="false" pn="figure-13">
            <name slugifiedName="name-events-report">Events Report</name>
            <artwork name="" type="" align="left" alt="" pn="section-4.3.4-1.1">
                     UP                       CP
                     | Statistic/Detect Report|
                     |---------via Ci--------&gt;|
                     |                        |</artwork>
          </figure>
          <t pn="section-4.3.4-2">
   When a session is created on a UP, the UP will periodically report statistics 
   information and subscriber detection results of the session to the CP. </t>
        </section>
      </section>
    </section>
    <section anchor="sect-5" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-s-cusp-call-flows">S-CUSP Call Flows</name>
      <t pn="section-5-1">
   The subsections below give an overview of various "dial-up"
   interactions over the Si followed by an overview of
   the setting of information in the UP by the CP using S-CUSP over the
   Ci.</t>
      <t pn="section-5-2">
   S-CUSP messages are described in this document using Routing Backus
   Naur Form (RBNF) as defined in <xref target="RFC5511" format="default" sectionFormat="of" derivedContent="RFC5511"/>.</t>
      <section anchor="sect-5.1" numbered="true" toc="include" removeInRFC="false" pn="section-5.1">
        <name slugifiedName="name-ipoe">IPoE</name>
        <section anchor="sect-5.1.1" numbered="true" toc="include" removeInRFC="false" pn="section-5.1.1">
          <name slugifiedName="name-dhcpv4-access">DHCPv4 Access</name>
          <t pn="section-5.1.1-1">The following sequence (<xref target="fig14" format="default" sectionFormat="of" derivedContent="Figure 14"/>) shows detailed procedures for DHCPv4 access.</t>
          <figure anchor="fig14" align="left" suppress-title="false" pn="figure-14">
            <name slugifiedName="name-dhcpv4-access-2">DHCPv4 Access</name>
            <artwork name="" type="" align="left" alt="" pn="section-5.1.1-2.1">
     RG              UP                       CP             AAA
     | DHCP Discovery|                        |               |
    1|--------------&gt;|                        |               |
     |               |Relay the DHCP Discovery|               |
     |              2|-----to CP via Si------&gt;|      AAA      |
     |               |                        |    Req/Rep    |
     |               |                       3|&lt;-------------&gt;|
     |               |  Send the DHCP Offer   |               |
     |              4|&lt;----to UP via Si-------|               |
     |  DHCP Offer   |                        |               |
    5|&lt;--------------|                        |               |
     |  DHCP Request |                        |               |
    6|--------------&gt;|                        |               |
     |               | Relay the DHCP Request |               |
     |              7|-----to CP via Si------&gt;|               |
     |               |                        |               |
     |               |  Create Subscriber     |               |
     |               |   Session Request      |               |
     |              8|&lt;--------via Ci---------|               |
     |               |  Create Subscriber     |               |
     |               |   Session Response     |               |
     |              9|---------via Ci--------&gt;|               |
     |               |                        |   Accounting  |
     |               |                      10|&lt;-------------&gt;|
     |               |  Send DHCP ACK         |               |
     |             11|&lt;----to UP via Si-------|               |
     |               |                        |               |
     |  DHCP ACK     |                        |               |
   12|&lt;--------------|                        |               |
     |               |                        |               |</artwork>
          </figure>
          <t pn="section-5.1.1-3">
   S-CUSP implements steps 8 and 9.</t>
          <t pn="section-5.1.1-4">
   After a subscriber is authenticated and authorized by the AAA server,
   the CP creates a new subscriber session on the UP.  This is achieved
   by sending an Update_Request message to the UP.</t>
          <t pn="section-5.1.1-5">
   The format of the Update_Request message is shown as follows using
   RBNF:</t>
          <sourcecode type="rbnf" markers="false" pn="section-5.1.1-6">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;IPv4 Subscriber TLV&gt;
                  &lt;IPv4 Routing TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]
</sourcecode>
          <t pn="section-5.1.1-7">
   The UP will reply with an Update_Response message. The format of the
   Update_Response message is as follows:</t>
          <sourcecode type="rbnf" markers="false" pn="section-5.1.1-8">
&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
                 [&lt;Subscriber CGN Port Range TLV&gt;]
</sourcecode>
        </section>
        <section anchor="sect-5.1.2" numbered="true" toc="include" removeInRFC="false" pn="section-5.1.2">
          <name slugifiedName="name-dhcpv6-access">DHCPv6 Access</name>
          <t pn="section-5.1.2-1"> The following sequence (<xref target="fig15" format="default" sectionFormat="of" derivedContent="Figure 15"/>) shows detailed procedures for DHCPv6 access.
          </t>
          <figure anchor="fig15" align="left" suppress-title="false" pn="figure-15">
            <name slugifiedName="name-dhcpv6-access-2">DHCPv6 Access</name>
            <artwork name="" type="" align="left" alt="" pn="section-5.1.2-2.1">
     RG              UP                       CP             AAA
     |  Solicit      |                        |               |
    1|--------------&gt;|                        |               |
     |               |  Relay the Solicit     |               |
     |              2|-----to CP via Si------&gt;|      AAA      |
     |               |                        |    Req/Rep    |
     |               |                       3|&lt;-------------&gt;|
     |               |  Send the Advertise    |               |
     |              4|&lt;----to UP via Si-------|               |
     |  Advertise    |                        |               |
    5|&lt;--------------|                        |               |
     |               |                        |               |
     |  Request      |                        |               |
    6|--------------&gt;|                        |               |
     |               |  Relay the Request     |               |
     |              7|-----to CP via Si------&gt;|               |
     |               |                        |               |
     |               |  Create Subscriber     |               |
     |               |   Session Request      |               |
     |              8|&lt;--------via Ci--------&gt;|               |
     |               |                        |               |
     |               |  Create Subscriber     |               |
     |               |   Session Response     |               |
     |              9|---------via Ci--------&gt;|               |
     |               |                        |   Accounting  |
     |               |                      10|&lt;-------------&gt;|
     |               |  Send Reply            |               |
     |             11|&lt;----to UP via Si-------|               |
     |  Reply        |                        |               |
   12|&lt;--------------|                        |               |
     |               |                        |               |</artwork>
          </figure>
          <t pn="section-5.1.2-3">
   Steps 1-7 are a standard DHCP IPv6 access process.  The subscriber
   creation is triggered by a DHCP IPv6 request message.  When this
   message is received, it means that the subscriber has passed the AAA
   authentication and authorization.  Then the CP will create a
   subscriber session on the UP.  This is achieved by sending an
   Update_Request message to the UP (step 8).</t>
          <t pn="section-5.1.2-4">
   The format of the Update_Request message is as follows:</t>
          <sourcecode type="rbnf" markers="false" pn="section-5.1.2-5">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;IPv6 Subscriber TLV&gt;
                  &lt;IPv6 Routing TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]
</sourcecode>
          <t pn="section-5.1.2-6">
   The UP will reply with an Update_Response message (step 9). The
   format of the Update_Response message is as follows:</t>
          <sourcecode type="rbnf" markers="false" pn="section-5.1.2-7">
&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
</sourcecode>
        </section>
        <section anchor="sect-5.1.3" numbered="true" toc="include" removeInRFC="false" pn="section-5.1.3">
          <name slugifiedName="name-ipv6-stateless-address-auto">IPv6 Stateless Address Autoconfiguration (SLAAC) Access</name>
          <t pn="section-5.1.3-1">The following flow (<xref target="fig16" format="default" sectionFormat="of" derivedContent="Figure 16"/>) shows the IPv6 SLAAC access process.</t>
          <figure anchor="fig16" align="left" suppress-title="false" pn="figure-16">
            <name slugifiedName="name-ipv6-slaac-access">IPv6 SLAAC Access</name>
            <artwork name="" type="" align="left" alt="" pn="section-5.1.3-2.1">
     RG              UP                       CP             AAA
     |      RS       |                        |               |
    1|--------------&gt;|                        |               |
     |               |  Relay the Router      |               |
     |               |    Solicit (RS)        |               |
     |              2|-----to CP via Si------&gt;|      AAA      |
     |               |                        |    Req/Rep    |
     |               |                       3|&lt;-------------&gt;|
     |               |  Create Subscriber     |               |
     |               |   Session Request      |               |
     |              4|&lt;--------via Ci---------|               |
     |               |                        |               |
     |               |  Create Subscriber     |               |
     |               |   Session Response     |               |
     |              5|---------via Ci--------&gt;|               |
     |               |                        |               |
     |               |  Send Router Advertise |               |
     |               |         (RA)           |               |
     |              6|&lt;----to UP via Si-------|               |
     |      RA       |                        |               |
    7|&lt;--------------|                        |               |
     |               |                        |               |
     |      NS       |                        |               |
    8|--------------&gt;|                        |               |
     |               |  Relay the Neighbor    |               |
     |               |     Solicit (NS)       |               |
     |              9|-----to CP via Si------&gt;|               |
     |               |                        |   Accounting  |
     |               |                      10|&lt;-------------&gt;|
     |               |  Send a Neighbor       |               |
     |               |     Advertise (NA)     |               |
     |             11|&lt;----to UP via Si-------|               |
     |      NA       |                        |               |
   12|&lt;--------------|                        |               |
     |               |                        |               |</artwork>
          </figure>
          <t pn="section-5.1.3-3">
   It starts with a Router Solicit (RS) request from an RG that is
   tunneled to the CP by the UP.  After the AAA authentication and
   authorization, the CP will create a subscriber session on the UP.</t>
          <t pn="section-5.1.3-4">
   This is achieved by sending an Update_Request message to the UP (step
   4).</t>
          <t pn="section-5.1.3-5">
   The format of the Update_Request message is as follows:</t>
          <sourcecode type="rbnf" markers="false" pn="section-5.1.3-6">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;IPv6 Subscriber TLV&gt;
                  &lt;IPv6 Routing TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]
</sourcecode>
          <t pn="section-5.1.3-7">
   The UP will reply with an Update_Response message (step 5). The
   format of the Update_Response message is as follows:</t>
          <sourcecode type="rbnf" markers="false" pn="section-5.1.3-8">
&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
</sourcecode>
        </section>
        <section anchor="sect-5.1.4" numbered="true" toc="include" removeInRFC="false" pn="section-5.1.4">
          <name slugifiedName="name-dhcpv6-and-slaac-access">DHCPv6 and SLAAC Access</name>
          <t pn="section-5.1.4-1"> The following call flow (<xref target="fig17" format="default" sectionFormat="of" derivedContent="Figure 17"/>) shows the DHCP IPv6 and SLAAC access
        process.</t>
          <figure anchor="fig17" align="left" suppress-title="false" pn="figure-17">
            <name slugifiedName="name-dhcpv6-and-slaac-access-2">DHCPv6 and SLAAC Access</name>
            <artwork name="" type="" align="left" alt="" pn="section-5.1.4-2.1">
     RG              UP                       CP             AAA
     |      RS       |                        |               |
    1|--------------&gt;|                        |               |
     |               |  Relay the RS          |               |
     |              2|-----to CP via Si------&gt;|      AAA      |
     |               |                        |    Req/Rep    |
     |               |                       3|&lt;-------------&gt;|
     |               |  Create Subscriber     |               |
     |               |   Session Request      |               |
     |              4|&lt;--------via Ci---------|               |
     |               |                        |               |
     |               |  Create Subscriber     |               |
     |               |   Session Response     |               |
     |              5|---------via Ci--------&gt;|               |
     |               |                        |               |
     |               |  Send RA               |               |
     |              6|&lt;----to UP via Si-------|               |
     |      RA       |                        |               |
    7|&lt;--------------|                        |               |
     |               |                        |               |
     |DHCPv6 Solicit |                        |               |
    8|--------------&gt;|                        |               |
     |               |  Relay DHCPv6 Solicit  |               |
     |              9|-----to CP via Si------&gt;|               |
     |               |                        |               |
     |               |  Update Subscriber     |               |
     |               |   Session Request      |               |
     |             10|&lt;--------via Ci---------|               |
     |               |                        |               |
     |               |  Update Subscriber     |               |
     |               |   Session Response     |               |
     |             11|---------via Ci--------&gt;|               |
     |               |                        |   Accounting  |
     |               |                      12|&lt;-------------&gt;|
     |               |  Send DHCPv6 Reply     |               |
     |             13|&lt;----to UP via Si-------|               |
     |               |                        |               |
     | DHCPv6 Reply  |                        |               |
   14|&lt;--------------|                        |               |
     |               |                        |               |</artwork>
          </figure>
          <t pn="section-5.1.4-3">
   When a subscriber passes AAA authentication, the CP will create a
   subscriber session on the UP.  This is achieved by sending an
   Update_Request message to the UP (step 4).</t>
          <sourcecode type="rbnf" markers="false" pn="section-5.1.4-4">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;IPv6 Subscriber TLV&gt;
                  &lt;IPv6 Routing TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]
</sourcecode>
          <t pn="section-5.1.4-5">
   The UP will reply with an Update_Response message (step 5). The
   format of the Update_Response is as follows:</t>
          <sourcecode type="rbnf" markers="false" pn="section-5.1.4-6">
&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
</sourcecode>
          <t pn="section-5.1.4-7">
   After receiving a DHCPv6 Solicit, the CP will update the subscriber
   session by sending an Update_Request message with new parameters to
   the UP (step 10).</t>
          <t pn="section-5.1.4-8">
   The format of the Update_Request message is as follows:</t>
          <sourcecode type="rbnf" markers="false" pn="section-5.1.4-9">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;IPv6 Subscriber TLV&gt;
                  &lt;IPv6 Routing TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]
</sourcecode>
          <t pn="section-5.1.4-10">
   The UP will reply with an Update_Response message (step 11).  The
   format of the Update_Response is as follows:</t>
          <sourcecode type="rbnf" markers="false" pn="section-5.1.4-11">
&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
</sourcecode>
        </section>
        <section anchor="sect-5.1.5" numbered="true" toc="include" removeInRFC="false" pn="section-5.1.5">
          <name slugifiedName="name-dhcp-dual-stack-access">DHCP Dual-Stack Access</name>
          <t pn="section-5.1.5-1">
   The following sequence (<xref target="fig18" format="default" sectionFormat="of" derivedContent="Figure 18"/>) is a combination of DHCP IPv4 and DHCP IPv6
   access processes.</t>
          <figure anchor="fig18" align="left" suppress-title="false" pn="figure-18">
            <name slugifiedName="name-dhcp-dual-stack-access-2">DHCP Dual-Stack Access</name>
            <artwork name="" type="" align="left" alt="" pn="section-5.1.5-2.1">
     RG              UP                       CP             AAA
     | DHCP Discovery|                        |               |
    1|--------------&gt;|                        |               |
     |               |Relay the DHCP Discovery|               |
     |              2|-----to CP via Si------&gt;|     AAA       |
     |               |                        |   Req/Resp    |
     |               |                       3|&lt;-------------&gt;|
     |               |  Send the DHCP Offer   |               |
     |              4|&lt;----to UP via Si-------|               |
     |  DHCP Offer   |                        |               |
    5|&lt;--------------|                        |               |
     |  DHCP Request |                        |               |
    6|--------------&gt;|                        |               |
     |               |  Relay the DHCP Request|               |
     |              7|-----to CP via Si------&gt;|               |
     |               |                        |               |
     |               |  Create Subscriber     |               |
     |               |   Session Request      |               |
     |              8|&lt;--------via Ci--------&gt;|               |
     |               |  Create Subscriber     |               |
     |               |   Session Response     |               |
     |              9|---------via Ci--------&gt;|               |
     |               |                        |   Accounting  |
     |               |                      10|&lt;-------------&gt;|
     |               |  Send DHCP ACK         |               |
     |             11|&lt;----to UP via Si-------|               |
     |  DHCP ACK     |                        |               |
   12|&lt;--------------|                        |               |
     |      RS       |                        |               |
   13|--------------&gt;|                        |               |
     |               |  Relay the RS          |               |
     |             14|-----to CP via Si------&gt;|      AAA      |
     |               |                        |    Req/Rep    |
     |               |                      15|&lt;-------------&gt;|
     |               |  Create Subscriber     |               |
     |               |   Session Request      |               |
     |             16|&lt;--------via Ci---------|               |
     |               |  Create Subscriber     |               |
     |               |   Session Response     |               |
     |             17|---------via Ci--------&gt;|               |
     |               |                        |               |
     |               |  Send the RA           |               |
     |             18|&lt;----to UP via Si-------|               |
     |      RA       |                        |               |
   19|&lt;--------------|                        |               |
     |DHCPv6 Solicit |                        |               |
   20|--------------&gt;|                        |               |
     |               |  Relay DHCPv6 Solicit  |               |
     |             21|-----to CP via Si------&gt;|               |
     |               |                        |               |
     |               |  Update Subscriber     |               |
     |               |   Session Request      |               |
     |             22|&lt;--------via Ci---------|               |
     |               |  Update Subscriber     |               |
     |               |   Session Response     |               |
     |             23|---------via Ci--------&gt;|               |
     |               |                        |   Accounting  |
     |               |                      24|&lt;-------------&gt;|
     |               |  Send DHCPv6 Reply     |               |
     |             25|&lt;----to UP via Si-------|               |
     | DHCPv6 Reply  |                        |               |
   26|&lt;--------------|                        |               |
     |               |                        |               |</artwork>
          </figure>
          <t pn="section-5.1.5-3">
   The DHCP dual-stack access includes three sets of
   Update_Request/Update_Response exchanges to create/update a DHCPv4/v6
   subscriber session.</t>
          <ol spacing="normal" type="(%d)" start="1" pn="section-5.1.5-4">
            <li pn="section-5.1.5-4.1" derivedCounter="(1)">
              <t pn="section-5.1.5-4.1.1">Create a DHCPv4 session (steps 8 and 9):

              </t>
              <sourcecode type="rbnf" markers="false" pn="section-5.1.5-4.1.2">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;IPv4 Subscriber TLV&gt;
                  &lt;IPv4 Routing TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
                 [&lt;Subscriber CGN Port Range TLV&gt;]
</sourcecode>
            </li>
            <li pn="section-5.1.5-4.2" derivedCounter="(2)">
              <t pn="section-5.1.5-4.2.1">Create a DHCPv6 session (steps 16 and 17):

              </t>
              <sourcecode type="rbnf" markers="false" pn="section-5.1.5-4.2.2">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;IPv6 Subscriber TLV&gt;
                  &lt;IPv6 Routing TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
</sourcecode>
            </li>
            <li pn="section-5.1.5-4.3" derivedCounter="(3)">
              <t pn="section-5.1.5-4.3.1">Update DHCPv6 session (steps 22 and 23):

              </t>
              <sourcecode type="rbnf" markers="false" pn="section-5.1.5-4.3.2">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;IPv6 Subscriber TLV&gt;
                  &lt;IPv6 Routing TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
</sourcecode>
            </li>
          </ol>
        </section>
        <section anchor="sect-5.1.6" numbered="true" toc="include" removeInRFC="false" pn="section-5.1.6">
          <name slugifiedName="name-l2-static-subscriber-access">L2 Static Subscriber Access</name>
          <t pn="section-5.1.6-1">L2 static subscriber access processes are as follows:</t>
          <figure anchor="fig19" align="left" suppress-title="false" pn="figure-19">
            <name slugifiedName="name-l2-static-subscriber-access-2">L2 Static Subscriber Access</name>
            <artwork name="" type="" align="left" alt="" pn="section-5.1.6-2.1">
     RG              UP                      CP              AAA
     |               |    Static Subscriber   |               |
     |               |     Detection Req.     |               |
     |              1|&lt;-----to UP via Ci------|               |
     |               |    Static Subscriber   |               |
     |               |     Detection Rep.     |               |
     |              2|------to UP via Ci-----&gt;|               |
     |  ARP/ND(REQ)  |                        |               |
  3.1|&lt;--------------|                        |               |
     |  ARP/ND(ACK)  |                        |               |
  3.2|--------------&gt;|                        |               |
     |               |  Relay the ARP/ND      |               |
     |            3.3|-----to CP via Si------&gt;|       AAA     |
     |               |                        |    Req/Rep    |
     |               |                     3.4|&lt;-------------&gt;|
     |               |  Create Subscriber     |               |
     |               |   Session Request      |               |
     |            3.5|&lt;--------via Ci---------|               |
     |               |  Create Subscriber     |               |
     |               |   Session Response     |               |
     |            3.6|---------via Ci--------&gt;|               |
     |  ARP/ND(REQ)  |                        |               |
  4.1|--------------&gt;|                        |               |
     |               |  Relay the ARP/ND      |               |
     |            4.2|-----to CP via Si------&gt;|      AAA      |
     |               |                        |    Req/Rep    |
     |               |                     4.3|&lt;-------------&gt;|
     |               |  Create Subscriber     |               |
     |               |   Session Request      |               |
     |            4.4|&lt;--------via Ci---------|               |
     |               |  Create Subscriber     |               |
     |               |   Session Response     |               |
     |            4.5|---------via Ci--------&gt;|               |
     |  ARP/ND(ACK)  |                        |               |
  4.6|&lt;--------------|                        |               |
     |   IP Traffic  |                        |               |
  5.1|--------------&gt;|                        |               |
     |               |  Relay the IP Traffic  |               |
     |            5.2|-----to CP via Si------&gt;|      AAA      |
     |               |                        |    Req/Rep    |
     |               |                     5.3|&lt;-------------&gt;|
     |               |  Create Subscriber     |               |
     |               |   Session Request      |               |
     |            5.4|&lt;--------via Ci--------&gt;|               |
     |               |  Create Subscriber     |               |
     |               |   Session Response     |               |
     |            5.5|---------via Ci--------&gt;|               |
     |  ARP/ND(REQ)  |                        |               |
  5.6|&lt;--------------|                        |               |
     |  ARP/ND(ACK)  |                        |               |
  5.7|--------------&gt;|                        |               |
     |               |                        |               |</artwork>
          </figure>
          <t pn="section-5.1.6-3">
   For L2 static subscriber access, the process starts with a CP
   installing a static subscriber detection list on a UP.  The list
   determines which subscribers will be detected.  That is implemented
   by exchanging Update_Request and Update_Response messages between CP
   and UP.  The formats of the messages are as follows:</t>
          <sourcecode type="rbnf" markers="false" pn="section-5.1.6-4">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;IPv4 Static Subscriber Detect TLVs&gt;
                  &lt;IPv6 Static Subscriber Detect TLVs&gt;

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
</sourcecode>
          <t pn="section-5.1.6-5">
   For L2 static subscriber access, there are three ways to trigger the
   access process:</t>
          <ol spacing="normal" type="(%d)" start="1" pn="section-5.1.6-6">
            <li pn="section-5.1.6-6.1" derivedCounter="(1)"> Triggered by UP (steps 3.1-3.6): This assumes that the UP knows the IP
       address, the access interface, and the VLAN of the RG.  The UP will
       actively trigger the access flow by sending an ARP/ND packet to the RG.
       If the RG is online, it will reply with an ARP/ND to the UP.  The UP
       will tunnel the ARP/ND to the CP through the Si.  The CP then triggers
       the authentication process.  If the authentication result is positive,
       the CP will create a corresponding subscriber session on the UP.
	</li>
            <li pn="section-5.1.6-6.2" derivedCounter="(2)"> Triggered by RG ARP/ND (steps 4.1-4.6): Most of the process is the same as
	option 1 (triggered by UP).  The difference is that the RG will
	actively send the ARP/ND to trigger the process.
	</li>
            <li pn="section-5.1.6-6.3" derivedCounter="(3)"> Triggered by RG IP traffic (steps 5.1-5.7): This is for the case where
	the RG has the ARP/ND information, but the subscriber session on the
	UP is lost (e.g., due to failure on the UP or the UP restarting).
	That means the RG may keep sending IP packets to the UP.  The packets
	will trigger the UP to start a new access process.
	</li>
          </ol>
          <t pn="section-5.1.6-7">
   From a subscriber session point of view, the procedures and the
   message formats for the three cases above are the same, as follows.</t>
          <t pn="section-5.1.6-8">IPv4 Case:</t>
          <sourcecode type="rbnf" markers="false" pn="section-5.1.6-9">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;IPv4 Subscriber TLV&gt;
                  &lt;IPv4 Routing TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
                 [&lt;Subscriber CGN Port Range TLV&gt;]
</sourcecode>
          <t pn="section-5.1.6-10">IPv6 Case:</t>
          <sourcecode type="rbnf" markers="false" pn="section-5.1.6-11">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;IPv6 Subscriber TLV&gt;
                  &lt;IPv6 Routing TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
</sourcecode>
        </section>
      </section>
      <section anchor="sect-5.2" numbered="true" toc="include" removeInRFC="false" pn="section-5.2">
        <name slugifiedName="name-pppoe">PPPoE</name>
        <section anchor="sect-5.2.1" numbered="true" toc="include" removeInRFC="false" pn="section-5.2.1">
          <name slugifiedName="name-ipv4-pppoe-access">IPv4 PPPoE Access</name>
          <t pn="section-5.2.1-1"><xref target="fig20" format="default" sectionFormat="of" derivedContent="Figure 20"/> shows the IPv4 PPPoE access call flow.
          </t>
          <figure anchor="fig20" align="left" suppress-title="false" pn="figure-20">
            <name slugifiedName="name-ipv4-pppoe-access-2">IPv4 PPPoE Access</name>
            <artwork name="" type="" align="left" alt="" pn="section-5.2.1-2.1">
     RG              UP                      CP              AAA
     |  PPPoE Disc   |        PPPoE Disc      |               |
    1|&lt;-------------&gt;|&lt;---------via Si-------&gt;|               |
     |               |                        |               |
     |  PPP LCP      |        PPP LCP         |               |
    2|&lt;-------------&gt;|&lt;---------via Si-------&gt;|               |
     |               |                        |      AAA      |
     |  PPP PAP/CHAP |        PPP PAP/CHAP    |    Req/Rep    |
    3|&lt;-------------&gt;|&lt;---------via Si-------&gt;|&lt;-------------&gt;|
     |               |                        |               |
     |  PPP IPCP     |        PPP IPCP        |               |
    4|&lt;-------------&gt;|&lt;---------via Si-------&gt;|               |
     |               |                        |               |
     |               |  Create Subscriber     |               |
     |               |   Session Request      |               |
     |              5|&lt;--------via Ci---------|               |
     |               |  Create Subscriber     |               |
     |               |   Session Response     |               |
     |              6|---------via Ci--------&gt;|               |
     |               |                        |   Accounting  |
     |               |                       7|&lt;-------------&gt;|
     |               |                        |               |</artwork>
          </figure>
          <t pn="section-5.2.1-3">
   In the above sequence, steps 1-4 are the standard PPPoE call flow.
   The UP is responsible for redirecting the PPPoE control packets to
   the CP or RG.  The PPPoE control packets are transmitted between the
   CP and UP through the Si.</t>
          <t pn="section-5.2.1-4">
   After the PPPoE call flow, if the subscriber passed the AAA
   authentication and authorization, the CP will create a corresponding
   session on the UP through the Ci.  The formats of the messages are as
   follows:</t>
          <sourcecode type="rbnf" markers="false" pn="section-5.2.1-5">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;PPP Subscriber TLV&gt;
                  &lt;IPv4 Subscriber TLV&gt;
                  &lt;IPv4 Routing TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
                 [&lt;Subscriber CGN Port Range TLV&gt;]
</sourcecode>
        </section>
        <section anchor="sect-5.2.2" numbered="true" toc="include" removeInRFC="false" pn="section-5.2.2">
          <name slugifiedName="name-ipv6-pppoe-access">IPv6 PPPoE Access</name>
          <t pn="section-5.2.2-1"><xref target="fig21" format="default" sectionFormat="of" derivedContent="Figure 21"/> describes the IPv6 PPPoE access call flow.</t>
          <figure anchor="fig21" align="left" suppress-title="false" pn="figure-21">
            <name slugifiedName="name-ipv6-pppoe-access-2">IPv6 PPPoE Access</name>
            <artwork name="" type="" align="left" alt="" pn="section-5.2.2-2.1">
     RG              UP                      CP              AAA
     |  PPPoE Disc   |        PPPoE Disc      |               |
    1|&lt;-------------&gt;|&lt;--------via Si--------&gt;|               |
     |               |                        |               |
     |  PPP LCP      |        PPP LCP         |               |
    2|&lt;-------------&gt;|&lt;---------via Si-------&gt;|               |
     |               |                        |      AAA      |
     |  PPP PAP/CHAP |        PPP PAP/CHAP    |    Req/Rep    |
    3|&lt;-------------&gt;|&lt;---------via Si-------&gt;|&lt;-------------&gt;|
     |               |                        |               |
     |  PPP IP6CP    |        PPP IP6CP       |               |
    4|&lt;-------------&gt;|&lt;---------via Si-------&gt;|               |
     |               |                        |               |
     |               |  Create Subscriber     |               |
     |               |   Session Request      |               |
     |              5|&lt;--------via Ci---------|               |
     |               |  Create Subscriber     |               |
     |               |   Session Response     |               |
     |              6|---------via Ci--------&gt;|               |
     |               |                        |               |
     | ND Negotiation|        ND Negotiation  |               |
    7|&lt;-------------&gt;|&lt;---------via Si-------&gt;|               |
     |               |                        |               |
     |               |  Update Subscriber     |               |
     |               |   Session Request      |               |
     |              8|&lt;--------via Ci---------|               |
     |               |  Update Subscriber     |               |
     |               |   Session Response     |               |
     |              9|---------via Ci--------&gt;|               |
     |               |                        |   Accounting  |
     |               |                      10|&lt;-------------&gt;|
     |    DHCPv6     |        DHCPv6          |               |
     |  Negotiation  |      Negotiation       |               |
   7'|&lt;-------------&gt;|&lt;---------via Si-------&gt;|               |
     |               |                        |               |
     |               |  Update Subscriber     |               |
     |               |   Session Request      |               |
     |             8'|&lt;---------via Ci--------|               |
     |               |  Update Subscriber     |               |
     |               |   Session Response     |               |
     |             9'|---------via Ci--------&gt;|               |
     |               |                        |   Accounting  |
     |               |                     10'|&lt;-------------&gt;|
     |               |                        |               |</artwork>
          </figure>
          <t pn="section-5.2.2-3">
   From the above sequence, steps 1-4 are the standard PPPoE call flow.
   The UP is responsible for redirecting the PPPoE control packets to
   the CP or RG.  The PPPoE control packets are transmitted between the
   CP and UP through the Si.</t>
          <t pn="section-5.2.2-4">
   After the PPPoE call flow, if the subscriber passed the AAA
   authentication and authorization, the CP will create a corresponding
   session on the UP through the Ci.  The formats of the messages are as
   follows:</t>
          <sourcecode type="rbnf" markers="false" pn="section-5.2.2-5">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;PPP Subscriber TLV&gt;
                  &lt;IPv6 Subscriber TLV&gt;
                  &lt;IPv6 Routing TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
</sourcecode>
          <t pn="section-5.2.2-6">
   Then, the RG will initialize an ND/DHCPv6 negotiation process with
   the CP (see steps 7 and 7'); after that, it will trigger an update
   (steps 8-9 and 8'-9') to the subscriber session. The formats of the update
   messages are as follows:</t>
          <sourcecode type="rbnf" markers="false" pn="section-5.2.2-7">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;PPP Subscriber TLV&gt;
                  &lt;IPv6 Subscriber TLV&gt;
                  &lt;IPv6 Routing TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
</sourcecode>
        </section>
        <section anchor="sect-5.2.3" numbered="true" toc="include" removeInRFC="false" pn="section-5.2.3">
          <name slugifiedName="name-pppoe-dual-stack-access">PPPoE Dual-Stack Access</name>
          <t pn="section-5.2.3-1">
   <xref target="fig22" format="default" sectionFormat="of" derivedContent="Figure 22"/> shows a combination of IPv4 and IPv6 PPPoE
   access call flows.</t>
          <figure anchor="fig22" align="left" suppress-title="false" pn="figure-22">
            <name slugifiedName="name-pppoe-dual-stack-access-2">PPPoE Dual-Stack Access</name>
            <artwork name="" type="" align="left" alt="" pn="section-5.2.3-2.1">
     RG              UP                      CP              AAA
     |PPPoE Discovery|      PPPoE Discovery   |               |
    1|&lt;-------------&gt;|&lt;---------via Si-------&gt;|               |
     |               |                        |               |
     |  PPP LCP      |        PPP LCP         |               |
    2|&lt;-------------&gt;|&lt;---------via Si-------&gt;|               |
     |               |                        |      AAA      |
     |  PPP PAP/CHAP |        PPP PAP/CHAP    |    Req/Rep    |
    3|&lt;-------------&gt;|&lt;---------via Si-------&gt;|&lt;-------------&gt;|
     |               |                        |               |
     |  PPP IPCP     |        PPP IPCP        |               |
    4|&lt;-------------&gt;|&lt;---------via Si-------&gt;|               |
     |               |                        |               |
     |               |  Create v4 Subscriber  |               |
     |               |   Session Request      |               |
     |              5|&lt;--------via Ci---------|               |
     |               |  Create v4 Subscriber  |               |
     |               |   Session Response     |               |
     |              6|---------via Ci--------&gt;|               |
     |               |                        |   Accounting  |
     |               |                       7|&lt;-------------&gt;|
     |  PPP IP6CP    |        PPP IP6CP       |               |
   4'|&lt;-------------&gt;|&lt;---------via Si-------&gt;|               |
     |               |                        |               |
     |               |  Create V6 Subscriber  |               |
     |               |   Session Request      |               |
     |             5'|&lt;--------via Ci---------|               |
     |               |  Create v6 Subscriber  |               |
     |               |   Session Response     |               |
     |             6'|---------via Ci--------&gt;|               |
     |               |                        |               |
     | ND Negotiation|     ND Negotiation     |               |
    8|&lt;-------------&gt;|&lt;---------via Si-------&gt;|               |
     |               |                        |               |
     |               |  Update v6 Subscriber  |               |
     |               |   Session Request      |               |
     |              9|&lt;---------via Ci--------|               |
     |               |  Update v6 Subscriber  |               |
     |               |   Session Response     |               |
     |             10|---------via Ci--------&gt;|               |
     |               |                        |   Accounting  |
     |               |                      7'|&lt;-------------&gt;|
     |    DHCPv6     |        DHCPv6          |               |
     |  Negotiation  |      Negotiation       |               |
   8'|&lt;-------------&gt;|&lt;---------via Si-------&gt;|               |
     |               |                        |               |
     |               |  Update v6 Subscriber  |               |
     |               |   Session Request      |               |
     |             9'|&lt;--------via Ci---------|               |
     |               |  Update v6 Subscriber  |               |
     |               |   Session Response     |               |
     |            10'|---------via Ci--------&gt;|               |
     |               |                        |   Accounting  |
     |               |                      7"|&lt;-------------&gt;|
     |               |                        |               |</artwork>
          </figure>
          <t pn="section-5.2.3-3">
   PPPoE dual stack is a combination of IPv4 PPPoE and IPv6 PPPoE
   access.  The process is as above.  The formats of the messages are as
   follows:</t>
          <ol spacing="normal" type="(%d)" start="1" pn="section-5.2.3-4">
            <li pn="section-5.2.3-4.1" derivedCounter="(1)">
              <t pn="section-5.2.3-4.1.1"> Create an IPv4 PPPoE subscriber session (steps 5-6):

              </t>
              <sourcecode type="rbnf" markers="false" pn="section-5.2.3-4.1.2">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;PPP Subscriber TLV&gt;
                  &lt;IPv4 Subscriber TLV&gt;
                  &lt;IPv4 Routing TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
                 [&lt;Subscriber CGN Port Range TLV&gt;]
</sourcecode>
            </li>
            <li pn="section-5.2.3-4.2" derivedCounter="(2)">
              <t pn="section-5.2.3-4.2.1"> Create an IPv6 PPPoE subscriber session (steps 5'-6'):

              </t>
              <sourcecode type="rbnf" markers="false" pn="section-5.2.3-4.2.2">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;PPP Subscriber TLV&gt;
                  &lt;IPv6 Subscriber TLV&gt;
                  &lt;IPv6 Routing TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
</sourcecode>
            </li>
            <li pn="section-5.2.3-4.3" derivedCounter="(3)">
              <t pn="section-5.2.3-4.3.1"> Update the IPv6 PPPoE subscriber session (steps 9-10 and 9'-10'):

              </t>
              <sourcecode type="rbnf" markers="false" pn="section-5.2.3-4.3.2">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;PPP Subscriber TLV&gt;
                  &lt;IPv6 Subscriber TLV&gt;
                  &lt;IPv6 Routing TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
</sourcecode>
            </li>
          </ol>
        </section>
      </section>
      <section anchor="sect-5.3" numbered="true" toc="include" removeInRFC="false" pn="section-5.3">
        <name slugifiedName="name-wlan-access">WLAN Access</name>
        <t pn="section-5.3-1"><xref target="fig23" format="default" sectionFormat="of" derivedContent="Figure 23"/> shows the WLAN access call flow.</t>
        <figure anchor="fig23" align="left" suppress-title="false" pn="figure-23">
          <name slugifiedName="name-wlan-access-2">WLAN Access</name>
          <artwork name="" type="" align="left" alt="" pn="section-5.3-2.1">
     RG            UP              CP         AAA      Web Server
     |    DHCP     |                |          |           |
     |  Discovery  |                |          |           |
    1|------------&gt;|                |          |           |
     |             | DHCP Discovery |          |           |
     |            2|-----via Si----&gt;|   AAA    |           |
     |             |   DHCP Offer   |&lt;--------&gt;|           |
     |            3|&lt;----via Si-----|          |           |
     |  DHCP Offer |                |          |           |
    4|&lt;------------|                |          |           |
     | DHCP Request|                |          |           |
    5|------------&gt;|                |          |           |
     |             |  DHCP Request  |          |           |
     |            6|-----via Si----&gt;|          |           |
     |             |                |          |           |
     |             | Create Session |          |           |
     |             |    Request     |          |           |
     |            7|&lt;----via Ci-----|          |           |
     |             | Create Session |          |           |
     |             |    Response    |          |           |
     |            8|----via Ci-----&gt;|          |           |
     |             |                |          |           |
     |             |  DHCP ACK      |          |           |
     |            9|&lt;----via Si-----|          |           |
     |  DHCP ACK   |                |          |           |
   10|&lt;------------|                |          |           |
     |             |                |          |           |
     | Subscriber  |                |          |           |
     | HTTP Traffic|                |          |           |
   11|------------&gt;|--&gt;             |          |           |
     |             |  | Web URL     |          |           |
     |  Traffic    |  | Redirect    |          |           |
     | Redirection |  |             |          |           |
   12|&lt;------------|&lt;-+             |          |           |
     |                                                     |
   13|-----------------Redirect to Web Server-------------&gt;|
     |                                                     |
   14|&lt;----------------Push HTTP Log-in Page---------------|
     |                                                     |
   15|-----------------User Authentication----------------&gt;|
     |                                                     |
     |             |                |  Portal Interchange  |
     |             |              16|&lt;--------------------&gt;|
     |             |                |                      |
     |             |                |   AAA    |           |
     |             |                |  Req/Rep |           |
     |             |              17|&lt;--------&gt;|           |
     |             |                |          |           |
     |             | Update Session |          |           |
     |             |    Request     |          |           |
     |           18|&lt;----via Ci-----|          |           |
     |             | Update Session |          |           |
     |             |    Response    |          |           |
     |           19|-----via Ci----&gt;|          |           |
     |             |                |          |           |</artwork>
        </figure>
        <t pn="section-5.3-3">
   WLAN access starts with the DHCP dial-up process (steps 1-6). After
   that, the CP will create a subscriber session on the UP (steps 7-8).
   The formats of the session creation messages are as follows:</t>
        <t pn="section-5.3-4">IPv4 Case:</t>
        <sourcecode type="rbnf" markers="false" pn="section-5.3-5">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;IPv4 Subscriber TLV&gt;
                  &lt;IPv4 Routing TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
                 [&lt;Subscriber CGN Port Range TLV&gt;]
</sourcecode>
        <t pn="section-5.3-6">IPv6 Case:</t>
        <sourcecode type="rbnf" markers="false" pn="section-5.3-7">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;IPv6 Subscriber TLV&gt;
                  &lt;IPv6 Routing TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
</sourcecode>
        <t pn="section-5.3-8">
   After step 10, the RG will be allocated an IP address, and its first
   HTTP packet will be redirected to a web server for subscriber
   authentication (steps 11-17).  After the web authentication, if the
   result is positive, the CP will update the subscriber session by
   using the following message exchanges:</t>
        <t pn="section-5.3-9">IPv4 Case:</t>
        <sourcecode type="rbnf" markers="false" pn="section-5.3-10">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;IPv4 Subscriber TLV&gt;
                  &lt;IPv4 Routing TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
                 [&lt;Subscriber CGN Port Range TLV&gt;]
</sourcecode>
        <t pn="section-5.3-11">IPv6 Case:</t>
        <sourcecode type="rbnf" markers="false" pn="section-5.3-12">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;IPv6 Subscriber TLV&gt;
                  &lt;IPv6 Routing TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
</sourcecode>
      </section>
      <section anchor="sect-5.4" numbered="true" toc="include" removeInRFC="false" pn="section-5.4">
        <name slugifiedName="name-l2tp">L2TP</name>
        <section anchor="sect-5.4.1" numbered="true" toc="include" removeInRFC="false" pn="section-5.4.1">
          <name slugifiedName="name-l2tp-lac-access">L2TP LAC Access</name>
          <figure anchor="fig24" align="left" suppress-title="false" pn="figure-24">
            <name slugifiedName="name-l2tp-lac-access-2">L2TP LAC Access</name>
            <artwork name="" type="" align="left" alt="" pn="section-5.4.1-1.1">
     RG         UP(LAC)      CP(LAC)     AAA        LNS
     |    PPPoE   |    PPPoE     |        |          |
     |  Discovery |   Discovery  |        |          |
    1|&lt;----------&gt;|&lt;---via Si---&gt;|        |          |
     |            |              |        |          |
     |  PPP LCP   |   PPP LCP    |        |          |
    2|&lt;----------&gt;|&lt;---via Si---&gt;|        |          |
     |            |              |   AAA  |          |
     |PPP PAP/CHAP| PPP PAP/CHAP | Req/Rep|          |
    3|&lt;----------&gt;|&lt;---via Si---&gt;|&lt;------&gt;|          |
     |            |              |        |          |
     |  PPP IPCP  |  PPP IPCP    |        |          |
    4|&lt;----------&gt;|&lt;---via Si---&gt;|        |          |
     |            |              |        |          |
     |            | L2TP Tunnel  |        |          |
     |            | Negotiation  |        |          |
     |            |   SCCRQ/     |        |          |
     |            |   SCCRP/     |        |          |
     |            |   SCCCN      |        |          |
     |           5|&lt;---via Si---&gt;|        |          |
     |            | /\                               |
     |            | || Forward                       |
     |            | \/                               |
     |            |&lt;-----------via Routing----------&gt;|
     |            |                                  |
     |            | L2TP Session |        |          |
     |            | Negotiation  |        |          |
     |            |    ICRQ/     |        |          |
     |            |    ICRP/     |        |          |
     |            |    ICCN      |        |          |
     |           6|&lt;---via Si---&gt;|        |          |
     |            | /\                               |
     |            | || Forward                       |
     |            | \/                               |
     |            |&lt;-----------via Routing----------&gt;|
     |            |                                  |
     |            |    Create    |         |         |
     |            |  Subscriber  |         |         |
     |            |  Session Req |         |         |
     |           7|&lt;---via Ci----|         |         |
     |            |    Create    |         |         |
     |            |  Subscriber  |         |         |
     |            |  Session Rep |         |         |
     |           8|----via Ci---&gt;|         |         |
     |            |              |         |         |
     |                                               |
     |         PAP/CHAP (Triggered by LNS)           |
    9|&lt;-----------------via Routing-----------------&gt;|
     |                                               |</artwork>
          </figure>
          <t pn="section-5.4.1-2">
   Steps 1-4 are a standard PPPoE access process.  After that, the LAC-CP
   starts to negotiate an L2TP session and tunnel with the LNS.  After the
   negotiation, the CP will create an L2TP LAC subscriber session on the UP
   through the following messages:</t>
          <sourcecode type="rbnf" markers="false" pn="section-5.4.1-3">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;L2TP-LAC Subscriber TLV&gt;
                  &lt;L2TP-LAC Tunnel TLV&gt;

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
</sourcecode>
        </section>
        <section anchor="sect-5.4.2" numbered="true" toc="include" removeInRFC="false" pn="section-5.4.2">
          <name slugifiedName="name-l2tp-lns-ipv4-access">L2TP LNS IPv4 Access</name>
          <figure anchor="fig25" align="left" suppress-title="false" pn="figure-25">
            <name slugifiedName="name-l2tp-lns-ipv4-access-2">L2TP LNS IPv4 Access</name>
            <artwork name="" type="" align="left" alt="" pn="section-5.4.2-1.1">
     RG          LAC            UP(LNS)  AAA      CP(LNS)
     |    PPPoE   |              |        |          |
     |  Discovery |              |        |          |
    1|&lt;----------&gt;|              |        |          |
     |            |              |        |          |
     |  PPP LCP   |              |        |          |
    2|&lt;----------&gt;|                       |          |
     |            |          AAA          |          |
     |PPP PAP/CHAP|        Req/Rep        |          |
    3|&lt;----------&gt;|&lt;---------------------&gt;|          |
     |            |                                  |
     |            | L2TP Tunnel  |     L2TP Tunnel   |
     |            | Negotiation  |     Negotiation   |
     |            |   SCCRQ/     |       SCCRQ/      |
     |            |   SCCRP/     |       SCCRP/      |
     |            |   SCCCN      |       SCCCN       |
     |           4|&lt;------------&gt;|&lt;------via Si-----&gt;|
     |            |              |                   |
     |            | L2TP Session |     L2TP Session  |
     |            | Negotiation  |     Negotiation   |
     |            |    ICRQ/     |        ICRQ/      |
     |            |    ICRP/     |        ICRP/      |
     |            |    ICCN      |        ICCN       |
     |           5|&lt;------------&gt;|&lt;------via Si-----&gt;|
     |            |              |                   |
     |            |              | Create Subscriber |
     |            |              | Session Request   |
     |            |             6|&lt;-----via Ci-------|
     |            |              | Create Subscriber |
     |            |              | Session Response  |
     |            |             7|------via Ci------&gt;|
     |                                               |
     |          PAP/CHAP (Triggered by LNS)          |
    8|&lt;---------------------------------------------&gt;|
     |                                               |
     |            |              |        |    AAA   |
     |            |              |        |  Req/Rep |
     |            |              |       9|&lt;--------&gt;|
     |            |              |                   |
     |                                               |
     |                   PPP IPCP                    |
   10|&lt;---------------------------------------------&gt;|
     |                                               |
     |            |              | Update Subscriber |
     |            |              | Session Request   |
     |            |            11|&lt;-----via Ci-------|
     |            |              | Update Subscriber |
     |            |              | Session Response  |
     |            |            12|------via Ci------&gt;|
     |            |              |                   |</artwork>
          </figure>
          <t pn="section-5.4.2-2">
   In this case, the BNG is running as an LNS and separated into LNS-CP
   and LNS-UP.  Steps 1-5 finish the normal L2TP dial-up process.  When
   the L2TP session and tunnel negotiations are finished, the LNS-CP
   will create an L2TP LNS subscriber session on the LNS-UP.  The format
   of the messages is as follows:</t>
          <sourcecode type="rbnf" markers="false" pn="section-5.4.2-3">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;L2TP-LNS Subscriber TLV&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;PPP Subscriber TLV&gt;
                  &lt;IPv4 Subscriber TLV&gt;
                  &lt;IPv4 Routing TLV&gt;
                  &lt;L2TP-LNS Tunnel TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
                 [&lt;Subscriber CGN Port Range TLV&gt;]
</sourcecode>
          <t pn="section-5.4.2-4">
   After that, the LNS-CP will trigger a AAA authentication.  If the
   authentication result is positive, a PPP IP Control Protocol (IPCP) process
   will follow, and
   then the CP will update the session with the following message
   exchanges:</t>
          <sourcecode type="rbnf" markers="false" pn="section-5.4.2-5">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;L2TP-LNS Subscriber TLV&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;PPP Subscriber TLV&gt;
                  &lt;IPv4 Subscriber TLV&gt;
                  &lt;IPv4 Routing TLV&gt;
                  &lt;L2TP-LNS Tunnel TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
                 [&lt;Subscriber CGN Port Range TLV&gt;]
</sourcecode>
        </section>
        <section anchor="sect-5.4.3" numbered="true" toc="include" removeInRFC="false" pn="section-5.4.3">
          <name slugifiedName="name-l2tp-lns-ipv6-access">L2TP LNS IPv6 Access</name>
          <figure anchor="fig26" align="left" suppress-title="false" pn="figure-26">
            <name slugifiedName="name-l2tp-lns-ipv6-access-2">L2TP LNS IPv6 Access</name>
            <artwork name="" type="" align="left" alt="" pn="section-5.4.3-1.1">
     RG          LAC          UP(LNS)    AAA      CP(LNS)
     |    PPPoE   |              |        |          |
     |  Discovery |              |        |          |
    1|&lt;----------&gt;|              |        |          |
     |            |              |        |          |
     |  PPP LCP   |              |        |          |
    2|&lt;----------&gt;|                       |          |
     |            |          AAA          |          |
     |PPP PAP/CHAP|        Req/Rep        |          |
    3|&lt;----------&gt;|&lt;---------------------&gt;|          |
     |            |                                  |
     |            | L2TP Tunnel  |     L2TP Tunnel   |
     |            | Negotiation  |     Negotiation   |
     |            |   SCCRQ/     |       SCCRQ/      |
     |            |   SCCRP/     |       SCCRP/      |
     |            |   SCCCN      |       SCCCN       |
     |           4|&lt;------------&gt;|&lt;------via Si-----&gt;|
     |            |              |                   |
     |            | L2TP Session |     L2TP Session  |
     |            | Negotiation  |     Negotiation   |
     |            |    ICRQ/     |        ICRQ/      |
     |            |    ICRP/     |        ICRP/      |
     |            |    ICCN      |        ICCN       |
     |           5|&lt;------------&gt;|&lt;------via Si-----&gt;|
     |            |              |                   |
     |            |              | Create Subscriber |
     |            |              | Session Request   |
     |            |             6|&lt;-----via Ci-------|
     |            |              | Create Subscriber |
     |            |              | Session Response  |
     |            |             7|------via Ci------&gt;|
     |                                               |
     |          PAP/CHAP (Triggered by LNS)          |
    8|&lt;---------------------------------------------&gt;|
     |                                               |
     |            |              |        |    AAA   |
     |            |              |        |  Req/Rep |
     |            |              |       9|&lt;--------&gt;|
     |            |              |        |          |
     |                                               |
     |                   PPP IP6CP                   |
   10|&lt;---------------------------------------------&gt;|
     |                                               |
     |            |              | Update Subscriber |
     |            |              | Session Request   |
     |            |            11|&lt;-----via Ci-------|
     |            |              | Update Subscriber |
     |            |              | Session Response  |
     |            |            12|------via Ci------&gt;|
     |                           |                   |
     |       ND Negotiation      |   ND Negotiation  |
   13|&lt;-------------------------&gt;|&lt;-----via Si------&gt;|
     |                           |                   |
     |            |              | Update Subscriber |
     |            |              | Session Request   |
     |            |            14|&lt;-----via Ci-------|
     |            |              | Update Subscriber |
     |            |              | Session Response  |
     |            |            15|------via Ci------&gt;|
     |            |              |                   |</artwork>
          </figure>
          <t pn="section-5.4.3-2">
   Steps 1-12 are the same as L2TP LNS IPv4 access.  Steps 1-5
   finish the normal L2TP dial-up process.  When the L2TP session and
   tunnel negotiations are finished, the LNS-CP will create an L2TP LNS
   subscriber session on the LNS-UP.  The format of the messages is as
   follows:</t>
          <sourcecode type="rbnf" markers="false" pn="section-5.4.3-3">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;L2TP-LNS Subscriber TLV&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;PPP Subscriber TLV&gt;
                  &lt;IPv6 Subscriber TLV&gt;
                  &lt;IPv6 Routing TLV&gt;
                  &lt;L2TP-LNS Tunnel TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
</sourcecode>
          <t pn="section-5.4.3-4">
   After that, the LNS-CP will trigger a AAA authentication. If the
   authentication result is positive, a PPP IP6CP process will follow, and
   then the CP will update the session with the following message
   exchanges:</t>
          <sourcecode type="rbnf" markers="false" pn="section-5.4.3-5">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;L2TP-LNS Subscriber TLV&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;PPP Subscriber TLV&gt;
                  &lt;IPv6 Subscriber TLV&gt;
                  &lt;IPv6 Routing TLV&gt;
                  &lt;L2TP-LNS Tunnel TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
</sourcecode>
          <t pn="section-5.4.3-6">
   Then, an ND negotiation will be triggered by the RG.  After the ND
   negotiation, the CP will update the session with the following
   message exchanges:</t>
          <sourcecode type="rbnf" markers="false" pn="section-5.4.3-7">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;L2TP-LAC Subscriber TLV&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;PPP Subscriber TLV&gt;
                  &lt;IPv6 Subscriber TLV&gt;
                  &lt;IPv6 Routing TLV&gt;
                  &lt;L2TP-LNS Tunnel TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
</sourcecode>
        </section>
      </section>
      <section anchor="sect-5.5" numbered="true" toc="include" removeInRFC="false" pn="section-5.5">
        <name slugifiedName="name-cgn-carrier-grade-nat">CGN (Carrier Grade NAT)</name>
        <figure anchor="fig27" align="left" suppress-title="false" pn="figure-27">
          <name slugifiedName="name-cgn-access">CGN Access</name>
          <artwork name="" type="" align="left" alt="" pn="section-5.5-1.1">
       RG              UP                       CP             AAA
       |               |  Public Address Block  |               |
       |               |   Allocation Request   |               |
       |              1|&lt;--------via Ci--------&gt;|               |
       |               |  Public Address Block  |               |
       |               |   Allocation Reply     |               |
       |              2|---------via Ci--------&gt;|               |
       |   Subscriber  |                        |               |
       | Access Request|        Subscriber      |               |
      3|--------------&gt;|      Access Request    |               |
       |              4|----------via Si-------&gt;|               |
       |               |                        |      AAA      |
       |               |       Subscriber       |    Req/Rep    |
       |  Subscriber   |      Access Reply     5|&lt;-------------&gt;|
       | Access Reply 6|&lt;---------via Si--------|               |
      7|&lt;--------------|                        |               |
       |               |  Create Subscriber     |               |
       |               |   Session Request      |               |
       |              8|&lt;--------via Ci---------|               |
       |               |                        |               |
       |               |  Create Subscriber     |               |
       |               |   Session Response     |               |
       |               | (with NAT information) |               |
       |              9|---------via Ci--------&gt;|               |
       |               |                        |   Accounting  |
       |               |                        |  with source  |
       |               |                        |   information |
       |               |                      10|&lt;-------------&gt;|
       |               |                        |  Public IP +  |
       |               |                        |  Port Range   |
       |               |                        |  to Private IP|
       |               |                        |  Mapping      |
       |               |                        |               |</artwork>
        </figure>
        <t pn="section-5.5-2">
   The first steps allocate one or more CGN address blocks to the UP
   (steps 1-2).  This is achieved by the following message exchanges
   between CP and UP:</t>
        <sourcecode type="rbnf" markers="false" pn="section-5.5-3">
&lt;Addr_Allocation_Req Message&gt; ::= &lt;Common Header&gt;
                  &lt;Address Allocation Request TLV&gt;

&lt;Addr_Allocation_Ack Message&gt; ::= &lt;Common Header&gt;
                 &lt;Address Allocation Response TLV&gt;
</sourcecode>
        <t pn="section-5.5-4">
   Steps 3-9 show the general dial-up process in the case of CGN mode.
   The specific processes (e.g., IPoE, PPPoE, L2TP, etc.) are defined in
   above sections.</t>
        <t pn="section-5.5-5">
   If a subscriber is a CGN subscriber, once the subscriber session is
   created/updated, the UP will report the NAT information to the CP.
   This is achieved by carrying the Subscriber CGN Port Range TLV in
   the Update_Response message.</t>
      </section>
      <section anchor="sect-5.6" numbered="true" toc="include" removeInRFC="false" pn="section-5.6">
        <name slugifiedName="name-l3-leased-line-access">L3 Leased Line Access</name>
        <section anchor="sect-5.6.1" numbered="true" toc="include" removeInRFC="false" pn="section-5.6.1">
          <name slugifiedName="name-web-authentication">Web Authentication</name>
          <figure anchor="fig28" align="left" suppress-title="false" pn="figure-28">
            <name slugifiedName="name-web-authentication-based-l3">Web Authentication-Based L3 Leased Line Access</name>
            <artwork name="" type="" align="left" alt="" pn="section-5.6.1-1.1">
     RG            UP              CP         AAA      Web Server
     | User traffic|                |          |           |
    1|------------&gt;|                |          |           |
     |             | User traffic   |          |           |
     |            2|-----via Si----&gt;|    AAA   |           |
     |             |                |  Req/Rep |           |
     |             |               3|&lt;--------&gt;|           |
     |             | Create Session |          |           |
     |             |    Request     |          |           |
     |            4|&lt;----via Ci-----|          |           |
     |             | Create Session |          |           |
     |             |    Response    |          |           |
     |            5|----via Ci-----&gt;|          |           |
     |             |                |          |           |
     | HTTP traffic|                |          |           |
    6|------------&gt;|                |          |           |
     |             |                |          |           |
     | Redirect to |                |          |           |
     |   Web URL   |                |          |           |
    7|&lt;------------|                |          |           |
     |             |                |          |           |
     |                                                     |
    8|-----------------Redirected to Web Server-----------&gt;|
     |                                                     |
    9|&lt;----------------Push HTTP Log-in Page---------------|
     |                                                     |
   10|-----------------User Authentication----------------&gt;|
     |                                                     |
     |             |                |  Portal Interchange  |
     |             |              11|&lt;--------------------&gt;|
     |             |                |                      |
     |             |                |   AAA    |           |
     |             |                |  Req/Rep |           |
     |             |              12|&lt;--------&gt;|           |
     |             |                |          |           |
     |             | Update Session |          |           |
     |             |    Request     |          |           |
     |           13|&lt;----via Ci-----|          |           |
     |             | Update Session |          |           |
     |             |    Response    |          |           |
     |           14|----via Ci-----&gt;|          |           |
     |             |                |          |           |</artwork>
          </figure>
          <t pn="section-5.6.1-2">
   In this case, IP traffic from the RG will trigger the CP to
   authenticate the RG by checking the source IP and the exchanges with
   the AAA server.  Once the RG has passed the authentication, the CP will
   create a corresponding subscriber session on the UP through the
   following message exchanges:</t>
          <t pn="section-5.6.1-3">IPv4 Case:</t>
          <sourcecode type="rbnf" markers="false" pn="section-5.6.1-4">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;IPv4 Subscriber TLV&gt;
                  &lt;IPv4 Routing TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;

                 &lt;Update Response TLV&gt;
                 [&lt;Subscriber CGN Port Range TLV&gt;]
</sourcecode>
          <t pn="section-5.6.1-5">IPv6 Case:</t>
          <sourcecode type="rbnf" markers="false" pn="section-5.6.1-6">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;IPv6 Subscriber TLV&gt;
                  &lt;IPv6 Routing TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
</sourcecode>
          <t pn="section-5.6.1-7">
   Then, the HTTP traffic from the RG will be redirected to a web server
   to finish the web authentication.  Once the web authentication is
   passed, the CP will trigger another AAA authentication.  After the
   AAA authentication, the CP will update the session with the following
   message exchanges:</t>
          <t pn="section-5.6.1-8">IPv4 Case:</t>
          <sourcecode type="rbnf" markers="false" pn="section-5.6.1-9">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;IPv4 Subscriber TLV&gt;
                  &lt;IPv4 Routing TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
                 [&lt;Subscriber CGN Port Range TLV&gt;]
</sourcecode>
          <t pn="section-5.6.1-10">IPv6 Case:</t>
          <sourcecode type="rbnf" markers="false" pn="section-5.6.1-11">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;IPv6 Subscriber TLV&gt;
                  &lt;IPv6 Routing TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
</sourcecode>
        </section>
        <section anchor="sect-5.6.2" numbered="true" toc="include" removeInRFC="false" pn="section-5.6.2">
          <name slugifiedName="name-user-traffic-trigger">User Traffic Trigger</name>
          <figure anchor="fig29" align="left" suppress-title="false" pn="figure-29">
            <name slugifiedName="name-user-traffic-triggered-l3-l">User Traffic Triggered L3 Leased Line Access</name>
            <artwork name="" type="" align="left" alt="" pn="section-5.6.2-1.1">
     RG            UP              CP         AAA
     |             |   L3 access    |          |
     |             |  control list  |          |
     |            1|&lt;----via Ci-----|          |
     |    User     |                |          |
     |   traffic   |                |          |
    2|------------&gt;|                |          |
     |             |  User traffic  |          |
     |            3|-----via Si----&gt;|          |
     |             |                |   AAA    |
     |             |                |  Req/Rep |
     |             |               4|&lt;--------&gt;|
     |             |                |          |
     |             | Create Session |          |
     |             |    Request     |          |
     |            5|&lt;----via Ci-----|          |
     |             | Create Session |          |
     |             |    Response    |          |
     |            6|----via Ci-----&gt;|          |
     |             |                |          |</artwork>
          </figure>
          <t pn="section-5.6.2-2">
   In this case, the CP must install on the UP an access
   control list, which is used by the UP to determine whether or not
   an RG is legal.  If the traffic is from a legal RG, it will be
   redirected to the CP though the Si.  The CP will trigger a AAA
   interchange with the AAA server.  After that, the CP will create a
   corresponding subscriber session on the UP with the following message
   exchanges:</t>
          <t pn="section-5.6.2-3">IPv4 Case:</t>
          <sourcecode type="rbnf" markers="false" pn="section-5.6.2-4">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;IPv4 Subscriber TLV&gt;
                  &lt;IPv4 Routing TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
                 [&lt;Subscriber CGN Port Range TLV&gt;]
</sourcecode>
          <t pn="section-5.6.2-5">IPv6 Case:</t>
          <sourcecode type="rbnf" markers="false" pn="section-5.6.2-6">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                  &lt;Basic Subscriber TLV&gt;
                  &lt;IPv6 Subscriber TLV&gt;
                  &lt;IPv6 Routing TLV&gt;
                  [&lt;Subscriber Policy TLV&gt;]

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                 &lt;Update Response TLV&gt;
</sourcecode>
        </section>
      </section>
      <section anchor="sect-5.7" numbered="true" toc="include" removeInRFC="false" pn="section-5.7">
        <name slugifiedName="name-multicast-service-access">Multicast Service Access</name>
        <figure anchor="fig30" align="left" suppress-title="false" pn="figure-30">
          <name slugifiedName="name-multicast-access">Multicast Access</name>
          <artwork name="" type="" align="left" alt="" pn="section-5.7-1.1">
           RG            UP              CP         AAA
           | User Access |  User Access   |   AAA    |
           |   Request   |    Request     |  Req/Rep |
          1|&lt;-----------&gt;|&lt;----via Si----&gt;|&lt;--------&gt;|
           |             |                |          |
           |             | Create Session |          |
           |             |    Request     |          |
           |            2|&lt;----via Ci----&gt;|          |
           |             |                |          |
           |             | Create Session |          |
           |             |    Response    |          |
           |            3|----via Ci-----&gt;|          |
           |             |                |          |
           |  Multicast  |                |          |
           | negotiation |                |          |
          4|&lt;-----------&gt;|                |          |
           |             |                |          |</artwork>
        </figure>
        <t pn="section-5.7-2">
   Multicast access starts with a user access request from the RG. The
   request will be redirected to the CP by the Si.  A follow-up AAA
   interchange between the CP and the AAA server will be triggered.
   After the authentication, the CP will create a multicast subscriber
   session on the UP through the following messages:</t>
        <t pn="section-5.7-3">IPv4 Case, there will be a Multicast-ProfileV4 sub-TLV present in
   the Subscriber Policy TLV:</t>
        <sourcecode type="rbnf" markers="false" pn="section-5.7-4">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
               &lt;Basic Subscriber TLV&gt;
               &lt;IPv4 Subscriber TLV&gt;
               &lt;IPv4 Routing TLV&gt;
               &lt;Subscriber Policy TLV&gt;

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
              &lt;Update Response TLV&gt;
              [&lt;Subscriber CGN Port Range TLV&gt;]
</sourcecode>
        <t pn="section-5.7-5">IPv6 Case, there will be a Multicast-ProfileV6 sub-TLV present in
   the Subscriber Policy TLV:</t>
        <sourcecode type="rbnf" markers="false" pn="section-5.7-6">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
               &lt;Basic Subscriber TLV&gt;
               &lt;IPv6 Subscriber TLV&gt;
               &lt;IPv6 Routing TLV&gt;
               &lt;Subscriber Policy TLV&gt;

&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
              &lt;Update Response TLV&gt;
</sourcecode>
      </section>
    </section>
    <section anchor="sect-6" numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-s-cusp-message-formats">S-CUSP Message Formats</name>
      <t pn="section-6-1">
   An S-CUSP message consists of a common header followed by a variable-length
   body consisting entirely of TLVs.  Receiving an S-CUSP message with an
   unknown message type or missing mandatory TLV <bcp14>MUST</bcp14> trigger an Error message
   (see <xref target="sect-6.7" format="default" sectionFormat="of" derivedContent="Section 6.7"/>) or a Response message with an Error Information TLV (see
   <xref target="sect-7.6" format="default" sectionFormat="of" derivedContent="Section 7.6"/>).</t>
      <t pn="section-6-2">
   Conversely, if a TLV is optional, the TLV may or may not be present.
   Optional TLVs are indicated in the message formats shown in this document
   by being enclosed in square brackets.</t>
      <t pn="section-6-3">
   This section specifies the format of the common S-CUSP message header
   and lists the defined messages.</t>
      <t pn="section-6-4">
   Network byte order is used for all multi-byte fields.</t>
      <section anchor="sect-6.1" numbered="true" toc="include" removeInRFC="false" pn="section-6.1">
        <name slugifiedName="name-common-message-header">Common Message Header</name>
        <figure anchor="fig31" align="left" suppress-title="false" pn="figure-31">
          <name slugifiedName="name-s-cusp-message-common-heade">S-CUSP Message Common Header</name>
          <artwork name="" type="" align="left" alt="" pn="section-6.1-1.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Ver  |  Resv | Message-Type  |        Message-Length         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            Reserved           |        Transaction-ID         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <dl newline="false" spacing="normal" indent="3" pn="section-6.1-2">
          <dt pn="section-6.1-2.1">Ver (4 bits):</dt>
          <dd pn="section-6.1-2.2"> The major version of the protocol. This
      document specifies version 1. Different major versions of the protocol
      may have significantly different message structures and formats except
      that the Ver field will always be in the same place at the beginning of
      each message. A successful S-CUSP session depends on the CP and the UP
      both using the same major version of the protocol.
	</dd>
          <dt pn="section-6.1-2.3">Resv (4 bits):</dt>
          <dd pn="section-6.1-2.4"> Reserved. <bcp14>MUST</bcp14> be sent as zero and
	ignored on receipt.
	</dd>
          <dt pn="section-6.1-2.5">Message-Type (8 bits):</dt>
          <dd pn="section-6.1-2.6"> The set of message types
	specified in this document is listed in <xref target="sect-9.1" format="default" sectionFormat="of" derivedContent="Section 8.1"/>.
	</dd>
          <dt pn="section-6.1-2.7">Message-Length (16 bits):</dt>
          <dd pn="section-6.1-2.8"> Total length of the S-CUSP
	message including the common header, expressed in number of bytes as
	an unsigned integer.
	</dd>
          <dt pn="section-6.1-2.9">Transaction-ID (16 bits):</dt>
          <dd pn="section-6.1-2.10"> This field is used to
	identify requests. It is echoed back in any corresponding
	ACK/Response/Error message. It is <bcp14>RECOMMENDED</bcp14> that a monotonically
	increasing value be used in successive messages and that the value wraps
	back to zero after 0xFFFF.  The content of this field is an opaque
	value that the receiver <bcp14>MUST NOT</bcp14> use for any purpose except to echo
	back in a corresponding response and, optionally, for logging.
	</dd>
        </dl>
      </section>
      <section anchor="sect-6.2" numbered="true" toc="include" removeInRFC="false" pn="section-6.2">
        <name slugifiedName="name-control-messages">Control Messages</name>
        <t pn="section-6.2-1">
   This document defines the following control messages:</t>
        <table align="center" pn="table-2">
          <name slugifiedName="name-control-messages-2">Control Messages</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Type</th>
              <th align="left" colspan="1" rowspan="1">Name</th>
              <th align="left" colspan="1" rowspan="1">Notes and TLVs that can be carried</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">1</td>
              <td align="left" colspan="1" rowspan="1">Hello</td>
              <td align="left" colspan="1" rowspan="1">Hello TLV, Keepalive TLV</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2</td>
              <td align="left" colspan="1" rowspan="1">Keepalive</td>
              <td align="left" colspan="1" rowspan="1">A common header with the Keepalive message type</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">Sync_Request</td>
              <td align="left" colspan="1" rowspan="1">Synchronization request</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">4</td>
              <td align="left" colspan="1" rowspan="1">Sync_Begin</td>
              <td align="left" colspan="1" rowspan="1">Synchronization starts</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">5</td>
              <td align="left" colspan="1" rowspan="1">Sync_Data</td>
              <td align="left" colspan="1" rowspan="1">Synchronization data: TLVs specified in <xref target="sect-7" format="default" sectionFormat="of" derivedContent="Section 7"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">6</td>
              <td align="left" colspan="1" rowspan="1">Sync_End</td>
              <td align="left" colspan="1" rowspan="1">End synchronization</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">7</td>
              <td align="left" colspan="1" rowspan="1">Update_Request</td>
              <td align="left" colspan="1" rowspan="1">TLVs specified in Sections <xref target="sect-7.6" format="counter" sectionFormat="of" derivedContent="7.6"/>-<xref target="sect-7.9" format="counter" sectionFormat="of" derivedContent="7.9"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">8</td>
              <td align="left" colspan="1" rowspan="1">Update_Response</td>
              <td align="left" colspan="1" rowspan="1">TLVs specified in Sections <xref target="sect-7.6" format="counter" sectionFormat="of" derivedContent="7.6"/>-<xref target="sect-7.9" format="counter" sectionFormat="of" derivedContent="7.9"/></td>
            </tr>
          </tbody>
        </table>
        <section anchor="sect-6.2.1" numbered="true" toc="include" removeInRFC="false" pn="section-6.2.1">
          <name slugifiedName="name-hello-message">Hello Message</name>
          <t pn="section-6.2.1-1">
   The Hello message is used for S-CUSP session establishment and version
   negotiation.  The details of S-CUSP session establishment and version
   negotiation can be found in <xref target="sect-4.1.1" format="default" sectionFormat="of" derivedContent="Section 4.1.1"/>.</t>
          <t pn="section-6.2.1-2">
   The format of the Hello message is as follows:</t>
          <sourcecode type="rbnf" markers="false" pn="section-6.2.1-3">
&lt;Hello Message&gt; ::= &lt;Common Header&gt;
                     &lt;Hello TLV&gt;
                     &lt;Keepalive TLV&gt;
                     [&lt;Error Information TLV&gt;]
</sourcecode>
          <t pn="section-6.2.1-4">
   The return code and negotiation result will be carried in the Error
   Information TLV.  They are listed as follows:</t>
          <dl newline="false" spacing="normal" indent="3" pn="section-6.2.1-5">
            <dt pn="section-6.2.1-5.1">0:</dt>
            <dd pn="section-6.2.1-5.2"> Success. Version negotiation success.
        </dd>
            <dt pn="section-6.2.1-5.3">1:</dt>
            <dd pn="section-6.2.1-5.4"> Failure. Malformed message received.
         </dd>
            <dt pn="section-6.2.1-5.5">2:</dt>
            <dd pn="section-6.2.1-5.6"> TLV-Unknown. One or more of the TLVs was not understood.
         </dd>
            <dt pn="section-6.2.1-5.7">1001:</dt>
            <dd pn="section-6.2.1-5.8"> Version-Mismatch. The
	version negotiation fails.  The S-CUSP session establishment phase
	fails.
	</dd>
            <dt pn="section-6.2.1-5.9">1002:</dt>
            <dd pn="section-6.2.1-5.10"> Keepalive Error. The keepalive negotiation fails.  The S-CUSP
	session establishment phase fails.
	</dd>
            <dt pn="section-6.2.1-5.11">1003:</dt>
            <dd pn="section-6.2.1-5.12"> Timer Expires. The establishment timer expired.  Session
	establishment phase fails.
	</dd>
          </dl>
        </section>
        <section anchor="sect-6.2.2" numbered="true" toc="include" removeInRFC="false" pn="section-6.2.2">
          <name slugifiedName="name-keepalive-message">Keepalive Message</name>
          <t pn="section-6.2.2-1">
   Each end of an S-CUSP session periodically sends a Keepalive message.
   It is used to detect whether the peer end is still alive.  The
   Keepalive procedures are defined in <xref target="sect-4.1.2" format="default" sectionFormat="of" derivedContent="Section 4.1.2"/>.</t>
          <t pn="section-6.2.2-2">
   The format of the Keepalive message is as follows:</t>
          <sourcecode type="rbnf" markers="false" pn="section-6.2.2-3">
&lt;Keepalive Message&gt; ::= &lt;Common Header&gt;
</sourcecode>
        </section>
        <section anchor="sect-6.2.3" numbered="true" toc="include" removeInRFC="false" pn="section-6.2.3">
          <name slugifiedName="name-sync_request-message">Sync_Request Message</name>
          <t pn="section-6.2.3-1">
   The Sync_Request message is used to request synchronization from an
   S-CUSP peer.  Both CP and UP can request their peer to synchronize
   data.</t>
          <t pn="section-6.2.3-2">
   The format of the Sync_Request message is as follows:</t>
          <sourcecode type="rbnf" markers="false" pn="section-6.2.3-3">
&lt;Sync_Request Message&gt; ::= &lt;Common Header&gt;
</sourcecode>
          <t pn="section-6.2.3-4">
   A Sync_Request message may result in a Sync_Begin message from its
   peer.  The Sync_Begin message is defined in <xref target="sect-6.2.4" format="default" sectionFormat="of" derivedContent="Section 6.2.4"/>.</t>
        </section>
        <section anchor="sect-6.2.4" numbered="true" toc="include" removeInRFC="false" pn="section-6.2.4">
          <name slugifiedName="name-sync_begin-message">Sync_Begin Message</name>
          <t pn="section-6.2.4-1">
   The Sync_Begin message is a reply to a Sync_Request message.  It is
   used to notify the synchronization requester whether the
   synchronization can be started.</t>
          <t pn="section-6.2.4-2">
   The format of the Sync_Begin message is as follows:</t>
          <sourcecode type="rbnf" markers="false" pn="section-6.2.4-3">
&lt;Sync_Begin Message&gt; ::= &lt;Common Header&gt;
                        &lt;Error Information TLV&gt;
</sourcecode>
          <t pn="section-6.2.4-4">
   The return codes are carried in the Error Information TLV.  The codes
   are listed below:</t>
          <dl newline="false" spacing="normal" indent="3" pn="section-6.2.4-5">
            <dt pn="section-6.2.4-5.1">
   0:</dt>
            <dd pn="section-6.2.4-5.2"> Success. Be ready to synchronize.</dd>
            <dt pn="section-6.2.4-5.3">
   1:</dt>
            <dd pn="section-6.2.4-5.4"> Failure. Malformed message received.</dd>
            <dt pn="section-6.2.4-5.5">
   2:</dt>
            <dd pn="section-6.2.4-5.6"> TLV-Unknown. One or more of the TLVs was not understood.</dd>
            <dt pn="section-6.2.4-5.7">
   2001:</dt>
            <dd pn="section-6.2.4-5.8"> Synch-NoReady.  The data to be synchronized is not ready.</dd>
            <dt pn="section-6.2.4-5.9">
   2002:</dt>
            <dd pn="section-6.2.4-5.10"> Synch-Unsupport.  The data synchronization is not supported.</dd>
          </dl>
        </section>
        <section anchor="sect-6.2.5" numbered="true" toc="include" removeInRFC="false" pn="section-6.2.5">
          <name slugifiedName="name-sync_data-message">Sync_Data Message</name>
          <t pn="section-6.2.5-1">
   The Sync_Data message is used to send data being synchronized between
   the CP and UP.  The Sync_Data message has the same function and
   format as the Update_Request message.  The difference is that there
   is no ACK for a Sync_Data message.  An error caused by the Sync_Data
   message will result in a Sync_End message.</t>
          <t pn="section-6.2.5-2">
   There are two scenarios:

          </t>
          <ul spacing="normal" bare="false" empty="false" pn="section-6.2.5-3">
            <li pn="section-6.2.5-3.1">
              <t pn="section-6.2.5-3.1.1">Synchronization from UP to CP: Synchronize the resource data to CP.

              </t>
              <sourcecode type="rbnf" markers="false" pn="section-6.2.5-3.1.2">
      &lt;Sync_Data Message&gt; ::= &lt;Common Header&gt;
                              [&lt;Interface Status TLV&gt;]
                              [&lt;Board Status TLV&gt;]
</sourcecode>
            </li>
            <li pn="section-6.2.5-3.2">
              <t pn="section-6.2.5-3.2.1">Synchronization from CP to UP: Synchronize all subscriber
   sessions to the UP.  The Subscriber TLVs carried are those appearing in 
   <xref target="sect-7.9" format="default" sectionFormat="of" derivedContent="Section 7.9"/>. As for which TLVs should be carried, it depends on the
   specific session data to be synchronized.  The process is equivalent to the
   creation of a particular session.  Refer to <xref target="sect-5" format="default" sectionFormat="of" derivedContent="Section 5"/> to see
   more details.
   
              </t>
              <sourcecode type="rbnf" markers="false" pn="section-6.2.5-3.2.2">
      &lt;Sync_Data Message&gt; ::= &lt;Common Header&gt;
                           [&lt;IPv4 Routing TLV&gt;]
                           [&lt;IPv6 Routing TLV&gt;]
                           [&lt;Subscriber TLVs&gt;]
</sourcecode>
            </li>
          </ul>
        </section>
        <section anchor="sect-6.2.6" numbered="true" toc="include" removeInRFC="false" pn="section-6.2.6">
          <name slugifiedName="name-sync_end-message">Sync_End Message</name>
          <t pn="section-6.2.6-1">
   The Sync_End message is used to indicate the end of a synchronization
   process.  The format of a Sync_End message is as follows:</t>
          <sourcecode type="rbnf" markers="false" pn="section-6.2.6-2">
&lt;Sync_End Message&gt; ::= &lt;Common Header&gt;
                        &lt;Error Information TLV&gt;
</sourcecode>
          <t pn="section-6.2.6-3">The return/error codes are listed as follows:

</t>
          <dl newline="false" spacing="normal" indent="3" pn="section-6.2.6-4">
            <dt pn="section-6.2.6-4.1">0:</dt>
            <dd pn="section-6.2.6-4.2"> Success. Synchronization finished.</dd>
            <dt pn="section-6.2.6-4.3">1:</dt>
            <dd pn="section-6.2.6-4.4"> Failure. Malformed message received.</dd>
            <dt pn="section-6.2.6-4.5">2:</dt>
            <dd pn="section-6.2.6-4.6"> TLV-Unknown. One or more of the TLVs was not understood.</dd>
          </dl>
        </section>
        <section anchor="sect-6.2.7" numbered="true" toc="include" removeInRFC="false" pn="section-6.2.7">
          <name slugifiedName="name-update_request-message">Update_Request Message</name>
          <t pn="section-6.2.7-1">
   The Update_Request message is a multipurpose message; it can be used
   to create, update, and delete subscriber sessions on a UP.</t>
          <t pn="section-6.2.7-2">
   For session operations, the specific operation is controlled by the
   Oper field of the carried TLVs.  As defined in <xref target="sect-7.1" format="default" sectionFormat="of" derivedContent="Section 7.1"/>, the
   Oper field can be set to either Update or Delete when a TLV is
   carried in an Update_Request message.</t>
          <t pn="section-6.2.7-3">
   When the Oper field is set to Update, it means to create or update a
   subscriber session. If the Oper field is set to Delete, it is a request to
   delete a corresponding session.</t>
          <t pn="section-6.2.7-4">
   The format of the Update_Request message is as follows:</t>
          <sourcecode type="rbnf" markers="false" pn="section-6.2.7-5">
&lt;Update_Request Message&gt; ::= &lt;Common Header&gt;
                        [&lt;IPv4 Routing TLV&gt;]
                        [&lt;IPv6 Routing TLV&gt;]
                        [&lt;Subscriber TLVs&gt;]
</sourcecode>
          <t pn="section-6.2.7-6">
   Where the Subscriber TLVs are those appearing in
   <xref target="sect-7.9" format="default" sectionFormat="of" derivedContent="Section 7.9"/>.
   Each Update_Request message will result in an Update_Response message,
   which is defined in <xref target="sect-6.2.8" format="default" sectionFormat="of" derivedContent="Section 6.2.8"/>.</t>
        </section>
        <section anchor="sect-6.2.8" numbered="true" toc="include" removeInRFC="false" pn="section-6.2.8">
          <name slugifiedName="name-update_response-message">Update_Response Message</name>
          <t pn="section-6.2.8-1">
   The Update_Response message is a response to an Update_Request
   message.  It is used to confirm the update request (or reject it in
   the case of an error).  The format of an Update_Response message is
   as follows:</t>
          <sourcecode type="rbnf" markers="false" pn="section-6.2.8-2">
&lt;Update_Response Message&gt; ::= &lt;Common Header&gt;
                        [&lt;Subscriber CGN Port Range TLV&gt;]
                        &lt;Error Information TLV&gt;
</sourcecode>
          <t pn="section-6.2.8-3">
   The return/error codes are carried in the Error Information TLV.
   They are listed as follows:</t>
          <dl newline="false" spacing="normal" indent="3" pn="section-6.2.8-4">
            <dt pn="section-6.2.8-4.1">0:</dt>
            <dd pn="section-6.2.8-4.2"> Success.</dd>
            <dt pn="section-6.2.8-4.3">1:</dt>
            <dd pn="section-6.2.8-4.4"> Failure. Malformed message received.</dd>
            <dt pn="section-6.2.8-4.5">2:</dt>
            <dd pn="section-6.2.8-4.6"> TLV-Unknown. One or more of the TLVs was not understood.</dd>
            <dt pn="section-6.2.8-4.7">3001:</dt>
            <dd pn="section-6.2.8-4.8"> Pool-Mismatch. The corresponding address pool
        cannot be found.</dd>
            <dt pn="section-6.2.8-4.9">3002:</dt>
            <dd pn="section-6.2.8-4.10"> Pool-Full. The address pool is fully allocated,
	and no address segment is available.</dd>
            <dt pn="section-6.2.8-4.11">3003:</dt>
            <dd pn="section-6.2.8-4.12"> Subnet-Mismatch. The address pool subnet cannot
	be found.</dd>
            <dt pn="section-6.2.8-4.13">3004:</dt>
            <dd pn="section-6.2.8-4.14"> Subnet-Conflict. Subnets in the address pool
	have been classified into other clients.</dd>
            <dt pn="section-6.2.8-4.15">4001:</dt>
            <dd pn="section-6.2.8-4.16"> Update-Fail-No-Res. The forwarding table fails
	to be delivered because the forwarding resources are insufficient.</dd>
            <dt pn="section-6.2.8-4.17">4002:</dt>
            <dd pn="section-6.2.8-4.18"> QoS-Update-Success. The QoS policy takes effect.</dd>
            <dt pn="section-6.2.8-4.19">4003:</dt>
            <dd pn="section-6.2.8-4.20"> QoS-Update-Sq-Fail. Failed to process the queue
	in the QoS policy.</dd>
            <dt pn="section-6.2.8-4.21">4004:</dt>
            <dd pn="section-6.2.8-4.22"> QoS-Update-CAR-Fail. Processing of the CAR in
	the QoS policy fails.</dd>
            <dt pn="section-6.2.8-4.23">4005:</dt>
            <dd pn="section-6.2.8-4.24"> Statistic-Fail-No-Res. Statistics processing
	failed due to insufficient statistics resources.</dd>
          </dl>
        </section>
      </section>
      <section anchor="sect-6.3" numbered="true" toc="include" removeInRFC="false" pn="section-6.3">
        <name slugifiedName="name-event-message">Event Message</name>
        <t pn="section-6.3-1">
   The Event message is used to report subscriber session traffic
   statistics and detection information.  The format of the Event message is
   as follows:</t>
        <sourcecode type="rbnf" markers="false" pn="section-6.3-2">
&lt;Event Message&gt; ::= &lt;Common Header&gt;
                        [&lt;Subscriber Traffic Statistics Report TLV&gt;]
                        [&lt;Subscriber Detection Result Report TLV&gt;]
</sourcecode>
      </section>
      <section anchor="sect-6.4" numbered="true" toc="include" removeInRFC="false" pn="section-6.4">
        <name slugifiedName="name-report-message">Report Message</name>
        <t pn="section-6.4-1">
   The Report message is used to report board and interface status on a
   UP.  The format of the Report message is as follows:</t>
        <sourcecode type="rbnf" markers="false" pn="section-6.4-2">
&lt;Report Message&gt; ::= &lt;Common Header&gt;
                        [&lt;Board Status TLVs&gt;]
                        [&lt;Interface Status TLVs&gt;]
</sourcecode>
      </section>
      <section anchor="sect-6.5" numbered="true" toc="include" removeInRFC="false" pn="section-6.5">
        <name slugifiedName="name-cgn-messages">CGN Messages</name>
        <t pn="section-6.5-1">
   This document defines the following resource allocation messages:</t>
        <table align="center" pn="table-3">
          <name slugifiedName="name-resource-allocation-message">Resource Allocation Messages</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Type</th>
              <th align="left" colspan="1" rowspan="1">Message Name</th>
              <th align="left" colspan="1" rowspan="1">TLV that is carried</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">200</td>
              <td align="left" colspan="1" rowspan="1">Addr_Allocation_Req</td>
              <td align="left" colspan="1" rowspan="1">Address Allocation Request</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">201</td>
              <td align="left" colspan="1" rowspan="1">Addr_Allocation_Ack</td>
              <td align="left" colspan="1" rowspan="1">Address Allocation Response</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">202</td>
              <td align="left" colspan="1" rowspan="1">Addr_Renew_Req</td>
              <td align="left" colspan="1" rowspan="1">Address Renewal Request</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">203</td>
              <td align="left" colspan="1" rowspan="1">Addr_Renew_Ack</td>
              <td align="left" colspan="1" rowspan="1">Address Renewal Response</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">204</td>
              <td align="left" colspan="1" rowspan="1">Addr_Release_Req</td>
              <td align="left" colspan="1" rowspan="1">Address Release Request</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">205</td>
              <td align="left" colspan="1" rowspan="1">Addr_Release_Ack</td>
              <td align="left" colspan="1" rowspan="1">Address Release Response</td>
            </tr>
          </tbody>
        </table>
        <section anchor="sect-6.5.1" numbered="true" toc="include" removeInRFC="false" pn="section-6.5.1">
          <name slugifiedName="name-addr_allocation_req-message">Addr_Allocation_Req Message</name>
          <t pn="section-6.5.1-1">
   The Addr_Allocation_Req message is used to request CGN address
   allocation.  The format of the Addr_Allocation_Req message is as follows:</t>
          <sourcecode type="rbnf" markers="false" pn="section-6.5.1-2">
&lt;Addr_Allocation_Req Message&gt; ::= &lt;Common Header&gt;
                        &lt;Address Allocation Request TLV&gt;
</sourcecode>
        </section>
        <section anchor="sect-6.5.2" numbered="true" toc="include" removeInRFC="false" pn="section-6.5.2">
          <name slugifiedName="name-addr_allocation_ack-message">Addr_Allocation_Ack Message</name>
          <t pn="section-6.5.2-1">
   The Addr_Allocation_Ack message is a response to an
   Addr_Allocation_Req message.  The format of the Addr_Allocation_Ack
   message is as follows:</t>
          <sourcecode type="rbnf" markers="false" pn="section-6.5.2-2">
&lt;Addr_Allocation_Ack Message&gt; ::= &lt;Common Header&gt;
                        &lt;Address Allocation Response TLV&gt;
</sourcecode>
        </section>
        <section anchor="sect-6.5.3" numbered="true" toc="include" removeInRFC="false" pn="section-6.5.3">
          <name slugifiedName="name-addr_renew_req-message">Addr_Renew_Req Message</name>
          <t pn="section-6.5.3-1">
   The Addr_Renew_Req message is used to request address renewal.  The
   format of the Addr_Renew_Req message is as follows:</t>
          <sourcecode type="rbnf" markers="false" pn="section-6.5.3-2">
&lt;Addr_Renew_Req Message&gt; ::= &lt;Common Header&gt;
                        &lt;Address Renewal Request TLV&gt;
</sourcecode>
        </section>
        <section anchor="sect-6.5.4" numbered="true" toc="include" removeInRFC="false" pn="section-6.5.4">
          <name slugifiedName="name-addr_renew_ack-message">Addr_Renew_Ack Message</name>
          <t pn="section-6.5.4-1">
   The Addr_Renew_Ack message is a response to an Addr_Renew_Req
   message.  The format of the Addr_Renew_Req message is as follows:</t>
          <sourcecode type="rbnf" markers="false" pn="section-6.5.4-2">
&lt;Addr_Renew_Ack Message&gt; ::= &lt;Common Header&gt;
                        &lt;Address Renewal Response TLV&gt;
</sourcecode>
        </section>
        <section anchor="sect-6.5.5" numbered="true" toc="include" removeInRFC="false" pn="section-6.5.5">
          <name slugifiedName="name-addr_release_req-message">Addr_Release_Req Message</name>
          <t pn="section-6.5.5-1">
   The Addr_Release_Req message is used to request address release.  The
   format of the Addr_Release_Req message is as follows:</t>
          <sourcecode type="rbnf" markers="false" pn="section-6.5.5-2">
&lt;Addr_Release_Req Message&gt; ::= &lt;Common Header&gt;
                        &lt;Address Release Request TLV&gt;
</sourcecode>
        </section>
        <section anchor="sect-6.5.6" numbered="true" toc="include" removeInRFC="false" pn="section-6.5.6">
          <name slugifiedName="name-addr_release_ack-message">Addr_Release_Ack Message</name>
          <t pn="section-6.5.6-1">
   The Addr_Release_Ack message is a response to an Addr_Release_Req
   message.  The format of the Addr_Release_Ack message is as follows:</t>
          <sourcecode type="rbnf" markers="false" pn="section-6.5.6-2">
&lt;Addr_Release_Ack Message&gt; ::= &lt;Common Header&gt;
                        &lt;Address Release Response TLV&gt;
</sourcecode>
        </section>
      </section>
      <section anchor="sect-6.6" numbered="true" toc="include" removeInRFC="false" pn="section-6.6">
        <name slugifiedName="name-vendor-message">Vendor Message</name>
        <t pn="section-6.6-1">
   The Vendor message, in conjunction with the Vendor TLV and Vendor
   sub-TLV, can be used by vendors to extend S-CUSP. The
   Message-Type is 11. If the receiver does not recognize the message,
   an Error message will be returned to the sender.</t>
        <t pn="section-6.6-2">
   The format of the Vendor message is as follows:</t>
        <sourcecode type="rbnf" markers="false" pn="section-6.6-3">
&lt;Vendor Message&gt; ::= &lt;Common Header&gt;
                     &lt;Vendor TLV&gt;
                     [&lt;any other TLVs as specified by the vendor&gt;]
</sourcecode>
      </section>
      <section anchor="sect-6.7" numbered="true" toc="include" removeInRFC="false" pn="section-6.7">
        <name slugifiedName="name-error-message">Error Message</name>
        <t pn="section-6.7-1">
   The Error message is defined to return some critical error
   information to the sender.  If a receiver does not support the type
   of the received message, it <bcp14>MUST</bcp14> return an Error message to the
   sender.</t>
        <t pn="section-6.7-2">
   The format of the Error message is as below:</t>
        <sourcecode type="rbnf" markers="false" pn="section-6.7-3">
&lt;Error Message&gt; ::= &lt;Common Header&gt;
                    &lt;Error Information TLV&gt;
</sourcecode>
      </section>
    </section>
    <section anchor="sect-7" numbered="true" toc="include" removeInRFC="false" pn="section-7">
      <name slugifiedName="name-s-cusp-tlvs-and-sub-tlvs">S-CUSP TLVs and Sub-TLVs</name>
      <t pn="section-7-1">
   This section specifies the following:</t>
      <ul spacing="normal" bare="false" empty="false" pn="section-7-2">
        <li pn="section-7-2.1">The format of the TLVs that appear in S-CUSP messages,</li>
        <li pn="section-7-2.2">The format of the sub-TLVs that appear within the values of some
     TLVs, and</li>
        <li pn="section-7-2.3">The format of some basic data fields that appear within TLVs or
     sub-TLVs.</li>
      </ul>
      <t pn="section-7-3">
   See <xref target="sect-9" format="default" sectionFormat="of" derivedContent="Section 8"/> for a list of all defined TLVs and sub-TLVs.</t>
      <section anchor="sect-7.1" numbered="true" toc="include" removeInRFC="false" pn="section-7.1">
        <name slugifiedName="name-common-tlv-header">Common TLV Header</name>
        <t pn="section-7.1-1">
   S-CUSP messages consist of the common header specified in <xref target="sect-6.1" format="default" sectionFormat="of" derivedContent="Section 6.1"/>
   followed by TLVs formatted as specified in this section.</t>
        <figure anchor="fig32" align="left" suppress-title="false" pn="figure-32">
          <name slugifiedName="name-common-tlv-header-2">Common TLV Header</name>
          <artwork name="" type="" align="left" alt="" pn="section-7.1-2.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Oper  |      TLV-Type         |       TLV-Length              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                             Value                             ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <dl newline="false" spacing="normal" indent="3" pn="section-7.1-3">
          <dt pn="section-7.1-3.1">Oper (4 bits):</dt>
          <dd pn="section-7.1-3.2"> For Message-Types that specify an
        operation on a data set, the Oper field is interpreted as Update,
        Delete, or Reserved as specified in <xref target="sect-9.3" format="default" sectionFormat="of" derivedContent="Section 8.3"/>. For all
        other Message-Types, the Oper field <bcp14>MUST</bcp14> be sent as zero and ignored
        on receipt.</dd>
          <dt pn="section-7.1-3.3">TLV-Type (12 bits):</dt>
          <dd pn="section-7.1-3.4"> The type of a TLV. TLV-Type
	specifies the interpretation and format of the Value field of the TLV.
	See <xref target="sect-9.2" format="default" sectionFormat="of" derivedContent="Section 8.2"/>.</dd>
          <dt pn="section-7.1-3.5">TLV-Length (2 bytes):</dt>
          <dd pn="section-7.1-3.6"> The length of the Value portion
	of the TLV in bytes as an unsigned integer.
	</dd>
          <dt pn="section-7.1-3.7">Value (variable length):</dt>
          <dd pn="section-7.1-3.8"> This is the portion of
	the TLV whose size is given by TLV-Length. It consists
	of fields, frequently using one of the basic data field types (see
	<xref target="sect-7.2" format="default" sectionFormat="of" derivedContent="Section 7.2"/>) and sub-TLVs (see <xref target="sect-7.3" format="default" sectionFormat="of" derivedContent="Section 7.3"/>).
	</dd>
        </dl>
      </section>
      <section anchor="sect-7.2" numbered="true" toc="include" removeInRFC="false" pn="section-7.2">
        <name slugifiedName="name-basic-data-fields">Basic Data Fields</name>
        <t pn="section-7.2-1">
   This section specifies the binary format of several standard basic
   data fields that are used within other data structures in this
   specification.</t>
        <dl newline="false" spacing="normal" indent="3" pn="section-7.2-2">
          <dt pn="section-7.2-2.1">STRING:</dt>
          <dd pn="section-7.2-2.2"> 0 to 255 octets. Will be encoded as a sub-TLV
        (see <xref target="sect-7.3" format="default" sectionFormat="of" derivedContent="Section 7.3"/>) to provide the length. The use of this data type in
        S-CUSP is to provide convenient labels for use by network operators in
        configuring and debugging their networks and interpreting S-CUSP
        messages.  Subscribers will not normally see these labels. They are
        normally interpreted as ASCII <xref target="RFC0020" format="default" sectionFormat="of" derivedContent="RFC20"/>. </dd>
          <dt pn="section-7.2-2.3">MAC-Addr:</dt>
          <dd pn="section-7.2-2.4"> 6 octets. Ethernet MAC address <xref target="RFC7042" format="default" sectionFormat="of" derivedContent="RFC7042"/>.</dd>
          <dt pn="section-7.2-2.5">IPv4-Address:</dt>
          <dd pn="section-7.2-2.6"> 8 octets. 4 octets of the IPv4 address
	value followed by a 4-octet address mask in the format
	XXX.XXX.XXX.XXX.</dd>
          <dt pn="section-7.2-2.7">IPv6-Address:</dt>
          <dd pn="section-7.2-2.8"> 20 octets. 16 octets of the IPv6 address
	followed by a 4-octet integer n in the range of 0 to 128, which gives
	the address mask as the one's complement of 2**(128-n) - 1.
	</dd>
          <dt pn="section-7.2-2.9">VLAN ID:</dt>
          <dd pn="section-7.2-2.10">
            <t pn="section-7.2-2.10.1">2 octets. As follows <xref target="IEEE-802.1Q" format="default" sectionFormat="of" derivedContent="802.1Q"/>:</t>
            <artwork name="" type="" align="left" alt="" pn="section-7.2-2.10.2">
       0                   1
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | PRI |D|      VLAN-ID          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
            <dl newline="false" spacing="normal" indent="3" pn="section-7.2-2.10.3">
              <dt pn="section-7.2-2.10.3.1">PRI:</dt>
              <dd pn="section-7.2-2.10.3.2"> Priority. Default value 7.</dd>
              <dt pn="section-7.2-2.10.3.3">D:</dt>
              <dd pn="section-7.2-2.10.3.4"> Drop Eligibility Indicator (DEI). Default value 0.</dd>
              <dt pn="section-7.2-2.10.3.5">VLAN-ID:</dt>
              <dd pn="section-7.2-2.10.3.6"> Unsigned integer in the range 1-4094. (0 and
      4095 are not valid VLAN IDs <xref target="IEEE-802.1Q" format="default" sectionFormat="of" derivedContent="802.1Q"/>.)</dd>
            </dl>
          </dd>
        </dl>
      </section>
      <section anchor="sect-7.3" numbered="true" toc="include" removeInRFC="false" pn="section-7.3">
        <name slugifiedName="name-sub-tlv-format-and-sub-tlvs">Sub-TLV Format and Sub-TLVs</name>
        <t pn="section-7.3-1">
   In some cases, the Value portion of a TLV, as specified in <xref target="sect-7.1" format="default" sectionFormat="of" derivedContent="Section 7.1"/>, can
   contain one or more sub-TLVs formatted as follows:</t>
        <figure anchor="fig33" align="left" suppress-title="false" pn="figure-33">
          <name slugifiedName="name-sub-tlv-header">Sub-TLV Header</name>
          <artwork name="" type="" align="left" alt="" pn="section-7.3-2.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              Type             |          Length               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Value                                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
</artwork>
        </figure>
        <dl newline="false" spacing="normal" indent="3" pn="section-7.3-3">
          <dt pn="section-7.3-3.1">Type (2 bytes):</dt>
          <dd pn="section-7.3-3.2"> The type of a sub-TLV. The Type field
        specifies the interpretation and format of the Value field of the TLV.
        Sub-TLV type values have the same meaning regardless of the TLV type of
        the TLV within which the sub-TLV occurs. See <xref target="sect-9.4" format="default" sectionFormat="of" derivedContent="Section 8.4"/>.</dd>
          <dt pn="section-7.3-3.3">Length (2 bytes):</dt>
          <dd pn="section-7.3-3.4"> The length of the Value portion of
        the sub-TLV in bytes as an unsigned integer.</dd>
          <dt pn="section-7.3-3.5">Value (variable length):</dt>
          <dd pn="section-7.3-3.6"> This is the Value portion of
	the sub-TLV whose size is given by Length.</dd>
        </dl>
        <t pn="section-7.3-4">
   The sub-TLVs currently specified are defined in the following
   subsections.</t>
        <section anchor="sect-7.3.1" numbered="true" toc="include" removeInRFC="false" pn="section-7.3.1">
          <name slugifiedName="name-name-sub-tlvs">Name Sub-TLVs</name>
          <t pn="section-7.3.1-1">
   This document defines the following name sub-TLVs that are used to
   carry the name of the corresponding object.  The length of each of
   these sub-TLVs is variable from 1 to 255 octets. The value is of 
   type STRING padded with zero octets to a length in octets that is 
   an integer multiple of 4.</t>
          <table align="center" pn="table-4">
            <name slugifiedName="name-name-sub-tlvs-2">Name Sub-TLVs</name>
            <thead>
              <tr>
                <th align="left" colspan="1" rowspan="1">Type</th>
                <th align="left" colspan="1" rowspan="1">Sub-TLV Name</th>
                <th align="left" colspan="1" rowspan="1">Meaning</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left" colspan="1" rowspan="1">1</td>
                <td align="left" colspan="1" rowspan="1">VRF-Name</td>
                <td align="left" colspan="1" rowspan="1">The name of a VRF</td>
              </tr>
              <tr>
                <td align="left" colspan="1" rowspan="1">2</td>
                <td align="left" colspan="1" rowspan="1">Ingress-QoS-Profile</td>
                <td align="left" colspan="1" rowspan="1">The name of an ingress QoS profile</td>
              </tr>
              <tr>
                <td align="left" colspan="1" rowspan="1">3</td>
                <td align="left" colspan="1" rowspan="1">Egress-QoS-Profile</td>
                <td align="left" colspan="1" rowspan="1">The name of an egress QoS profile</td>
              </tr>
              <tr>
                <td align="left" colspan="1" rowspan="1">4</td>
                <td align="left" colspan="1" rowspan="1">User-ACL-Policy</td>
                <td align="left" colspan="1" rowspan="1">The name of an ACL policy</td>
              </tr>
              <tr>
                <td align="left" colspan="1" rowspan="1">5</td>
                <td align="left" colspan="1" rowspan="1">Multicast-ProfileV4</td>
                <td align="left" colspan="1" rowspan="1">The name of an IPv4 multicast profile</td>
              </tr>
              <tr>
                <td align="left" colspan="1" rowspan="1">6</td>
                <td align="left" colspan="1" rowspan="1">Multicast-ProfileV6</td>
                <td align="left" colspan="1" rowspan="1">The name of an IPv6 multicast profile</td>
              </tr>
              <tr>
                <td align="left" colspan="1" rowspan="1">9</td>
                <td align="left" colspan="1" rowspan="1">NAT-Instance</td>
                <td align="left" colspan="1" rowspan="1">The name of a NAT instance</td>
              </tr>
              <tr>
                <td align="left" colspan="1" rowspan="1">10</td>
                <td align="left" colspan="1" rowspan="1">Pool-Name</td>
                <td align="left" colspan="1" rowspan="1">The name of an address pool</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="sect-7.3.2" numbered="true" toc="include" removeInRFC="false" pn="section-7.3.2">
          <name slugifiedName="name-ingress-car-sub-tlv">Ingress-CAR Sub-TLV</name>
          <t pn="section-7.3.2-1">
   The Ingress-CAR sub-TLV indicates the authorized upstream Committed
   Access Rate (CAR) parameters. The sub-TLV type of the Ingress-CAR
   sub-TLV is 7. The sub-TLV length is 16. The format is as shown in
   <xref target="fig34" format="default" sectionFormat="of" derivedContent="Figure 34"/>.</t>
          <figure anchor="fig34" align="left" suppress-title="false" pn="figure-34">
            <name slugifiedName="name-ingress-car-sub-tlv-2">Ingress-CAR Sub-TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.3.2-2.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  CIR (Committed Information Rate)             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  PIR (Peak Information Rate)                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  CBS (Committed Burst Size)                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  PBS (Peak Burst Size)                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.3.2-3"> Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.3.2-4">
            <li pn="section-7.3.2-4.1">
              <dl newline="false" spacing="normal" pn="section-7.3.2-4.1.1">
                <dt pn="section-7.3.2-4.1.1.1">CIR (4 bytes):</dt>
                <dd pn="section-7.3.2-4.1.1.2">Guaranteed rate in bits/second.</dd>
                <dt pn="section-7.3.2-4.1.1.3">PIR (4 bytes):</dt>
                <dd pn="section-7.3.2-4.1.1.4">Burst rate in bits/second.</dd>
                <dt pn="section-7.3.2-4.1.1.5">CBS (4 bytes):</dt>
                <dd pn="section-7.3.2-4.1.1.6">The token bucket in bytes.</dd>
                <dt pn="section-7.3.2-4.1.1.7">PBS (4 bytes):</dt>
                <dd pn="section-7.3.2-4.1.1.8">Burst token bucket in bytes.</dd>
              </dl>
            </li>
          </ul>
          <t pn="section-7.3.2-5">
   These fields are unsigned integers. More details about CIR, PIR, CBS,
   and PBS can be found in <xref target="RFC2698" format="default" sectionFormat="of" derivedContent="RFC2698"/>.</t>
        </section>
        <section anchor="sect-7.3.3" numbered="true" toc="include" removeInRFC="false" pn="section-7.3.3">
          <name slugifiedName="name-egress-car-sub-tlv">Egress-CAR Sub-TLV</name>
          <t pn="section-7.3.3-1">
   The Egress-CAR sub-TLV indicates the authorized downstream Committed Access
   Rate (CAR) parameters. The sub-TLV type of the Egress-CAR sub-TLV is
   8. Its sub-TLV length is 16 octets. The format of the value part is as
   defined below.</t>
          <figure anchor="fig35" align="left" suppress-title="false" pn="figure-35">
            <name slugifiedName="name-egress-car-sub-tlv-2">Egress-CAR Sub-TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.3.3-2.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  CIR (Committed Information Rate)             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  PIR (Peak Information Rate)                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  CBS (Committed Burst Size)                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  PBS (Peak Burst Size)                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.3.3-3">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.3.3-4">
            <li pn="section-7.3.3-4.1">
              <dl newline="false" spacing="normal" pn="section-7.3.3-4.1.1">
                <dt pn="section-7.3.3-4.1.1.1">CIR (4 bytes):</dt>
                <dd pn="section-7.3.3-4.1.1.2">Guaranteed rate in bits/second.</dd>
                <dt pn="section-7.3.3-4.1.1.3">PIR (4 bytes):</dt>
                <dd pn="section-7.3.3-4.1.1.4">Burst rate in bits/second.</dd>
                <dt pn="section-7.3.3-4.1.1.5">CBS (4 bytes):</dt>
                <dd pn="section-7.3.3-4.1.1.6">The token bucket in bytes.</dd>
                <dt pn="section-7.3.3-4.1.1.7">PBS (4 bytes):</dt>
                <dd pn="section-7.3.3-4.1.1.8">Burst token bucket in bytes.</dd>
              </dl>
            </li>
          </ul>
          <t pn="section-7.3.3-5">
   These fields are unsigned integers. More details about CIR, PIR, CBS,
   and PBS can be found in <xref target="RFC2698" format="default" sectionFormat="of" derivedContent="RFC2698"/>.</t>
        </section>
        <section anchor="sect-7.3.4" numbered="true" toc="include" removeInRFC="false" pn="section-7.3.4">
          <name slugifiedName="name-if-desc-sub-tlv">If-Desc Sub-TLV</name>
          <t pn="section-7.3.4-1">
   The If-Desc sub-TLV is defined to designate an interface.  It is an
   optional sub-TLV that may be carried in those TLVs that have an If-Index
   or Out-If-Index field. The If-Desc sub-TLV is used as a locally unique
   identifier within a BNG.</t>
          <t pn="section-7.3.4-2">
   The sub-TLV type is 11.  The sub-TLV length is 12 octets.  The format
   depends on the If-Type (<xref target="sect-9.6" format="default" sectionFormat="of" derivedContent="Section 8.6"/>). 
   The format of the value part is as follows:</t>
          <figure anchor="fig36" align="left" suppress-title="false" pn="figure-36">
            <name slugifiedName="name-if-desc-sub-tlv-formats">If-Desc Sub-TLV Formats</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.3.4-3.1">
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  If-Type (1-5)|    Chassis    |             Slot              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Sub-Slot            |            Port Number        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Sub-Port Number                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                 If-Desc Sub-TLV (Physical Port)

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| If-Type (6-7) |                Reserved                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            Logic-ID                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Sub-Port Number                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                  If-Desc Sub-TLV (Virtual Port)
</artwork>
          </figure>
          <t pn="section-7.3.4-4">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.3.4-5">
            <li pn="section-7.3.4-5.1">
              <dl newline="false" spacing="normal" pn="section-7.3.4-5.1.1">
                <dt pn="section-7.3.4-5.1.1.1">If-Type:</dt>
                <dd pn="section-7.3.4-5.1.1.2">8 bits in length. The value of this field indicates the
      type of an interface.  The If-Type values defined in this document
      are listed in <xref target="sect-9.6" format="default" sectionFormat="of" derivedContent="Section 8.6"/>.</dd>
                <dt pn="section-7.3.4-5.1.1.3">Chassis (8 bits):</dt>
                <dd pn="section-7.3.4-5.1.1.4">Identifies the chassis that the interface
      belongs to.</dd>
                <dt pn="section-7.3.4-5.1.1.5">Slot (16 bits):</dt>
                <dd pn="section-7.3.4-5.1.1.6">Identifies the slot that the interface belongs to.</dd>
                <dt pn="section-7.3.4-5.1.1.7">Sub-Slot (16 bits):</dt>
                <dd pn="section-7.3.4-5.1.1.8">Identifies the sub-slot the interface belongs to.</dd>
                <dt pn="section-7.3.4-5.1.1.9">Port Number (16 bits):</dt>
                <dd pn="section-7.3.4-5.1.1.10">An identifier of a physical port/interface
      (e.g., If-Type: 1-5). It is locally significant within the
      slot/sub-slot.</dd>
                <dt pn="section-7.3.4-5.1.1.11">Sub-Port Number (32 bits):</dt>
                <dd pn="section-7.3.4-5.1.1.12">An identifier of the sub-port. Locally
      significant within its "parent" port (physical or virtual).</dd>
                <dt pn="section-7.3.4-5.1.1.13">Logic-ID (32 bits):</dt>
                <dd pn="section-7.3.4-5.1.1.14">An identifier of a virtual interface (e.g.,
      If-Type: 6-7).</dd>
              </dl>
            </li>
          </ul>
        </section>
        <section anchor="sect-7.3.5" numbered="true" toc="include" removeInRFC="false" pn="section-7.3.5">
          <name slugifiedName="name-ipv6-address-list-sub-tlv">IPv6 Address List Sub-TLV</name>
          <t pn="section-7.3.5-1">
   The IPv6 Address List sub-TLV is used to convey one or more IPv6
   addresses.  It is carried in the IPv6 Subscriber TLV.  The sub-TLV
   type is 12. The sub-TLV length is variable.</t>
          <t pn="section-7.3.5-2">The format of the value part of the IPv6 Address List sub-TLV is as follows:</t>
          <figure anchor="fig37" align="left" suppress-title="false" pn="figure-37">
            <name slugifiedName="name-ipv6-address-list-sub-tlv-2">IPv6 Address List Sub-TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.3.5-3.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                        IPv6 Address                           ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                        IPv6 Address                           ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                            ...                                ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                        IPv6 Address                           ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.3.5-4">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.3.5-5">
            <li pn="section-7.3.5-5.1">
              <dl newline="false" spacing="normal" pn="section-7.3.5-5.1.1">
                <dt pn="section-7.3.5-5.1.1.1">IPv6 Address (IPv6-Address):</dt>
                <dd pn="section-7.3.5-5.1.1.2">Each IP Address is of
            type IP-Address and carries an IPv6 address and length.</dd>
              </dl>
            </li>
          </ul>
        </section>
        <section anchor="sect-7.3.6" numbered="true" toc="include" removeInRFC="false" pn="section-7.3.6">
          <name slugifiedName="name-vendor-sub-tlv">Vendor Sub-TLV</name>
          <t pn="section-7.3.6-1">
   The Vendor sub-TLV is intended to be used inside the Value portion of
   the Vendor TLV (<xref target="sect-7.13" format="default" sectionFormat="of" derivedContent="Section 7.13"/>). It provides a Sub-Type that
   effectively extends the sub-TLV type in the sub-TLV header and
   provides for versioning of Vendor sub-TLVs.</t>
          <t pn="section-7.3.6-2">The value part of the Vendor sub-TLV is formatted as follows:</t>
          <figure anchor="fig38" align="left" suppress-title="false" pn="figure-38">
            <name slugifiedName="name-vendor-sub-tlv-2">Vendor Sub-TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.3.6-3.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Vendor-ID                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Sub-Type            |       Sub-Type-Version        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~             Value (other as specified by vendor)              ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.3.6-4">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.3.6-5">
            <li pn="section-7.3.6-5.1">
              <dl newline="false" spacing="normal" pn="section-7.3.6-5.1.1">
                <dt pn="section-7.3.6-5.1.1.1">Sub-TLV type:</dt>
                <dd pn="section-7.3.6-5.1.1.2">13.</dd>
                <dt pn="section-7.3.6-5.1.1.3">Sub-TLV length:</dt>
                <dd pn="section-7.3.6-5.1.1.4">Variable.</dd>
                <dt pn="section-7.3.6-5.1.1.5">Vendor-ID (4 bytes):</dt>
                <dd pn="section-7.3.6-5.1.1.6">Vendor ID as defined in RADIUS <xref target="RFC2865" format="default" sectionFormat="of" derivedContent="RFC2865"/>.</dd>
                <dt pn="section-7.3.6-5.1.1.7">Sub-Type (2 bytes):</dt>
                <dd pn="section-7.3.6-5.1.1.8">Used by the vendor to distinguish multiple
	different sub-TLVs.</dd>
                <dt pn="section-7.3.6-5.1.1.9">Sub-Type-Version (2 bytes):</dt>
                <dd pn="section-7.3.6-5.1.1.10">Used by the vendor to distinguish
	different versions of a vendor-defined sub-TLV Sub-Type.</dd>
                <dt pn="section-7.3.6-5.1.1.11">Value:</dt>
                <dd pn="section-7.3.6-5.1.1.12">As specified by the vendor.</dd>
              </dl>
            </li>
          </ul>
          <t pn="section-7.3.6-6">
   Since vendor code will be handling the sub-TLV after the Vendor-ID
   field is recognized, the remainder of the sub-TLV can be organized
   however the vendor wants. But it desirable for a vendor to be able to
   define multiple different Vendor sub-TLVs and to keep track of
   different versions of its vendor-defined sub-TLVs. Thus, it is
   <bcp14>RECOMMENDED</bcp14> that the vendor assign a Sub-Type value for each of that
   vendor's sub-TLVs that is different from other Sub-Type values that
   vendor has used. Also, when modifying a vendor-defined sub-TLV in a
   way potentially incompatible with a previous definition, the vendor
   <bcp14>SHOULD</bcp14> increase the value it is using in the Sub-Type-Version field.</t>
        </section>
      </section>
      <section anchor="sect-7.4" numbered="true" toc="include" removeInRFC="false" pn="section-7.4">
        <name slugifiedName="name-hello-tlv">Hello TLV</name>
        <t pn="section-7.4-1">
   The Hello TLV is defined to be carried in the Hello message for version and
   capabilities negotiation.  It indicates the S-CUSP sub-version and
   capabilities supported.  The format of the value part of the Hello TLV is as follows:</t>
        <figure anchor="fig39" align="left" suppress-title="false" pn="figure-39">
          <name slugifiedName="name-hello-tlv-2">Hello TLV</name>
          <artwork name="" type="" align="left" alt="" pn="section-7.4-2.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          VerSupported                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Vendor-ID                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Capabilities                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t pn="section-7.4-3">Where:
        </t>
        <ul empty="true" bare="false" spacing="normal" pn="section-7.4-4">
          <li pn="section-7.4-4.1">
            <dl newline="false" spacing="normal" pn="section-7.4-4.1.1">
              <dt pn="section-7.4-4.1.1.1">TLV type:</dt>
              <dd pn="section-7.4-4.1.1.2">100.</dd>
              <dt pn="section-7.4-4.1.1.3">TLV length:</dt>
              <dd pn="section-7.4-4.1.1.4">12 octets.</dd>
              <dt pn="section-7.4-4.1.1.5">VerSupported:</dt>
              <dd pn="section-7.4-4.1.1.6">32 bits in length. It is a bit map of the
              Sub-Versions of S-CUSP that the sender supports.  This document
              specifies Sub-Version zero of Major Version 1, that is, Version
              1.0. The VerSupported field <bcp14>MUST</bcp14> be nonzero. The
              VerSupported bits are numbered from 0 as the most significant
              bit. Bit 0 indicates support of Sub-Version zero, bit 1
              indicates support of Sub-Version one, etc.</dd>
              <dt pn="section-7.4-4.1.1.7">Vendor-ID:</dt>
              <dd pn="section-7.4-4.1.1.8">4 bytes in length. Vendor ID, as defined in RADIUS
              <xref target="RFC2865" format="default" sectionFormat="of" derivedContent="RFC2865"/>.</dd>
              <dt pn="section-7.4-4.1.1.9">Capabilities:</dt>
              <dd pn="section-7.4-4.1.1.10">32 bits in length. Flags that indicate the
              support of particular capabilities by the sender of the Hello.
              No capabilities are defined in this document, so implementations
              of the version specified herein will set this field to zero. The
              Capabilities field of the Hello TLV <bcp14>MUST</bcp14> be
              checked before any other TLVs in the Hello because capabilities
              defined in the future might extend existing TLVs or permit new
              TLVs.</dd>
            </dl>
          </li>
        </ul>
        <t pn="section-7.4-5">
   After the exchange of Hello messages, the CP and UP each perform a
   logical AND of the Sub-Version supported by the CP and the UP and
   separately perform a logical AND of the Capabilities field for
   the CP and the UP.</t>
        <t pn="section-7.4-6">
   If the result of the AND of the Sub-Versions supported is zero, then
   no session can be established, and the connection is torn down. If the
   result of the AND of the Sub-Versions supported is nonzero, then the
   session uses the highest Sub-Version supported by both the CP and UP.</t>
        <t pn="section-7.4-7">
   For example, if one side supports Sub-Versions 1, 3, 4, and 5
   (VerSupported = 0x5C000000) and the other side supports 2, 3, and 4
   (VerSupported = 0x38000000), then 3 and 4 are the Sub-Versions in
   common, and 4 is the highest Sub-Version supported by both sides. So
   Sub-Version 4 is used for the session that has been negotiated.</t>
        <t pn="section-7.4-8">
   The result of the logical AND of the Capabilities bits will show what
   additional capabilities both sides support. If this result is zero,
   there are no such capabilities, so none can be used during the
   session. If this result is nonzero, it shows the additional
   capabilities that can be used during the session. The CP and the UP
   <bcp14>MUST NOT</bcp14> use a capability unless both advertise support.</t>
      </section>
      <section anchor="sect-7.5" numbered="true" toc="include" removeInRFC="false" pn="section-7.5">
        <name slugifiedName="name-keepalive-tlv">Keepalive TLV</name>
        <t pn="section-7.5-1">
   The Keepalive TLV is carried in the Hello message.  It provides
   timing information for this feature.  The format of the value part of 
   the Keepalive TLV is as follows:</t>
        <figure anchor="fig40" align="left" suppress-title="false" pn="figure-40">
          <name slugifiedName="name-keepalive-tlv-2">Keepalive TLV</name>
          <artwork name="" type="" align="left" alt="" pn="section-7.5-2.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Keepalive   | DeadTimer     |            Reserved           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t pn="section-7.5-3">Where:
        </t>
        <ul empty="true" bare="false" spacing="normal" pn="section-7.5-4">
          <li pn="section-7.5-4.1">
            <dl newline="false" spacing="normal" pn="section-7.5-4.1.1">
              <dt pn="section-7.5-4.1.1.1">TLV type:</dt>
              <dd pn="section-7.5-4.1.1.2">102.</dd>
              <dt pn="section-7.5-4.1.1.3">TLV length:</dt>
              <dd pn="section-7.5-4.1.1.4">4 octets.</dd>
              <dt pn="section-7.5-4.1.1.5">Keepalive (8 bits):</dt>
              <dd pn="section-7.5-4.1.1.6">Indicates the maximum interval (in seconds)
between two consecutive S-CUSP messages sent by the sender of the message
containing this TLV as an unsigned integer. The minimum value for the
Keepalive field is 1 second. When set to 0, once the session is established,
no further Keepalive messages are sent to the remote peer. A
<bcp14>RECOMMENDED</bcp14> value for the Keepalive frequency is 30
seconds.</dd>
              <dt pn="section-7.5-4.1.1.7">DeadTimer (8 bits in length):</dt>
              <dd pn="section-7.5-4.1.1.8">Specifies the amount
of time as an unsigned integer number of seconds, after the expiration of
which, the S-CUSP peer can declare the session with the sender of the Hello
message to be down if no S-CUSP message has been received.  The DeadTimer
<bcp14>SHOULD</bcp14> be set to 0 and <bcp14>MUST</bcp14> be ignored if the
Keepalive is set to 0. A <bcp14>RECOMMENDED</bcp14> value for the DeadTimer is
4 times the value of the Keepalive.</dd>
              <dt pn="section-7.5-4.1.1.9">Reserved:</dt>
              <dd pn="section-7.5-4.1.1.10">The Reserved bits <bcp14>MUST</bcp14> be sent as zero and
          ignored on receipt.</dd>
            </dl>
          </li>
        </ul>
      </section>
      <section anchor="sect-7.6" numbered="true" toc="include" removeInRFC="false" pn="section-7.6">
        <name slugifiedName="name-error-information-tlv">Error Information TLV</name>
        <t pn="section-7.6-1">
   The Error Information TLV is a common TLV that can be used in many
   responses (e.g., Update_Response message) and ACK messages (e.g.,
   Addr_Allocation_Ack message).  It is used to convey the
   information about an error in the received S-CUSP message.  The
   format of the value part of the Error Information TLV is as follows:</t>
        <figure anchor="fig41" align="left" suppress-title="false" pn="figure-41">
          <name slugifiedName="name-error-information-tlv-2">Error Information TLV</name>
          <artwork name="" type="" align="left" alt="" pn="section-7.6-2.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Message-Type  |  Reserved             |  TLV-Type             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Error Code                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t pn="section-7.6-3">Where:
        </t>
        <ul empty="true" bare="false" spacing="normal" pn="section-7.6-4">
          <li pn="section-7.6-4.1">
            <dl newline="false" spacing="normal" pn="section-7.6-4.1.1">
              <dt pn="section-7.6-4.1.1.1">TLV type:</dt>
              <dd pn="section-7.6-4.1.1.2">101.</dd>
              <dt pn="section-7.6-4.1.1.3">TLV length:</dt>
              <dd pn="section-7.6-4.1.1.4">8 octets.</dd>
              <dt pn="section-7.6-4.1.1.5">Message-Type (1 byte):</dt>
              <dd pn="section-7.6-4.1.1.6">This parameter is the message type of the
	message containing an error.</dd>
              <dt pn="section-7.6-4.1.1.7">Reserved (1 byte):</dt>
              <dd pn="section-7.6-4.1.1.8">
                <bcp14>MUST</bcp14> be sent as zero and ignored on receipt.</dd>
              <dt pn="section-7.6-4.1.1.9">TLV-Type (2 bytes):</dt>
              <dd pn="section-7.6-4.1.1.10">Indicates which TLV caused the error.</dd>
              <dt pn="section-7.6-4.1.1.11">Error Code:</dt>
              <dd pn="section-7.6-4.1.1.12">4 bytes in length.  Indicate the specific Error Code
	(see <xref target="sect-9.5" format="default" sectionFormat="of" derivedContent="Section 8.5"/>).</dd>
            </dl>
          </li>
        </ul>
      </section>
      <section anchor="sect-7.7" numbered="true" toc="include" removeInRFC="false" pn="section-7.7">
        <name slugifiedName="name-bas-function-tlv">BAS Function TLV</name>
        <t pn="section-7.7-1">
   The BAS Function TLV is used by a CP to control the access mode,
   authentication methods, and other related functions of an interface
   on a UP.</t>
        <t pn="section-7.7-2">The format of the BAS Function TLV value part is as follows:</t>
        <figure anchor="fig42" align="left" suppress-title="false" pn="figure-42">
          <name slugifiedName="name-bas-function-tlv-2">BAS Function TLV</name>
          <artwork name="" type="" align="left" alt="" pn="section-7.7-3.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          If-Index                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Access-Mode  |  Auth-Method4 |  Auth-Method6 |    Reserved   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                             Flags                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         Sub-TLVs (optional)                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t pn="section-7.7-4">Where:
        </t>
        <ul empty="true" bare="false" spacing="normal" pn="section-7.7-5">
          <li pn="section-7.7-5.1">
            <dl newline="false" spacing="normal" pn="section-7.7-5.1.1">
              <dt pn="section-7.7-5.1.1.1">TLV type:</dt>
              <dd pn="section-7.7-5.1.1.2">1.</dd>
              <dt pn="section-7.7-5.1.1.3">TLV length:</dt>
              <dd pn="section-7.7-5.1.1.4">Variable.</dd>
              <dt pn="section-7.7-5.1.1.5">If-Index:</dt>
              <dd pn="section-7.7-5.1.1.6">4 bytes in length, a unique identifier of an interface of
	a BNG.</dd>
              <dt pn="section-7.7-5.1.1.7">Access-Mode:</dt>
              <dd pn="section-7.7-5.1.1.8">1 byte in length. It indicates the access mode of the
	interface.  The defined values are listed in <xref target="sect-9.7" format="default" sectionFormat="of" derivedContent="Section 8.7"/>.</dd>
              <dt pn="section-7.7-5.1.1.9">Auth-Method4:</dt>
              <dd pn="section-7.7-5.1.1.10">1 byte in length. It indicates the authentication on
	this interface for the IPv4 scenario. This field is defined as a
	bitmap.  The bits defined in this document are listed in <xref target="sect-9.8" format="default" sectionFormat="of" derivedContent="Section 8.8"/>. Other bits are reserved and <bcp14>MUST</bcp14> be sent as zero
	and ignored on receipt.</dd>
              <dt pn="section-7.7-5.1.1.11">Auth-Method6:</dt>
              <dd pn="section-7.7-5.1.1.12">1 byte in length. It indicates the authentication on
	this interface for the IPv6 scenario. This field is defined as a
	bitmap.  The bits defined in this document are listed in <xref target="sect-9.8" format="default" sectionFormat="of" derivedContent="Section 8.8"/>. Other bits are reserved and <bcp14>MUST</bcp14> be sent as zero
	and ignored on receipt.</dd>
              <dt pn="section-7.7-5.1.1.13">Sub-TLVs:</dt>
              <dd pn="section-7.7-5.1.1.14">
                <t pn="section-7.7-5.1.1.14.1">The IF-Desc sub-TLV can be carried.</t>
                <dl newline="false" spacing="normal" pn="section-7.7-5.1.1.14.2">
                  <dt pn="section-7.7-5.1.1.14.2.1">If-Desc sub-TLV:</dt>
                  <dd pn="section-7.7-5.1.1.14.2.2">Carries the interface information.</dd>
                </dl>
              </dd>
              <dt pn="section-7.7-5.1.1.15">Flags:</dt>
              <dd pn="section-7.7-5.1.1.16">The Flags field is defined as follows:</dd>
            </dl>
          </li>
        </ul>
        <figure anchor="fig43" align="left" suppress-title="false" pn="figure-43">
          <name slugifiedName="name-interface-flags">Interface Flags</name>
          <artwork name="" type="" align="left" alt="" pn="section-7.7-6.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                MBZ                            |Y|X|P|I|N|A|S|F|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t pn="section-7.7-7">Where:
        </t>
        <ul empty="true" bare="false" spacing="normal" pn="section-7.7-8">
          <li pn="section-7.7-8.1">
            <dl newline="false" spacing="normal" pn="section-7.7-8.1.1">
              <dt pn="section-7.7-8.1.1.1">F (IPv4 Trigger) bit:</dt>
              <dd pn="section-7.7-8.1.1.2">
                <t pn="section-7.7-8.1.1.2.1">Indicates whether IPv4 packets can trigger a
	      subscriber to go online.</t>
                <dl newline="false" spacing="normal" pn="section-7.7-8.1.1.2.2">
                  <dt pn="section-7.7-8.1.1.2.2.1">1:</dt>
                  <dd pn="section-7.7-8.1.1.2.2.2">Enabled.</dd>
                  <dt pn="section-7.7-8.1.1.2.2.3">0:</dt>
                  <dd pn="section-7.7-8.1.1.2.2.4">Disabled.</dd>
                </dl>
              </dd>
              <dt pn="section-7.7-8.1.1.3">S (IPv6 Trigger) bit:</dt>
              <dd pn="section-7.7-8.1.1.4">
                <t pn="section-7.7-8.1.1.4.1">Indicates whether IPv6 packets can trigger a
	subscriber to go online.</t>
                <dl newline="false" spacing="normal" pn="section-7.7-8.1.1.4.2">
                  <dt pn="section-7.7-8.1.1.4.2.1">1:</dt>
                  <dd pn="section-7.7-8.1.1.4.2.2">Enabled.</dd>
                  <dt pn="section-7.7-8.1.1.4.2.3">0:</dt>
                  <dd pn="section-7.7-8.1.1.4.2.4">Disabled.</dd>
                </dl>
              </dd>
              <dt pn="section-7.7-8.1.1.5">A (ARP Trigger) bit:</dt>
              <dd pn="section-7.7-8.1.1.6">
                <t pn="section-7.7-8.1.1.6.1">Indicates whether ARP packets can trigger
	a subscriber to go online.</t>
                <dl newline="false" spacing="normal" pn="section-7.7-8.1.1.6.2">
                  <dt pn="section-7.7-8.1.1.6.2.1">1:</dt>
                  <dd pn="section-7.7-8.1.1.6.2.2">Enabled.</dd>
                  <dt pn="section-7.7-8.1.1.6.2.3">0:</dt>
                  <dd pn="section-7.7-8.1.1.6.2.4">Disabled.</dd>
                </dl>
              </dd>
              <dt pn="section-7.7-8.1.1.7">N (ND Trigger) bit:</dt>
              <dd pn="section-7.7-8.1.1.8">
                <t pn="section-7.7-8.1.1.8.1">Indicates whether ND packets can trigger a
	subscriber to go online.</t>
                <dl newline="false" spacing="normal" pn="section-7.7-8.1.1.8.2">
                  <dt pn="section-7.7-8.1.1.8.2.1">1:</dt>
                  <dd pn="section-7.7-8.1.1.8.2.2">Enabled.</dd>
                  <dt pn="section-7.7-8.1.1.8.2.3">0:</dt>
                  <dd pn="section-7.7-8.1.1.8.2.4">Disabled.</dd>
                </dl>
              </dd>
              <dt pn="section-7.7-8.1.1.9">I (IPoE-Flow-Check):</dt>
              <dd pn="section-7.7-8.1.1.10">
                <t pn="section-7.7-8.1.1.10.1">Used for UP detection.</t>
                <dl newline="false" spacing="normal" pn="section-7.7-8.1.1.10.2">
                  <dt pn="section-7.7-8.1.1.10.2.1">1:</dt>
                  <dd pn="section-7.7-8.1.1.10.2.2">Enable traffic detection.</dd>
                  <dt pn="section-7.7-8.1.1.10.2.3">0:</dt>
                  <dd pn="section-7.7-8.1.1.10.2.4">Disable traffic detection.</dd>
                </dl>
              </dd>
              <dt pn="section-7.7-8.1.1.11">P (PPP-Flow-Check) bit:</dt>
              <dd pn="section-7.7-8.1.1.12">
                <t pn="section-7.7-8.1.1.12.1">Used for UP detection.</t>
                <dl newline="false" spacing="normal" pn="section-7.7-8.1.1.12.2">
                  <dt pn="section-7.7-8.1.1.12.2.1">1:</dt>
                  <dd pn="section-7.7-8.1.1.12.2.2">Enable traffic detection.</dd>
                  <dt pn="section-7.7-8.1.1.12.2.3">0:</dt>
                  <dd pn="section-7.7-8.1.1.12.2.4">Disable traffic detection.</dd>
                </dl>
              </dd>
              <dt pn="section-7.7-8.1.1.13">X (ARP-Proxy) bit:</dt>
              <dd pn="section-7.7-8.1.1.14">
                <t pn="section-7.7-8.1.1.14.1">Indicates whether ARP proxy is enabled on the interface.</t>
                <dl newline="false" spacing="normal" pn="section-7.7-8.1.1.14.2">
                  <dt pn="section-7.7-8.1.1.14.2.1">1:</dt>
                  <dd pn="section-7.7-8.1.1.14.2.2">The interface is enabled with ARP proxy and can
            process ARP requests across different network ports and VLANs.</dd>
                  <dt pn="section-7.7-8.1.1.14.2.3">0:</dt>
                  <dd pn="section-7.7-8.1.1.14.2.4">The ARP proxy is not enabled on the interface and
            only the ARP requests of the same network port and VLAN are processed.</dd>
                </dl>
              </dd>
              <dt pn="section-7.7-8.1.1.15">Y (ND-Proxy) bit:</dt>
              <dd pn="section-7.7-8.1.1.16">
                <t pn="section-7.7-8.1.1.16.1">Indicates whether ND proxy is enabled on the interface.</t>
                <dl newline="false" spacing="normal" pn="section-7.7-8.1.1.16.2">
                  <dt pn="section-7.7-8.1.1.16.2.1">1:</dt>
                  <dd pn="section-7.7-8.1.1.16.2.2">The interface is enabled with ND proxy and can
            process ND requests across different network ports and VLANs.</dd>
                  <dt pn="section-7.7-8.1.1.16.2.3">0:</dt>
                  <dd pn="section-7.7-8.1.1.16.2.4">The ND proxy is not enabled on the interface and
            only the ND requests of the same network port and VLAN are processed.</dd>
                </dl>
              </dd>
              <dt pn="section-7.7-8.1.1.17">MBZ:</dt>
              <dd pn="section-7.7-8.1.1.18">Reserved bits that <bcp14>MUST</bcp14> be sent as
          zero and ignored on receipt.</dd>
            </dl>
          </li>
        </ul>
      </section>
      <section anchor="sect-7.8" numbered="true" toc="include" removeInRFC="false" pn="section-7.8">
        <name slugifiedName="name-routing-tlvs">Routing TLVs</name>
        <t pn="section-7.8-1">
   Typically, after an S-CUSP session is established between a UP and a
   CP, the CP will allocate one or more blocks of IP addresses to the
   UP.  Those IP addresses will be allocated to subscribers who will
   dial-up (as defined in <xref target="sect-4.3.1" format="default" sectionFormat="of" derivedContent="Section 4.3.1"/>) to the UP.  To make sure that
   other nodes within the network learn how to reach those IP addresses,
   the CP needs to install one or more routes that can reach those IP
   addresses on the UP and notify the UP to advertise the routes to the
   network.</t>
        <t pn="section-7.8-2">
   The Routing TLVs are used by a CP to notify a UP of the updates to
   network routing information.  They can be carried in the
   Update_Request message and Sync_Data message.</t>
        <section anchor="sect-7.8.1" numbered="true" toc="include" removeInRFC="false" pn="section-7.8.1">
          <name slugifiedName="name-ipv4-routing-tlv">IPv4 Routing TLV</name>
          <t pn="section-7.8.1-1">
   The IPv4 Routing TLV is used to carry information related to IPv4
   network routing.</t>
          <t pn="section-7.8.1-2">The format of the TLV value part is as below:</t>
          <figure anchor="fig44" align="left" suppress-title="false" pn="figure-44">
            <name slugifiedName="name-ipv4-routing-tlv-2">IPv4 Routing TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.8.1-3.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          User-ID                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Dest-Address                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Next-Hop                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Out-If-Index                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Cost                                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Tag                                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Route-Type             |          Reserved           |A|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                          Sub-TLVs  (optional)                 ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.8.1-4">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.8.1-5">
            <li pn="section-7.8.1-5.1">
              <dl newline="false" spacing="normal" pn="section-7.8.1-5.1.1">
                <dt pn="section-7.8.1-5.1.1.1">TLV type:</dt>
                <dd pn="section-7.8.1-5.1.1.2">7.</dd>
                <dt pn="section-7.8.1-5.1.1.3">TLV length:</dt>
                <dd pn="section-7.8.1-5.1.1.4">Variable.</dd>
                <dt pn="section-7.8.1-5.1.1.5">User-ID:</dt>
                <dd pn="section-7.8.1-5.1.1.6">4 bytes in length.  This field carries the user
	identifier.  It is filled with all Fs when a non-user route is
	delivered to the UP.</dd>
                <dt pn="section-7.8.1-5.1.1.7">Dest-Address (IPv4-Address type):</dt>
                <dd pn="section-7.8.1-5.1.1.8">Identifies the destination
	address.</dd>
                <dt pn="section-7.8.1-5.1.1.9">Next-Hop (IPv4-Address type):</dt>
                <dd pn="section-7.8.1-5.1.1.10">Identifies the next-hop address.</dd>
                <dt pn="section-7.8.1-5.1.1.11">Out-If-Index (4 bytes):</dt>
                <dd pn="section-7.8.1-5.1.1.12">Indicates the interface index.</dd>
                <dt pn="section-7.8.1-5.1.1.13">Cost (4 bytes):</dt>
                <dd pn="section-7.8.1-5.1.1.14">The cost value of the route.</dd>
                <dt pn="section-7.8.1-5.1.1.15">Tag (4 bytes):</dt>
                <dd pn="section-7.8.1-5.1.1.16">The tag value of the route.</dd>
                <dt pn="section-7.8.1-5.1.1.17">Route-Type (2 bytes):</dt>
                <dd pn="section-7.8.1-5.1.1.18">The value of this field
            indicates the route type.  The values defined in this document are
            listed in <xref target="sect-9.9" format="default" sectionFormat="of" derivedContent="Section 8.9"/>.</dd>
                <dt pn="section-7.8.1-5.1.1.19">Advertise-Flag:</dt>
                <dd pn="section-7.8.1-5.1.1.20">
                  <t pn="section-7.8.1-5.1.1.20.1">1 bit shown as "A" in the figure above
            (<xref target="fig44" format="default" sectionFormat="of" derivedContent="Figure 44"/>).  Indicates whether the
            UP should advertise the route.  The following flag values are
            defined:</t>
                  <dl newline="false" spacing="normal" pn="section-7.8.1-5.1.1.20.2">
                    <dt pn="section-7.8.1-5.1.1.20.2.1">0:</dt>
                    <dd pn="section-7.8.1-5.1.1.20.2.2">Not advertised.</dd>
                    <dt pn="section-7.8.1-5.1.1.20.2.3">1:</dt>
                    <dd pn="section-7.8.1-5.1.1.20.2.4">Advertised.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.8.1-5.1.1.21">Sub-TLVs:</dt>
                <dd pn="section-7.8.1-5.1.1.22">
                  <t pn="section-7.8.1-5.1.1.22.1">The VRF-Name and/or If-Desc sub-TLVs
              can be carried.</t>
                  <dl newline="false" spacing="normal" pn="section-7.8.1-5.1.1.22.2">
                    <dt pn="section-7.8.1-5.1.1.22.2.1">VRF-Name sub-TLV:</dt>
                    <dd pn="section-7.8.1-5.1.1.22.2.2">Indicates which VRF the route
                belongs to.</dd>
                    <dt pn="section-7.8.1-5.1.1.22.2.3">If-Desc sub-TLV:</dt>
                    <dd pn="section-7.8.1-5.1.1.22.2.4">Carries the interface information.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.8.1-5.1.1.23">Reserved:</dt>
                <dd pn="section-7.8.1-5.1.1.24">The Reserved field <bcp14>MUST</bcp14> be
            sent as zero and ignored on receipt.</dd>
              </dl>
            </li>
          </ul>
        </section>
        <section anchor="sect-7.8.2" numbered="true" toc="include" removeInRFC="false" pn="section-7.8.2">
          <name slugifiedName="name-ipv6-routing-tlv">IPv6 Routing TLV</name>
          <t pn="section-7.8.2-1">
   The IPv6 Routing TLV is used to carry IPv6 network routing
   information.</t>
          <t pn="section-7.8.2-2">The format of the value part of this TLV is as follows:</t>
          <figure anchor="fig45" align="left" suppress-title="false" pn="figure-45">
            <name slugifiedName="name-ipv6-routing-tlv-2">IPv6 Routing TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.8.2-3.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          User-ID                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                          IPv6 Dest-Address                    ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                          IPv6 Next-Hop                        ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Out-If-Index                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Cost                                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Tag                                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Route-Type             |          Reserved           |A|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                          Sub-TLVs (optional)                  ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.8.2-4">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.8.2-5">
            <li pn="section-7.8.2-5.1">
              <dl newline="false" spacing="normal" pn="section-7.8.2-5.1.1">
                <dt pn="section-7.8.2-5.1.1.1">TLV type:</dt>
                <dd pn="section-7.8.2-5.1.1.2">8.</dd>
                <dt pn="section-7.8.2-5.1.1.3">TLV length:</dt>
                <dd pn="section-7.8.2-5.1.1.4">Variable.</dd>
                <dt pn="section-7.8.2-5.1.1.5">User-ID:</dt>
                <dd pn="section-7.8.2-5.1.1.6">4 bytes in length. This field carries the user identifier.
	This field is filled with all Fs when a non-user route is delivered to
	the UP.</dd>
                <dt pn="section-7.8.2-5.1.1.7">IPv6 Dest-Address (IPv6-Address type):</dt>
                <dd pn="section-7.8.2-5.1.1.8">Identifies the destination
	address.</dd>
                <dt pn="section-7.8.2-5.1.1.9">IPv6 Next-Hop (IPv6-Address type):</dt>
                <dd pn="section-7.8.2-5.1.1.10">Identifies the next-hop
	address.</dd>
                <dt pn="section-7.8.2-5.1.1.11">Out-If-Index (4 bytes):</dt>
                <dd pn="section-7.8.2-5.1.1.12">Indicates the interface index.</dd>
                <dt pn="section-7.8.2-5.1.1.13">Cost (4 bytes):</dt>
                <dd pn="section-7.8.2-5.1.1.14">This is the cost value of the route.</dd>
                <dt pn="section-7.8.2-5.1.1.15">Tag (4 bytes):</dt>
                <dd pn="section-7.8.2-5.1.1.16">The tag value of the route.</dd>
                <dt pn="section-7.8.2-5.1.1.17">Route-Type (2 bytes):</dt>
                <dd pn="section-7.8.2-5.1.1.18">The value of this field
            indicates the route type. The values defined in this document are
            listed in <xref target="sect-9.9" format="default" sectionFormat="of" derivedContent="Section 8.9"/>.</dd>
                <dt pn="section-7.8.2-5.1.1.19">Advertise-Flag:</dt>
                <dd pn="section-7.8.2-5.1.1.20">
                  <t pn="section-7.8.2-5.1.1.20.1">1 bit shown as "A" in the figure
            above (<xref target="fig45" format="default" sectionFormat="of" derivedContent="Figure 45"/>).  Indicates
            whether the UP should advertise the route.  The following flags
            are defined:</t>
                  <dl newline="false" spacing="normal" pn="section-7.8.2-5.1.1.20.2">
                    <dt pn="section-7.8.2-5.1.1.20.2.1">0:</dt>
                    <dd pn="section-7.8.2-5.1.1.20.2.2">Not advertised.</dd>
                    <dt pn="section-7.8.2-5.1.1.20.2.3">1:</dt>
                    <dd pn="section-7.8.2-5.1.1.20.2.4">Advertised.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.8.2-5.1.1.21">Sub-TLVs:</dt>
                <dd pn="section-7.8.2-5.1.1.22">
                  <t pn="section-7.8.2-5.1.1.22.1">The If-Desc and VRF-Name sub-TLVs can be carried.</t>
                  <dl newline="false" spacing="normal" pn="section-7.8.2-5.1.1.22.2">
                    <dt pn="section-7.8.2-5.1.1.22.2.1">VRF-Name sub-TLV:</dt>
                    <dd pn="section-7.8.2-5.1.1.22.2.2">Indicates the VRF to which the subscriber
	belongs.</dd>
                    <dt pn="section-7.8.2-5.1.1.22.2.3">If-Desc sub-TLV:</dt>
                    <dd pn="section-7.8.2-5.1.1.22.2.4">Carries the interface information.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.8.2-5.1.1.23">Reserved:</dt>
                <dd pn="section-7.8.2-5.1.1.24">The Reserved field <bcp14>MUST</bcp14> be sent as zero and ignored on receipt.</dd>
              </dl>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="sect-7.9" numbered="true" toc="include" removeInRFC="false" pn="section-7.9">
        <name slugifiedName="name-subscriber-tlvs">Subscriber TLVs</name>
        <t pn="section-7.9-1">
   The Subscriber TLVs are defined for a CP to send the basic
   information about a user to a UP.</t>
        <section anchor="sect-7.9.1" numbered="true" toc="include" removeInRFC="false" pn="section-7.9.1">
          <name slugifiedName="name-basic-subscriber-tlv">Basic Subscriber TLV</name>
          <t pn="section-7.9.1-1">
   The Basic Subscriber TLV is used to carry the common
   information for all kinds of access subscribers.  It is carried in an
   Update_Request message.</t>
          <t pn="section-7.9.1-2">The format of the Basic Subscriber TLV value part is as follows:</t>
          <figure anchor="fig46" align="left" suppress-title="false" pn="figure-46">
            <name slugifiedName="name-basic-subscriber-tlv-2">Basic Subscriber TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.9.1-3.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          User-ID                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Session-ID                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          User-MAC                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        User-MAC (cont.)       |   Oper-ID     |    Reserved   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Access-Type   |Sub-Access-Type|  Account-Type | Address Family|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               C-VID           |          P-VID                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               Detect-Times    |          Detect-Interval      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                            If-Index                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                            Sub-TLVs (optional)                ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.9.1-4">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.9.1-5">
            <li pn="section-7.9.1-5.1">
              <dl newline="false" spacing="normal" pn="section-7.9.1-5.1.1">
                <dt pn="section-7.9.1-5.1.1.1">TLV type:</dt>
                <dd pn="section-7.9.1-5.1.1.2">2.</dd>
                <dt pn="section-7.9.1-5.1.1.3">TLV length:</dt>
                <dd pn="section-7.9.1-5.1.1.4">Variable.</dd>
                <dt pn="section-7.9.1-5.1.1.5">User-ID (4 bytes):</dt>
                <dd pn="section-7.9.1-5.1.1.6">The identifier of a subscriber.</dd>
                <dt pn="section-7.9.1-5.1.1.7">Session-ID (4 bytes):</dt>
                <dd pn="section-7.9.1-5.1.1.8">Session ID of a PPPoE subscriber.  
           The value zero identifies a non-PPPoE subscriber.</dd>
                <dt pn="section-7.9.1-5.1.1.9">User-MAC (MAC-Addr type):</dt>
                <dd pn="section-7.9.1-5.1.1.10">The MAC address of a subscriber.</dd>
                <dt pn="section-7.9.1-5.1.1.11">Oper-ID (1 byte):</dt>
                <dd pn="section-7.9.1-5.1.1.12">Indicates the ID of an operation performed by a
	   user. This field is carried in the response from the UP.</dd>
                <dt pn="section-7.9.1-5.1.1.13">Reserved (1 byte):</dt>
                <dd pn="section-7.9.1-5.1.1.14">
                  <bcp14>MUST</bcp14> be sent as zero
           and ignored on receipt.</dd>
                <dt pn="section-7.9.1-5.1.1.15">Access-Type (1 byte):</dt>
                <dd pn="section-7.9.1-5.1.1.16">Indicates the type of subscriber
           access. Values defined in this document are listed in <xref target="sect-9.10" format="default" sectionFormat="of" derivedContent="Section 8.10"/>.</dd>
                <dt pn="section-7.9.1-5.1.1.17">Sub-Access-Type (1 byte):</dt>
                <dd pn="section-7.9.1-5.1.1.18">
                  <t pn="section-7.9.1-5.1.1.18.1">Indicates whether PPP termination or PPP relay is used.</t>
                  <dl newline="false" spacing="normal" pn="section-7.9.1-5.1.1.18.2">
                    <dt pn="section-7.9.1-5.1.1.18.2.1">0:</dt>
                    <dd pn="section-7.9.1-5.1.1.18.2.2">Reserved.</dd>
                    <dt pn="section-7.9.1-5.1.1.18.2.3">1:</dt>
                    <dd pn="section-7.9.1-5.1.1.18.2.4">PPP Relay (for LAC).</dd>
                    <dt pn="section-7.9.1-5.1.1.18.2.5">2:</dt>
                    <dd pn="section-7.9.1-5.1.1.18.2.6">PPP termination (for LNS).</dd>
                  </dl>
                </dd>
                <dt pn="section-7.9.1-5.1.1.19">Account-Type (1 byte):</dt>
                <dd pn="section-7.9.1-5.1.1.20">
                  <t pn="section-7.9.1-5.1.1.20.1">Indicates whether traffic statistics are collected independently. </t>
                  <dl newline="false" spacing="normal" pn="section-7.9.1-5.1.1.20.2">
                    <dt pn="section-7.9.1-5.1.1.20.2.1">0:</dt>
                    <dd pn="section-7.9.1-5.1.1.20.2.2">Collects statistics on IPv4 and 
                                 IPv6 traffic of terminals independently.</dd>
                    <dt pn="section-7.9.1-5.1.1.20.2.3">1:</dt>
                    <dd pn="section-7.9.1-5.1.1.20.2.4">Collects statistics on IPv4 and IPv6 
                                 traffic of terminals.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.9.1-5.1.1.21">Address Family (1 byte):</dt>
                <dd pn="section-7.9.1-5.1.1.22">
                  <t pn="section-7.9.1-5.1.1.22.1">The type of IP address.</t>
                  <dl newline="false" spacing="normal" pn="section-7.9.1-5.1.1.22.2">
                    <dt pn="section-7.9.1-5.1.1.22.2.1">1:</dt>
                    <dd pn="section-7.9.1-5.1.1.22.2.2">IPv4.</dd>
                    <dt pn="section-7.9.1-5.1.1.22.2.3">2:</dt>
                    <dd pn="section-7.9.1-5.1.1.22.2.4">IPv6.</dd>
                    <dt pn="section-7.9.1-5.1.1.22.2.5">3:</dt>
                    <dd pn="section-7.9.1-5.1.1.22.2.6">Dual stack.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.9.1-5.1.1.23">C-VID (VLAN-ID):</dt>
                <dd pn="section-7.9.1-5.1.1.24">Indicates the inner VLAN ID.  The value 0
	indicates that the VLAN ID is invalid.  The default value of PRI is 7,
	the value of DEI is 0, and the value of VID is 1-4094.  The PRI value
	can also be obtained by parsing terminal packets.</dd>
                <dt pn="section-7.9.1-5.1.1.25">P-VID (VLAN-ID):</dt>
                <dd pn="section-7.9.1-5.1.1.26">Indicates the outer VLAN ID.  The value 0
	indicates that the VLAN ID is invalid.  The format is the same as that
	for C-VID.</dd>
                <dt pn="section-7.9.1-5.1.1.27">Detect-Times (2 bytes):</dt>
                <dd pn="section-7.9.1-5.1.1.28">Number of detection timeout times.  The
	    value 0 indicates that no detection is performed.</dd>
                <dt pn="section-7.9.1-5.1.1.29">Detect-Interval (2 bytes):</dt>
                <dd pn="section-7.9.1-5.1.1.30">Detection interval in
	    seconds.</dd>
                <dt pn="section-7.9.1-5.1.1.31">If-Index (4 bytes):</dt>
                <dd pn="section-7.9.1-5.1.1.32">Interface index.</dd>
                <dt pn="section-7.9.1-5.1.1.33">Sub-TLVs:</dt>
                <dd pn="section-7.9.1-5.1.1.34">
                  <t pn="section-7.9.1-5.1.1.34.1">The VRF-Name sub-TLV and If-Desc sub-TLV can
              be carried.</t>
                  <dl newline="false" spacing="normal" pn="section-7.9.1-5.1.1.34.2">
                    <dt pn="section-7.9.1-5.1.1.34.2.1">VRF-Name sub-TLV:</dt>
                    <dd pn="section-7.9.1-5.1.1.34.2.2">Indicates the VRF to which the
                     subscriber belongs.</dd>
                    <dt pn="section-7.9.1-5.1.1.34.2.3">If-Desc sub-TLV:</dt>
                    <dd pn="section-7.9.1-5.1.1.34.2.4">Carries the interface information.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.9.1-5.1.1.35">Reserved:</dt>
                <dd pn="section-7.9.1-5.1.1.36">The Reserved field <bcp14>MUST</bcp14> be sent as 
                            zero and ignored on receipt.</dd>
              </dl>
            </li>
          </ul>
        </section>
        <section anchor="sect-7.9.2" numbered="true" toc="include" removeInRFC="false" pn="section-7.9.2">
          <name slugifiedName="name-ppp-subscriber-tlv">PPP Subscriber TLV</name>
          <t pn="section-7.9.2-1">
   The PPP Subscriber TLV is defined to carry PPP information of a user
   from a CP to a UP. It will be carried in an Update_Request message
   when PPPoE or L2TP access is used.</t>
          <t pn="section-7.9.2-2">The format of the TLV value part is as follows:</t>
          <figure anchor="fig47" align="left" suppress-title="false" pn="figure-47">
            <name slugifiedName="name-ppp-subscriber-tlv-2">PPP Subscriber TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.9.2-3.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          User-ID                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        MSS-Value              |        Reserved             |M|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        MRU                    |        Reserved               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Magic-Number                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Peer-Magic-Number                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.9.2-4">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.9.2-5">
            <li pn="section-7.9.2-5.1">
              <dl newline="false" spacing="normal" pn="section-7.9.2-5.1.1">
                <dt pn="section-7.9.2-5.1.1.1">TLV type:</dt>
                <dd pn="section-7.9.2-5.1.1.2">3.</dd>
                <dt pn="section-7.9.2-5.1.1.3">TLV length:</dt>
                <dd pn="section-7.9.2-5.1.1.4">12 octets.</dd>
                <dt pn="section-7.9.2-5.1.1.5">User-ID (4 bytes):</dt>
                <dd pn="section-7.9.2-5.1.1.6">The identifier of a subscriber.</dd>
                <dt pn="section-7.9.2-5.1.1.7">MSS-Value (2 bytes):</dt>
                <dd pn="section-7.9.2-5.1.1.8">Indicates the MSS value (in
            bytes).</dd>
                <dt pn="section-7.9.2-5.1.1.9">MSS-Enable (M) (1 bit):</dt>
                <dd pn="section-7.9.2-5.1.1.10">
                  <t pn="section-7.9.2-5.1.1.10.1">Indicates whether the MSS
            is enabled.</t>
                  <dl newline="false" spacing="normal" pn="section-7.9.2-5.1.1.10.2">
                    <dt pn="section-7.9.2-5.1.1.10.2.1">0:</dt>
                    <dd pn="section-7.9.2-5.1.1.10.2.2">Disabled.</dd>
                    <dt pn="section-7.9.2-5.1.1.10.2.3">1:</dt>
                    <dd pn="section-7.9.2-5.1.1.10.2.4">Enabled.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.9.2-5.1.1.11">MRU (2 bytes):</dt>
                <dd pn="section-7.9.2-5.1.1.12">PPPoE local MRU (in bytes).</dd>
                <dt pn="section-7.9.2-5.1.1.13">Magic-Number (4 bytes):</dt>
                <dd pn="section-7.9.2-5.1.1.14">Local magic number in PPP negotiation
	packets.</dd>
                <dt pn="section-7.9.2-5.1.1.15">Peer-Magic-Number (4 bytes):</dt>
                <dd pn="section-7.9.2-5.1.1.16">Remote peer magic number.</dd>
                <dt pn="section-7.9.2-5.1.1.17">Reserved:</dt>
                <dd pn="section-7.9.2-5.1.1.18">The Reserved fields <bcp14>MUST</bcp14> be
            sent as zero and ignored on receipt.</dd>
              </dl>
            </li>
          </ul>
        </section>
        <section anchor="sect-7.9.3" numbered="true" toc="include" removeInRFC="false" pn="section-7.9.3">
          <name slugifiedName="name-ipv4-subscriber-tlv">IPv4 Subscriber TLV</name>
          <t pn="section-7.9.3-1">
   The IPv4 Subscriber TLV is defined to carry IPv4-related information
   for a BNG user.  It will be carried in an Update_Request message when
   IPv4 IPoE or PPPoE access is used.</t>
          <t pn="section-7.9.3-2">The format of the TLV value part is as follows:</t>
          <figure anchor="fig48" align="left" suppress-title="false" pn="figure-48">
            <name slugifiedName="name-ipv4-subscriber-tlv-2">IPv4 Subscriber TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.9.3-3.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          User-ID                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          User-IPv4                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Gateway-IPv4                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          MTU                  |   Reserved            |U|E|W|P|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                          VRF-Name Sub-TLV                     ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.9.3-4">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.9.3-5">
            <li pn="section-7.9.3-5.1">
              <dl newline="false" spacing="normal" pn="section-7.9.3-5.1.1">
                <dt pn="section-7.9.3-5.1.1.1">TLV type:</dt>
                <dd pn="section-7.9.3-5.1.1.2">4.</dd>
                <dt pn="section-7.9.3-5.1.1.3">TLV length:</dt>
                <dd pn="section-7.9.3-5.1.1.4">Variable.</dd>
                <dt pn="section-7.9.3-5.1.1.5">User-ID (4 bytes):</dt>
                <dd pn="section-7.9.3-5.1.1.6">The identifier of a subscriber.</dd>
                <dt pn="section-7.9.3-5.1.1.7">User-IPv4 (IPv4-Address):</dt>
                <dd pn="section-7.9.3-5.1.1.8">The IPv4 address of the subscriber.</dd>
                <dt pn="section-7.9.3-5.1.1.9">Gateway-IPv4 (IPv4-Address):</dt>
                <dd pn="section-7.9.3-5.1.1.10">The gateway address of the
	subscriber.</dd>
                <dt pn="section-7.9.3-5.1.1.11">Portal-Force (P) (1 bit):</dt>
                <dd pn="section-7.9.3-5.1.1.12">
                  <t pn="section-7.9.3-5.1.1.12.1">Push advertisement.</t>
                  <dl newline="false" spacing="normal" pn="section-7.9.3-5.1.1.12.2">
                    <dt pn="section-7.9.3-5.1.1.12.2.1">0:</dt>
                    <dd pn="section-7.9.3-5.1.1.12.2.2">Off.</dd>
                    <dt pn="section-7.9.3-5.1.1.12.2.3">1:</dt>
                    <dd pn="section-7.9.3-5.1.1.12.2.4">On.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.9.3-5.1.1.13">Web-Force (W) (1 bit):</dt>
                <dd pn="section-7.9.3-5.1.1.14">
                  <t pn="section-7.9.3-5.1.1.14.1">Push IPv4 Web.</t>
                  <dl newline="false" spacing="normal" pn="section-7.9.3-5.1.1.14.2">
                    <dt pn="section-7.9.3-5.1.1.14.2.1">0:</dt>
                    <dd pn="section-7.9.3-5.1.1.14.2.2">Off.</dd>
                    <dt pn="section-7.9.3-5.1.1.14.2.3">1:</dt>
                    <dd pn="section-7.9.3-5.1.1.14.2.4">On.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.9.3-5.1.1.15">Echo-Enable (E) (1 bit):</dt>
                <dd pn="section-7.9.3-5.1.1.16">
                  <t pn="section-7.9.3-5.1.1.16.1">UP returns ARP Req or PPP Echo.</t>
                  <dl newline="false" spacing="normal" pn="section-7.9.3-5.1.1.16.2">
                    <dt pn="section-7.9.3-5.1.1.16.2.1">0:</dt>
                    <dd pn="section-7.9.3-5.1.1.16.2.2">Off.</dd>
                    <dt pn="section-7.9.3-5.1.1.16.2.3">1:</dt>
                    <dd pn="section-7.9.3-5.1.1.16.2.4">On.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.9.3-5.1.1.17">IPv4-URPF (U) (1 bit):</dt>
                <dd pn="section-7.9.3-5.1.1.18">
                  <t pn="section-7.9.3-5.1.1.18.1">User Unicast Reverse Path Forwarding (URPF)
	flag.</t>
                  <dl newline="false" spacing="normal" pn="section-7.9.3-5.1.1.18.2">
                    <dt pn="section-7.9.3-5.1.1.18.2.1">0:</dt>
                    <dd pn="section-7.9.3-5.1.1.18.2.2">Off.</dd>
                    <dt pn="section-7.9.3-5.1.1.18.2.3">1:</dt>
                    <dd pn="section-7.9.3-5.1.1.18.2.4">On.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.9.3-5.1.1.19">MTU (2 bytes):</dt>
                <dd pn="section-7.9.3-5.1.1.20">MTU value.  The default value is 1500.</dd>
                <dt pn="section-7.9.3-5.1.1.21">VRF-Name Sub-TLV:</dt>
                <dd pn="section-7.9.3-5.1.1.22">Indicates the subscriber belongs to which VRF.</dd>
                <dt pn="section-7.9.3-5.1.1.23">Reserved:</dt>
                <dd pn="section-7.9.3-5.1.1.24">The Reserved field <bcp14>MUST</bcp14> be sent as zero and ignored on receipt.</dd>
              </dl>
            </li>
          </ul>
        </section>
        <section anchor="sect-7.9.4" numbered="true" toc="include" removeInRFC="false" pn="section-7.9.4">
          <name slugifiedName="name-ipv6-subscriber-tlv">IPv6 Subscriber TLV</name>
          <t pn="section-7.9.4-1">
   The IPv6 Subscriber TLV is defined to carry IPv6-related information
   for a BNG user.  It will be carried in an Update_Request message when
   IPv6 IPoE or PPPoE access is used.</t>
          <t pn="section-7.9.4-2">The format of the TLV value part is as follows:</t>
          <figure anchor="fig49" align="left" suppress-title="false" pn="figure-49">
            <name slugifiedName="name-ipv6-subscriber-tlv-2">IPv6 Subscriber TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.9.4-3.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          User-ID                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~           User PD-Address (IPv6 Address List Sub-TLV)         ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~        Gateway ND-Address (IPv6 Address List Sub-TLV)         ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          User Link-Local-Address              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          IPv6 Interface ID                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          IPv6 Interface ID (cont.)            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          MTU                  |   Reserved            |U|E|W|P|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                    VRF Name Sub-TLV (optional)                ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.9.4-4">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.9.4-5">
            <li pn="section-7.9.4-5.1">
              <dl newline="false" spacing="normal" pn="section-7.9.4-5.1.1">
                <dt pn="section-7.9.4-5.1.1.1">TLV type:</dt>
                <dd pn="section-7.9.4-5.1.1.2">5.</dd>
                <dt pn="section-7.9.4-5.1.1.3">TLV length:</dt>
                <dd pn="section-7.9.4-5.1.1.4">Variable.</dd>
                <dt pn="section-7.9.4-5.1.1.5">User-ID (4 bytes):</dt>
                <dd pn="section-7.9.4-5.1.1.6">The identifier of a subscriber.</dd>
                <dt pn="section-7.9.4-5.1.1.7">User PD-Addresses (IPv6 Address List):</dt>
                <dd pn="section-7.9.4-5.1.1.8">Carries a list of Prefix
	Delegation (PD) addresses of the subscriber.</dd>
                <dt pn="section-7.9.4-5.1.1.9">User ND-Addresses (IPv6 Address List):</dt>
                <dd pn="section-7.9.4-5.1.1.10">Carries a list of Neighbor
	Discovery (ND) addresses of the subscriber.</dd>
                <dt pn="section-7.9.4-5.1.1.11">User Link-Local-Address (IPv6-Address):</dt>
                <dd pn="section-7.9.4-5.1.1.12">The link-local address of
	the subscriber.</dd>
                <dt pn="section-7.9.4-5.1.1.13">IPv6 Interface ID (8 bytes):</dt>
                <dd pn="section-7.9.4-5.1.1.14">The identifier of an IPv6
	interface.</dd>
                <dt pn="section-7.9.4-5.1.1.15">Portal-Force 1 bit (P):</dt>
                <dd pn="section-7.9.4-5.1.1.16">
                  <t pn="section-7.9.4-5.1.1.16.1">Push advertisement.</t>
                  <dl newline="false" spacing="normal" pn="section-7.9.4-5.1.1.16.2">
                    <dt pn="section-7.9.4-5.1.1.16.2.1">0:</dt>
                    <dd pn="section-7.9.4-5.1.1.16.2.2">Off.</dd>
                    <dt pn="section-7.9.4-5.1.1.16.2.3">1:</dt>
                    <dd pn="section-7.9.4-5.1.1.16.2.4">On.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.9.4-5.1.1.17">Web-Force 1 bit (W):</dt>
                <dd pn="section-7.9.4-5.1.1.18">
                  <t pn="section-7.9.4-5.1.1.18.1">Push IPv6 Web.</t>
                  <dl newline="false" spacing="normal" pn="section-7.9.4-5.1.1.18.2">
                    <dt pn="section-7.9.4-5.1.1.18.2.1">0:</dt>
                    <dd pn="section-7.9.4-5.1.1.18.2.2">Off.</dd>
                    <dt pn="section-7.9.4-5.1.1.18.2.3">1:</dt>
                    <dd pn="section-7.9.4-5.1.1.18.2.4">On.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.9.4-5.1.1.19">Echo-Enable 1 bit (E):</dt>
                <dd pn="section-7.9.4-5.1.1.20">
                  <t pn="section-7.9.4-5.1.1.20.1">The UP returns ARP Req or
            PPP Echo.</t>
                  <dl newline="false" spacing="normal" pn="section-7.9.4-5.1.1.20.2">
                    <dt pn="section-7.9.4-5.1.1.20.2.1">0:</dt>
                    <dd pn="section-7.9.4-5.1.1.20.2.2">Off.</dd>
                    <dt pn="section-7.9.4-5.1.1.20.2.3">1:</dt>
                    <dd pn="section-7.9.4-5.1.1.20.2.4">On.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.9.4-5.1.1.21">IPv6-URPF 1 bit (U):</dt>
                <dd pn="section-7.9.4-5.1.1.22">
                  <t pn="section-7.9.4-5.1.1.22.1">User Reverse Path Forwarding
            (URPF) flag.</t>
                  <dl newline="false" spacing="normal" pn="section-7.9.4-5.1.1.22.2">
                    <dt pn="section-7.9.4-5.1.1.22.2.1">0:</dt>
                    <dd pn="section-7.9.4-5.1.1.22.2.2">Off.</dd>
                    <dt pn="section-7.9.4-5.1.1.22.2.3">1:</dt>
                    <dd pn="section-7.9.4-5.1.1.22.2.4">On.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.9.4-5.1.1.23">MTU (2 bytes):</dt>
                <dd pn="section-7.9.4-5.1.1.24">The MTU value. The default value is 1500.</dd>
                <dt pn="section-7.9.4-5.1.1.25">VRF-Name Sub-TLV:</dt>
                <dd pn="section-7.9.4-5.1.1.26">Indicates the VRF to which the subscriber
	belongs.</dd>
                <dt pn="section-7.9.4-5.1.1.27">Reserved:</dt>
                <dd pn="section-7.9.4-5.1.1.28">The Reserved field <bcp14>MUST</bcp14> be sent as zero and ignored on
	receipt.</dd>
              </dl>
            </li>
          </ul>
        </section>
        <section anchor="sect-7.9.5" numbered="true" toc="include" removeInRFC="false" pn="section-7.9.5">
          <name slugifiedName="name-ipv4-static-subscriber-dete">IPv4 Static Subscriber Detect TLV</name>
          <t pn="section-7.9.5-1">
   The IPv4 Static Subscriber Detect TLV is defined to carry IPv4-related 
   information for a static access subscriber.  It will be
   carried in an Update_Request message when IPv4 static access on a UP
   needs to be enabled.</t>
          <t pn="section-7.9.5-2">The format of the TLV value part is as follows:</t>
          <figure anchor="fig50" align="left" suppress-title="false" pn="figure-50">
            <name slugifiedName="name-ipv4-static-subscriber-tlv">IPv4 Static Subscriber TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.9.5-3.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          If-Index                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           C-VID               |           P-VID               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          User Address                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Gateway Address                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          User-MAC                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        User-MAC (cont.)       |           Reserved            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                       Sub-TLVs (optional)                     ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.9.5-4">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.9.5-5">
            <li pn="section-7.9.5-5.1">
              <dl newline="false" spacing="normal" pn="section-7.9.5-5.1.1">
                <dt pn="section-7.9.5-5.1.1.1">TLV type:</dt>
                <dd pn="section-7.9.5-5.1.1.2">9.</dd>
                <dt pn="section-7.9.5-5.1.1.3">TLV length:</dt>
                <dd pn="section-7.9.5-5.1.1.4">Variable.</dd>
                <dt pn="section-7.9.5-5.1.1.5">If-Index (4 bytes):</dt>
                <dd pn="section-7.9.5-5.1.1.6">The interface index of the interface from which
	the subscriber will dial-up.</dd>
                <dt pn="section-7.9.5-5.1.1.7">C-VID (VLAN-ID):</dt>
                <dd pn="section-7.9.5-5.1.1.8">Indicates the inner VLAN ID.  The value 0
	indicates that the VLAN ID is invalid.  A valid value is 1-4094.</dd>
                <dt pn="section-7.9.5-5.1.1.9">P-VID (VLAN-ID):</dt>
                <dd pn="section-7.9.5-5.1.1.10">Indicates the outer VLAN ID.  The value 0
	indicates that the VLAN ID is invalid.  The format is the same as that
	of the C-VID.  A valid value is 1-4094. </dd>
                <dt pn="section-7.9.5-5.1.1.11">User Address (IPv4-Addr):</dt>
                <dd pn="section-7.9.5-5.1.1.12">The user's IPv4 address.</dd>
                <dt pn="section-7.9.5-5.1.1.13">Gateway Address (IPv4-Addr):</dt>
                <dd pn="section-7.9.5-5.1.1.14">The gateway's IPv4 address.</dd>
                <dt pn="section-7.9.5-5.1.1.15">User-MAC (MAC-Addr type):</dt>
                <dd pn="section-7.9.5-5.1.1.16">The MAC address of the subscriber.</dd>
                <dt pn="section-7.9.5-5.1.1.17">Sub-TLVs:</dt>
                <dd pn="section-7.9.5-5.1.1.18">
                  <t pn="section-7.9.5-5.1.1.18.1">The VRF-Name and If-Desc sub-TLVs may be
	    carried.</t>
                  <dl newline="false" spacing="normal" pn="section-7.9.5-5.1.1.18.2">
                    <dt pn="section-7.9.5-5.1.1.18.2.1">VRF-Name sub-TLV:</dt>
                    <dd pn="section-7.9.5-5.1.1.18.2.2">Indicates the VRF to which the subscriber
	belongs.</dd>
                    <dt pn="section-7.9.5-5.1.1.18.2.3">If-Desc sub-TLV:</dt>
                    <dd pn="section-7.9.5-5.1.1.18.2.4">Carries the interface information.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.9.5-5.1.1.19">Reserved:</dt>
                <dd pn="section-7.9.5-5.1.1.20">The Reserved field <bcp14>MUST</bcp14> be
            sent as zero and ignored on receipt.</dd>
              </dl>
            </li>
          </ul>
        </section>
        <section anchor="sect-7.9.6" numbered="true" toc="include" removeInRFC="false" pn="section-7.9.6">
          <name slugifiedName="name-ipv6-static-subscriber-dete">IPv6 Static Subscriber Detect TLV</name>
          <t pn="section-7.9.6-1">
   The IPv6 Static Subscriber Detect TLV is defined to carry IPv6-related 
   information for a static access subscriber.  It will be
   carried in an Update_Request message when needed to enable IPv6
   static subscriber detection on a UP.</t>
          <t pn="section-7.9.6-2">The format of the TLV value part is as follows:</t>
          <figure anchor="fig51" align="left" suppress-title="false" pn="figure-51">
            <name slugifiedName="name-ipv6-static-subscriber-detec">IPv6 Static Subscriber Detect TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.9.6-3.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          If-Index                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           C-VID               |           P-VID               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                          User Address                         ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                          Gateway Address                      ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          User-MAC                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        User-MAC (cont.)       |           Reserved            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                        Sub-TLVs (optional)                     ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.9.6-4">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.9.6-5">
            <li pn="section-7.9.6-5.1">
              <dl newline="false" spacing="normal" pn="section-7.9.6-5.1.1">
                <dt pn="section-7.9.6-5.1.1.1">TLV type:</dt>
                <dd pn="section-7.9.6-5.1.1.2">10.</dd>
                <dt pn="section-7.9.6-5.1.1.3">TLV length:</dt>
                <dd pn="section-7.9.6-5.1.1.4">Variable.</dd>
                <dt pn="section-7.9.6-5.1.1.5">If-Index (4 bytes):</dt>
                <dd pn="section-7.9.6-5.1.1.6">The interface index of the interface from which
	the subscriber will dial-up.</dd>
                <dt pn="section-7.9.6-5.1.1.7">C-VID (VLAN-ID):</dt>
                <dd pn="section-7.9.6-5.1.1.8">Indicates the inner VLAN ID.  The value 0
	indicates that the VLAN ID is invalid.  A valid value is 1-4094.</dd>
                <dt pn="section-7.9.6-5.1.1.9">P-VID (VLAN-ID):</dt>
                <dd pn="section-7.9.6-5.1.1.10">Indicates the outer VLAN ID.  The value 0
	indicates that the VLAN ID is invalid.  The format is the same as that
	the of C-VID.  A valid value is 1-4094.</dd>
                <dt pn="section-7.9.6-5.1.1.11">User Address (IPv6-Address type):</dt>
                <dd pn="section-7.9.6-5.1.1.12">The subscriber's IPv6 address.</dd>
                <dt pn="section-7.9.6-5.1.1.13">Gateway Address (IPv6-Address type):</dt>
                <dd pn="section-7.9.6-5.1.1.14">The gateway's
            IPv6 Address.</dd>
                <dt pn="section-7.9.6-5.1.1.15">User-MAC (MAC-Addr type):</dt>
                <dd pn="section-7.9.6-5.1.1.16">The MAC
            address of the subscriber.</dd>
                <dt pn="section-7.9.6-5.1.1.17">Sub-TLVs:</dt>
                <dd pn="section-7.9.6-5.1.1.18">
                  <t pn="section-7.9.6-5.1.1.18.1">VRF-Name and If-Desc sub-TLVs may be carried</t>
                  <dl newline="false" spacing="normal" pn="section-7.9.6-5.1.1.18.2">
                    <dt pn="section-7.9.6-5.1.1.18.2.1">VRF-Name sub-TLV:</dt>
                    <dd pn="section-7.9.6-5.1.1.18.2.2">Indicates the VRF to which the
                subscriber belongs.</dd>
                    <dt pn="section-7.9.6-5.1.1.18.2.3">If-Desc sub-TLV:</dt>
                    <dd pn="section-7.9.6-5.1.1.18.2.4">Carries the interface information.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.9.6-5.1.1.19">Reserved:</dt>
                <dd pn="section-7.9.6-5.1.1.20">The Reserved field <bcp14>MUST</bcp14> be
            sent as zero and ignored on receipt.</dd>
              </dl>
            </li>
          </ul>
        </section>
        <section anchor="sect-7.9.7" numbered="true" toc="include" removeInRFC="false" pn="section-7.9.7">
          <name slugifiedName="name-l2tp-lac-subscriber-tlv">L2TP-LAC Subscriber TLV</name>
          <t pn="section-7.9.7-1">
   The L2TP-LAC Subscriber TLV is defined to carry the related
   information for an L2TP LAC access subscriber.  It will be carried in
   an Update_Request message when L2TP LAC access is used.</t>
          <t pn="section-7.9.7-2">The format of the TLV value part is as follows:</t>
          <figure anchor="fig52" align="left" suppress-title="false" pn="figure-52">
            <name slugifiedName="name-l2tp-lac-subscriber-tlv-2">L2TP-LAC Subscriber TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.9.7-3.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          User-ID                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Local-Tunnel-ID          |     Local-Session-ID          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Remote-Tunnel-ID         |     Remote-Session-ID         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.9.7-4">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.9.7-5">
            <li pn="section-7.9.7-5.1">
              <dl newline="false" spacing="normal" pn="section-7.9.7-5.1.1">
                <dt pn="section-7.9.7-5.1.1.1">TLV type:</dt>
                <dd pn="section-7.9.7-5.1.1.2">11.</dd>
                <dt pn="section-7.9.7-5.1.1.3">TLV length:</dt>
                <dd pn="section-7.9.7-5.1.1.4">12 octets.</dd>
                <dt pn="section-7.9.7-5.1.1.5">User-ID (4 bytes):</dt>
                <dd pn="section-7.9.7-5.1.1.6">The identifier of a user/subscriber.</dd>
                <dt pn="section-7.9.7-5.1.1.7">Local-Tunnel-ID (2 bytes):</dt>
                <dd pn="section-7.9.7-5.1.1.8">The local ID of the L2TP tunnel.</dd>
                <dt pn="section-7.9.7-5.1.1.9">Local-Session-ID (2 bytes):</dt>
                <dd pn="section-7.9.7-5.1.1.10">The local session ID with the L2TP
	tunnel.</dd>
                <dt pn="section-7.9.7-5.1.1.11">Remote-Tunnel-ID (2 bytes):</dt>
                <dd pn="section-7.9.7-5.1.1.12">The identifier of the L2TP tunnel at
	the remote endpoint.</dd>
                <dt pn="section-7.9.7-5.1.1.13">Remote-Session-ID (2 bytes):</dt>
                <dd pn="section-7.9.7-5.1.1.14">The session ID of the L2TP tunnel at
	the remote endpoint.</dd>
              </dl>
            </li>
          </ul>
        </section>
        <section anchor="sect-7.9.8" numbered="true" toc="include" removeInRFC="false" pn="section-7.9.8">
          <name slugifiedName="name-l2tp-lns-subscriber-tlv">L2TP-LNS Subscriber TLV</name>
          <t pn="section-7.9.8-1">
   The L2TP-LNS Subscriber TLV is defined to carry the related
   information for a L2TP LNS access subscriber.  It will be carried in
   an Update_Request message when L2TP LNS access is used.</t>
          <t pn="section-7.9.8-2">The format of the TLV value part is as follows:</t>
          <figure anchor="fig53" align="left" suppress-title="false" pn="figure-53">
            <name slugifiedName="name-l2tp-lns-subscriber-tlv-2">L2TP-LNS Subscriber TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.9.8-3.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          User-ID                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Local-Tunnel-ID          |     Local-Session-ID          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Remote-Tunnel-ID         |     Remote-Session-ID         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.9.8-4">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.9.8-5">
            <li pn="section-7.9.8-5.1">
              <dl newline="false" spacing="normal" pn="section-7.9.8-5.1.1">
                <dt pn="section-7.9.8-5.1.1.1">TLV type:</dt>
                <dd pn="section-7.9.8-5.1.1.2">12.</dd>
                <dt pn="section-7.9.8-5.1.1.3">TLV length:</dt>
                <dd pn="section-7.9.8-5.1.1.4">12 octets.</dd>
                <dt pn="section-7.9.8-5.1.1.5">User-ID (4 bytes):</dt>
                <dd pn="section-7.9.8-5.1.1.6">The identifier of a user/subscriber.</dd>
                <dt pn="section-7.9.8-5.1.1.7">Local-Tunnel-ID (2 bytes):</dt>
                <dd pn="section-7.9.8-5.1.1.8">The local ID of the L2TP tunnel.</dd>
                <dt pn="section-7.9.8-5.1.1.9">Local-Session-ID (2 bytes):</dt>
                <dd pn="section-7.9.8-5.1.1.10">The local session ID with the L2TP tunnel.</dd>
                <dt pn="section-7.9.8-5.1.1.11">Remote-Tunnel-ID (2 bytes):</dt>
                <dd pn="section-7.9.8-5.1.1.12">The identifier of the L2TP tunnel at
	the remote endpoint.</dd>
                <dt pn="section-7.9.8-5.1.1.13">Remote-Session-ID (2 bytes):</dt>
                <dd pn="section-7.9.8-5.1.1.14">The session ID of the L2TP tunnel at
	the remote endpoint.</dd>
              </dl>
            </li>
          </ul>
        </section>
        <section anchor="sect-7.9.9" numbered="true" toc="include" removeInRFC="false" pn="section-7.9.9">
          <name slugifiedName="name-l2tp-lac-tunnel-tlv">L2TP-LAC Tunnel TLV</name>
          <t pn="section-7.9.9-1">
   The L2TP-LAC Tunnel TLV is defined to carry information related to the L2TP LAC tunnel.  
   It will be carried in the Update_Request
   message when L2TP LAC access is used.</t>
          <t pn="section-7.9.9-2">The format of the TLV value part is as follows:</t>
          <figure anchor="fig54" align="left" suppress-title="false" pn="figure-54">
            <name slugifiedName="name-l2tp-lac-tunnel-tlv-2">L2TP-LAC Tunnel TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.9.9-3.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |       Local-Tunnel-ID         |       Remote-Tunnel-ID        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Source-Port         |           Dest-Port           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                          Source-IP                            ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                          Dest-IP                              ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                          VRF-Name Sub-TLV                     ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.9.9-4">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.9.9-5">
            <li pn="section-7.9.9-5.1">
              <dl newline="false" spacing="normal" pn="section-7.9.9-5.1.1">
                <dt pn="section-7.9.9-5.1.1.1">TLV type:</dt>
                <dd pn="section-7.9.9-5.1.1.2">13.</dd>
                <dt pn="section-7.9.9-5.1.1.3">TLV length:</dt>
                <dd pn="section-7.9.9-5.1.1.4">Variable.</dd>
                <dt pn="section-7.9.9-5.1.1.5">Local-Tunnel-ID (2 bytes):</dt>
                <dd pn="section-7.9.9-5.1.1.6">The local ID of the L2TP tunnel.</dd>
                <dt pn="section-7.9.9-5.1.1.7">Remote-Tunnel-ID (2 bytes):</dt>
                <dd pn="section-7.9.9-5.1.1.8">The remote ID of the L2TP tunnel.</dd>
                <dt pn="section-7.9.9-5.1.1.9">Source-Port (2 bytes):</dt>
                <dd pn="section-7.9.9-5.1.1.10">The source UDP port number of an L2TP subscriber.</dd>
                <dt pn="section-7.9.9-5.1.1.11">Dest-Port (2 bytes):</dt>
                <dd pn="section-7.9.9-5.1.1.12">The destination UDP port number of an L2TP
	subscriber.</dd>
                <dt pn="section-7.9.9-5.1.1.13">Source-IP (IPv4/v6):</dt>
                <dd pn="section-7.9.9-5.1.1.14">The source IP address of the tunnel.</dd>
                <dt pn="section-7.9.9-5.1.1.15">Dest-IP (IPv4/v6):</dt>
                <dd pn="section-7.9.9-5.1.1.16">The destination IP address of the tunnel.</dd>
                <dt pn="section-7.9.9-5.1.1.17">VRF-Name Sub-TLV:</dt>
                <dd pn="section-7.9.9-5.1.1.18">The VRF name to which the L2TP subscriber tunnel
	belongs.</dd>
              </dl>
            </li>
          </ul>
        </section>
        <section anchor="sect-7.9.10" numbered="true" toc="include" removeInRFC="false" pn="section-7.9.10">
          <name slugifiedName="name-l2tp-lns-tunnel-tlv">L2TP-LNS Tunnel TLV</name>
          <t pn="section-7.9.10-1">
   The L2TP-LNS Tunnel TLV is defined to carry information related to the L2TP LNS tunnel. 
   It will be carried in the Update_Request
   message when L2TP LNS access is used.</t>
          <t pn="section-7.9.10-2">The format of the TLV value part is as follows:</t>
          <figure anchor="fig55" align="left" suppress-title="false" pn="figure-55">
            <name slugifiedName="name-l2tp-lns-tunnel-tlv-2">L2TP-LNS Tunnel TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.9.10-3.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Local-Tunnel-ID        |       Remote-Tunnel-ID        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Source-Port            |         Dest-Port             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                       Source-IP                               ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                       Dest-IP                                 ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                       VRF-Name Sub-TLV                        ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.9.10-4">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.9.10-5">
            <li pn="section-7.9.10-5.1">
              <dl newline="false" spacing="normal" pn="section-7.9.10-5.1.1">
                <dt pn="section-7.9.10-5.1.1.1">TLV type:</dt>
                <dd pn="section-7.9.10-5.1.1.2">14.</dd>
                <dt pn="section-7.9.10-5.1.1.3">TLV length:</dt>
                <dd pn="section-7.9.10-5.1.1.4">Variable.</dd>
                <dt pn="section-7.9.10-5.1.1.5">Local-Tunnel-ID (2 bytes):</dt>
                <dd pn="section-7.9.10-5.1.1.6">The local ID of the L2TP tunnel.</dd>
                <dt pn="section-7.9.10-5.1.1.7">Remote-Tunnel-ID (2 bytes):</dt>
                <dd pn="section-7.9.10-5.1.1.8">The remote ID of the L2TP tunnel.</dd>
                <dt pn="section-7.9.10-5.1.1.9">Source-Port (2 bytes):</dt>
                <dd pn="section-7.9.10-5.1.1.10">The source UDP port number of an L2TP subscriber.</dd>
                <dt pn="section-7.9.10-5.1.1.11">Dest-Port (2 bytes):</dt>
                <dd pn="section-7.9.10-5.1.1.12">The destination UDP port number of an L2TP subscriber.</dd>
                <dt pn="section-7.9.10-5.1.1.13">Source-IP (IPv4/v6):</dt>
                <dd pn="section-7.9.10-5.1.1.14">The source IP address of the tunnel.</dd>
                <dt pn="section-7.9.10-5.1.1.15">Dest-IP (IPv4/v6):</dt>
                <dd pn="section-7.9.10-5.1.1.16">The destination IP address of the tunnel.</dd>
                <dt pn="section-7.9.10-5.1.1.17">VRF-Name Sub-TLV:</dt>
                <dd pn="section-7.9.10-5.1.1.18">The VRF name to which the L2TP subscriber tunnel
	belongs.</dd>
              </dl>
            </li>
          </ul>
        </section>
        <section anchor="sect-7.9.11" numbered="true" toc="include" removeInRFC="false" pn="section-7.9.11">
          <name slugifiedName="name-update-response-tlv">Update Response TLV</name>
          <t pn="section-7.9.11-1">
   The Update Response TLV is used to return the operation result of an
   update request.  It is carried in the Update_Response message as a
   response to the Update_Request message.</t>
          <t pn="section-7.9.11-2">The format of the value part of the Update Response TLV 
   is as follows:</t>
          <figure anchor="fig56" align="left" suppress-title="false" pn="figure-56">
            <name slugifiedName="name-update-response-tlv-2">Update Response TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.9.11-3.1">
     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          User-ID                              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | User-Trans-ID |   Oper-Code   |   Oper-Result |  Reserved     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                         Error-Code                            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.9.11-4">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.9.11-5">
            <li pn="section-7.9.11-5.1">
              <dl newline="false" spacing="normal" pn="section-7.9.11-5.1.1">
                <dt pn="section-7.9.11-5.1.1.1">TLV type:</dt>
                <dd pn="section-7.9.11-5.1.1.2">302.</dd>
                <dt pn="section-7.9.11-5.1.1.3">TLV length:</dt>
                <dd pn="section-7.9.11-5.1.1.4">12.</dd>
                <dt pn="section-7.9.11-5.1.1.5">User-ID (4 bytes):</dt>
                <dd pn="section-7.9.11-5.1.1.6">A unique identifier of a user/subscriber.</dd>
                <dt pn="section-7.9.11-5.1.1.7">User-Trans-ID (1 byte):</dt>
                <dd pn="section-7.9.11-5.1.1.8">In the case of dual-stack access or when
	modifying a session, User-Trans-ID is used to identify a user
	operation transaction. It is used by the CP to correlate a response to
	a specific request.</dd>
                <dt pn="section-7.9.11-5.1.1.9">Oper-Code (1 byte):</dt>
                <dd pn="section-7.9.11-5.1.1.10">
                  <t pn="section-7.9.11-5.1.1.10.1">Operation code.</t>
                  <dl newline="false" spacing="normal" pn="section-7.9.11-5.1.1.10.2">
                    <dt pn="section-7.9.11-5.1.1.10.2.1">1:</dt>
                    <dd pn="section-7.9.11-5.1.1.10.2.2">Update.</dd>
                    <dt pn="section-7.9.11-5.1.1.10.2.3">2:</dt>
                    <dd pn="section-7.9.11-5.1.1.10.2.4">Delete.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.9.11-5.1.1.11">Oper-Result (1 byte):</dt>
                <dd pn="section-7.9.11-5.1.1.12">
                  <t pn="section-7.9.11-5.1.1.12.1">Operation Result.</t>
                  <dl newline="false" spacing="normal" pn="section-7.9.11-5.1.1.12.2">
                    <dt pn="section-7.9.11-5.1.1.12.2.1">0:</dt>
                    <dd pn="section-7.9.11-5.1.1.12.2.2">Success.</dd>
                    <dt pn="section-7.9.11-5.1.1.12.2.3">Others:</dt>
                    <dd pn="section-7.9.11-5.1.1.12.2.4">Failure.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.9.11-5.1.1.13">Error-Code (4 bytes):</dt>
                <dd pn="section-7.9.11-5.1.1.14">Operation failure cause code.  For details,
	see <xref target="sect-9.5" format="default" sectionFormat="of" derivedContent="Section 8.5"/>.</dd>
                <dt pn="section-7.9.11-5.1.1.15">Reserved:</dt>
                <dd pn="section-7.9.11-5.1.1.16">The Reserved field <bcp14>MUST</bcp14> be sent as zero and ignored on receipt.</dd>
              </dl>
            </li>
          </ul>
        </section>
        <section anchor="sect-7.9.12" numbered="true" toc="include" removeInRFC="false" pn="section-7.9.12">
          <name slugifiedName="name-subscriber-policy-tlv">Subscriber Policy TLV</name>
          <t pn="section-7.9.12-1">
   The Subscriber Policy TLV is used to carry the policies that will be
   applied to a subscriber.  It is carried in the Update_Request
   message.</t>
          <t pn="section-7.9.12-2">The format of the TLV value part is as follows:</t>
          <figure anchor="fig57" align="left" suppress-title="false" pn="figure-57">
            <name slugifiedName="name-subscriber-policy-tlv-2">Subscriber Policy TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.9.12-3.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          User-ID                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   I-Priority  |   E-Priority  |   Reserved                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                          Sub-TLVs                             ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.9.12-4">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.9.12-5">
            <li pn="section-7.9.12-5.1">
              <dl newline="false" spacing="normal" pn="section-7.9.12-5.1.1">
                <dt pn="section-7.9.12-5.1.1.1">TLV type:</dt>
                <dd pn="section-7.9.12-5.1.1.2">6.</dd>
                <dt pn="section-7.9.12-5.1.1.3">TLV length:</dt>
                <dd pn="section-7.9.12-5.1.1.4">Variable.</dd>
                <dt pn="section-7.9.12-5.1.1.5">User-ID (4 bytes):</dt>
                <dd pn="section-7.9.12-5.1.1.6">The identifier of a user/subscriber.</dd>
                <dt pn="section-7.9.12-5.1.1.7">Ingress-Priority (1 byte):</dt>
                <dd pn="section-7.9.12-5.1.1.8">Indicates the upstream priority. The
	value range is 0~7.</dd>
                <dt pn="section-7.9.12-5.1.1.9">Egress-Priority (1 byte):</dt>
                <dd pn="section-7.9.12-5.1.1.10">Indicates the downstream priority. The
	value range is 0~7.</dd>
                <dt pn="section-7.9.12-5.1.1.11">Sub-TLVs:</dt>
                <dd pn="section-7.9.12-5.1.1.12">
                  <t pn="section-7.9.12-5.1.1.12.1">The sub-TLVs that are present can occur
            in any order.</t>
                  <dl newline="false" spacing="normal" pn="section-7.9.12-5.1.1.12.2">
                    <dt pn="section-7.9.12-5.1.1.12.2.1">Ingress-CAR sub-TLV:</dt>
                    <dd pn="section-7.9.12-5.1.1.12.2.2">Upstream CAR.</dd>
                    <dt pn="section-7.9.12-5.1.1.12.2.3">Egress-CAR sub-TLV:</dt>
                    <dd pn="section-7.9.12-5.1.1.12.2.4">Downstream CAR.</dd>
                    <dt pn="section-7.9.12-5.1.1.12.2.5">Ingress-QoS-Profile sub-TLV:</dt>
                    <dd pn="section-7.9.12-5.1.1.12.2.6">Indicates the name of
                the QoS-Profile that is the profile in the upstream
                direction.</dd>
                    <dt pn="section-7.9.12-5.1.1.12.2.7">Egress-QoS-Profile sub-TLV:</dt>
                    <dd pn="section-7.9.12-5.1.1.12.2.8">Indicates the name of
                the QoS-Profile that is the profile in the downstream
                direction.</dd>
                    <dt pn="section-7.9.12-5.1.1.12.2.9">User-ACL-Policy sub-TLV:</dt>
                    <dd pn="section-7.9.12-5.1.1.12.2.10">All ACL user policies,
                including v4ACLIN, v4ACLOUT, v6ACLIN, v6ACLOUT, v4WEBACL,
                v6WEBACL, v4SpecialACL, and v6SpecialACL.</dd>
                    <dt pn="section-7.9.12-5.1.1.12.2.11">Multicast-Profile4 sub-TLV:</dt>
                    <dd pn="section-7.9.12-5.1.1.12.2.12">IPv4 multicast policy name.</dd>
                    <dt pn="section-7.9.12-5.1.1.12.2.13">Multicast-Profile6 sub-TLV:</dt>
                    <dd pn="section-7.9.12-5.1.1.12.2.14">IPv6 multicast policy name.</dd>
                    <dt pn="section-7.9.12-5.1.1.12.2.15">NAT-Instance sub-TLV:</dt>
                    <dd pn="section-7.9.12-5.1.1.12.2.16">Indicates the instance ID of
                a NAT user. </dd>
                  </dl>
                </dd>
                <dt pn="section-7.9.12-5.1.1.13">Reserved:</dt>
                <dd pn="section-7.9.12-5.1.1.14">The Reserved field <bcp14>MUST</bcp14> be sent as
            zero and ignored on receipt.</dd>
              </dl>
            </li>
          </ul>
        </section>
        <section anchor="sect-7.9.13" numbered="true" toc="include" removeInRFC="false" pn="section-7.9.13">
          <name slugifiedName="name-subscriber-cgn-port-range-t">Subscriber CGN Port Range TLV</name>
          <t pn="section-7.9.13-1">
   The Subscriber CGN Port Range TLV is used to carry the NAT public
   address and port range. It will be carried in the Update_Response
   message when CGN is used.</t>
          <t pn="section-7.9.13-2">The format of the value part of this TLV is as follows:</t>
          <figure anchor="fig58" align="left" suppress-title="false" pn="figure-58">
            <name slugifiedName="name-subscriber-cgn-port-range-tl">Subscriber CGN Port Range TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.9.13-3.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                            User-ID                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           NAT-Port-Start      |          NAT-Port-End         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                            NAT-Address                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.9.13-4">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.9.13-5">
            <li pn="section-7.9.13-5.1">
              <dl newline="false" spacing="normal" pn="section-7.9.13-5.1.1">
                <dt pn="section-7.9.13-5.1.1.1">TLV type:</dt>
                <dd pn="section-7.9.13-5.1.1.2">15.</dd>
                <dt pn="section-7.9.13-5.1.1.3">TLV length:</dt>
                <dd pn="section-7.9.13-5.1.1.4">12 octets.</dd>
                <dt pn="section-7.9.13-5.1.1.5">User-ID (4 bytes):</dt>
                <dd pn="section-7.9.13-5.1.1.6">The identifier of a user/subscriber.</dd>
                <dt pn="section-7.9.13-5.1.1.7">NAT-Port-Start (2 bytes):</dt>
                <dd pn="section-7.9.13-5.1.1.8">The start port number.</dd>
                <dt pn="section-7.9.13-5.1.1.9">NAT-Port-End (2 bytes):</dt>
                <dd pn="section-7.9.13-5.1.1.10">The end port number.</dd>
                <dt pn="section-7.9.13-5.1.1.11">NAT-Address (4 bytes):</dt>
                <dd pn="section-7.9.13-5.1.1.12">The NAT public network address.</dd>
              </dl>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="sect-7.10" numbered="true" toc="include" removeInRFC="false" pn="section-7.10">
        <name slugifiedName="name-device-status-tlvs">Device Status TLVs</name>
        <t pn="section-7.10-1">
   The TLVs in this section are for reporting interface and board-level
   information from the UP to the CP.</t>
        <section anchor="sect-7.10.1" numbered="true" toc="include" removeInRFC="false" pn="section-7.10.1">
          <name slugifiedName="name-interface-status-tlv">Interface Status TLV</name>
          <t pn="section-7.10.1-1">
   The Interface Status TLV is used to carry the status information of
   an interface on a UP.  It is carried in a Report message.</t>
          <t pn="section-7.10.1-2">The format of the value part of this TLV is as follows:</t>
          <figure anchor="fig59" align="left" suppress-title="false" pn="figure-59">
            <name slugifiedName="name-interface-status-tlv-2">Interface Status TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.10.1-3.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          If-Index                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          MAC-Address (upper part)             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   MAC-Address (lower part)    |   Phy-State   |   Reserved    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          MTU                                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Sub-TLVs (optional)                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.10.1-4">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.10.1-5">
            <li pn="section-7.10.1-5.1">
              <dl newline="false" spacing="normal" pn="section-7.10.1-5.1.1">
                <dt pn="section-7.10.1-5.1.1.1">TLV type:</dt>
                <dd pn="section-7.10.1-5.1.1.2">200.</dd>
                <dt pn="section-7.10.1-5.1.1.3">TLV length:</dt>
                <dd pn="section-7.10.1-5.1.1.4">Variable.</dd>
                <dt pn="section-7.10.1-5.1.1.5">If-Index (4 bytes):</dt>
                <dd pn="section-7.10.1-5.1.1.6">Indicates the interface index.</dd>
                <dt pn="section-7.10.1-5.1.1.7">MAC-Address (MAC-Addr type):</dt>
                <dd pn="section-7.10.1-5.1.1.8">Interface MAC address.</dd>
                <dt pn="section-7.10.1-5.1.1.9">Phy-State (1 byte):</dt>
                <dd pn="section-7.10.1-5.1.1.10">
                  <t pn="section-7.10.1-5.1.1.10.1">Physical status of the
            interface.</t>
                  <dl newline="false" spacing="normal" pn="section-7.10.1-5.1.1.10.2">
                    <dt pn="section-7.10.1-5.1.1.10.2.1">0:</dt>
                    <dd pn="section-7.10.1-5.1.1.10.2.2">Down.</dd>
                    <dt pn="section-7.10.1-5.1.1.10.2.3">1:</dt>
                    <dd pn="section-7.10.1-5.1.1.10.2.4">Up.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.10.1-5.1.1.11">MTU (4 bytes):</dt>
                <dd pn="section-7.10.1-5.1.1.12">Interface MTU value.</dd>
                <dt pn="section-7.10.1-5.1.1.13">Sub-TLVs:</dt>
                <dd pn="section-7.10.1-5.1.1.14">The If-Desc and VRF-Name sub-TLVs can be carried.</dd>
                <dt pn="section-7.10.1-5.1.1.15">Reserved:</dt>
                <dd pn="section-7.10.1-5.1.1.16">The Reserved field <bcp14>MUST</bcp14> be
            sent as zero and ignored on receipt.</dd>
              </dl>
            </li>
          </ul>
        </section>
        <section anchor="sect-7.10.2" numbered="true" toc="include" removeInRFC="false" pn="section-7.10.2">
          <name slugifiedName="name-board-status-tlv">Board Status TLV</name>
          <t pn="section-7.10.2-1">
   The Board Status TLV is used to carry the status information of a
   board on an UP.  It is carried in a Report message.</t>
          <t pn="section-7.10.2-2">The format of the value part of the Board Status TLV is as follows:</t>
          <figure anchor="fig60" align="left" suppress-title="false" pn="figure-60">
            <name slugifiedName="name-board-status-tlv-2">Board Status TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.10.2-3.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Board-Type  | Board-State   |   Reserved    |   Chassis     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               Slot            |           Sub-Slot            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.10.2-4">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.10.2-5">
            <li pn="section-7.10.2-5.1">
              <dl newline="false" spacing="normal" pn="section-7.10.2-5.1.1">
                <dt pn="section-7.10.2-5.1.1.1">TLV type:</dt>
                <dd pn="section-7.10.2-5.1.1.2">201.</dd>
                <dt pn="section-7.10.2-5.1.1.3">TLV length:</dt>
                <dd pn="section-7.10.2-5.1.1.4">8 octets.</dd>
                <dt pn="section-7.10.2-5.1.1.5">Chassis (1 byte):</dt>
                <dd pn="section-7.10.2-5.1.1.6">The chassis number of the board.</dd>
                <dt pn="section-7.10.2-5.1.1.7">Slot (16 bits):</dt>
                <dd pn="section-7.10.2-5.1.1.8">The slot number of the board.</dd>
                <dt pn="section-7.10.2-5.1.1.9">Sub-Slot (16 bits):</dt>
                <dd pn="section-7.10.2-5.1.1.10">The sub-slot number of the board.</dd>
                <dt pn="section-7.10.2-5.1.1.11">Board-Type (1 byte):</dt>
                <dd pn="section-7.10.2-5.1.1.12">
                  <t pn="section-7.10.2-5.1.1.12.1">The type of board used.</t>
                  <dl newline="false" spacing="normal" pn="section-7.10.2-5.1.1.12.2">
                    <dt pn="section-7.10.2-5.1.1.12.2.1">1:</dt>
                    <dd pn="section-7.10.2-5.1.1.12.2.2">CGN Service Process Unit (SPU) board.</dd>
                    <dt pn="section-7.10.2-5.1.1.12.2.3">2:</dt>
                    <dd pn="section-7.10.2-5.1.1.12.2.4">Line Process Unit (LPU) board.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.10.2-5.1.1.13">Board-State (1 byte):</dt>
                <dd pn="section-7.10.2-5.1.1.14">
                  <t pn="section-7.10.2-5.1.1.14.1">Indicates whether there are issues with the board.</t>
                  <dl newline="false" spacing="normal" pn="section-7.10.2-5.1.1.14.2">
                    <dt pn="section-7.10.2-5.1.1.14.2.1">0:</dt>
                    <dd pn="section-7.10.2-5.1.1.14.2.2">Normal.</dd>
                    <dt pn="section-7.10.2-5.1.1.14.2.3">1:</dt>
                    <dd pn="section-7.10.2-5.1.1.14.2.4">Abnormal.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.10.2-5.1.1.15">Reserved:</dt>
                <dd pn="section-7.10.2-5.1.1.16">The Reserved field <bcp14>MUST</bcp14> be sent as zero and ignored on receipt.</dd>
              </dl>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="sect-7.11" numbered="true" toc="include" removeInRFC="false" pn="section-7.11">
        <name slugifiedName="name-cgn-tlvs">CGN TLVs</name>
        <section anchor="sect-7.11.1" numbered="true" toc="include" removeInRFC="false" pn="section-7.11.1">
          <name slugifiedName="name-address-allocation-request-">Address Allocation Request TLV</name>
          <t pn="section-7.11.1-1">
   The Address Allocation Request TLV is used to request address
   allocation from the CP.  A Pool-Name sub-TLV is carried to
   indicate from which address pool to allocate addresses.  The Address
   Allocation Request TLV is carried in the Addr_Allocation_Req message.</t>
          <t pn="section-7.11.1-2">The format of the value part of this TLV is as follows:</t>
          <figure anchor="fig61" align="left" suppress-title="false" pn="figure-61">
            <name slugifiedName="name-address-allocation-request-t">Address Allocation Request TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.11.1-3.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                          Pool-Name Sub-TLV                    ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.11.1-4">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.11.1-5">
            <li pn="section-7.11.1-5.1">
              <dl newline="false" spacing="normal" pn="section-7.11.1-5.1.1">
                <dt pn="section-7.11.1-5.1.1.1">TLV type:</dt>
                <dd pn="section-7.11.1-5.1.1.2">400.</dd>
                <dt pn="section-7.11.1-5.1.1.3">TLV length:</dt>
                <dd pn="section-7.11.1-5.1.1.4">Variable.</dd>
                <dt pn="section-7.11.1-5.1.1.5">Pool-Name sub-TLV:</dt>
                <dd pn="section-7.11.1-5.1.1.6">Indicates from which address pool
            to allocate address.</dd>
              </dl>
            </li>
          </ul>
        </section>
        <section anchor="sect-7.11.2" numbered="true" toc="include" removeInRFC="false" pn="section-7.11.2">
          <name slugifiedName="name-address-allocation-response">Address Allocation Response TLV</name>
          <t pn="section-7.11.2-1">
   The Address Allocation Response TLV is used to return the address
   allocation result; it is carried in the Addr_Allocation_Ack message.</t>
          <t pn="section-7.11.2-2">
   The value part of the Address Allocation Response TLV is formatted as
   follows:</t>
          <figure anchor="fig62" align="left" suppress-title="false" pn="figure-62">
            <name slugifiedName="name-address-allocation-response-">Address Allocation Response TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.11.2-3.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Lease Time                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Client-IP                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Client-IP (cont.)                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Error-Code                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                        Pool-Name Sub-TLV                      ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.11.2-4">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.11.2-5">
            <li pn="section-7.11.2-5.1">
              <dl newline="false" spacing="normal" pn="section-7.11.2-5.1.1">
                <dt pn="section-7.11.2-5.1.1.1">TLV type:</dt>
                <dd pn="section-7.11.2-5.1.1.2">401.</dd>
                <dt pn="section-7.11.2-5.1.1.3">TLV length:</dt>
                <dd pn="section-7.11.2-5.1.1.4">Variable.</dd>
                <dt pn="section-7.11.2-5.1.1.5">Lease Time (4 bytes):</dt>
                <dd pn="section-7.11.2-5.1.1.6">Duration of address lease in seconds.</dd>
                <dt pn="section-7.11.2-5.1.1.7">Client-IP (IPv4-Address type):</dt>
                <dd pn="section-7.11.2-5.1.1.8">The allocated
            IPv4 address and mask.</dd>
                <dt pn="section-7.11.2-5.1.1.9">Error-Code (4 bytes):</dt>
                <dd pn="section-7.11.2-5.1.1.10">
                  <t pn="section-7.11.2-5.1.1.10.1">Indicates success or an error.</t>
                  <dl newline="false" spacing="normal" pn="section-7.11.2-5.1.1.10.2">
                    <dt pn="section-7.11.2-5.1.1.10.2.1">0:</dt>
                    <dd pn="section-7.11.2-5.1.1.10.2.2">Success.</dd>
                    <dt pn="section-7.11.2-5.1.1.10.2.3">1:</dt>
                    <dd pn="section-7.11.2-5.1.1.10.2.4">Failure.</dd>
                    <dt pn="section-7.11.2-5.1.1.10.2.5">3001:</dt>
                    <dd pn="section-7.11.2-5.1.1.10.2.6">Pool-Mismatch. The corresponding address pool cannot be
	   found.</dd>
                    <dt pn="section-7.11.2-5.1.1.10.2.7">3002:</dt>
                    <dd pn="section-7.11.2-5.1.1.10.2.8">Pool-Full. The address pool is fully allocated, and no
	   address segment is available.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.11.2-5.1.1.11">Pool-Name sub-TLV:</dt>
                <dd pn="section-7.11.2-5.1.1.12">Indicates from which
	address pool the address is allocated.</dd>
              </dl>
            </li>
          </ul>
        </section>
        <section anchor="sect-7.11.3" numbered="true" toc="include" removeInRFC="false" pn="section-7.11.3">
          <name slugifiedName="name-address-renewal-request-tlv">Address Renewal Request TLV</name>
          <t pn="section-7.11.3-1">
   The Address Renewal Request TLV is used to request address renewal
   from the CP.  It is carried in the Addr_Renew_Req message.</t>
          <t pn="section-7.11.3-2">The format of this TLV value is as follows:</t>
          <figure anchor="fig63" align="left" suppress-title="false" pn="figure-63">
            <name slugifiedName="name-address-renewal-request-tlv-2">Address Renewal Request TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.11.3-3.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Client-IP                                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Client-IP (cont.)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                     Pool-Name Sub-TLV                         ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.11.3-4">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.11.3-5">
            <li pn="section-7.11.3-5.1">
              <dl newline="false" spacing="normal" pn="section-7.11.3-5.1.1">
                <dt pn="section-7.11.3-5.1.1.1">TLV type:</dt>
                <dd pn="section-7.11.3-5.1.1.2">402.</dd>
                <dt pn="section-7.11.3-5.1.1.3">TLV length:</dt>
                <dd pn="section-7.11.3-5.1.1.4">Variable.</dd>
                <dt pn="section-7.11.3-5.1.1.5">Client-IP (IPv4-Address type):</dt>
                <dd pn="section-7.11.3-5.1.1.6">The IPv4 address and mask to be
            renewed.</dd>
                <dt pn="section-7.11.3-5.1.1.7">Pool-Name sub-TLV:</dt>
                <dd pn="section-7.11.3-5.1.1.8">Indicates from which
	address pool to renew the address.</dd>
              </dl>
            </li>
          </ul>
        </section>
        <section anchor="sect-7.11.4" numbered="true" toc="include" removeInRFC="false" pn="section-7.11.4">
          <name slugifiedName="name-address-renewal-response-tl">Address Renewal Response TLV</name>
          <t pn="section-7.11.4-1">
   The Address Renewal Response TLV is used to return the address
   renewal result.  It is carried in the Addr_Renew_Ack message.</t>
          <t pn="section-7.11.4-2">The format of this TLV value is as follows:</t>
          <figure anchor="fig64" align="left" suppress-title="false" pn="figure-64">
            <name slugifiedName="name-address-renewal-response-tlv">Address Renewal Response TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.11.4-3.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Client-IP                                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Client-IP (cont.)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Error-Code                                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                     Pool-Name Sub-TLV                         ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.11.4-4">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.11.4-5">
            <li pn="section-7.11.4-5.1">
              <dl newline="false" spacing="normal" pn="section-7.11.4-5.1.1">
                <dt pn="section-7.11.4-5.1.1.1">TLV type:</dt>
                <dd pn="section-7.11.4-5.1.1.2">403.</dd>
                <dt pn="section-7.11.4-5.1.1.3">TLV length:</dt>
                <dd pn="section-7.11.4-5.1.1.4">Variable.</dd>
                <dt pn="section-7.11.4-5.1.1.5">Client-IP (IPv4-Address type):</dt>
                <dd pn="section-7.11.4-5.1.1.6">The renewed IPv4 address and mask.</dd>
                <dt pn="section-7.11.4-5.1.1.7">Error-Code (4 bytes):</dt>
                <dd pn="section-7.11.4-5.1.1.8">
                  <t pn="section-7.11.4-5.1.1.8.1">Indicates success or an error:</t>
                  <dl newline="false" spacing="normal" pn="section-7.11.4-5.1.1.8.2">
                    <dt pn="section-7.11.4-5.1.1.8.2.1">0:</dt>
                    <dd pn="section-7.11.4-5.1.1.8.2.2">Success.</dd>
                    <dt pn="section-7.11.4-5.1.1.8.2.3">1:</dt>
                    <dd pn="section-7.11.4-5.1.1.8.2.4">Failure.</dd>
                    <dt pn="section-7.11.4-5.1.1.8.2.5">3001:</dt>
                    <dd pn="section-7.11.4-5.1.1.8.2.6">Pool-Mismatch. The corresponding address
                pool cannot be found.</dd>
                    <dt pn="section-7.11.4-5.1.1.8.2.7">3002:</dt>
                    <dd pn="section-7.11.4-5.1.1.8.2.8">Pool-Full. The address pool is fully allocated, and no
	   address segment is available.</dd>
                    <dt pn="section-7.11.4-5.1.1.8.2.9">3003:</dt>
                    <dd pn="section-7.11.4-5.1.1.8.2.10">Subnet-Mismatch. The address pool subnet
                cannot be found.</dd>
                    <dt pn="section-7.11.4-5.1.1.8.2.11">3004:</dt>
                    <dd pn="section-7.11.4-5.1.1.8.2.12">Subnet-Conflict. Subnets in the address pool have been
	   assigned to other clients.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.11.4-5.1.1.9">Pool-Name sub-TLV:</dt>
                <dd pn="section-7.11.4-5.1.1.10">Indicates from which
	address pool to renew the address.</dd>
              </dl>
            </li>
          </ul>
        </section>
        <section anchor="sect-7.11.5" numbered="true" toc="include" removeInRFC="false" pn="section-7.11.5">
          <name slugifiedName="name-address-release-request-tlv">Address Release Request TLV</name>
          <t pn="section-7.11.5-1">
   The Address Release Request TLV is used to release an IPv4 address.
   It is carried in the Addr_Release_Req message.</t>
          <t pn="section-7.11.5-2">The value part of this TLV is formatted as follows:</t>
          <figure anchor="fig65" align="left" suppress-title="false" pn="figure-65">
            <name slugifiedName="name-address-release-request-tlv-2">Address Release Request TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.11.5-3.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Client-IP                                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Client-IP (cont.)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                     Pool-Name sub-TLV                         ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.11.5-4">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.11.5-5">
            <li pn="section-7.11.5-5.1">
              <dl newline="false" spacing="normal" pn="section-7.11.5-5.1.1">
                <dt pn="section-7.11.5-5.1.1.1">TLV type:</dt>
                <dd pn="section-7.11.5-5.1.1.2">404.</dd>
                <dt pn="section-7.11.5-5.1.1.3">TLV length:</dt>
                <dd pn="section-7.11.5-5.1.1.4">Variable.</dd>
                <dt pn="section-7.11.5-5.1.1.5">Client-IP (IPv4-Address type):</dt>
                <dd pn="section-7.11.5-5.1.1.6">The IPv4
            address and mask to be released.</dd>
                <dt pn="section-7.11.5-5.1.1.7">Pool-Name sub-TLV:</dt>
                <dd pn="section-7.11.5-5.1.1.8">Indicates from which
	address pool to release the address.</dd>
              </dl>
            </li>
          </ul>
        </section>
        <section anchor="sect-7.11.6" numbered="true" toc="include" removeInRFC="false" pn="section-7.11.6">
          <name slugifiedName="name-address-release-response-tl">Address Release Response TLV</name>
          <t pn="section-7.11.6-1">
   The Address Release Response TLV is used to return the address
   release result.  It is carried in the Addr_Release_Ack message.</t>
          <t pn="section-7.11.6-2">The format of the value part of this TLV is as follows:</t>
          <figure anchor="fig66" align="left" suppress-title="false" pn="figure-66">
            <name slugifiedName="name-address-release-response-tlv">Address Release Response TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.11.6-3.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Client-IP                                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Client-IP (cont.)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Error-Code                                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                     Pool-Name sub-TLV                         ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.11.6-4">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.11.6-5">
            <li pn="section-7.11.6-5.1">
              <dl newline="false" spacing="normal" pn="section-7.11.6-5.1.1">
                <dt pn="section-7.11.6-5.1.1.1">TLV type:</dt>
                <dd pn="section-7.11.6-5.1.1.2">405.</dd>
                <dt pn="section-7.11.6-5.1.1.3">TLV length:</dt>
                <dd pn="section-7.11.6-5.1.1.4">Variable.</dd>
                <dt pn="section-7.11.6-5.1.1.5">Client-IP (IPv4-Address type):</dt>
                <dd pn="section-7.11.6-5.1.1.6">The released IPv4 address and mask.</dd>
                <dt pn="section-7.11.6-5.1.1.7">Error-Code (4 bytes):</dt>
                <dd pn="section-7.11.6-5.1.1.8">
                  <t pn="section-7.11.6-5.1.1.8.1">Indicates success or an error.</t>
                  <dl newline="false" spacing="normal" pn="section-7.11.6-5.1.1.8.2">
                    <dt pn="section-7.11.6-5.1.1.8.2.1">0:</dt>
                    <dd pn="section-7.11.6-5.1.1.8.2.2">Success. Address release success.</dd>
                    <dt pn="section-7.11.6-5.1.1.8.2.3">1:</dt>
                    <dd pn="section-7.11.6-5.1.1.8.2.4">Failure. Address release failed.</dd>
                    <dt pn="section-7.11.6-5.1.1.8.2.5">3001:</dt>
                    <dd pn="section-7.11.6-5.1.1.8.2.6">Pool-Mismatch. The corresponding address
                pool cannot be found.</dd>
                    <dt pn="section-7.11.6-5.1.1.8.2.7">3003:</dt>
                    <dd pn="section-7.11.6-5.1.1.8.2.8">Subnet-Mismatch. The address cannot be found.</dd>
                    <dt pn="section-7.11.6-5.1.1.8.2.9">3004:</dt>
                    <dd pn="section-7.11.6-5.1.1.8.2.10">Subnet-Conflict. The address has been
                allocated to another subscriber.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.11.6-5.1.1.9">Pool-Name sub-TLV:</dt>
                <dd pn="section-7.11.6-5.1.1.10">Indicates from which
	address pool to release the address.</dd>
              </dl>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="sect-7.12" numbered="true" toc="include" removeInRFC="false" pn="section-7.12">
        <name slugifiedName="name-event-tlvs">Event TLVs</name>
        <section anchor="sect-7.12.1" numbered="true" toc="include" removeInRFC="false" pn="section-7.12.1">
          <name slugifiedName="name-subscriber-traffic-statisti">Subscriber Traffic Statistics TLV</name>
          <t pn="section-7.12.1-1">
   The Subscriber Traffic Statistics TLV is used to return the traffic
   statistics of a user/subscriber.  The format of the value part of this TLV is as
   follows:</t>
          <figure anchor="fig67" align="left" suppress-title="false" pn="figure-67">
            <name slugifiedName="name-subscriber-traffic-statistic">Subscriber Traffic Statistics TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.12.1-2.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                User-ID                                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Statistics-Type                                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Ingress Packets (upper part)                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Ingress Packets (lower part)                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Ingress Bytes (upper part)                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Ingress Bytes (lower part)                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Ingress Loss Packets (upper part)              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Ingress Loss Packets (lower part)              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Ingress Loss Bytes (upper part)                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Ingress Loss Bytes (lower part)                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Egress Packets (upper part)                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Egress Packets (lower part)                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Egress Bytes (upper part)                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Egress Bytes (lower part)                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Egress Loss Packets (upper part)               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Egress Loss Packets (lower part)               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Egress Loss Bytes (upper part)                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Egress Loss Bytes (lower part)                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.12.1-3">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.12.1-4">
            <li pn="section-7.12.1-4.1">
              <dl newline="false" spacing="normal" pn="section-7.12.1-4.1.1">
                <dt pn="section-7.12.1-4.1.1.1">TLV type:</dt>
                <dd pn="section-7.12.1-4.1.1.2">300.</dd>
                <dt pn="section-7.12.1-4.1.1.3">TLV length:</dt>
                <dd pn="section-7.12.1-4.1.1.4">72 octets.</dd>
                <dt pn="section-7.12.1-4.1.1.5">User-ID (4 bytes):</dt>
                <dd pn="section-7.12.1-4.1.1.6">The subscriber identifier.</dd>
                <dt pn="section-7.12.1-4.1.1.7">Statistics-Type (4 bytes):</dt>
                <dd pn="section-7.12.1-4.1.1.8">
                  <t pn="section-7.12.1-4.1.1.8.1">Traffic type.  It can be one of the
	following options:</t>
                  <dl newline="false" spacing="normal" pn="section-7.12.1-4.1.1.8.2">
                    <dt pn="section-7.12.1-4.1.1.8.2.1">0:</dt>
                    <dd pn="section-7.12.1-4.1.1.8.2.2">IPv4 traffic.</dd>
                    <dt pn="section-7.12.1-4.1.1.8.2.3">1:</dt>
                    <dd pn="section-7.12.1-4.1.1.8.2.4">IPv6 traffic.</dd>
                    <dt pn="section-7.12.1-4.1.1.8.2.5">2:</dt>
                    <dd pn="section-7.12.1-4.1.1.8.2.6">Dual-stack traffic.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.12.1-4.1.1.9">Ingress Packets (8 bytes):</dt>
                <dd pn="section-7.12.1-4.1.1.10">The number of the packets
            in the upstream direction.</dd>
                <dt pn="section-7.12.1-4.1.1.11">Ingress Bytes (8 bytes):</dt>
                <dd pn="section-7.12.1-4.1.1.12">The bytes of the upstream traffic.</dd>
                <dt pn="section-7.12.1-4.1.1.13">Ingress Loss Packets (8 bytes):</dt>
                <dd pn="section-7.12.1-4.1.1.14">The number of the lost
            packets in the upstream direction.</dd>
                <dt pn="section-7.12.1-4.1.1.15">Ingress Loss Bytes (8 bytes):</dt>
                <dd pn="section-7.12.1-4.1.1.16">The bytes of the lost
            upstream packets.</dd>
                <dt pn="section-7.12.1-4.1.1.17">Egress Packets (8 bytes):</dt>
                <dd pn="section-7.12.1-4.1.1.18">The number of the packets in
            the downstream direction.</dd>
                <dt pn="section-7.12.1-4.1.1.19">Egress Bytes (8 bytes):</dt>
                <dd pn="section-7.12.1-4.1.1.20">The bytes of the downstream traffic.</dd>
                <dt pn="section-7.12.1-4.1.1.21">Egress Loss Packets (8 bytes):</dt>
                <dd pn="section-7.12.1-4.1.1.22">The number of the lost
            packets in the downstream direction.</dd>
                <dt pn="section-7.12.1-4.1.1.23">Egress Loss Bytes (8 bytes):</dt>
                <dd pn="section-7.12.1-4.1.1.24">The bytes of the lost downstream
	packets.</dd>
              </dl>
            </li>
          </ul>
        </section>
        <section anchor="sect-7.12.2" numbered="true" toc="include" removeInRFC="false" pn="section-7.12.2">
          <name slugifiedName="name-subscriber-detection-result">Subscriber Detection Result TLV</name>
          <t pn="section-7.12.2-1">
   The Subscriber Detection Result TLV is used to return the detection
   result of a subscriber.  Subscriber detection is a function to detect
   whether or not a subscriber is online.  The result can be used by the
   CP to determine how to deal with the subscriber session (e.g.,
   delete the session if detection failed).</t>
          <t pn="section-7.12.2-2">The format of this TLV value part is as follows:</t>
          <figure anchor="fig68" align="left" suppress-title="false" pn="figure-68">
            <name slugifiedName="name-subscriber-detection-result-">Subscriber Detection Result TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-7.12.2-3.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          User-ID                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Detect-Type   | Detect-Result |          Reserved             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t pn="section-7.12.2-4">Where:
          </t>
          <ul empty="true" bare="false" spacing="normal" pn="section-7.12.2-5">
            <li pn="section-7.12.2-5.1">
              <dl newline="false" spacing="normal" pn="section-7.12.2-5.1.1">
                <dt pn="section-7.12.2-5.1.1.1">TLV type:</dt>
                <dd pn="section-7.12.2-5.1.1.2">301.</dd>
                <dt pn="section-7.12.2-5.1.1.3">TLV length:</dt>
                <dd pn="section-7.12.2-5.1.1.4">8 octets.</dd>
                <dt pn="section-7.12.2-5.1.1.5">User-ID (4 bytes):</dt>
                <dd pn="section-7.12.2-5.1.1.6">The subscriber identifier.</dd>
                <dt pn="section-7.12.2-5.1.1.7">Detect-Type (1 byte):</dt>
                <dd pn="section-7.12.2-5.1.1.8">
                  <t pn="section-7.12.2-5.1.1.8.1">Type of traffic detected.</t>
                  <dl newline="false" spacing="normal" pn="section-7.12.2-5.1.1.8.2">
                    <dt pn="section-7.12.2-5.1.1.8.2.1">0:</dt>
                    <dd pn="section-7.12.2-5.1.1.8.2.2">IPv4 detection.</dd>
                    <dt pn="section-7.12.2-5.1.1.8.2.3">1:</dt>
                    <dd pn="section-7.12.2-5.1.1.8.2.4">IPv6 detection.</dd>
                    <dt pn="section-7.12.2-5.1.1.8.2.5">2:</dt>
                    <dd pn="section-7.12.2-5.1.1.8.2.6">PPP detection.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.12.2-5.1.1.9">Detect-Result (1 byte):</dt>
                <dd pn="section-7.12.2-5.1.1.10">
                  <t pn="section-7.12.2-5.1.1.10.1">Indicates whether the detection was successful. </t>
                  <dl newline="false" spacing="normal" pn="section-7.12.2-5.1.1.10.2">
                    <dt pn="section-7.12.2-5.1.1.10.2.1">0:</dt>
                    <dd pn="section-7.12.2-5.1.1.10.2.2">Indicates that the detection is successful.</dd>
                    <dt pn="section-7.12.2-5.1.1.10.2.3">1:</dt>
                    <dd pn="section-7.12.2-5.1.1.10.2.4">Detection failure.  The UP needs to report only
                                  when the detection fails.</dd>
                  </dl>
                </dd>
                <dt pn="section-7.12.2-5.1.1.11">Reserved:</dt>
                <dd pn="section-7.12.2-5.1.1.12">The Reserved field <bcp14>MUST</bcp14> be sent as zero and ignored on receipt.</dd>
              </dl>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="sect-7.13" numbered="true" toc="include" removeInRFC="false" pn="section-7.13">
        <name slugifiedName="name-vendor-tlv">Vendor TLV</name>
        <t pn="section-7.13-1">
   The Vendor TLV occurs as the first TLV in the Vendor message
   (<xref target="sect-6.6" format="default" sectionFormat="of" derivedContent="Section 6.6"/>). It provides a Sub-Type that effectively extends the
   message type in the message header, provides for versioning of vendor
   TLVs, and can accommodate sub-TLVs.</t>
        <t pn="section-7.13-2">The value part of the Vendor TLV is formatted as follows:</t>
        <figure anchor="fig69" align="left" suppress-title="false" pn="figure-69">
          <name slugifiedName="name-vendor-tlv-2">Vendor TLV</name>
          <artwork name="" type="" align="left" alt="" pn="section-7.13-3.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Vendor-ID                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Sub-Type            |       Sub-Type-Version        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                      Sub-TLVs (optional)                      ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t pn="section-7.13-4">Where:
        </t>
        <ul empty="true" bare="false" spacing="normal" pn="section-7.13-5">
          <li pn="section-7.13-5.1">
            <dl newline="false" spacing="normal" indent="3" pn="section-7.13-5.1.1">
              <dt pn="section-7.13-5.1.1.1">TLV type:</dt>
              <dd pn="section-7.13-5.1.1.2">1024.</dd>
              <dt pn="section-7.13-5.1.1.3">TLV length:</dt>
              <dd pn="section-7.13-5.1.1.4">Variable.</dd>
              <dt pn="section-7.13-5.1.1.5">Vendor-ID (4 bytes):</dt>
              <dd pn="section-7.13-5.1.1.6">Vendor ID as defined in RADIUS
          <xref target="RFC2865" format="default" sectionFormat="of" derivedContent="RFC2865"/>.</dd>
              <dt pn="section-7.13-5.1.1.7">Sub-Type (2 bytes):</dt>
              <dd pn="section-7.13-5.1.1.8">Used by the vendor to distinguish multiple
	different vendor messages.</dd>
              <dt pn="section-7.13-5.1.1.9">Sub-Type-Version (2 bytes):</dt>
              <dd pn="section-7.13-5.1.1.10">Used by the vendor to distinguish
	different versions of a vendor-defined message Sub-Type.</dd>
              <dt pn="section-7.13-5.1.1.11">Sub-TLVs (variable):</dt>
              <dd pn="section-7.13-5.1.1.12">Sub-TLVs as specified by the vendor.</dd>
            </dl>
          </li>
        </ul>
        <t pn="section-7.13-6">
   Since vendor code will be handling the TLV after the Vendor-ID field
   is recognized, the remainder of the TLV values can be organized
   however the vendor wants. But it is desirable for a vendor to be able
   to define multiple different vendor messages and to keep track of
   different versions of its vendor-defined messages. Thus, it is
   <bcp14>RECOMMENDED</bcp14> that the vendor assign a Sub-Type value for each vendor
   message that it defines different from other Sub-Type values that
   vendor has used. Also, when modifying a vendor-defined message in a
   way potentially incompatible with a previous definition, the vendor
   <bcp14>SHOULD</bcp14> increase the value it is using in the Sub-Type-Version field.</t>
      </section>
    </section>
    <section anchor="sect-9" numbered="true" toc="include" removeInRFC="false" pn="section-8">
      <name slugifiedName="name-tables-of-s-cusp-codepoints">Tables of S-CUSP Codepoints</name>
      <t pn="section-8-1">
   This section provides tables of the S-CUSP codepoints, particularly
   message types, TLV types, TLV operation codes, sub-TLV types, and
   error codes. In most cases, references are provided to relevant
   sections elsewhere in this document.</t>
      <section anchor="sect-9.1" numbered="true" toc="include" removeInRFC="false" pn="section-8.1">
        <name slugifiedName="name-message-types">Message Types</name>
        <table align="center" pn="table-5">
          <name slugifiedName="name-message-types-2">Message Types</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Type</th>
              <th align="left" colspan="1" rowspan="1">Name</th>
              <th align="left" colspan="1" rowspan="1">Section of This Document</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">0</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
              <td align="left" colspan="1" rowspan="1"/>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">1</td>
              <td align="left" colspan="1" rowspan="1">Hello</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-6.2.1" format="counter" sectionFormat="of" derivedContent="6.2.1"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2</td>
              <td align="left" colspan="1" rowspan="1">Keepalive</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-6.2.2" format="counter" sectionFormat="of" derivedContent="6.2.2"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">Sync_Request</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-6.2.3" format="counter" sectionFormat="of" derivedContent="6.2.3"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">4</td>
              <td align="left" colspan="1" rowspan="1">Sync_Begin</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-6.2.4" format="counter" sectionFormat="of" derivedContent="6.2.4"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">5</td>
              <td align="left" colspan="1" rowspan="1">Sync_Data</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-6.2.5" format="counter" sectionFormat="of" derivedContent="6.2.5"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">6</td>
              <td align="left" colspan="1" rowspan="1">Sync_End</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-6.2.6" format="counter" sectionFormat="of" derivedContent="6.2.6"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">7</td>
              <td align="left" colspan="1" rowspan="1">Update_Request</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-6.2.7" format="counter" sectionFormat="of" derivedContent="6.2.7"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">8</td>
              <td align="left" colspan="1" rowspan="1">Update_Response</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-6.2.8" format="counter" sectionFormat="of" derivedContent="6.2.8"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">9</td>
              <td align="left" colspan="1" rowspan="1">Report</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-6.4" format="counter" sectionFormat="of" derivedContent="6.4"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">10</td>
              <td align="left" colspan="1" rowspan="1">Event</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-6.3" format="counter" sectionFormat="of" derivedContent="6.3"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">11</td>
              <td align="left" colspan="1" rowspan="1">Vendor</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-6.6" format="counter" sectionFormat="of" derivedContent="6.6"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">12</td>
              <td align="left" colspan="1" rowspan="1">Error</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-6.7" format="counter" sectionFormat="of" derivedContent="6.7"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">13-199</td>
              <td align="left" colspan="1" rowspan="1">Unassigned</td>
              <td align="left" colspan="1" rowspan="1"/>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">200</td>
              <td align="left" colspan="1" rowspan="1">Addr_Allocation_Req</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-6.5.1" format="counter" sectionFormat="of" derivedContent="6.5.1"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">201</td>
              <td align="left" colspan="1" rowspan="1">Addr_Allocation_Ack</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-6.5.2" format="counter" sectionFormat="of" derivedContent="6.5.2"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">202</td>
              <td align="left" colspan="1" rowspan="1">Addr_Renew_Req</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-6.5.3" format="counter" sectionFormat="of" derivedContent="6.5.3"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">203</td>
              <td align="left" colspan="1" rowspan="1">Addr_Renew_Ack</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-6.5.4" format="counter" sectionFormat="of" derivedContent="6.5.4"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">204</td>
              <td align="left" colspan="1" rowspan="1">Addr_Release_Req</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-6.5.5" format="counter" sectionFormat="of" derivedContent="6.5.5"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">205</td>
              <td align="left" colspan="1" rowspan="1">Addr_Release_Ack</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-6.5.6" format="counter" sectionFormat="of" derivedContent="6.5.6"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">206-254</td>
              <td align="left" colspan="1" rowspan="1">Unassigned</td>
              <td align="left" colspan="1" rowspan="1"/>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">255</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
              <td align="left" colspan="1" rowspan="1"/>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sect-9.2" numbered="true" toc="include" removeInRFC="false" pn="section-8.2">
        <name slugifiedName="name-tlv-types">TLV Types</name>
        <table align="center" pn="table-6">
          <name slugifiedName="name-tlv-types-2">TLV Types</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Type</th>
              <th align="left" colspan="1" rowspan="1">Name</th>
              <th align="left" colspan="1" rowspan="1">Usage Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">0</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
              <td align="left" colspan="1" rowspan="1">-</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">1</td>
              <td align="left" colspan="1" rowspan="1">BAS Function</td>
              <td align="left" colspan="1" rowspan="1">Carries the BNG access functions to be enabled or disabled on specified interfaces.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2</td>
              <td align="left" colspan="1" rowspan="1">Basic Subscriber</td>
              <td align="left" colspan="1" rowspan="1">Carries the basic information about a BNG subscriber.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">PPP Subscriber</td>
              <td align="left" colspan="1" rowspan="1">Carries the PPP information about a BNG subscriber.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">4</td>
              <td align="left" colspan="1" rowspan="1">IPv4 Subscriber</td>
              <td align="left" colspan="1" rowspan="1">Carries the IPv4 address of a BNG subscriber.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">5</td>
              <td align="left" colspan="1" rowspan="1">IPv6 Subscriber</td>
              <td align="left" colspan="1" rowspan="1">Carries the IPv6 address of a BNG subscriber.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">6</td>
              <td align="left" colspan="1" rowspan="1">Subscriber Policy</td>
              <td align="left" colspan="1" rowspan="1">Carries the policy information applied to a BNG subscriber.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">7</td>
              <td align="left" colspan="1" rowspan="1">IPv4 Routing</td>
              <td align="left" colspan="1" rowspan="1">Carries the IPv4 network routing information.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">8</td>
              <td align="left" colspan="1" rowspan="1">IPv6 Routing</td>
              <td align="left" colspan="1" rowspan="1">Carries the IPv6 network routing information.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">9</td>
              <td align="left" colspan="1" rowspan="1">IPv4 Static Subscriber Detect</td>
              <td align="left" colspan="1" rowspan="1">Carries the IPv4 static subscriber detect information.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">10</td>
              <td align="left" colspan="1" rowspan="1">IPv6 Static Subscriber Detect</td>
              <td align="left" colspan="1" rowspan="1">Carries the IPv6 static subscriber detect information.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">11</td>
              <td align="left" colspan="1" rowspan="1">L2TP-LAC Subscriber</td>
              <td align="left" colspan="1" rowspan="1">Carries the L2TP LAC subscriber information.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">12</td>
              <td align="left" colspan="1" rowspan="1">L2TP-LNS Subscriber</td>
              <td align="left" colspan="1" rowspan="1">Carries the L2TP LNS subscriber information.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">13</td>
              <td align="left" colspan="1" rowspan="1">L2TP-LAC Tunnel</td>
              <td align="left" colspan="1" rowspan="1">Carries the L2TP LAC tunnel subscriber information.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">14</td>
              <td align="left" colspan="1" rowspan="1">L2TP-LNS Tunnel</td>
              <td align="left" colspan="1" rowspan="1">Carries the L2TP LNS tunnel subscriber information.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">15</td>
              <td align="left" colspan="1" rowspan="1">Subscriber CGN Port Range</td>
              <td align="left" colspan="1" rowspan="1">Carries the public IPv4 address and related port range of a BNG subscriber.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">16-99</td>
              <td align="left" colspan="1" rowspan="1">Unassigned</td>
              <td align="left" colspan="1" rowspan="1">-</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">100</td>
              <td align="left" colspan="1" rowspan="1">Hello</td>
              <td align="left" colspan="1" rowspan="1">Used for version and Keepalive timers negotiation.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">101</td>
              <td align="left" colspan="1" rowspan="1">Error Information</td>
              <td align="left" colspan="1" rowspan="1">Carried in the Ack of the control message.  Carries the processing result, success, or error.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">102</td>
              <td align="left" colspan="1" rowspan="1">Keepalive</td>
              <td align="left" colspan="1" rowspan="1">Carried in the Hello message for Keepalive timers negotiation.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">103-199</td>
              <td align="left" colspan="1" rowspan="1">Unassigned</td>
              <td align="left" colspan="1" rowspan="1"> -</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">200</td>
              <td align="left" colspan="1" rowspan="1">Interface Status</td>
              <td align="left" colspan="1" rowspan="1">Interfaces status reported by the UP including physical interfaces, sub-interfaces, trunk interfaces, and tunnel interfaces.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">201</td>
              <td align="left" colspan="1" rowspan="1">Board Status</td>
              <td align="left" colspan="1" rowspan="1">Board information reported by the UP including the board type and in-position status.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">202-299</td>
              <td align="left" colspan="1" rowspan="1">Unassigned</td>
              <td align="left" colspan="1" rowspan="1">-</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">300</td>
              <td align="left" colspan="1" rowspan="1">Subscriber Traffic Statistics</td>
              <td align="left" colspan="1" rowspan="1">User traffic statistics.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">301</td>
              <td align="left" colspan="1" rowspan="1">Subscriber Detection Result</td>
              <td align="left" colspan="1" rowspan="1">User detection information.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">302</td>
              <td align="left" colspan="1" rowspan="1">Update Response</td>
              <td align="left" colspan="1" rowspan="1">The processing result of a subscriber session update.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">303-299</td>
              <td align="left" colspan="1" rowspan="1">Unassigned</td>
              <td align="left" colspan="1" rowspan="1"> -</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">400</td>
              <td align="left" colspan="1" rowspan="1">Address Allocation Request</td>
              <td align="left" colspan="1" rowspan="1">Request address allocation.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">401</td>
              <td align="left" colspan="1" rowspan="1">Address Allocation Response</td>
              <td align="left" colspan="1" rowspan="1">Address allocation response.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">402</td>
              <td align="left" colspan="1" rowspan="1">Address Renewal Request</td>
              <td align="left" colspan="1" rowspan="1">Request for address lease renewal.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">403</td>
              <td align="left" colspan="1" rowspan="1">Address Renewal Response</td>
              <td align="left" colspan="1" rowspan="1">Response to a request for extending an IP address lease.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">404</td>
              <td align="left" colspan="1" rowspan="1">Address Release Request</td>
              <td align="left" colspan="1" rowspan="1">Request to release the address.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">405</td>
              <td align="left" colspan="1" rowspan="1">Address Release Response</td>
              <td align="left" colspan="1" rowspan="1">Ack of a message releasing an IP address.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">406-1023</td>
              <td align="left" colspan="1" rowspan="1">Unassigned</td>
              <td align="left" colspan="1" rowspan="1"> -</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">1024</td>
              <td align="left" colspan="1" rowspan="1">Vendor</td>
              <td align="left" colspan="1" rowspan="1">As implemented by the vendor.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">1039-4095</td>
              <td align="left" colspan="1" rowspan="1">Unassigned</td>
              <td align="left" colspan="1" rowspan="1"> -</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sect-9.3" numbered="true" toc="include" removeInRFC="false" pn="section-8.3">
        <name slugifiedName="name-tlv-operation-codes">TLV Operation Codes</name>
        <t pn="section-8.3-1">
   TLV operation codes appear in the Oper field in the header of some
   TLVs. See <xref target="sect-7.1" format="default" sectionFormat="of" derivedContent="Section 7.1"/>.</t>
        <table align="center" pn="table-7">
          <name slugifiedName="name-tlv-operation-codes-2">TLV Operation Codes</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Code</th>
              <th align="left" colspan="1" rowspan="1">Operation</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">0</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">1</td>
              <td align="left" colspan="1" rowspan="1">Update</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2</td>
              <td align="left" colspan="1" rowspan="1">Delete</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">3-15</td>
              <td align="left" colspan="1" rowspan="1">Unassigned</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sect-9.4" numbered="true" toc="include" removeInRFC="false" pn="section-8.4">
        <name slugifiedName="name-sub-tlv-types">Sub-TLV Types</name>
        <t pn="section-8.4-1">See <xref target="sect-7.3" format="default" sectionFormat="of" derivedContent="Section 7.3"/>.</t>
        <table align="center" pn="table-8">
          <name slugifiedName="name-sub-tlv-types-2">Sub-TLV Types</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Type</th>
              <th align="left" colspan="1" rowspan="1">Name</th>
              <th align="left" colspan="1" rowspan="1">Section of This Document</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">0</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
              <td align="left" colspan="1" rowspan="1"/>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">1</td>
              <td align="left" colspan="1" rowspan="1">VRF Name</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-7.3.1" format="counter" sectionFormat="of" derivedContent="7.3.1"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2</td>
              <td align="left" colspan="1" rowspan="1">Ingress-QoS-Profile</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-7.3.1" format="counter" sectionFormat="of" derivedContent="7.3.1"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">Egress-QoS-Profile</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-7.3.1" format="counter" sectionFormat="of" derivedContent="7.3.1"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">4</td>
              <td align="left" colspan="1" rowspan="1">User-ACL-Policy</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-7.3.1" format="counter" sectionFormat="of" derivedContent="7.3.1"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">5</td>
              <td align="left" colspan="1" rowspan="1">Multicast-ProfileV4</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-7.3.1" format="counter" sectionFormat="of" derivedContent="7.3.1"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">6</td>
              <td align="left" colspan="1" rowspan="1">Multicast-ProfileV6</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-7.3.1" format="counter" sectionFormat="of" derivedContent="7.3.1"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">7</td>
              <td align="left" colspan="1" rowspan="1">Ingress-CAR</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-7.3.2" format="counter" sectionFormat="of" derivedContent="7.3.2"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">8</td>
              <td align="left" colspan="1" rowspan="1">Egress-CAR</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-7.3.3" format="counter" sectionFormat="of" derivedContent="7.3.3"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">9</td>
              <td align="left" colspan="1" rowspan="1">NAT-Instance</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-7.3.1" format="counter" sectionFormat="of" derivedContent="7.3.1"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">10</td>
              <td align="left" colspan="1" rowspan="1">Pool-Name</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-7.3.1" format="counter" sectionFormat="of" derivedContent="7.3.1"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">11</td>
              <td align="left" colspan="1" rowspan="1">If-Desc</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-7.3.4" format="counter" sectionFormat="of" derivedContent="7.3.4"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">12</td>
              <td align="left" colspan="1" rowspan="1">IPv6-Address List</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-7.3.5" format="counter" sectionFormat="of" derivedContent="7.3.5"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">13</td>
              <td align="left" colspan="1" rowspan="1">Vendor</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="sect-7.3.6" format="counter" sectionFormat="of" derivedContent="7.3.6"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">12-64534</td>
              <td align="left" colspan="1" rowspan="1">Unassigned</td>
              <td align="left" colspan="1" rowspan="1"/>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">65535</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
              <td align="left" colspan="1" rowspan="1"/>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sect-9.5" numbered="true" toc="include" removeInRFC="false" pn="section-8.5">
        <name slugifiedName="name-error-codes">Error Codes</name>
        <table align="center" pn="table-9">
          <name slugifiedName="name-error-codes-2">Error Codes</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Value</th>
              <th align="left" colspan="1" rowspan="1">Name</th>
              <th align="left" colspan="1" rowspan="1">Remarks</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">0</td>
              <td align="left" colspan="1" rowspan="1">Success</td>
              <td align="left" colspan="1" rowspan="1">Success</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">1</td>
              <td align="left" colspan="1" rowspan="1">Failure</td>
              <td align="left" colspan="1" rowspan="1">Malformed message received.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2</td>
              <td align="left" colspan="1" rowspan="1">TLV-Unknown</td>
              <td align="left" colspan="1" rowspan="1">One or more of the TLVs was not understood.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">TLV-Length</td>
              <td align="left" colspan="1" rowspan="1">The TLV length is abnormal.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">4-999</td>
              <td align="left" colspan="1" rowspan="1">Unassigned</td>
              <td align="left" colspan="1" rowspan="1">Unassigned basic error codes.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">1000</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
              <td align="left" colspan="1" rowspan="1"/>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">1001</td>
              <td align="left" colspan="1" rowspan="1">Version-Mismatch</td>
              <td align="left" colspan="1" rowspan="1">The version negotiation fails. Terminate.  The subsequent service processes corresponding to the UP are suspended.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">1002</td>
              <td align="left" colspan="1" rowspan="1">Keepalive Error</td>
              <td align="left" colspan="1" rowspan="1">The keepalive negotiation fails.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">1003</td>
              <td align="left" colspan="1" rowspan="1">Timer Expires</td>
              <td align="left" colspan="1" rowspan="1">The establishment timer expired.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">1004-1999</td>
              <td align="left" colspan="1" rowspan="1">Unassigned</td>
              <td align="left" colspan="1" rowspan="1">Unassigned error codes for version negotiation.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2000</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
              <td align="left" colspan="1" rowspan="1"/>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2001</td>
              <td align="left" colspan="1" rowspan="1">Synch-NoReady</td>
              <td align="left" colspan="1" rowspan="1">The data to be smoothed is not ready.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2002</td>
              <td align="left" colspan="1" rowspan="1">Synch-Unsupport</td>
              <td align="left" colspan="1" rowspan="1">The request for smooth data is not supported.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2003-2999</td>
              <td align="left" colspan="1" rowspan="1">Unassigned</td>
              <td align="left" colspan="1" rowspan="1">Unassigned data synchronization error codes.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">3000</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
              <td align="left" colspan="1" rowspan="1"/>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">3001</td>
              <td align="left" colspan="1" rowspan="1">Pool-Mismatch</td>
              <td align="left" colspan="1" rowspan="1">The corresponding address pool cannot be found.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">3002</td>
              <td align="left" colspan="1" rowspan="1">Pool-Full</td>
              <td align="left" colspan="1" rowspan="1">The address pool is fully allocated, and no address segment is available.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">3003</td>
              <td align="left" colspan="1" rowspan="1">Subnet-Mismatch</td>
              <td align="left" colspan="1" rowspan="1">The address pool subnet cannot be found.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">3004</td>
              <td align="left" colspan="1" rowspan="1">Subnet-Conflict</td>
              <td align="left" colspan="1" rowspan="1">Subnets in the address pool have been classified into other clients.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">3005-3999</td>
              <td align="left" colspan="1" rowspan="1">Unassigned</td>
              <td align="left" colspan="1" rowspan="1">Unassigned error codes for address allocation.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">4000</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
              <td align="left" colspan="1" rowspan="1"/>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">4001</td>
              <td align="left" colspan="1" rowspan="1">Update-Fail-No-Res</td>
              <td align="left" colspan="1" rowspan="1">The forwarding table fails to be delivered because the forwarding resources are insufficient.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">4002</td>
              <td align="left" colspan="1" rowspan="1">QoS-Update-Success</td>
              <td align="left" colspan="1" rowspan="1">The QoS policy takes effect.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">4003</td>
              <td align="left" colspan="1" rowspan="1">QoS-Update-Sq-Fail</td>
              <td align="left" colspan="1" rowspan="1">Failed to process the queue in the QoS policy.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">4004</td>
              <td align="left" colspan="1" rowspan="1">QoS-Update-CAR-Fail</td>
              <td align="left" colspan="1" rowspan="1">Processing of the CAR in the QoS policy fails.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">4005</td>
              <td align="left" colspan="1" rowspan="1">Statistic-Fail-No-Res</td>
              <td align="left" colspan="1" rowspan="1">Statistics processing failed due to insufficient statistics resources.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">4006-4999</td>
              <td align="left" colspan="1" rowspan="1">Unassigned </td>
              <td align="left" colspan="1" rowspan="1">Unassigned forwarding table delivery error codes.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">5000-4294967295</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
              <td align="left" colspan="1" rowspan="1"/>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sect-9.6" numbered="true" toc="include" removeInRFC="false" pn="section-8.6">
        <name slugifiedName="name-if-type-values">If-Type Values</name>
        <t pn="section-8.6-1">
   Defined values of the If-Type field in the If-Desc sub-TLV (see
   <xref target="sect-7.3.4" format="default" sectionFormat="of" derivedContent="Section 7.3.4"/>) are as follows:</t>
        <table align="center" pn="table-10">
          <name slugifiedName="name-if-type-values-2">If-Type Values</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Value</th>
              <th align="left" colspan="1" rowspan="1">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">0</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">1</td>
              <td align="left" colspan="1" rowspan="1">Fast Ethernet (FE)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2</td>
              <td align="left" colspan="1" rowspan="1">GE</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">10GE</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">4</td>
              <td align="left" colspan="1" rowspan="1">100GE</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">5</td>
              <td align="left" colspan="1" rowspan="1">Eth-Trunk</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">6</td>
              <td align="left" colspan="1" rowspan="1">Tunnel</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">7</td>
              <td align="left" colspan="1" rowspan="1">VE</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">8-254</td>
              <td align="left" colspan="1" rowspan="1">Unassigned</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">255</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sect-9.7" numbered="true" toc="include" removeInRFC="false" pn="section-8.7">
        <name slugifiedName="name-access-mode-values">Access-Mode Values</name>
        <t pn="section-8.7-1">
   Defined values of the Access-Mode field in the BAS Function TLV (see
   <xref target="sect-7.7" format="default" sectionFormat="of" derivedContent="Section 7.7"/>) are as follows:</t>
        <table align="center" pn="table-11">
          <name slugifiedName="name-access-mode-values-2">Access-Mode Values</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Value</th>
              <th align="left" colspan="1" rowspan="1">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">0</td>
              <td align="left" colspan="1" rowspan="1">Layer 2 subscriber</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">1</td>
              <td align="left" colspan="1" rowspan="1">Layer 3 subscriber</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2</td>
              <td align="left" colspan="1" rowspan="1">Layer 2 leased line</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">Layer 3 leased line</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">4-254</td>
              <td align="left" colspan="1" rowspan="1">Unassigned</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">255</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sect-9.8" numbered="true" toc="include" removeInRFC="false" pn="section-8.8">
        <name slugifiedName="name-access-method-bits">Access Method Bits</name>
        <t pn="section-8.8-1">
   Defined values of the Auth-Method4 and Auth-Method6 fields in the BAS
   Function TLV (see <xref target="sect-7.7" format="default" sectionFormat="of" derivedContent="Section 7.7"/>) are defined as bit fields as follows:</t>
        <table align="center" pn="table-12">
          <name slugifiedName="name-auth-method4-values">Auth-Method4 Values</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Bit</th>
              <th align="left" colspan="1" rowspan="1">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x01</td>
              <td align="left" colspan="1" rowspan="1">PPPoE authentication</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x02</td>
              <td align="left" colspan="1" rowspan="1">DOT1X authentication</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x04</td>
              <td align="left" colspan="1" rowspan="1">Web authentication</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x08</td>
              <td align="left" colspan="1" rowspan="1">Web fast authentication</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x10</td>
              <td align="left" colspan="1" rowspan="1">Binding authentication</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x20</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x40</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x80</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
            </tr>
          </tbody>
        </table>
        <table align="center" pn="table-13">
          <name slugifiedName="name-auth-method6-values">Auth-Method6 Values</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Bit</th>
              <th align="left" colspan="1" rowspan="1">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x01</td>
              <td align="left" colspan="1" rowspan="1">PPPoE authentication</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x02</td>
              <td align="left" colspan="1" rowspan="1">DOT1X authentication</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x04</td>
              <td align="left" colspan="1" rowspan="1">Web authentication</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x08</td>
              <td align="left" colspan="1" rowspan="1">Web fast authentication</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x10</td>
              <td align="left" colspan="1" rowspan="1">Binding authentication</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x20</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x40</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x80</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sect-9.9" numbered="true" toc="include" removeInRFC="false" pn="section-8.9">
        <name slugifiedName="name-route-type-values">Route-Type Values</name>
        <t pn="section-8.9-1">
   Values of the Route-Type field in the IPv4 and IPv6 Routing TLVs (see Sections
   <xref target="sect-7.8.1" format="counter" sectionFormat="of" derivedContent="7.8.1"/> and <xref target="sect-7.8.2" format="counter" sectionFormat="of" derivedContent="7.8.2"/>) defined in this document are as follows:</t>
        <table align="center" pn="table-14">
          <name slugifiedName="name-route-type-values-2">Route-Type Values</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Value</th>
              <th align="left" colspan="1" rowspan="1">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">0</td>
              <td align="left" colspan="1" rowspan="1">User host route</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">1</td>
              <td align="left" colspan="1" rowspan="1">Radius authorization FrameRoute</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2</td>
              <td align="left" colspan="1" rowspan="1">Network segment route</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">Gateway route</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">4</td>
              <td align="left" colspan="1" rowspan="1">Radius authorized IP route</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">5</td>
              <td align="left" colspan="1" rowspan="1">L2TP LNS side user route</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">6-65534</td>
              <td align="left" colspan="1" rowspan="1">Unassigned</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">65535</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sect-9.10" numbered="true" toc="include" removeInRFC="false" pn="section-8.10">
        <name slugifiedName="name-access-type-values">Access-Type Values</name>
        <t pn="section-8.10-1">
   Values of the Access-Type field in the Basic Subscriber TLV (see
   <xref target="sect-7.9.1" format="default" sectionFormat="of" derivedContent="Section 7.9.1"/>) defined in this document are as follows:</t>
        <table align="center" pn="table-15">
          <name slugifiedName="name-access-type-values-2">Access-Type Values</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Value</th>
              <th align="left" colspan="1" rowspan="1">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">0</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">1</td>
              <td align="left" colspan="1" rowspan="1">PPP access (PPP <xref target="RFC1661" format="default" sectionFormat="of" derivedContent="RFC1661"/>)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2</td>
              <td align="left" colspan="1" rowspan="1">PPP over Ethernet over ATM access (PPPoEoA)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">PPP over ATM access (PPPoA <xref target="RFC3336" format="default" sectionFormat="of" derivedContent="RFC3336"/>)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">4</td>
              <td align="left" colspan="1" rowspan="1">PPP over Ethernet access (PPPoE <xref target="RFC2516" format="default" sectionFormat="of" derivedContent="RFC2516"/>)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">5</td>
              <td align="left" colspan="1" rowspan="1">PPPoE over VLAN access (PPPoEoVLAN <xref target="RFC2516" format="default" sectionFormat="of" derivedContent="RFC2516"/>)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">6</td>
              <td align="left" colspan="1" rowspan="1">PPP over LNS access (PPPoLNS)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">7</td>
              <td align="left" colspan="1" rowspan="1">IP over Ethernet DHCP access (IPoE_DHCP)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">8</td>
              <td align="left" colspan="1" rowspan="1">IP over Ethernet EAP authentication access (IPoE_EAP)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">9</td>
              <td align="left" colspan="1" rowspan="1">IP over Ethernet Layer 3 access (IPoE_L3)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">10</td>
              <td align="left" colspan="1" rowspan="1">IP over Ethernet Layer 2 Static access (IPoE_L2_STATIC)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">11</td>
              <td align="left" colspan="1" rowspan="1">Layer 2 Leased Line access (L2_Leased_Line)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">12</td>
              <td align="left" colspan="1" rowspan="1">Layer 2 VPN Leased Line access (L2VPN_Leased_Line)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">13</td>
              <td align="left" colspan="1" rowspan="1">Layer 3 Leased Line access (L3_Leased_Line)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">14</td>
              <td align="left" colspan="1" rowspan="1">Layer 2 Leased line Sub-User access
               (L2_Leased_Line_SUB_USER)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">15</td>
              <td align="left" colspan="1" rowspan="1">L2TP LAC tunnel access (L2TP_LAC)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">16</td>
              <td align="left" colspan="1" rowspan="1">L2TP LNS tunnel access (L2TP_LNS)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">17-254</td>
              <td align="left" colspan="1" rowspan="1">Unassigned</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">255</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="sect-10" numbered="true" toc="include" removeInRFC="false" pn="section-9">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t pn="section-9-1">
   This document has no IANA actions.</t>
    </section>
    <section anchor="sect-11" numbered="true" toc="include" removeInRFC="false" pn="section-10">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t pn="section-10-1">
   The Service, Control, and Management Interfaces between the CP and UP
   might be across the general Internet or other hostile environment.
   The ability of an adversary to block or corrupt messages or introduce
   spurious messages on any one or more of these interfaces would give
   the adversary the ability to stop subscribers from accessing network
   services, disrupt existing subscriber sessions, divert traffic, mess
   up accounting statistics, and generally cause havoc. Damage would not
   necessarily be limited to one or a few subscribers but could disrupt
   routing or deny service to one or more instances of the CP or
   otherwise cause extensive interference. If the adversary knows the
   details of the UP equipment and its forwarding rule capabilities, the
   adversary may be able to cause a copy of most or all user data to be
   sent to an address of the adversary's choosing, thus enabling
   eavesdropping.</t>
      <t pn="section-10-2">
   Thus, appropriate protections <bcp14>MUST</bcp14> be implemented to provide
   integrity, authenticity, and secrecy of traffic over those
   interfaces. Whether such protection is used is the decision of the network operator.
   See <xref target="RFC6241" format="default" sectionFormat="of" derivedContent="RFC6241"/> for Mi/NETCONF security.
   Security on the Si is dependent on the tunneling
   protocol used, which is out of scope for this document.  Security for
   the Ci, over which S-CUSP flows, is
   further discussed below.</t>
      <t pn="section-10-3">
   S-CUSP messages do not provide security. Thus, if these messages are
   exchanged in an environment where security is a concern, that
   security <bcp14>MUST</bcp14> be provided by another protocol such as TLS 1.3
   <xref target="RFC8446" format="default" sectionFormat="of" derivedContent="RFC8446"/> or IPsec. TLS 1.3 is the mandatory-to-implement protocol
   for interoperability. The use of a particular security protocol on
   the Ci is determined by configuration. Such security
   protocols need not always be used, and lesser security precautions
   might be appropriate because, in some cases, the communication
   between the CP and UP is in a benign environment.</t>
    </section>
  </middle>
  <back>
    <displayreference target="RFC0020" to="RFC20"/>
    <displayreference target="RFC0793" to="RFC793"/>
    <displayreference target="IEEE-802.1Q" to="802.1Q"/>
    <references pn="section-11">
      <name slugifiedName="name-references">References</name>
      <references pn="section-11.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="RFC0020" target="https://www.rfc-editor.org/info/rfc20" quoteTitle="true" derivedAnchor="RFC20">
          <front>
            <title>ASCII format for network interchange</title>
            <author initials="V.G." surname="Cerf" fullname="V.G. Cerf">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1969" month="October"/>
          </front>
          <seriesInfo name="STD" value="80"/>
          <seriesInfo name="RFC" value="20"/>
          <seriesInfo name="DOI" value="10.17487/RFC0020"/>
        </reference>
        <reference anchor="RFC0793" target="https://www.rfc-editor.org/info/rfc793" quoteTitle="true" derivedAnchor="RFC793">
          <front>
            <title>Transmission Control Protocol</title>
            <author initials="J." surname="Postel" fullname="J. Postel">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1981" month="September"/>
          </front>
          <seriesInfo name="STD" value="7"/>
          <seriesInfo name="RFC" value="793"/>
          <seriesInfo name="DOI" value="10.17487/RFC0793"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1997" month="March"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC2661" target="https://www.rfc-editor.org/info/rfc2661" quoteTitle="true" derivedAnchor="RFC2661">
          <front>
            <title>Layer Two Tunneling Protocol "L2TP"</title>
            <author initials="W." surname="Townsley" fullname="W. Townsley">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Valencia" fullname="A. Valencia">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Rubens" fullname="A. Rubens">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="G." surname="Pall" fullname="G. Pall">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="G." surname="Zorn" fullname="G. Zorn">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="B." surname="Palter" fullname="B. Palter">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1999" month="August"/>
            <abstract>
              <t>This document describes the Layer Two Tunneling Protocol (L2TP). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2661"/>
          <seriesInfo name="DOI" value="10.17487/RFC2661"/>
        </reference>
        <reference anchor="RFC2865" target="https://www.rfc-editor.org/info/rfc2865" quoteTitle="true" derivedAnchor="RFC2865">
          <front>
            <title>Remote Authentication Dial In User Service (RADIUS)</title>
            <author initials="C." surname="Rigney" fullname="C. Rigney">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Willens" fullname="S. Willens">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Rubens" fullname="A. Rubens">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="W." surname="Simpson" fullname="W. Simpson">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2000" month="June"/>
            <abstract>
              <t>This document describes a protocol for carrying authentication, authorization, and configuration information between a Network Access Server which desires to authenticate its links and a shared Authentication Server.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2865"/>
          <seriesInfo name="DOI" value="10.17487/RFC2865"/>
        </reference>
        <reference anchor="RFC6241" target="https://www.rfc-editor.org/info/rfc6241" quoteTitle="true" derivedAnchor="RFC6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author initials="R." surname="Enns" fullname="R. Enns" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Bjorklund" fullname="M. Bjorklund" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Schoenwaelder" fullname="J. Schoenwaelder" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Bierman" fullname="A. Bierman" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2011" month="June"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices.  It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages.  The NETCONF protocol operations are realized as remote procedure calls (RPCs).  This document obsoletes RFC 4741.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="May"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references pn="section-11.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="IEEE-802.1Q" quoteTitle="true" target="https://doi.org/10.1109/IEEESTD.2018.8403927" derivedAnchor="802.1Q">
          <front>
            <title>IEEE Standard for Local and metropolitan area networks--Bridges and Bridged Networks</title>
            <author>
              <organization showOnFrontPage="true">IEEE</organization>
            </author>
            <date month="July" year="2018"/>
          </front>
          <seriesInfo name="IEEE" value="802.1Q-2018"/>
          <seriesInfo name="DOI" value="10.1109/IEEESTD.2018.8403927"/>
        </reference>
        <reference anchor="RFC1661" target="https://www.rfc-editor.org/info/rfc1661" quoteTitle="true" derivedAnchor="RFC1661">
          <front>
            <title>The Point-to-Point Protocol (PPP)</title>
            <author initials="W." surname="Simpson" fullname="W. Simpson" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1994" month="July"/>
            <abstract>
              <t>This document defines the PPP organization and methodology, and the PPP encapsulation, together with an extensible option negotiation mechanism which is able to negotiate a rich assortment of configuration parameters and provides additional management functions.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="51"/>
          <seriesInfo name="RFC" value="1661"/>
          <seriesInfo name="DOI" value="10.17487/RFC1661"/>
        </reference>
        <reference anchor="RFC2131" target="https://www.rfc-editor.org/info/rfc2131" quoteTitle="true" derivedAnchor="RFC2131">
          <front>
            <title>Dynamic Host Configuration Protocol</title>
            <author initials="R." surname="Droms" fullname="R. Droms">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1997" month="March"/>
            <abstract>
              <t>The Dynamic Host Configuration Protocol (DHCP) provides a framework for passing configuration information to hosts on a TCPIP network.  DHCP is based on the Bootstrap Protocol (BOOTP), adding the capability of automatic allocation of reusable network addresses and additional configuration options.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2131"/>
          <seriesInfo name="DOI" value="10.17487/RFC2131"/>
        </reference>
        <reference anchor="RFC2516" target="https://www.rfc-editor.org/info/rfc2516" quoteTitle="true" derivedAnchor="RFC2516">
          <front>
            <title>A Method for Transmitting PPP Over Ethernet (PPPoE)</title>
            <author initials="L." surname="Mamakos" fullname="L. Mamakos">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K." surname="Lidl" fullname="K. Lidl">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Evarts" fullname="J. Evarts">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Carrel" fullname="D. Carrel">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Simone" fullname="D. Simone">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Wheeler" fullname="R. Wheeler">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1999" month="February"/>
            <abstract>
              <t>This document describes how to build PPP sessions and encapsulate PPP packets over Ethernet. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2516"/>
          <seriesInfo name="DOI" value="10.17487/RFC2516"/>
        </reference>
        <reference anchor="RFC2698" target="https://www.rfc-editor.org/info/rfc2698" quoteTitle="true" derivedAnchor="RFC2698">
          <front>
            <title>A Two Rate Three Color Marker</title>
            <author initials="J." surname="Heinanen" fullname="J. Heinanen">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Guerin" fullname="R. Guerin">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1999" month="September"/>
            <abstract>
              <t>This document defines a Two Rate Three Color Marker (trTCM), which can be used as a component in a Diffserv traffic conditioner.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2698"/>
          <seriesInfo name="DOI" value="10.17487/RFC2698"/>
        </reference>
        <reference anchor="RFC3022" target="https://www.rfc-editor.org/info/rfc3022" quoteTitle="true" derivedAnchor="RFC3022">
          <front>
            <title>Traditional IP Network Address Translator (Traditional NAT)</title>
            <author initials="P." surname="Srisuresh" fullname="P. Srisuresh">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K." surname="Egevang" fullname="K. Egevang">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2001" month="January"/>
            <abstract>
              <t>The NAT operation described in this document extends address translation introduced in RFC 1631 and includes a new type of network address and TCP/UDP port translation.  In addition, this document corrects the Checksum adjustment algorithm published in RFC 1631 and attempts to discuss NAT operation and limitations in detail.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3022"/>
          <seriesInfo name="DOI" value="10.17487/RFC3022"/>
        </reference>
        <reference anchor="RFC3336" target="https://www.rfc-editor.org/info/rfc3336" quoteTitle="true" derivedAnchor="RFC3336">
          <front>
            <title>PPP Over Asynchronous Transfer Mode Adaptation Layer 2 (AAL2)</title>
            <author initials="B." surname="Thompson" fullname="B. Thompson">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="T." surname="Koren" fullname="T. Koren">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="B." surname="Buffam" fullname="B. Buffam">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2002" month="December"/>
          </front>
          <seriesInfo name="RFC" value="3336"/>
          <seriesInfo name="DOI" value="10.17487/RFC3336"/>
        </reference>
        <reference anchor="RFC5511" target="https://www.rfc-editor.org/info/rfc5511" quoteTitle="true" derivedAnchor="RFC5511">
          <front>
            <title>Routing Backus-Naur Form (RBNF): A Syntax Used to Form Encoding Rules in Various Routing Protocol Specifications</title>
            <author initials="A." surname="Farrel" fullname="A. Farrel">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2009" month="April"/>
            <abstract>
              <t>Several protocols have been specified in the Routing Area of the IETF using a common variant of the Backus-Naur Form (BNF) of representing message syntax.  However, there is no formal definition of this version of BNF.</t>
              <t>There is value in using the same variant of BNF for the set of protocols that are commonly used together.  This reduces confusion and simplifies implementation.</t>
              <t>Updating existing documents to use some other variant of BNF that is already formally documented would be a substantial piece of work.</t>
              <t>This document provides a formal definition of the variant of BNF that has been used (that we call Routing BNF) and makes it available for use by new protocols.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5511"/>
          <seriesInfo name="DOI" value="10.17487/RFC5511"/>
        </reference>
        <reference anchor="RFC7042" target="https://www.rfc-editor.org/info/rfc7042" quoteTitle="true" derivedAnchor="RFC7042">
          <front>
            <title>IANA Considerations and IETF Protocol and Documentation Usage for IEEE 802 Parameters</title>
            <author initials="D." surname="Eastlake 3rd" fullname="D. Eastlake 3rd">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Abley" fullname="J. Abley">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2013" month="October"/>
            <abstract>
              <t>Some IETF protocols make use of Ethernet frame formats and IEEE 802 parameters.  This document discusses several uses of such parameters in IETF protocols, specifies IANA considerations for assignment of points under the IANA OUI (Organizationally Unique Identifier), and provides some values for use in documentation. This document obsoletes RFC 5342.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="141"/>
          <seriesInfo name="RFC" value="7042"/>
          <seriesInfo name="DOI" value="10.17487/RFC7042"/>
        </reference>
        <reference anchor="RFC7348" target="https://www.rfc-editor.org/info/rfc7348" quoteTitle="true" derivedAnchor="RFC7348">
          <front>
            <title>Virtual eXtensible Local Area Network (VXLAN): A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks</title>
            <author initials="M." surname="Mahalingam" fullname="M. Mahalingam">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Dutt" fullname="D. Dutt">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K." surname="Duda" fullname="K. Duda">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P." surname="Agarwal" fullname="P. Agarwal">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="L." surname="Kreeger" fullname="L. Kreeger">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="T." surname="Sridhar" fullname="T. Sridhar">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Bursell" fullname="M. Bursell">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Wright" fullname="C. Wright">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2014" month="August"/>
            <abstract>
              <t>This document describes Virtual eXtensible Local Area Network (VXLAN), which is used to address the need for overlay networks within virtualized data centers accommodating multiple tenants.  The scheme and the related protocols can be used in networks for cloud service providers and enterprise data centers.  This memo documents the deployed VXLAN protocol for the benefit of the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7348"/>
          <seriesInfo name="DOI" value="10.17487/RFC7348"/>
        </reference>
        <reference anchor="RFC8446" target="https://www.rfc-editor.org/info/rfc8446" quoteTitle="true" derivedAnchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author initials="E." surname="Rescorla" fullname="E. Rescorla">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2018" month="August"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol.  TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961.  This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="TR-384" quoteTitle="true" derivedAnchor="TR-384">
          <front>
            <title>Cloud Central Office Reference Architectural Framework</title>
            <seriesInfo name="BBF" value="TR-384"/>
            <author>
              <organization showOnFrontPage="true">Broadband Forum</organization>
            </author>
            <date month="January" year="2018"/>
          </front>
        </reference>
        <reference anchor="WT-459" quoteTitle="true" derivedAnchor="WT-459">
          <front>
            <title>Control and User Plane Separation for a Disaggregated BNG</title>
            <seriesInfo name="BBF" value="WT-459"/>
            <author>
              <organization showOnFrontPage="true">Broadband Forum</organization>
            </author>
            <date year="2019"/>
          </front>
        </reference>
      </references>
    </references>
    <section numbered="false" anchor="acknowledgements" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t pn="section-appendix.a-1">
   The helpful comments and suggestions from the following individuals are hereby
   acknowledged:

      </t>
      <ul spacing="normal" bare="false" empty="false" pn="section-appendix.a-2">
        <li pn="section-appendix.a-2.1">
          <t pn="section-appendix.a-2.1.1"><contact fullname="Loa Andersson"/></t>
        </li>
        <li pn="section-appendix.a-2.2">
          <t pn="section-appendix.a-2.2.1"><contact fullname="Greg Mirsky"/></t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="contributors" toc="include" removeInRFC="false" pn="section-appendix.b">
      <name slugifiedName="name-contributors">Contributors</name>
      <contact fullname="Zhenqiang Li">
        <organization showOnFrontPage="true">China Mobile</organization>
        <address>
          <postal>
            <street>32 Xuanwumen West Ave</street>
            <cityarea>Xicheng District</cityarea>
            <city>Beijing</city>
            <region/>
            <code>100053</code>
            <country>China</country>
          </postal>
          <email>lizhenqiang@chinamobile.com</email>
        </address>
      </contact>
      <contact fullname="Mach(Guoyi) Chen">
        <organization showOnFrontPage="true">Huawei Technologies</organization>
        <address>
          <postal>
            <street>Huawei Bldg., No. 156 Beiqing Road</street>
            <city>Beijing</city>
            <region/>
            <code>100095</code>
            <country>China</country>
          </postal>
          <email>mach.chen@huawei.com</email>
        </address>
      </contact>
      <contact fullname="Zhouyi Yu">
        <organization showOnFrontPage="true">Huawei Technologies</organization>
        <address>
          <postal>
            <street/>
            <city/>
            <region/>
            <code/>
            <country/>
          </postal>
          <email>yuzhouyi@huawei.com</email>
        </address>
      </contact>
      <contact fullname="Chengguang Niu">
        <organization showOnFrontPage="true">Huawei Technologies</organization>
        <address>
          <postal>
            <street/>
            <city/>
            <region/>
            <code/>
            <country/>
          </postal>
          <email>chengguang.niu@huawei.com</email>
        </address>
      </contact>
      <contact fullname="Zitao Wang">
        <organization showOnFrontPage="true">Huawei Technologies</organization>
        <address>
          <postal>
            <street/>
            <city/>
            <region/>
            <code/>
            <country/>
          </postal>
          <email>wangzitao@huawei.com</email>
        </address>
      </contact>
      <contact fullname="Jun Song">
        <organization showOnFrontPage="true">Huawei Technologies</organization>
        <address>
          <postal>
            <street/>
            <city/>
            <region/>
            <code/>
            <country/>
          </postal>
          <email>song.jun@huawei.com</email>
        </address>
      </contact>
      <contact fullname="Dan Meng">
        <organization showOnFrontPage="true">H3C Technologies</organization>
        <address>
          <postal>
            <extaddr>No. 1 Lixing Center</extaddr>
            <street>No. 8 Guangxun South Street</street>
            <cityarea>Chaoyang District</cityarea>
            <city>Beijing</city>
            <region/>
            <code>100102</code>
            <country>China</country>
          </postal>
          <email>mengdan@h3c.com</email>
        </address>
      </contact>
      <contact fullname="Hanlei Liu">
        <organization showOnFrontPage="true">H3C Technologies</organization>
        <address>
          <postal>
            <extaddr>No. 1 Lixing Center</extaddr>
            <street>No. 8 Guangxun South Street</street>
            <cityarea>Chaoyang District</cityarea>
            <city>Beijing</city>
            <region/>
            <code>100102</code>
            <country>China</country>
          </postal>
          <email>hanlei_liu@h3c.com</email>
        </address>
      </contact>
      <contact fullname="Victor Lopez">
        <organization showOnFrontPage="true">Telefonica</organization>
        <address>
          <postal>
            <street/>
            <city/>
            <region/>
            <code/>
            <country>Spain</country>
          </postal>
          <email>victor.lopezalvarez@telefonica.com</email>
        </address>
      </contact>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.c">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Shujun Hu" initials="S." surname="Hu">
        <organization showOnFrontPage="true">China Mobile</organization>
        <address>
          <postal>
            <street>32 Xuanwumen West Ave</street>
            <cityarea>Xicheng District</cityarea>
            <city>Beijing</city>
            <code>100053</code>
            <country>China</country>
          </postal>
          <email>hushujun@chinamobile.com</email>
        </address>
      </author>
      <author fullname="Donald Eastlake 3rd" initials="D." surname="Eastlake 3rd">
        <organization showOnFrontPage="true">Futurewei Technologies</organization>
        <address>
          <postal>
            <street>2386 Panoramic Circle</street>
            <city>Apopka</city>
            <region>FL</region>
            <code>32703</code>
            <country>US</country>
          </postal>
          <phone>+1-508-333-2270</phone>
          <email>d3e3e3@gmail.com</email>
        </address>
      </author>
      <author fullname="Fengwei Qin" initials="F." surname="Qin">
        <organization showOnFrontPage="true">China Mobile</organization>
        <address>
          <postal>
            <street>32 Xuanwumen West Ave</street>
            <cityarea>Xicheng District</cityarea>
            <city>Beijing</city>
            <code>100053</code>
            <country>China</country>
          </postal>
          <email>qinfengwei@chinamobile.com</email>
        </address>
      </author>
      <author fullname="Tee Mong Chua" initials="T." surname="Chua">
        <organization abbrev="Singapore Telecommunications" showOnFrontPage="true">Singapore Telecommunications Limited</organization>
        <address>
          <postal>
            <street>31 Exeter Road, #05-04 Comcentre Podium Block</street>
            <city>Singapore</city>
            <code>239732</code>
            <country>Singapore</country>
          </postal>
          <email>teemong@singtel.com</email>
        </address>
      </author>
      <author fullname="Daniel Huang" initials="D." surname="Huang">
        <organization showOnFrontPage="true">ZTE</organization>
        <address>
          <email>huang.guangping@zte.com.cn</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
