Difference between revisions of "RFC8772"

From RFC-Wiki
(Created page with " Independent Submission S. Hu Request for Comments: 8772 China Mobile Category: Informationa...")
 
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
 

 

 
 
  
 
Independent Submission                                            S. Hu
 
Independent Submission                                            S. Hu
Line 7: Line 5:
 
Category: Informational                                  D. Eastlake 3rd
 
Category: Informational                                  D. Eastlake 3rd
 
ISSN: 2070-1721                                  Futurewei Technologies
 
ISSN: 2070-1721                                  Futurewei Technologies
                                                                  F. Qin
+
                                                              F. Qin
                                                            China Mobile
+
                                                        China Mobile
                                                                T. Chua
+
                                                              T. Chua
                                            Singapore Telecommunications
+
                                        Singapore Telecommunications
                                                                D. Huang
+
                                                            D. Huang
                                                                    ZTE
+
                                                                  ZTE
                                                                May 2020
+
                                                            May 2020
  
 +
The China Mobile, Huawei, and ZTE Broadband Network Gateway (BNG) Simple
 +
      Control and User Plane Separation Protocol (S-CUSP)
  
The China Mobile, Huawei, and ZTE Broadband Network Gateway (BNG) Simple
+
'''Abstract'''
          Control and User Plane Separation Protocol (S-CUSP)
 
  
Abstract
+
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.
  
  A Broadband Network Gateway (BNG) in a fixed wireline access network
+
This document is not an IETF standard and does not have IETF
  is an Ethernet-centric IP edge router and the aggregation point for
+
consensusS-CUSP is presented here to make its specification
  subscriber trafficControl and User Plane Separation (CUPS) for
+
conveniently available to the Internet community to enable diagnosis
  such a BNG improves flexibility and scalability but requires various
+
and interoperability.
  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.
 
  
  This document is not an IETF standard and does not have IETF
+
'''Status of This Memo'''
  consensus.  S-CUSP is presented here to make its specification
 
  conveniently available to the Internet community to enable diagnosis
 
  and interoperability.
 
  
Status of This Memo
+
This document is not an Internet Standards Track specification; it is
 +
published for informational purposes.
  
  This document is not an Internet Standards Track specification; it is
+
This is a contribution to the RFC Series, independently of any other
  published for informational purposes.
+
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 [[RFC7841|RFC 7841]].
  
  This is a contribution to the RFC Series, independently of any other
+
Information about the current status of this document, any errata,
  RFC stream.  The RFC Editor has chosen to publish this document at
+
and how to provide feedback on it may be obtained at
  its discretion and makes no statement about its value for
+
https://www.rfc-editor.org/info/rfc8772.
  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.
 
  
  Information about the current status of this document, any errata,
+
'''Copyright Notice'''
  and how to provide feedback on it may be obtained at
 
  https://www.rfc-editor.org/info/rfc8772.
 
  
Copyright Notice
+
Copyright (c) 2020 IETF Trust and the persons identified as the
 +
document authors.  All rights reserved.
  
  Copyright (c) 2020 IETF Trust and the persons identified as the
+
This document is subject to [[BCP78|BCP 78]] and the IETF Trust's Legal
  document authorsAll rights reserved.
+
Provisions Relating to IETF Documents
 +
(https://trustee.ietf.org/license-info) in effect on the date of
 +
publication of this document.  Please review these documents
 +
carefully, as they describe your rights and restrictions with respect
 +
to this document.
  
  This document is subject to BCP 78 and the IETF Trust's Legal
+
1.  Introduction
  Provisions Relating to IETF Documents
+
2.  Terminology
  (https://trustee.ietf.org/license-info) in effect on the date of
+
  2.1.  Implementation Requirement Keywords
  publication of this documentPlease review these documents
+
  2.2.  Terms
  carefully, as they describe your rights and restrictions with respect
+
3.  BNG CUPS Overview
  to this document.
+
  3.1.  BNG CUPS Motivation
 +
  3.2.  BNG CUPS Architecture Overview
 +
  3.3.  BNG CUPS Interfaces
 +
    3.3.1.  Service Interface (Si)
 +
    3.3.2.  Control Interface (Ci)
 +
    3.3.3.  Management Interface (Mi)
 +
  3.4.  BNG CUPS Procedure Overview
 +
4.  S-CUSP Protocol Overview
 +
  4.1.  Control Channel Procedures
 +
    4.1.1.  S-CUSP Session Establishment
 +
    4.1.2.  Keepalive Timer and DeadTimer
 +
  4.2.  Node Procedures
 +
    4.2.1.  UP Resource Report
 +
    4.2.2.  Update BAS Function on Access Interface
 +
    4.2.3.  Update Network Routing
 +
    4.2.4.  CGN Public IP Address Allocation
 +
    4.2.5.  Data Synchronization between the CP and UP
 +
  4.3.  Subscriber Session Procedures
 +
    4.3.1.  Create Subscriber Session
 +
    4.3.2.  Update Subscriber Session
 +
    4.3.3.  Delete Subscriber Session
 +
    4.3.4.  Subscriber Session Events Report
 +
5.  S-CUSP Call Flows
 +
  5.1.  IPoE
 +
    5.1.1.  DHCPv4 Access
 +
    5.1.2.  DHCPv6 Access
 +
    5.1.3.  IPv6 Stateless Address Autoconfiguration (SLAAC) Access
 +
    5.1.4.  DHCPv6 and SLAAC Access
 +
    5.1.5.  DHCP Dual-Stack Access
 +
    5.1.6.  L2 Static Subscriber Access
 +
  5.2.  PPPoE
 +
    5.2.1.  IPv4 PPPoE Access
 +
    5.2.2.  IPv6 PPPoE Access
 +
    5.2.3.  PPPoE Dual-Stack Access
 +
  5.3.  WLAN Access
 +
  5.4.  L2TP
 +
    5.4.1.  L2TP LAC Access
 +
    5.4.2.  L2TP LNS IPv4 Access
 +
    5.4.3.  L2TP LNS IPv6 Access
 +
  5.5.  CGN (Carrier Grade NAT)
 +
  5.6.  L3 Leased Line Access
 +
    5.6.1.  Web Authentication
 +
    5.6.2.  User Traffic Trigger
 +
  5.7.  Multicast Service Access
 +
6.  S-CUSP Message Formats
 +
  6.1.  Common Message Header
 +
  6.2.  Control Messages
 +
    6.2.1.  Hello Message
 +
    6.2.2.  Keepalive Message
 +
    6.2.3.  Sync_Request Message
 +
    6.2.4.  Sync_Begin Message
 +
    6.2.5.  Sync_Data Message
 +
    6.2.6.  Sync_End Message
 +
    6.2.7.  Update_Request Message
 +
    6.2.8.  Update_Response Message
 +
  6.3.  Event Message
 +
  6.4.  Report Message
 +
  6.5.  CGN Messages
 +
    6.5.1.  Addr_Allocation_Req Message
 +
    6.5.2.  Addr_Allocation_Ack Message
 +
    6.5.3.  Addr_Renew_Req Message
 +
    6.5.4.  Addr_Renew_Ack Message
 +
    6.5.5.  Addr_Release_Req Message
 +
    6.5.6.  Addr_Release_Ack Message
 +
  6.6.  Vendor Message
 +
  6.7.  Error Message
 +
7.  S-CUSP TLVs and Sub-TLVs
 +
  7.1.  Common TLV Header
 +
  7.2.  Basic Data Fields
 +
  7.3.  Sub-TLV Format and Sub-TLVs
 +
    7.3.1.  Name Sub-TLVs
 +
    7.3.2.  Ingress-CAR Sub-TLV
 +
    7.3.3.  Egress-CAR Sub-TLV
 +
    7.3.4.  If-Desc Sub-TLV
 +
    7.3.5.  IPv6 Address List Sub-TLV
 +
    7.3.6.  Vendor Sub-TLV
 +
  7.4.  Hello TLV
 +
  7.5.  Keepalive TLV
 +
  7.6.  Error Information TLV
 +
  7.7.  BAS Function TLV
 +
  7.8.  Routing TLVs
 +
    7.8.1.  IPv4 Routing TLV
 +
    7.8.2.  IPv6 Routing TLV
 +
  7.9.  Subscriber TLVs
 +
    7.9.1.  Basic Subscriber TLV
 +
    7.9.2.  PPP Subscriber TLV
 +
    7.9.3.  IPv4 Subscriber TLV
 +
    7.9.4.  IPv6 Subscriber TLV
 +
    7.9.5.  IPv4 Static Subscriber Detect TLV
 +
    7.9.6.  IPv6 Static Subscriber Detect TLV
 +
    7.9.7.  L2TP-LAC Subscriber TLV
 +
    7.9.8.  L2TP-LNS Subscriber TLV
 +
    7.9.9.  L2TP-LAC Tunnel TLV
 +
    7.9.10. L2TP-LNS Tunnel TLV
 +
    7.9.11. Update Response TLV
 +
    7.9.12. Subscriber Policy TLV
 +
    7.9.13. Subscriber CGN Port Range TLV
 +
  7.10. Device Status TLVs
 +
    7.10.1.  Interface Status TLV
 +
    7.10.2.  Board Status TLV
 +
  7.11. CGN TLVs
 +
    7.11.1.  Address Allocation Request TLV
 +
    7.11.2.  Address Allocation Response TLV
 +
    7.11.3.  Address Renewal Request TLV
 +
    7.11.4.  Address Renewal Response TLV
 +
    7.11.5.  Address Release Request TLV
 +
    7.11.6.  Address Release Response TLV
 +
  7.12. Event TLVs
 +
    7.12.1.  Subscriber Traffic Statistics TLV
 +
    7.12.2.  Subscriber Detection Result TLV
 +
  7.13. Vendor TLV
 +
8.  Tables of S-CUSP Codepoints
 +
  8.1.  Message Types
 +
  8.2.  TLV Types
 +
  8.3.  TLV Operation Codes
 +
  8.4.  Sub-TLV Types
 +
  8.5.  Error Codes
 +
  8.6.  If-Type Values
 +
  8.7.  Access-Mode Values
 +
  8.8.  Access Method Bits
 +
  8.9.  Route-Type Values
 +
  8.10. Access-Type Values
 +
9IANA Considerations
 +
10. Security Considerations
 +
11. References
 +
  11.1.  Normative References
 +
  11.2.  Informative References
 +
Acknowledgements
 +
Contributors
 +
Authors' Addresses
  
Table of Contents
+
== Introduction ==
  
  1.  Introduction
+
A Broadband Network Gateway (BNG) in a fixed wireline access network
  2.  Terminology
+
is an Ethernet-centric IP edge router and the aggregation point for
    2.1.  Implementation Requirement Keywords
+
subscriber trafficTo provide centralized session management,
    2.2.  Terms
+
flexible address allocation, high scalability for subscriber
  3.  BNG CUPS Overview
+
management capacity, and cost-efficient redundancy, the CU-separated
    3.1.  BNG CUPS Motivation
+
(CP/UP-separated) BNG framework is described in a technical report
    3.2.  BNG CUPS Architecture Overview
+
[TR-384] from the Broadband Forum (BBF).  The CU-separated service
    3.3.  BNG CUPS Interfaces
+
CP, which is responsible for user access authentication and setting
      3.3.1.  Service Interface (Si)
+
forwarding entries in UPs, can be virtualized and centralizedThe
      3.3.2.  Control Interface (Ci)
+
routing control and forwarding plane, i.e., the BNG UP (local), can
      3.3.3Management Interface (Mi)
+
be distributed across the infrastructureOther structures can also
    3.4.  BNG CUPS Procedure Overview
+
be supported, such as the CP and UP being virtual or both being
  4.  S-CUSP Protocol Overview
+
physical.
    4.1.  Control Channel Procedures
 
      4.1.1.  S-CUSP Session Establishment
 
      4.1.2.  Keepalive Timer and DeadTimer
 
    4.2.  Node Procedures
 
      4.2.1.  UP Resource Report
 
      4.2.2.  Update BAS Function on Access Interface
 
      4.2.3.  Update Network Routing
 
      4.2.4.  CGN Public IP Address Allocation
 
      4.2.5.  Data Synchronization between the CP and UP
 
    4.3.  Subscriber Session Procedures
 
      4.3.1.  Create Subscriber Session
 
      4.3.2.  Update Subscriber Session
 
      4.3.3.  Delete Subscriber Session
 
      4.3.4.  Subscriber Session Events Report
 
  5.  S-CUSP Call Flows
 
    5.1.  IPoE
 
      5.1.1.  DHCPv4 Access
 
      5.1.2.  DHCPv6 Access
 
      5.1.3.  IPv6 Stateless Address Autoconfiguration (SLAAC) Access
 
      5.1.4.  DHCPv6 and SLAAC Access
 
      5.1.5.  DHCP Dual-Stack Access
 
      5.1.6.  L2 Static Subscriber Access
 
    5.2.  PPPoE
 
      5.2.1.  IPv4 PPPoE Access
 
      5.2.2.  IPv6 PPPoE Access
 
      5.2.3.  PPPoE Dual-Stack Access
 
    5.3.  WLAN Access
 
    5.4.  L2TP
 
      5.4.1.  L2TP LAC Access
 
      5.4.2.  L2TP LNS IPv4 Access
 
      5.4.3.  L2TP LNS IPv6 Access
 
    5.5.  CGN (Carrier Grade NAT)
 
    5.6L3 Leased Line Access
 
      5.6.1.  Web Authentication
 
      5.6.2.  User Traffic Trigger
 
    5.7.  Multicast Service Access
 
  6.  S-CUSP Message Formats
 
    6.1.  Common Message Header
 
    6.2.  Control Messages
 
      6.2.1.  Hello Message
 
      6.2.2.  Keepalive Message
 
      6.2.3.  Sync_Request Message
 
      6.2.4.  Sync_Begin Message
 
      6.2.5.  Sync_Data Message
 
      6.2.6.  Sync_End Message
 
      6.2.7.  Update_Request Message
 
      6.2.8.  Update_Response Message
 
    6.3.  Event Message
 
    6.4.  Report Message
 
    6.5.  CGN Messages
 
      6.5.1.  Addr_Allocation_Req Message
 
      6.5.2.  Addr_Allocation_Ack Message
 
      6.5.3.  Addr_Renew_Req Message
 
      6.5.4.  Addr_Renew_Ack Message
 
      6.5.5.  Addr_Release_Req Message
 
      6.5.6Addr_Release_Ack Message
 
    6.6.  Vendor Message
 
    6.7.  Error Message
 
  7.  S-CUSP TLVs and Sub-TLVs
 
    7.1. Common TLV Header
 
    7.2Basic Data Fields
 
    7.3.  Sub-TLV Format and Sub-TLVs
 
      7.3.1.  Name Sub-TLVs
 
      7.3.2.  Ingress-CAR Sub-TLV
 
      7.3.3.  Egress-CAR Sub-TLV
 
      7.3.4.  If-Desc Sub-TLV
 
      7.3.5.  IPv6 Address List Sub-TLV
 
      7.3.6.  Vendor Sub-TLV
 
    7.4.  Hello TLV
 
    7.5.  Keepalive TLV
 
    7.6.  Error Information TLV
 
    7.7.  BAS Function TLV
 
    7.8.  Routing TLVs
 
      7.8.1.  IPv4 Routing TLV
 
      7.8.2.  IPv6 Routing TLV
 
    7.9.  Subscriber TLVs
 
      7.9.1.  Basic Subscriber TLV
 
      7.9.2.  PPP Subscriber TLV
 
      7.9.3.  IPv4 Subscriber TLV
 
      7.9.4.  IPv6 Subscriber TLV
 
      7.9.5.  IPv4 Static Subscriber Detect TLV
 
      7.9.6.  IPv6 Static Subscriber Detect TLV
 
      7.9.7.  L2TP-LAC Subscriber TLV
 
      7.9.8.  L2TP-LNS Subscriber TLV
 
      7.9.9.  L2TP-LAC Tunnel TLV
 
      7.9.10. L2TP-LNS Tunnel TLV
 
      7.9.11. Update Response TLV
 
      7.9.12. Subscriber Policy TLV
 
      7.9.13. Subscriber CGN Port Range TLV
 
    7.10. Device Status TLVs
 
      7.10.1.  Interface Status TLV
 
      7.10.2.  Board Status TLV
 
    7.11. CGN TLVs
 
      7.11.1.  Address Allocation Request TLV
 
      7.11.2.  Address Allocation Response TLV
 
      7.11.3.  Address Renewal Request TLV
 
      7.11.4.  Address Renewal Response TLV
 
      7.11.5.  Address Release Request TLV
 
      7.11.6.  Address Release Response TLV
 
    7.12. Event TLVs
 
      7.12.1.  Subscriber Traffic Statistics TLV
 
      7.12.2.  Subscriber Detection Result TLV
 
    7.13. Vendor TLV
 
  8.  Tables of S-CUSP Codepoints
 
    8.1.  Message Types
 
    8.2.  TLV Types
 
    8.3.  TLV Operation Codes
 
    8.4.  Sub-TLV Types
 
    8.5.  Error Codes
 
    8.6.  If-Type Values
 
    8.7.  Access-Mode Values
 
    8.8.  Access Method Bits
 
    8.9.  Route-Type Values
 
    8.10. Access-Type Values
 
  9.  IANA Considerations
 
  10. Security Considerations
 
  11. References
 
    11.1.  Normative References
 
    11.2.  Informative References
 
  Acknowledgements
 
  Contributors
 
  Authors' Addresses
 
  
1. Introduction
+
Note: In this document, the terms "user" and "subscriber" are used
 +
interchangeably.
  
  A Broadband Network Gateway (BNG) in a fixed wireline access network
+
This document specifies the Simple CU Separation Protocol (S-CUSP)
  is an Ethernet-centric IP edge router and the aggregation point for
+
for communications over the BNG control channel between a BNG CP and
  subscriber traffic.  To provide centralized session management,
+
a set of UPsS-CUSP is designed to be flexible and extensible so as
  flexible address allocation, high scalability for subscriber
+
to allow for easy addition of messages and data items, should further
  management capacity, and cost-efficient redundancy, the CU-separated
+
requirements be expressed in the future.
  (CP/UP-separated) BNG framework is described in a technical report
 
  [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.
 
  
  Note: In this document, the terms "user" and "subscriber" are used
+
This document is not an IETF standard and does not have IETF
  interchangeably.
+
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.
  
  This document specifies the Simple CU Separation Protocol (S-CUSP)
+
At the time of writing this document, the BBF is working to produce
  for communications over the BNG control channel between a BNG CP and
+
[WT-459], which will describe an architecture and requirements for a
  a set of UPsS-CUSP is designed to be flexible and extensible so as
+
CP and UP separation of a disaggregated BNGFuture work may attempt
  to allow for easy addition of messages and data items, should further
+
to show how the protocol described in this document addresses those
  requirements be expressed in the future.
+
requirements and may modify this specification to handle unaddressed
 +
requirements.
  
  This document is not an IETF standard and does not have IETF
+
== Terminology ==
  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.
 
  
  At the time of writing this document, the BBF is working to produce
+
This section specifies implementation requirement keywords and terms
  [WT-459], which will describe an architecture and requirements for a
+
used in this document.  S-CUSP messages are described in this
  CP and UP separation of a disaggregated BNGFuture work may attempt
+
document using Routing Backus-Naur Form (RBNF) as defined in
  to show how the protocol described in this document addresses those
+
[[RFC5511]].
  requirements and may modify this specification to handle unaddressed
 
  requirements.
 
  
2.  Terminology
+
=== Implementation Requirement Keywords ===
  
  This section specifies implementation requirement keywords and terms
+
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
  used in this document.  S-CUSP messages are described in this
+
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
  document using Routing Backus-Naur Form (RBNF) as defined in
+
"OPTIONAL" in this document are to be interpreted as described in
  [RFC5511].
+
[[BCP14|BCP 14]] [[RFC2119]] [[RFC8174]] when, and only when, they appear in all
 +
capitals, as shown here.
  
2.1.  Implementation Requirement Keywords
+
=== Terms ===
  
  The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+
This section specifies terms used in this document.
  "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
 
  "OPTIONAL" in this document are to be interpreted as described in
 
  BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
 
  capitals, as shown here.
 
  
2.2.  Terms
+
AAA:        Authentication Authorization Accounting.
  
  This section specifies terms used in this document.
+
ACK:        Acknowledgement message.
  
  AAA:        Authentication Authorization Accounting.
+
BAS:        Broadband Access Server, also known as a BBRAS, BNG, or
 +
            BRAS.
  
  ACK:        Acknowledgement message.
+
BNG:        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.
  
  BAS:         Broadband Access Server, also known as a BBRAS, BNG, or
+
BRAS:       Broadband Remote Access Server, also known as a BAS,
                BRAS.
+
            BBRAS, or BNG.
  
  BNG:        Broadband Network Gateway.  A BNG (or Broadband Remote
+
CAR:        Committed Access Rate.
                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.
 
  
  BRAS:       Broadband Remote Access Server, also known as a BAS,
+
CBS:         Committed Burst Size.
                BBRAS, or BNG.
 
  
  CAR:        Committed Access Rate.
+
CGN:        Carrier Grade NAT.
  
  CBS:         Committed Burst Size.
+
Ci:         Control Interface.
  
  CGN:        Carrier Grade NAT.
+
CIR:        Committed Information Rate.
  
  Ci:         Control Interface.
+
CoA:         Change of Authorization.
  
  CIR:         Committed Information Rate.
+
CP:         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.
  
  CoA:         Change of Authorization.
+
CU:         Control Plane / User Plane.
  
  CP:         Control Plane.  CP is a user control management
+
CUSP:       Control and User Plane Separation Protocol.
                component that supports the management of the UP's
 
                resources such as the user entry and forwarding policy.
 
  
  CU:         Control Plane / User Plane.
+
DEI:         Drop Eligibility Indicator as defined in [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).)
  
  CUSP:        Control and User Plane Separation Protocol.
+
DHCP:        Dynamic Host Configuration Protocol [[RFC2131]].
  
  DEI:         Drop Eligibility Indicator as defined in [802.1Q]A
+
dial-up:     This refers to the initial connection messages when a
                bit in a VLAN tag after the priority and before the VLAN
+
            new subscriber appearsThe name is left over from when
                ID(This bit was formerly the CFI (Canonical Format
+
            subscribers literally dialed up on a modem-equipped
                Indicator).)
+
            phone line but herein is applied to other initial
 +
            connection techniquesInitial connection is frequently
 +
            indicated by the receipt of packets over PPPoE [[RFC2516]]
 +
            or IPoE.
  
  DHCP:       Dynamic Host Configuration Protocol [RFC2131].
+
EMS:         Element Management System.
  
  dial-up:     This refers to the initial connection messages when a
+
IPoE:       IP over Ethernet.
                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 [RFC2516]
 
                or IPoE.
 
  
  EMS:         Element Management System.
+
L2TP:       Layer 2 Tunneling Protocol [[RFC2661]].
  
  IPoE:       IP over Ethernet.
+
LAC:         L2TP Access Concentrator.
  
  L2TP:        Layer 2 Tunneling Protocol [RFC2661].
+
LNS:        L2TP Network Server.
  
  LAC:        L2TP Access Concentrator.
+
MAC:        48-bit Media Access Control address [[RFC7042]].
  
  LNS:         L2TP Network Server.
+
MANO:       Management and Orchestration.
  
  MAC:         48-bit Media Access Control address [RFC7042].
+
Mi:         Management Interface.
  
  MANO:       Management and Orchestration.
+
MSS:         Maximum Segment Size.
  
  Mi:         Management Interface.
+
MRU:         Maximum Receive Unit.
  
  MSS:        Maximum Segment Size.
+
NAT:        Network Address Translation [[RFC3022]].
  
  MRU:         Maximum Receive Unit.
+
ND:         Neighbor Discovery.
  
  NAT:        Network Address Translation [RFC3022].
+
NFV:        Network Function Virtualization.
  
  ND:         Neighbor Discovery.
+
NFVI:       NFV Infrastructure.
  
  NFV:        Network Function Virtualization.
+
PBS:        Peak Burst Size.
  
  NFVI:       NFV Infrastructure.
+
PD:         Prefix Delegation.
  
  PBS:        Peak Burst Size.
+
PIR:        Peak Information Rate.
  
  PD:         Prefix Delegation.
+
PPP:         Point-to-Point Protocol [[RFC1661]].
  
  PIR:         Peak Information Rate.
+
PPPoE:       PPP over Ethernet [[RFC2516]].
  
  PPP:         Point-to-Point Protocol [RFC1661].
+
RBNF:       Routing Backus-Naur Form [[RFC5511]].
  
  PPPoE:       PPP over Ethernet [RFC2516].
+
RG:         Residential Gateway.
  
  RBNF:       Routing Backus-Naur Form [RFC5511].
+
S-CUSP:     Simple Control and User Plane Separation Protocol.
  
  RG:         Residential Gateway.
+
Subscriber: The remote user gaining network accesses via a BNG.
  
  S-CUSP:     Simple Control and User Plane Separation Protocol.
+
Si:         Service Interface.
  
  SubscriberThe remote user gaining network accesses via a BNG.
+
TLV:         Type-Length-Value. See Sections 7.1 and 7.3.
  
  Si:          Service Interface.
+
UP:          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.
  
  TLV:         Type-Length-Value.  See Sections 7.1 and 7.3.
+
URPF:       Unicast Reverse Path Forwarding.
  
  UP:         User Plane.  UP is a network edge and user policy
+
User:       Equivalent to "customer" or "subscriber".
                implementation component.  The traditional router's
 
                control plane and forwarding plane are both preserved on
 
                BNG devices in the form of a user plane.
 
  
  URPF:       Unicast Reverse Path Forwarding.
+
VRF:         Virtual Routing and Forwarding.
  
  User:        Equivalent to "customer" or "subscriber".
+
== BNG CUPS Overview ==
  
  VRF:        Virtual Routing and Forwarding.
+
=== BNG CUPS Motivation ===
  
3. BNG CUPS Overview
+
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:
  
3.1. BNG CUPS Motivation
+
Low resource utilization:  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.
  
   The rapid development of new services, such as 4K TV, Internet of
+
Complex management and maintenance:  Due to the large numbers of
   Things (IoT), etc., and increasing numbers of home broadband service
+
   traditional BNGs, configuring each device in a network is very
   users present some new challenges for BNGs such as:
+
   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.
  
  Low resource utilization:  The traditional BNG acts as both a gateway
+
Slow service provisioning:  The coupling of the CP and the forwarding
      for user access authentication and accounting and also an IP
+
  plane, in addition to being a distributed network control
      network's Layer 3 edge.  The mutually affecting nature of the
+
  mechanism, means that any new technology has to rely heavily on
      tightly coupled control plane and forwarding plane makes it
+
  the existing network devices.
      difficult to achieve the maximum performance of either plane.
 
  
  Complex management and maintenance: Due to the large numbers of
+
The framework for a cloud-based BNG with CU separation to address
      traditional BNGs, configuring each device in a network is very
+
these challenges for fixed networks is described in [TR-384]. The
      tedious when deploying global service policiesAs the network
+
main idea of CU separation is to extract and centralize the user
      expands and new services are introduced, this deployment mode will
+
management functions of multiple BNG devices, forming a unified and
      cease to be feasible as it is unable to manage services
+
centralized CPThe traditional router's CP and forwarding plane are
      effectively and to rectify faults rapidly.
+
both preserved on BNG devices in the form of a UP.
  
  Slow service provisioning:  The coupling of the CP and the forwarding
+
=== BNG CUPS Architecture Overview ===
      plane, in addition to being a distributed network control
 
      mechanism, means that any new technology has to rely heavily on
 
      the existing network devices.
 
  
  The framework for a cloud-based BNG with CU separation to address
+
The functions in a traditional BNG can be divided into two parts: (1)
  these challenges for fixed networks is described in [TR-384]. The
+
the user access management function and (2) the routing function.
  main idea of CU separation is to extract and centralize the user
+
The user access management function can be deployed as a centralized
  management functions of multiple BNG devices, forming a unified and
+
module or device, called the BNG Control Plane (BNG-CP).  The routing
  centralized CP.  The traditional router's CP and forwarding plane are
+
function, which includes routing control and the forwarding engine,
  both preserved on BNG devices in the form of a UP.
+
can be deployed in the form of the BNG User Plane (BNG-UP).
  
3.2.  BNG CUPS Architecture Overview
+
Figure 1 shows the architecture of a CU-separated BNG:
  
  The functions in a traditional BNG can be divided into two parts: (1)
+
+------------------------------------------------------------------+
  the user access management function and (2) the routing function.
+
|        Neighboring policy and resource management systems        |
  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,
+
|  | AAA Server |  |DHCP Server|  |  EMS  |  |  MANO  |  |
  can be deployed in the form of the BNG User Plane (BNG-UP).
+
|  +-------------+  +-----------+  +---------+  +----------+  |
 +
+------------------------------------------------------------------+
  
  Figure 1 shows the architecture of a CU-separated BNG:
+
+------------------------------------------------------------------+
 +
|                      CU-separated BNG system                    |
 +
| +--------------------------------------------------------------+ |
 +
| |  +----------+  +----------+ +------++------++-----------+  | |
 +
| |  | Address  |  |Subscriber| | AAA  ||Access||    UP    |  | |
 +
| |  |management|  |management| |      || mgt  ||management |  | |
 +
| |  +----------+  +----------+ +------++------++-----------+  | |
 +
| |                              CP                              | |
 +
| +--------------------------------------------------------------+ |
 +
|                                                                  |
 +
|                                                                  |
 +
|                                                                  |
 +
| +---------------------------+      +--------------------------+  |
 +
| |  +------------------+    |      |  +------------------+    |  |
 +
| |  | Routing control  |    |      |  | Routing control  |    |  |
 +
| |  +------------------+    | ...  |  +------------------+    |  |
 +
| |  +------------------+    |      |  +------------------+    |  |
 +
| |  |Forwarding engine |    |      |  |Forwarding engine |    |  |
 +
| |  +------------------+  UP |      |  +------------------+  UP|  |
 +
| +---------------------------+      +--------------------------+  |
 +
+------------------------------------------------------------------+
  
    +------------------------------------------------------------------+
+
            Figure 1: Architecture of a CU-Separated BNG
    |        Neighboring policy and resource management systems        |
 
    |                                                                  |
 
    |  +-------------+  +-----------+  +---------+  +----------+  |
 
    |  | AAA Server  |  |DHCP Server|  |  EMS  |  |  MANO  |  |
 
    |  +-------------+  +-----------+  +---------+  +----------+  |
 
    +------------------------------------------------------------------+
 
  
    +------------------------------------------------------------------+
+
As shown in Figure 1, the BNG-CP could be virtualized and
    |                      CU-separated BNG system                    |
+
centralized, which provides benefits such as centralized session
    | +--------------------------------------------------------------+ |
+
management, flexible address allocation, high scalability for
    | |  +----------+  +----------+ +------++------++-----------+  | |
+
subscriber management capacity, cost-efficient redundancy, etc. The
    | |  | Address  |  |Subscriber| | AAA  ||Access||    UP    |  | |
+
functional components inside the BNG-CP can be implemented as Virtual
    | |  |management| |management| |      || mgt  ||management |  | |
+
Network Functions (VNFs) and hosted in an NFVI.
    | |  +----------+  +----------+ +------++------++-----------+  | |
 
    | |                              CP                             | |
 
    | +--------------------------------------------------------------+ |
 
    |                                                                  |
 
    |                                                                  |
 
    |                                                                  |
 
    | +---------------------------+      +--------------------------+  |
 
    | |  +------------------+    |      |  +------------------+    |  |
 
    | |  | Routing control  |    |      |  | Routing control  |    |  |
 
    | |  +------------------+    | ...  |  +------------------+    |  |
 
    | |  +------------------+    |      |  +------------------+    |  |
 
    | |  |Forwarding engine |    |      |  |Forwarding engine |    |  |
 
    | |  +------------------+  UP |      |  +------------------+  UP|  |
 
    | +---------------------------+      +--------------------------+  |
 
  +------------------------------------------------------------------+
 
  
                Figure 1: Architecture of a CU-Separated BNG
+
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 SHOULD 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 [TR-384].
  
  As shown in Figure 1, the BNG-CP could be virtualized and
+
The details of the CU-separated BNG's function components are as
  centralized, which provides benefits such as centralized session
+
follows:
  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.
 
  
  The UP management module in the BNG-CP centrally manages the
+
The CP is responsible for the following:
  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 SHOULD 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 [TR-384].
 
  
  The details of the CU-separated BNG's function components are as
+
*  Address management: Unified address pool management and CGN
   follows:
+
   subscriber address traceability management.
  
   The CP is responsible for the following:
+
*  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.
  
  Address management: Unified address pool management and CGN
+
Subscriber management: User entry management and forwarding policy
      subscriber address traceability management.
+
  management.
  
  AAA: This component performs Authentication, Authorization, and
+
Access management: Process user dial-up packets, such as PPPoE,
      Accounting, together with RADIUS/Diameter.  The BNG communicates
+
  DHCP, L2TP, etc.
      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.
 
  
  Subscriber management: User entry management and forwarding policy
+
UP management: Management of UP interface status and the setup,
      management.
+
  deletion, and maintenance of channels between CP and UP.
  
  *  Access management: Process user dial-up packets, such as PPPoE,
+
The UP is responsible for the following:
      DHCP, L2TP, etc.
 
  
  UP management: Management of UP interface status and the setup,
+
Routing control functions: Responsible for instantiating routing
      deletion, and maintenance of channels between CP and UP.
+
  forwarding plane (e.g., routing, multicast, MPLS, etc.).
  
   The UP is responsible for the following:
+
*  Routing and service forwarding plane functions: Responsibilities
 +
   include traffic forwarding, QoS, and traffic statistics
 +
  collection.
  
  Routing control functions: Responsible for instantiating routing
+
Subscriber detection: Responsible for detecting whether a
      forwarding plane (e.g., routing, multicast, MPLS, etc.).
+
  subscriber is still online.
  
  *  Routing and service forwarding plane functions: Responsibilities
+
=== BNG CUPS Interfaces ===
      include traffic forwarding, QoS, and traffic statistics
 
      collection.
 
  
  * Subscriber detection: Responsible for detecting whether a
+
The three interfaces defined below support the communication between
      subscriber is still online.
+
the CP and UP. These are referred to as the Service Interface (Si),
 +
Control Interface (Ci), and Management Interface (Mi) as shown in
 +
Figure 2.
  
3.3. BNG CUPS Interfaces
+
          +-----------------------------------+
 +
          |                                  |
 +
          |              BNG-CP              |
 +
          |                                  |
 +
          +--+--------------+--------------+--+
 +
            |              |              |
 +
  1. Service |  2. Control | 3. Management|
 +
  Interface |    Interface |    Interface |
 +
        (Si) |        (Ci) |        (Mi) |
 +
            |              |              |
 +
            |          ___|___          |
 +
            |      ___(      )___      |
 +
            _|______(              )______|_
 +
          (                                )
 +
          (        Network/Internet        )
 +
          (________                ________)
 +
            |      (___        ___)      |
 +
            |          (_______)          |
 +
            |              |              |
 +
            |              |              |
 +
          +--+--------------+--------------+--+
 +
          |                                  |
 +
          |              BNG-UP              |
 +
          |                                  |
 +
          +-----------------------------------+
  
  The three interfaces defined below support the communication between
+
        Figure 2: Interfaces between the CP and UP of the BNG
  the CP and UP.  These are referred to as the Service Interface (Si),
 
  Control Interface (Ci), and Management Interface (Mi) as shown in
 
  Figure 2.
 
  
            +-----------------------------------+
+
==== Service Interface (Si) ====
            |                                  |
 
            |              BNG-CP              |
 
            |                                  |
 
            +--+--------------+--------------+--+
 
                |              |              |
 
    1. Service |  2. Control | 3. Management|
 
      Interface |    Interface |    Interface |
 
          (Si) |        (Ci) |        (Mi) |
 
                |              |              |
 
                |          ___|___          |
 
                |      ___(      )___      |
 
              _|______(              )______|_
 
              (                                )
 
            (        Network/Internet        )
 
              (________                ________)
 
                |      (___        ___)      |
 
                |          (_______)          |
 
                |              |              |
 
                |              |              |
 
            +--+--------------+--------------+--+
 
            |                                  |
 
            |              BNG-UP              |
 
            |                                  |
 
            +-----------------------------------+
 
  
          Figure 2: Interfaces between the CP and UP of the BNG
+
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.
  
3.3.1Service Interface (Si)
+
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 tunnelsAn appropriate tunnel type is Virtual
 +
eXtensible Local Area Network (VXLAN) [[RFC7348]].
  
  For a traditional BNG (without CU separation), the user dial-up
+
The detailed definition of Si is out of scope for this document.
  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.
 
  
  The Si is used to establish tunnels between the CP and UP.  The
+
==== Control Interface (Ci) ====
  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) [RFC7348].
 
  
  The detailed definition of Si is out of scope for this document.
+
The CP uses the Ci to deliver subscriber session states, network
 +
routing entries, etc., to the UP (see Section 6.2.7).  The UP uses
 +
this interface to report subscriber service statistics, subscriber
 +
detection results, etc., to the CP (see Sections 6.3 and 6.4).  A
 +
carrying protocol for this interface is specified in this document.
  
3.3.2.  Control Interface (Ci)
+
==== Management Interface (Mi) ====
  
  The CP uses the Ci to deliver subscriber session states, network
+
The Network Configuration Protocol (NETCONF) [[RFC6241]] is the
  routing entries, etc., to the UP (see Section 6.2.7)The UP uses
+
protocol used on the Mi between a CP and UP.  It is used to configure
  this interface to report subscriber service statistics, subscriber
+
the parameters of the Ci, Si, access interfaces, and QoS/ACL
  detection results, etc., to the CP (see Sections 6.3 and 6.4)A
+
Templates. It is expected that implementations will make use of
  carrying protocol for this interface is specified in this document.
+
existing YANG models where possible but that new YANG models specific
 +
to S-CUSP will need to be definedThe definitions of the parameters
 +
that can be configured are out of scope for this document.
  
3.3.3.  Management Interface (Mi)
+
=== BNG CUPS Procedure Overview ===
  
  The Network Configuration Protocol (NETCONF) [RFC6241] is the
+
The following numbered sequences (Figure 3) give a high-level view of
  protocol used on the Mi between a CP and UP.  It is used to configure
+
the main BNG CUPS procedures.
  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.
 
  
3.4.  BNG CUPS Procedure Overview
+
  RG              UP                      CP              AAA
 +
  |              |Establish S-CUSP Channel|              |
 +
  |              1|<---------------------->|              |
 +
  |              |                        |              |
 +
  |              | Report board interface |              |
 +
  |              |      information      |              |
 +
  |              2|------to CP via Ci----->|              |
 +
  |              |                        |              |
 +
  |              |  Update BAS function  |              |
 +
  |              3|    request/response    |              |
 +
  |              |<-----on UP via Ci----->|              |
 +
  |              |                        |              |
 +
  |              | Update network routing |              |
 +
  |              |    request/response    |              |
 +
  |              4|<------- via Ci-------->|              |
 +
  |  Online Req  |                        |              |
 +
5.1|-------------->|                        |              |
 +
  |              | Relay the Online Req  |              |
 +
  |            5.2|-----to CP via Si------>| Authentication|
 +
  |              |                        |    Req/Rep    |
 +
  |              |                    5.3|<------------->|
 +
  |              | Send the Online Rep    |              |
 +
  |            5.4|<----to UP via Si-------|              |
 +
  |              |                        |              |
 +
  |              | Create subscriber      |              |
 +
  |              |    session on UP      |              |
 +
  |            5.5|<--------via Ci-------->|              |
 +
  |  Online Rep  |                        |              |
 +
5.6|<--------------|                        |              |
 +
  |              |                        |  CoA Request |
 +
  |              |                    6.1|<--------------|
 +
  |              | Update session on UP  |              |
 +
  |            6.2|<--------via Ci-------->|              |
 +
  |              |                        |  CoA Response |
 +
  |  Offline Req  |                    6.3|-------------->|
 +
7.1|-------------->|                        |              |
 +
  |              | Relay the Offline Req  |              |
 +
  |            7.2|------to CP via Si----->|              |
 +
  |              |                        |              |
 +
  |              | Send the Offline Rep  |              |
 +
  |            7.3|<-----to UP via Si------|              |
 +
  |  Offline Rep  |                        |              |
 +
7.4|<--------------|                        |              |
 +
  |              | Delete session on UP  |              |
 +
  |            7.5|<--------via Ci-------->|              |
 +
  |              |                        |              |
 +
  |              |      Event report      |              |
 +
  |              8|---------via Ci-------->|              |
 +
  |              |                        |              |
 +
  |              | Data synchronization  |              |
 +
  |              9|<--------via Ci-------->|              |
 +
  |              |                        |              |
 +
  |              | CGN address allocation |              |
 +
  |            10|<--------via Ci-------->|              |
 +
  |              |                        |              |
  
  The following numbered sequences (Figure 3) give a high-level view of
+
                Figure 3: BNG CUPS Procedures Overview
  the main BNG CUPS procedures.
 
  
      RG              UP                      CP              AAA
+
(1)  S-CUSP session establishment: This is the first step of the BNG
      |              |Establish S-CUSP Channel|              |
+
       CUPS procedures.  Once the Ci parameters are configured on a
       |              1|<---------------------->|              |
+
       UP, it will start to set up S-CUSP sessions with the specified
      |              |                        |              |
+
       CPs. The detailed definition of S-CUSP session establishment
      |              | Report board interface |              |
+
       can be found in Section 4.1.1.
      |              |      information      |              |
 
      |              2|------to CP via Ci----->|              |
 
      |              |                        |              |
 
      |              |  Update BAS function  |              |
 
      |              3|    request/response    |              |
 
       |              |<-----on UP via Ci----->|              |
 
      |              |                        |              |
 
      |              | Update network routing |              |
 
      |              |    request/response    |              |
 
      |              4|<------- via Ci-------->|              |
 
      |  Online Req  |                        |              |
 
  5.1|-------------->|                        |              |
 
      |              | Relay the Online Req  |              |
 
      |            5.2|-----to CP via Si------>| Authentication|
 
      |              |                        |    Req/Rep    |
 
      |              |                    5.3|<------------->|
 
      |              | Send the Online Rep    |              |
 
       |            5.4|<----to UP via Si-------|              |
 
      |              |                        |              |
 
      |              | Create subscriber      |              |
 
      |              |    session on UP      |              |
 
       |            5.5|<--------via Ci-------->|              |
 
      |  Online Rep  |                        |              |
 
  5.6|<--------------|                        |              |
 
      |              |                        |  CoA Request  |
 
      |              |                    6.1|<--------------|
 
      |              | Update session on UP  |              |
 
      |            6.2|<--------via Ci-------->|              |
 
      |              |                        |  CoA Response |
 
      |  Offline Req  |                    6.3|-------------->|
 
  7.1|-------------->|                        |              |
 
      |              | Relay the Offline Req  |              |
 
      |            7.2|------to CP via Si----->|              |
 
      |              |                        |              |
 
      |              | Send the Offline Rep  |              |
 
      |            7.3|<-----to UP via Si------|              |
 
      |  Offline Rep  |                        |              |
 
  7.4|<--------------|                        |              |
 
      |              | Delete session on UP  |              |
 
      |            7.5|<--------via Ci-------->|              |
 
      |              |                        |              |
 
      |              |      Event report      |              |
 
      |              8|---------via Ci-------->|              |
 
      |              |                        |              |
 
      |              | Data synchronization  |              |
 
      |              9|<--------via Ci-------->|              |
 
      |              |                        |              |
 
      |              | CGN address allocation |              |
 
      |            10|<--------via Ci-------->|              |
 
      |              |                        |              |
 
  
                  Figure 3: BNG CUPS Procedures Overview
+
(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 4.2.1 and 7.10 for more details on
 +
      resource reporting.
  
  (1S-CUSP session establishment: This is the first step of the BNG
+
(3BAS function enable: To enable the BAS function on the
        CUPS procedures.  Once the Ci parameters are configured on a
+
      specified interfaces of a UP.
        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 Section 4.1.1.
 
  
  (2Board and interface report: Once the S-CUSP session is
+
(4Subscriber network route advertisement: The CP will allocate
        established between the UP and a CP, the UP will report status
+
      one or more IP address blocks to a UP.  Each address block
        information on the boards and subscriber-facing interfaces of
+
      contains a series of IP addressesThose IP addresses will be
        this UP to the CPA board can also be called a Line/Service
+
      allocated to subscribers who are dialing up from the UPTo
        Process Unit (LPU/SPU) cardThe subscriber-facing interfaces
+
      enable other nodes in the network to learn how to reach the
        refer to the interfaces that connect the access network nodes
+
      subscribers, the CP needs to notify the UP to advertise to the
        (e.g., Optical Line Terminal (OLT), DSLAM, etc.).  The CP can
+
      network the routes that can reach those IP addresses.
        use this information to enable the Broadband Access Server
 
        (BAS) function (e.g., IPoE, PPPoE, etc.) on the specified
 
        interfaces.  See Sections 4.2.1 and 7.10 for more details on
 
        resource reporting.
 
  
  (3)   BAS function enable: To enable the BAS function on the
+
(5)  5.1-5.6 is a complete call flow of a subscriber dial-up (as
        specified interfaces of a UP.
+
      defined in 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 Section 5.
  
  (4Subscriber network route advertisement: The CP will allocate
+
(66.1-6.3 is the sequence when updating an existing subscriber
        one or more IP address blocks to a UPEach address block
+
      sessionThe AAA server initiates a Change of Authorization
        contains a series of IP addressesThose IP addresses will be
+
      (CoA) and sends the CoA to the CPThe CP will then update the
        allocated to subscribers who are dialing up from the UPTo
+
      session according to the CoASee Section 4.3.2 for more
        enable other nodes in the network to learn how to reach the
+
      detail on CP messages updating UP tables.
        subscribers, the CP needs to notify the UP to advertise to the
 
        network the routes that can reach those IP addresses.
 
  
  (55.1-5.6 is a complete call flow of a subscriber dial-up (as
+
(77.1-7.5 is the sequence for deleting an existing subscriber
        defined in Section 4.3.1) process.  When a UP receives a dial-
+
      session.  When a UP receives an Offline Request, it will relay
        up request, it will relay the request packet to a CP through
+
      the request to a CP through the Si.  The CP will send back a
        the Si.  The CP will parse the request.  If everything is OK,
+
      response to the UP through the Si.  The UP will then forward
        it will send an authentication request to the AAA server to
+
      the Offline Response to the subscriber.  Then the CP will
        authenticate the subscriber.  Once the subscriber passes the
+
      delete the session on the UP through the Ci.
        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 Section 5.
 
  
  (66.1-6.3 is the sequence when updating an existing subscriber
+
(8Event reports include the following two parts (more detail can
        session.  The AAA server initiates a Change of Authorization
+
      be found in Section 4.3.4).  Both are reported using the Event
        (CoA) and sends the CoA to the CP.  The CP will then update the
+
      message:
        session according to the CoA.  See Section 4.3.2 for more
 
        detail on CP messages updating UP tables.
 
  
  (7)  7.1-7.5 is the sequence for deleting an existing subscriber
+
        8.1.  Subscriber Traffic Statistics Report
        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 SiThe UP will then forward
 
        the Offline Response to the subscriber.  Then the CP will
 
        delete the session on the UP through the Ci.
 
  
  (8)  Event reports include the following two parts (more detail can
+
        8.2Subscriber Detection Result Report
        be found in Section 4.3.4)Both are reported using the Event
 
        message:
 
  
            8.1. Subscriber Traffic Statistics Report
+
(9)  Data synchronization: See Section 4.2.5 for more detail on CP
 +
      and UP synchronization.
  
            8.2. Subscriber Detection Result Report
+
(10)  CGN address allocation: See Section 4.2.4 for more detail on
 +
      CGN address allocation.
  
  (9)  Data synchronization: See Section 4.2.5 for more detail on CP
+
== S-CUSP Protocol Overview ==
        and UP synchronization.
 
  
  (10)  CGN address allocation: See Section 4.2.4 for more detail on
+
=== Control Channel Procedures ===
        CGN address allocation.
 
  
4.  S-CUSP Protocol Overview
+
==== S-CUSP Session Establishment ====
  
4.1Control Channel Procedures
+
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 CPThe association between a UP and
 +
its CPs is implemented by dynamic configuration.
  
4.1.1.  S-CUSP Session Establishment
+
Once a UP knows its CPs, the UP starts to establish S-CUSP sessions
 +
with those CPs, as shown in Figure 4.
  
  A UP is associated with a CP and is controlled by that CP.  In the
+
                UP                               CP
  case of a hot-standby or cold-standby, a UP is associated with two
+
                |  TCP Session Establishment    |
  CPs: the master CP and standby CP.  The association between a UP and
+
                |<------------------------------->|
  its CPs is implemented by dynamic configuration.
+
                |                                |
 +
                |  Hello (version, capability)  |
 +
                |-------------------------------->|
 +
                |                                |
 +
                |  Hello (version, capability)  |
 +
                |<--------------------------------|
 +
                |                                |
  
  Once a UP knows its CPs, the UP starts to establish S-CUSP sessions
+
                Figure 4: S-CUSP Session Establishment
  with those CPs, as shown in Figure 4.
 
  
                    UP                              CP
+
The S-CUSP session establishment consists of two successive steps:
                    |  TCP Session Establishment    |
 
                    |<------------------------------->|
 
                    |                                |
 
                    |  Hello (version, capability)  |
 
                    |-------------------------------->|
 
                    |                                |
 
                    |  Hello (version, capability)  |
 
                    |<--------------------------------|
 
                    |                                |
 
  
                  Figure 4: S-CUSP Session Establishment
+
(1)  Establishment of a TCP connection (3-way handshake) [[RFC793]]
 +
    between the CP and the UP using a configured port from the
 +
    dynamic port range (49152-65535).
  
  The S-CUSP session establishment consists of two successive steps:
+
(2)  Establishment of an S-CUSP session over the TCP connection.
  
  (1)  Establishment of a TCP connection (3-way handshake) [RFC793]
+
Once the TCP connection is established, the CP and the UP initialize
        between the CP and the UP using a configured port from the
+
the S-CUSP session, during which the version and Keepalive timers are
        dynamic port range (49152-65535).
+
negotiated.
  
  (2)  Establishment of an S-CUSP session over the TCP connection.
+
The version information (Hello TLV, see Section 7.4) is carried
 +
within Hello messages (see 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.
  
  Once the TCP connection is established, the CP and the UP initialize
+
Keepalive negotiation is performed by carrying a Keepalive TLV in the
  the S-CUSP session, during which the version and Keepalive timers are
+
Hello message.  The Keepalive TLV includes a Keepalive timer and
  negotiated.
+
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.
  
  The version information (Hello TLV, see Section 7.4) is carried
+
The S-CUSP session establishment phase fails if the CP or UP disagree
  within Hello messages (see Section 6.2.1).  A CP can support multiple
+
on the version and keepalive parameters or if one of the CP or UP
  versions, but a UP can only support one version; thus the version
+
does not answer after the expiration of the Establishment timer.
  negotiation is based on whether a version can be supported by both
+
When the S-CUSP session establishment fails, the TCP connection is
  the CP and the UP.  If a CP or UP receives a Hello message that does
+
promptly closed.  Successive retries are permitted, but an
  not indicate a version supported by both, it responds with a Hello
+
implementation SHOULD make use of an exponential backoff session
  message containing an Error Information TLV to notify the peer of the
+
establishment retry procedure.
  Version-Mismatch error, and the session establishment phase fails.
 
  
  Keepalive negotiation is performed by carrying a Keepalive TLV in the
+
The S-CUSP session timer values that need to be configured are
  Hello message.  The Keepalive TLV includes a Keepalive timer and
+
summarized in Table 1.
  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.
 
  
  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
+
    | Timer Name          | Range in Seconds | Default Value |
  does not answer after the expiration of the Establishment timer.
+
    +=====================+==================+===============+
  When the S-CUSP session establishment fails, the TCP connection is
+
    | Establishment Timer | 1-32767          | 45            |
  promptly closed.  Successive retries are permitted, but an
+
    +---------------------+------------------+---------------+
  implementation SHOULD make use of an exponential backoff session
+
    | Keepalive Timer    | 0-255            | 30            |
  establishment retry procedure.
+
    +---------------------+------------------+---------------+
 +
    | DeadTimer          | 1-32767          | 4 * Keepalive |
 +
    +---------------------+------------------+---------------+
  
  The S-CUSP session timer values that need to be configured are
+
                  Table 1: S-CUSP Session Timers
  summarized in Table 1.
 
  
        +---------------------+------------------+---------------+
+
==== Keepalive Timer and DeadTimer ====
        | Timer Name          | Range in Seconds | Default Value |
 
        +=====================+==================+===============+
 
        | Establishment Timer | 1-32767          | 45            |
 
        +---------------------+------------------+---------------+
 
        | Keepalive Timer    | 0-255            | 30            |
 
        +---------------------+------------------+---------------+
 
        | DeadTimer          | 1-32767          | 4 * Keepalive |
 
        +---------------------+------------------+---------------+
 
  
                      Table 1: S-CUSP Session Timers
+
Once an S-CUSP session has been established, a UP or CP may want to
 +
know that its S-CUSP peer is still connected.
  
4.1.2.  Keepalive Timer and DeadTimer
+
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 messageThus, 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.
  
  Once an S-CUSP session has been established, a UP or CP may want to
+
Each end of an S-CUSP session also runs a DeadTimer and restarts that
  know that its S-CUSP peer is still connected.
+
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.
  
  Each end of an S-CUSP session runs a Keepalive timer.  It restarts
+
The minimum value of the Keepalive timer is 1 second, and it is
  the timer every time it sends a message on the sessionWhen the
+
specified in units of 1 secondThe RECOMMENDED default value is 30
  timer expires, it sends a Keepalive message.  Thus, a message is
+
secondsThe recommended default for the DeadTimer is four times the
  transmitted at least as often as the value to which the Keepalive
+
value of the Keepalive timer used by the remote peer.  As above, the
  timer is reset, unless, as explained below, that value is the special
+
timers may be disabled by setting them to zero.
  value zero.
 
  
  Each end of an S-CUSP session also runs a DeadTimer and restarts that
+
The Keepalive timer and DeadTimer are negotiated through the
  DeadTimer whenever a message is received on the session.  If the
+
Keepalive TLV carried in the Hello message.
  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.
 
  
  The minimum value of the Keepalive timer is 1 second, and it is
+
=== Node Procedures ===
  specified in units of 1 second.  The RECOMMENDED 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.
 
  
  The Keepalive timer and DeadTimer are negotiated through the
+
==== UP Resource Report ====
  Keepalive TLV carried in the Hello message.
 
  
4.2. Node Procedures
+
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 Figure 5. Report
 +
messages are unacknowledged and are assumed to be delivered because
 +
the session runs over TCP.
  
4.2.1. UP Resource Report
+
The CP can use that information to activate/enable the BAS functions
 +
(e.g., IPoE, PPPoE, etc.) on the specified interfaces.
  
  Once an S-CUSP session has been established between a CP and a UP,
+
In addition, the UP resource report may trigger a UP warm-standby
  the UP reports the state information of the boards and access-facing
+
process.  In the case of warm-standby, a failure on a UP may trigger
  interfaces on the UP to the CP, as shown in Figure 5.  Report
+
the CP to start a warm-standby process, by moving the online
  messages are unacknowledged and are assumed to be delivered because
+
subscriber sessions to a standby UP and then directing the affected
  the session runs over TCP.
+
subscribers to access the Internet through the standby UP.
  
  The CP can use that information to activate/enable the BAS functions
+
                    UP                      CP
  (e.g., IPoE, PPPoE, etc.) on the specified interfaces.
+
                    |  Report Board Status  |
 +
                    |------to CP via Ci----->|
 +
                    |                        |
 +
                    | Report Interface Status|
 +
                    |------to CP via Ci----->|
 +
                    |                        |
  
  In addition, the UP resource report may trigger a UP warm-standby
+
              Figure 5: UP Board and Interface Report
  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.
 
  
                        UP                      CP
+
Board status information is carried in the Board Status TLV
                        | Report Board Status   |
+
(Section 7.10.2), and interface status information is carried in the
                        |------to CP via Ci----->|
+
Interface Status TLV (Section 7.10.1). Both Board Status and
                        |                        |
+
Interface Status TLVs are carried in the Report message
                        | Report Interface Status|
+
(Section 6.4).
                        |------to CP via Ci----->|
 
                        |                        |
 
  
                  Figure 5: UP Board and Interface Report
+
==== Update BAS Function on Access Interface ====
  
  Board status information is carried in the Board Status TLV
+
Once the CP collects the interface status of a UP, it will
  (Section 7.10.2), and interface status information is carried in the
+
activate/deactivate/modify the BAS functions on specified interfaces
  Interface Status TLV (Section 7.10.1).  Both Board Status and
+
through the Update_Request and Update_Response message exchanges
  Interface Status TLVs are carried in the Report message
+
(Section 6.2), carrying the BAS Function TLV (Section 7.7).
  (Section 6.4).
 
  
4.2.2.  Update BAS Function on Access Interface
+
                    UP                      CP
 +
                    |  Update BAS Function   |
 +
                    |        Request        |
 +
                    |<-----on UP via Ci-------|
 +
                    |                        |
 +
                    |  Update BAS Function  |
 +
                    |        Response        |
 +
                    |------on UP via Ci------>|
 +
                    |                        |
  
  Once the CP collects the interface status of a UP, it will
+
                    Figure 6: Update BAS Function
  activate/deactivate/modify the BAS functions on specified interfaces
 
  through the Update_Request and Update_Response message exchanges
 
  (Section 6.2), carrying the BAS Function TLV (Section 7.7).
 
  
                        UP                      CP
+
==== Update Network Routing ====
                        |  Update BAS Function  |
 
                        |        Request        |
 
                        |<-----on UP via Ci-------|
 
                        |                        |
 
                        |  Update BAS Function  |
 
                        |        Response        |
 
                        |------on UP via Ci------>|
 
                        |                        |
 
  
                      Figure 6: Update BAS Function
+
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.
  
4.2.3.  Update Network Routing
+
                    UP                      CP
 +
                    | Subscriber network route|
 +
                    |      update request    |
 +
                    |<------- via Ci----------|
 +
                    |                        |
 +
                    | Subscriber network route|
 +
                    |      update response    |
 +
                    |-------- via Ci--------->|
 +
                    |                        |
  
  The CP will allocate one or more address blocks to a UP.  Each
+
                  Figure 7: Update Network Routing
  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.
 
  
                        UP                      CP
+
The Update_Request and Update_Response message exchanges, carrying
                        | Subscriber network route|
+
the IPv4/IPv6 Routing TLVs (Section 7.8), update the subscriber's
                        |      update request    |
+
network routing information.
                        |<------- via Ci----------|
 
                        |                        |
 
                        | Subscriber network route|
 
                        |      update response    |
 
                        |-------- via Ci--------->|
 
                        |                        |
 
  
                      Figure 7: Update Network Routing
+
==== CGN Public IP Address Allocation ====
  
  The Update_Request and Update_Response message exchanges, carrying
+
The following sequences (Figure 8) describe the procedures related to
  the IPv4/IPv6 Routing TLVs (Section 7.8), update the subscriber's
+
CGN address management.  Three independent procedures are defined:
  network routing information.
+
one each for CGN address allocation request/response, CGN address
 +
renewal request/response, and CGN address release request/response.
  
4.2.4. CGN Public IP Address Allocation
+
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.
  
  The following sequences (Figure 8) describe the procedures related to
+
In addition, when a public IP address is allocated to a UP, there
  CGN address managementThree independent procedures are defined:
+
will be a lease time (e.g., one day).  Before the lease time expires,
  one each for CGN address allocation request/response, CGN address
+
the UP can ask for renewal of the IP address lease from the CPIt
  renewal request/response, and CGN address release request/response.
+
is achieved by the exchange of the Addr_Renew_Req and Addr_Renew_Ack
 +
messages.
  
  CGN address allocation/renew/release procedures are designed for the
+
If the public IP address will not be used anymore, the UP SHOULD
  case where the CGN function is running on the UP.  The UP has to map
+
release the address by sending an Addr_Release_Req message to the CP.
  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.
 
  
  In addition, when a public IP address is allocated to a UP, there
+
If the CP wishes to withdraw addresses that it has previously leased
  will be a lease time (e.g., one day).  Before the lease time expires,
+
to a UP, it uses the same procedures as above.  The Oper code (see
  the UP can ask for renewal of the IP address lease from the CP.  It
+
Section 7.1) in the IPv4/IPv6 Routing TLV (see Section 7.8)
  is achieved by the exchange of the Addr_Renew_Req and Addr_Renew_Ack
+
determines whether the request is an update or withdraw.
  messages.
 
  
  If the public IP address will not be used anymore, the UP SHOULD
+
The relevant messages are defined in Section 6.5.
  release the address by sending an Addr_Release_Req message to the CP.
 
  
  If the CP wishes to withdraw addresses that it has previously leased
+
                UP                      CP
  to a UP, it uses the same procedures as aboveThe Oper code (see
+
                | CGN Address Allocation  |
  Section 7.1) in the IPv4/IPv6 Routing TLV (see Section 7.8)
+
                |        Request        |
  determines whether the request is an update or withdraw.
+
              1.1|-------- via Ci--------->|
 +
                | CGN Address Allocation |
 +
                |        Response        |
 +
              1.2|<------- via Ci----------|
 +
                |                        |
 +
                | CGN Address Renew      |
 +
                |        Request        |
 +
              2.1|-------- via Ci--------->|
 +
                | CGN Address Renew      |
 +
                |        Response        |
 +
              2.2|<------- via Ci----------|
 +
                |                        |
 +
                | CGN Address Release    |
 +
                |        Request        |
 +
              3.1|-------- via Ci--------->|
 +
                | CGN Address Release    |
 +
                |        Response        |
 +
              3.3|<------- via Ci----------|
 +
                |                        |
  
  The relevant messages are defined in Section 6.5.
+
              Figure 8: CGN Public IP Address Allocation
  
                    UP                       CP
+
==== Data Synchronization between the CP and UP ====
                    | CGN Address Allocation  |
 
                    |        Request        |
 
                1.1|-------- via Ci--------->|
 
                    | CGN Address Allocation  |
 
                    |        Response        |
 
                1.2|<------- via Ci----------|
 
                    |                        |
 
                    | CGN Address Renew      |
 
                    |        Request        |
 
                2.1|-------- via Ci--------->|
 
                    | CGN Address Renew      |
 
                    |        Response        |
 
                2.2|<------- via Ci----------|
 
                    |                        |
 
                    | CGN Address Release    |
 
                    |        Request        |
 
                3.1|-------- via Ci--------->|
 
                    | CGN Address Release    |
 
                    |        Response        |
 
                3.3|<------- via Ci----------|
 
                    |                        |
 
  
                Figure 8: CGN Public IP Address Allocation
+
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.
  
4.2.5.  Data Synchronization between the CP and UP
+
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.
  
  For a CU-separated BNG, the UP will continue to function using the
+
Synchronization includes two directions.  One direction is from UP to
  state that has been installed in it even if the CP fails or the
+
CP; in that case, the synchronization information is mainly about the
  session between the UP and CP fails.
+
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.
  
  Under some circumstances, it is necessary to synchronize state
+
The synchronization is triggered by a Sync_Request message, to which
  between the CP and UP, for example, if a CP fails and the UP is
+
the receiver will (1) reply with a Sync_Begin message to notify the
  switched to a different CP.
+
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.
  
  Synchronization includes two directions.  One direction is from UP to
+
Figure 9 shows the process of data synchronization between a UP and a
  CP; in that case, the synchronization information is mainly about the
+
CP.
  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.
 
  
  The synchronization is triggered by a Sync_Request message, to which
+
                    UP                      CP
  the receiver will (1) reply with a Sync_Begin message to notify the
+
                    | Synchronization Request |
  requester that synchronization will begin and (2) then start the
+
                    |<------- via Ci----------|
  synchronization using the Sync_Data message. When synchronization
+
                    |                        |
  finishes, a Sync_End message will be sent.
+
                    | Synchronization Begin  |
 +
                    |-------- via Ci--------->|
 +
                    |                        |
 +
                    | Board/Interface Report |
 +
                    |-------- via Ci--------->|
 +
                    |                        |
 +
                    | Synchronization End    |
 +
                    |-------- via Ci--------->|
 +
                    |                        |
 +
                    1) Synchronization from UP to CP
  
  Figure 9 shows the process of data synchronization between a UP and a
+
                    UP                       CP
  CP.
+
                    | Synchronization Request |
 +
                    |-------- via Ci--------->|
 +
                    |                        |
 +
                    | Synchronization Begin  |
 +
                    |<-------- via Ci---------|
 +
                    |                        |
 +
                    |      Synchronizes      |
 +
                    |Subscriber Session States|
 +
                    |  Network Route Entries  |
 +
                    |<------- via Ci----------|
 +
                    |                        |
 +
                    | Synchronization End    |
 +
                    |<-------- via Ci---------|
 +
                    |                        |
 +
                    2) Synchronization from CP to UP
  
                        UP                      CP
+
                    Figure 9: Data Synchronization
                        | Synchronization Request |
 
                        |<------- via Ci----------|
 
                        |                        |
 
                        | Synchronization Begin  |
 
                        |-------- via Ci--------->|
 
                        |                        |
 
                        | Board/Interface Report  |
 
                        |-------- via Ci--------->|
 
                        |                        |
 
                        | Synchronization End    |
 
                        |-------- via Ci--------->|
 
                        |                        |
 
                      1) Synchronization from UP to CP
 
  
                        UP                      CP
+
=== Subscriber Session Procedures ===
                        | Synchronization Request |
 
                        |-------- via Ci--------->|
 
                        |                        |
 
                        | Synchronization Begin  |
 
                        |<-------- via Ci---------|
 
                        |                        |
 
                        |      Synchronizes      |
 
                        |Subscriber Session States|
 
                        |  Network Route Entries  |
 
                        |<------- via Ci----------|
 
                        |                        |
 
                        | Synchronization End    |
 
                        |<-------- via Ci---------|
 
                        |                        |
 
                      2) Synchronization from CP to UP
 
  
                      Figure 9: Data Synchronization
+
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.
  
4.3. Subscriber Session Procedures
+
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.
  
  A subscriber session consists of a set of forwarding states,
+
==== Create Subscriber Session ====
  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.
 
  
  Procedures related to subscriber sessions include subscriber session
+
The sequence below (Figure 10) describes the DHCP IPv4 dial-up
  creation, update, deletion, and statistics reportingThe following
+
process.  It is an example that shows how a subscriber session is
  subsections give a high-level view of the procedures.
+
created(An example for IPv6 appears in Section 5.1.2.)
  
4.3.1. Create Subscriber Session
+
    RG              UP                      CP            AAA
 +
    | Online Request|                        |              |
 +
    1|-------------->|                        |              |
 +
    |              |Relay the Online Request|              |
 +
    |              2|-----to CP via Si------>| Authentication|
 +
    |              |                        |    Req/Rep    |
 +
    |              |                      3|<------------->|
 +
    |              |  Create Subscriber    |              |
 +
    |              |  Session Request      |              |
 +
    |              4|<--------via Ci---------|              |
 +
    |              |                        |              |
 +
    |              | Create Subscriber     |              |
 +
    |              |  Session Response    |              |
 +
    |              5|---------via Ci-------->|              |
 +
    |              |                        |  Accounting  |
 +
    |              |                      6|<------------->|
 +
    |              |  Send Online Response  |              |
 +
    |              7|<----to UP via Si-------|              |
 +
    |              |                        |              |
 +
    |Online Response|                        |              |
 +
    8|<--------------|                        |              |
 +
    |              |                        |              |
  
  The sequence below (Figure 10) describes the DHCP IPv4 dial-up
+
              Figure 10: Creating a Subscriber Session
  process.  It is an example that shows how a subscriber session is
 
  created.  (An example for IPv6 appears in Section 5.1.2.)
 
  
        RG             UP                       CP            AAA
+
The request starts from an Online Request message (step 1) from the
        | Online Request|                        |              |
+
RG (for example, a DHCP Discovery packet).  When the UP receives the
      1|-------------->|                        |              |
+
Online Request from the RG, it will tunnel the Online Request to the
        |              |Relay the Online Request|              |
+
CP through the Si (step 2). A tunneling technology implements the
        |              2|-----to CP via Si------>| Authentication|
+
Si.
        |              |                        |    Req/Rep    |
 
        |              |                      3|<------------->|
 
        |              | Create Subscriber    |              |
 
        |              |  Session Request      |              |
 
        |              4|<--------via Ci---------|              |
 
        |              |                        |              |
 
        |              |  Create Subscriber    |              |
 
        |              |  Session Response    |              |
 
        |              5|---------via Ci-------->|              |
 
        |              |                        |  Accounting  |
 
        |              |                      6|<------------->|
 
        |              |  Send Online Response  |              |
 
        |              7|<----to UP via Si-------|              |
 
        |              |                        |              |
 
        |Online Response|                        |              |
 
      8|<--------------|                        |              |
 
        |              |                        |              |
 
  
                  Figure 10: Creating a Subscriber Session
+
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).
  
  The request starts from an Online Request message (step 1) from the
+
Finally, the CP will notify the AAA server to start accounting (step
  RG (for example, a DHCP Discovery packet).  When the UP receives the
+
6).  At the same time, an Online Response message (for example, a
  Online Request from the RG, it will tunnel the Online Request to the
+
DHCP Ack packet) will be sent to the UP through the Si (step 7).  The
  CP through the Si (step 2).  A tunneling technology implements the
+
UP will then forward the Online Response to the RG (step 8).
  Si.
 
  
  When the CP receives the Online Request from the UP, it will send an
+
That completes the subscriber activation process.
  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).
 
  
  Finally, the CP will notify the AAA server to start accounting (step
+
==== Update Subscriber Session ====
  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).
 
  
  That completes the subscriber activation process.
+
The following numbered sequence (Figure 11) shows the process of
 +
updating the subscriber session.
  
4.3.2. Update Subscriber Session
+
            UP                      CP            AAA
 +
            |                        |  CoA Request |
 +
            |                      1|<--------------|
 +
            | Session Update Request |              |
 +
          2|<--------via Ci---------|              |
 +
            |                        |              |
 +
            | Session Update Response|              |
 +
          3|---------via Ci-------->|              |
 +
            |                        |  CoA Response |
 +
            |                      4|-------------->|
 +
            |                        |              |
  
  The following numbered sequence (Figure 11) shows the process of
+
              Figure 11: Updating a Subscriber Session
  updating the subscriber session.
 
  
              UP                       CP            AAA
+
When a subscriber session has been created on a UP, there may be
              |                        |  CoA Request  |
+
requirements to update the session with new parameters (e.g.,
              |                      1|<--------------|
+
bandwidth, QoS, policies, etc.).
              | Session Update Request |              |
 
              2|<--------via Ci---------|              |
 
              |                        |              |
 
              | Session Update Response|              |
 
              3|---------via Ci-------->|              |
 
              |                        |  CoA Response |
 
              |                      4|-------------->|
 
              |                        |              |
 
  
                  Figure 11: Updating a Subscriber Session
+
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.
  
  When a subscriber session has been created on a UP, there may be
+
==== Delete Subscriber Session ====
  requirements to update the session with new parameters (e.g.,
 
  bandwidth, QoS, policies, etc.).
 
  
  This procedure is triggered by a Change of Authorization (CoA)
+
The call flow below shows how S-CUSP deals with a subscriber Offline
  request message sent by the AAA server.  The CP will update the
+
Request.
  session on the UP according to the new parameters through the Ci.
 
  
4.3.3.  Delete Subscriber Session
+
          RG              UP                      CP
 +
            |Offline Request |                        |
 +
          1|--------------->|                        |
 +
            |                |    Relay the Offline  |
 +
            |                |        Request        |
 +
            |              2|------to CP via Si----->|
 +
            |                |                        |
 +
            |                |    Send the Offline    |
 +
            |                |        Response        |
 +
            |              3|<-----to UP via Si------|
 +
            |Offline Response|                        |
 +
          4|<---------------|                        |
 +
            |                |    Session Delete     |
 +
            |                |        Request        |
 +
            |                |<--------via Ci---------|
 +
            |                |    Session Delete    |
 +
            |                |      Response        |
 +
            |                |---------via Ci-------->|
 +
            |                |                        |
  
  The call flow below shows how S-CUSP deals with a subscriber Offline
+
              Figure 12: Deleting a Subscriber Session
  Request.
 
  
              RG              UP                       CP
+
Similar to the session creation process, when a UP receives an
              |Offline Request |                        |
+
Offline Request from an RG, it will tunnel the request to a CP
              1|--------------->|                        |
+
through the Si.
              |                |    Relay the Offline  |
 
              |                |        Request        |
 
              |              2|------to CP via Si----->|
 
              |                |                        |
 
              |                |    Send the Offline    |
 
              |                |        Response        |
 
              |              3|<-----to UP via Si------|
 
              |Offline Response|                        |
 
              4|<---------------|                        |
 
              |                |    Session Delete    |
 
              |                |        Request        |
 
              |                |<--------via Ci---------|
 
              |                |    Session Delete    |
 
              |                |      Response        |
 
              |                |---------via Ci-------->|
 
              |                |                        |
 
  
                  Figure 12: Deleting a Subscriber Session
+
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.
  
  Similar to the session creation process, when a UP receives an
+
==== Subscriber Session Events Report ====
  Offline Request from an RG, it will tunnel the request to a CP
 
  through the Si.
 
  
  When the CP receives the Offline Request, it will withdraw/release
+
                    UP                      CP
  the resources (e.g., IP address, bandwidth) that have been allocated
+
                    | Statistic/Detect Report|
  to the subscriber.  It then sends a reply to the UP through the Si,
+
                    |---------via Ci-------->|
  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.
 
  
4.3.4.  Subscriber Session Events Report
+
                      Figure 13: Events Report
  
                        UP                       CP
+
When a session is created on a UP, the UP will periodically report
                        | Statistic/Detect Report|
+
statistics information and subscriber detection results of the
                        |---------via Ci-------->|
+
session to the CP.
                        |                        |
 
  
                          Figure 13: Events Report
+
== S-CUSP Call Flows ==
  
  When a session is created on a UP, the UP will periodically report
+
The subsections below give an overview of various "dial-up"
  statistics information and subscriber detection results of the
+
interactions over the Si followed by an overview of the setting of
  session to the CP.
+
information in the UP by the CP using S-CUSP over the Ci.
  
5.  S-CUSP Call Flows
+
S-CUSP messages are described in this document using Routing Backus
 +
Naur Form (RBNF) as defined in [[RFC5511]].
  
  The subsections below give an overview of various "dial-up"
+
=== IPoE ===
  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.
 
  
  S-CUSP messages are described in this document using Routing Backus
+
==== DHCPv4 Access ====
  Naur Form (RBNF) as defined in [RFC5511].
 
  
5.1.  IPoE
+
The following sequence (Figure 14) shows detailed procedures for
 +
DHCPv4 access.
  
5.1.1. DHCPv4 Access
+
    RG              UP                      CP            AAA
 +
    | DHCP Discovery|                        |              |
 +
    1|-------------->|                        |              |
 +
    |              |Relay the DHCP Discovery|              |
 +
    |              2|-----to CP via Si------>|      AAA      |
 +
    |              |                        |    Req/Rep    |
 +
    |              |                      3|<------------->|
 +
    |              |  Send the DHCP Offer  |              |
 +
    |              4|<----to UP via Si-------|              |
 +
    |  DHCP Offer  |                        |              |
 +
    5|<--------------|                        |              |
 +
    |  DHCP Request |                        |              |
 +
    6|-------------->|                        |              |
 +
    |              | Relay the DHCP Request |              |
 +
    |              7|-----to CP via Si------>|              |
 +
    |              |                        |              |
 +
    |              |  Create Subscriber    |              |
 +
    |              |  Session Request      |              |
 +
    |              8|<--------via Ci---------|              |
 +
    |              |  Create Subscriber    |              |
 +
    |              |  Session Response    |              |
 +
    |              9|---------via Ci-------->|              |
 +
    |              |                        |  Accounting  |
 +
    |              |                      10|<------------->|
 +
    |              |  Send DHCP ACK        |              |
 +
    |            11|<----to UP via Si-------|              |
 +
    |              |                        |              |
 +
    | DHCP ACK    |                        |              |
 +
  12|<--------------|                        |              |
 +
    |              |                        |              |
  
  The following sequence (Figure 14) shows detailed procedures for
+
                      Figure 14: DHCPv4 Access
  DHCPv4 access.
 
  
        RG              UP                      CP            AAA
+
S-CUSP implements steps 8 and 9.
        | DHCP Discovery|                        |              |
 
      1|-------------->|                        |              |
 
        |              |Relay the DHCP Discovery|              |
 
        |              2|-----to CP via Si------>|      AAA      |
 
        |              |                        |    Req/Rep    |
 
        |              |                      3|<------------->|
 
        |              |  Send the DHCP Offer  |              |
 
        |              4|<----to UP via Si-------|              |
 
        |  DHCP Offer  |                        |              |
 
      5|<--------------|                        |              |
 
        |  DHCP Request |                        |              |
 
      6|-------------->|                        |              |
 
        |              | Relay the DHCP Request |              |
 
        |              7|-----to CP via Si------>|              |
 
        |              |                        |              |
 
        |              |  Create Subscriber    |              |
 
        |              |  Session Request      |              |
 
        |              8|<--------via Ci---------|              |
 
        |              |  Create Subscriber    |              |
 
        |              |  Session Response    |              |
 
        |              9|---------via Ci-------->|              |
 
        |              |                        |  Accounting  |
 
        |              |                      10|<------------->|
 
        |              |  Send DHCP ACK        |              |
 
        |            11|<----to UP via Si-------|              |
 
        |              |                        |              |
 
        |  DHCP ACK    |                        |              |
 
      12|<--------------|                        |              |
 
        |              |                        |              |
 
  
                          Figure 14: DHCPv4 Access
+
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.
  
  S-CUSP implements steps 8 and 9.
+
The format of the Update_Request message is shown as follows using
 +
RBNF:
  
  After a subscriber is authenticated and authorized by the AAA server,
+
<Update_Request Message> ::= <Common Header>
  the CP creates a new subscriber session on the UP.  This is achieved
+
                  <Basic Subscriber TLV>
  by sending an Update_Request message to the UP.
+
                  <IPv4 Subscriber TLV>
 +
                  <IPv4 Routing TLV>
 +
                  [<Subscriber Policy TLV>]
  
  The format of the Update_Request message is shown as follows using
+
The UP will reply with an Update_Response message.  The format of the
  RBNF:
+
Update_Response message is as follows:
  
  <Update_Request Message> ::= <Common Header>
+
<Update_Response Message> ::= <Common Header>
                    <Basic Subscriber TLV>
+
                <Update Response TLV>
                    <IPv4 Subscriber TLV>
+
                [<Subscriber CGN Port Range TLV>]
                    <IPv4 Routing TLV>
 
                    [<Subscriber Policy TLV>]
 
  
  The UP will reply with an Update_Response message.  The format of the
+
==== DHCPv6 Access ====
  Update_Response message is as follows:
 
  
  <Update_Response Message> ::= <Common Header>
+
The following sequence (Figure 15) shows detailed procedures for
                    <Update Response TLV>
+
DHCPv6 access.
                    [<Subscriber CGN Port Range TLV>]
 
  
5.1.2. DHCPv6 Access
+
    RG              UP                      CP            AAA
 +
    |  Solicit      |                        |              |
 +
    1|-------------->|                        |              |
 +
    |              |  Relay the Solicit    |              |
 +
    |              2|-----to CP via Si------>|      AAA      |
 +
    |              |                        |    Req/Rep    |
 +
    |              |                      3|<------------->|
 +
    |              |  Send the Advertise    |              |
 +
    |              4|<----to UP via Si-------|              |
 +
    |  Advertise    |                        |              |
 +
    5|<--------------|                        |              |
 +
    |              |                        |              |
 +
    |  Request      |                        |              |
 +
    6|-------------->|                        |              |
 +
    |              |  Relay the Request    |              |
 +
    |              7|-----to CP via Si------>|              |
 +
    |              |                        |              |
 +
    |              |  Create Subscriber    |              |
 +
    |              |  Session Request      |              |
 +
    |              8|<--------via Ci-------->|              |
 +
    |              |                        |              |
 +
    |              |  Create Subscriber    |              |
 +
    |              |  Session Response    |              |
 +
    |              9|---------via Ci-------->|              |
 +
    |              |                        |  Accounting  |
 +
    |              |                      10|<------------->|
 +
    |              |  Send Reply            |              |
 +
    |            11|<----to UP via Si-------|              |
 +
    | Reply        |                        |              |
 +
  12|<--------------|                        |              |
 +
    |              |                        |              |
  
  The following sequence (Figure 15) shows detailed procedures for
+
                      Figure 15: DHCPv6 Access
  DHCPv6 access.
 
  
        RG              UP                      CP            AAA
+
Steps 1-7 are a standard DHCP IPv6 access process.  The subscriber
        |  Solicit      |                        |              |
+
creation is triggered by a DHCP IPv6 request message. When this
      1|-------------->|                        |              |
+
message is received, it means that the subscriber has passed the AAA
        |              | Relay the Solicit    |              |
+
authentication and authorization. Then the CP will create a
        |              2|-----to CP via Si------>|      AAA     |
+
subscriber session on the UP. This is achieved by sending an
        |              |                        |    Req/Rep    |
+
Update_Request message to the UP (step 8).
        |              |                      3|<------------->|
 
        |              | Send the Advertise    |              |
 
        |              4|<----to UP via Si-------|              |
 
        | Advertise    |                        |              |
 
      5|<--------------|                        |              |
 
        |              |                        |              |
 
        |  Request      |                        |              |
 
      6|-------------->|                        |              |
 
        |              |  Relay the Request    |              |
 
        |              7|-----to CP via Si------>|              |
 
        |              |                        |              |
 
        |              |  Create Subscriber    |              |
 
        |              |  Session Request      |              |
 
        |              8|<--------via Ci-------->|              |
 
        |              |                        |              |
 
        |              |  Create Subscriber    |              |
 
        |              |  Session Response    |              |
 
        |              9|---------via Ci-------->|              |
 
        |              |                        |  Accounting  |
 
        |              |                      10|<------------->|
 
        |              |  Send Reply            |              |
 
        |            11|<----to UP via Si-------|              |
 
        |  Reply        |                        |              |
 
      12|<--------------|                        |              |
 
        |              |                        |              |
 
  
                          Figure 15: DHCPv6 Access
+
The format of the Update_Request message is as follows:
  
  Steps 1-7 are a standard DHCP IPv6 access process.  The subscriber
+
<Update_Request Message> ::= <Common Header>
  creation is triggered by a DHCP IPv6 request message.  When this
+
                  <Basic Subscriber TLV>
  message is received, it means that the subscriber has passed the AAA
+
                  <IPv6 Subscriber TLV>
  authentication and authorization.  Then the CP will create a
+
                  <IPv6 Routing TLV>
  subscriber session on the UP.  This is achieved by sending an
+
                  [<Subscriber Policy TLV>]
  Update_Request message to the UP (step 8).
 
  
  The format of the Update_Request message is as follows:
+
The UP will reply with an Update_Response message (step 9).  The
 +
format of the Update_Response message is as follows:
  
  <Update_Request Message> ::= <Common Header>
+
<Update_Response Message> ::= <Common Header>
                    <Basic Subscriber TLV>
+
                <Update Response TLV>
                    <IPv6 Subscriber TLV>
 
                    <IPv6 Routing TLV>
 
                    [<Subscriber Policy TLV>]
 
  
  The UP will reply with an Update_Response message (step 9).  The
+
==== IPv6 Stateless Address Autoconfiguration (SLAAC) Access ====
  format of the Update_Response message is as follows:
 
  
  <Update_Response Message> ::= <Common Header>
+
The following flow (Figure 16) shows the IPv6 SLAAC access process.
                    <Update Response TLV>
 
  
5.1.3. IPv6 Stateless Address Autoconfiguration (SLAAC) Access
+
    RG              UP                      CP            AAA
 +
    |      RS      |                        |              |
 +
    1|-------------->|                        |              |
 +
    |              |  Relay the Router      |              |
 +
    |              |    Solicit (RS)        |              |
 +
    |              2|-----to CP via Si------>|      AAA      |
 +
    |              |                        |    Req/Rep    |
 +
    |              |                      3|<------------->|
 +
    |              |  Create Subscriber    |              |
 +
    |              |  Session Request      |              |
 +
    |              4|<--------via Ci---------|              |
 +
    |              |                        |              |
 +
    |              |  Create Subscriber    |              |
 +
    |              |  Session Response    |              |
 +
    |              5|---------via Ci-------->|              |
 +
    |              |                        |              |
 +
    |              |  Send Router Advertise |              |
 +
    |              |        (RA)          |              |
 +
    |              6|<----to UP via Si-------|              |
 +
    |      RA      |                        |              |
 +
    7|<--------------|                        |              |
 +
    |              |                        |              |
 +
    |      NS      |                        |              |
 +
    8|-------------->|                        |              |
 +
    |              |  Relay the Neighbor    |              |
 +
    |              |    Solicit (NS)      |              |
 +
    |              9|-----to CP via Si------>|              |
 +
    |              |                        |  Accounting  |
 +
    |              |                      10|<------------->|
 +
    |              | Send a Neighbor      |              |
 +
    |              |    Advertise (NA)     |              |
 +
    |            11|<----to UP via Si-------|              |
 +
    |      NA      |                        |              |
 +
  12|<--------------|                        |              |
 +
    |              |                        |              |
  
  The following flow (Figure 16) shows the IPv6 SLAAC access process.
+
                    Figure 16: IPv6 SLAAC Access
  
        RG              UP                      CP            AAA
+
It starts with a Router Solicit (RS) request from an RG that is
        |      RS      |                        |              |
+
tunneled to the CP by the UP. After the AAA authentication and
      1|-------------->|                        |              |
+
authorization, the CP will create a subscriber session on the UP.
        |              |  Relay the Router     |              |
 
        |              |    Solicit (RS)       |              |
 
        |              2|-----to CP via Si------>|      AAA      |
 
        |              |                        |    Req/Rep    |
 
        |              |                      3|<------------->|
 
        |              |  Create Subscriber    |              |
 
        |              |  Session Request      |              |
 
        |              4|<--------via Ci---------|              |
 
        |              |                        |              |
 
        |              |  Create Subscriber    |              |
 
        |              |  Session Response    |              |
 
        |              5|---------via Ci-------->|              |
 
        |              |                        |              |
 
        |              |  Send Router Advertise |              |
 
        |              |        (RA)          |              |
 
        |              6|<----to UP via Si-------|              |
 
        |      RA      |                        |              |
 
      7|<--------------|                        |              |
 
        |              |                        |              |
 
        |      NS      |                        |              |
 
      8|-------------->|                        |              |
 
        |              | Relay the Neighbor    |              |
 
        |              |    Solicit (NS)      |              |
 
        |              9|-----to CP via Si------>|              |
 
        |              |                        |  Accounting  |
 
        |              |                      10|<------------->|
 
        |              |  Send a Neighbor      |              |
 
        |              |    Advertise (NA)    |              |
 
        |            11|<----to UP via Si-------|              |
 
        |      NA      |                        |              |
 
      12|<--------------|                        |              |
 
        |              |                        |              |
 
  
                        Figure 16: IPv6 SLAAC Access
+
This is achieved by sending an Update_Request message to the UP (step
 +
4).
  
  It starts with a Router Solicit (RS) request from an RG that is
+
The format of the Update_Request message is as follows:
  tunneled to the CP by the UP.  After the AAA authentication and
 
  authorization, the CP will create a subscriber session on the UP.
 
  
  This is achieved by sending an Update_Request message to the UP (step
+
<Update_Request Message> ::= <Common Header>
  4).
+
                  <Basic Subscriber TLV>
 +
                  <IPv6 Subscriber TLV>
 +
                  <IPv6 Routing TLV>
 +
                  [<Subscriber Policy TLV>]
  
  The format of the Update_Request message is as follows:
+
The UP will reply with an Update_Response message (step 5).  The
 +
format of the Update_Response message is as follows:
  
  <Update_Request Message> ::= <Common Header>
+
<Update_Response Message> ::= <Common Header>
                    <Basic Subscriber TLV>
+
                <Update Response TLV>
                    <IPv6 Subscriber TLV>
 
                    <IPv6 Routing TLV>
 
                    [<Subscriber Policy TLV>]
 
  
  The UP will reply with an Update_Response message (step 5).  The
+
==== DHCPv6 and SLAAC Access ====
  format of the Update_Response message is as follows:
 
  
  <Update_Response Message> ::= <Common Header>
+
The following call flow (Figure 17) shows the DHCP IPv6 and SLAAC
                    <Update Response TLV>
+
access process.
  
5.1.4. DHCPv6 and SLAAC Access
+
    RG              UP                      CP            AAA
 +
    |      RS      |                        |              |
 +
    1|-------------->|                        |              |
 +
    |              |  Relay the RS          |              |
 +
    |              2|-----to CP via Si------>|      AAA      |
 +
    |              |                        |    Req/Rep    |
 +
    |              |                      3|<------------->|
 +
    |              |  Create Subscriber    |              |
 +
    |              |  Session Request      |              |
 +
    |              4|<--------via Ci---------|              |
 +
    |              |                        |              |
 +
    |              |  Create Subscriber    |              |
 +
    |              |  Session Response    |              |
 +
    |              5|---------via Ci-------->|              |
 +
    |              |                        |              |
 +
    |              |  Send RA              |              |
 +
    |              6|<----to UP via Si-------|              |
 +
    |      RA      |                        |              |
 +
    7|<--------------|                        |              |
 +
    |              |                        |              |
 +
    |DHCPv6 Solicit |                        |              |
 +
    8|-------------->|                        |              |
 +
    |              | Relay DHCPv6 Solicit  |              |
 +
    |              9|-----to CP via Si------>|              |
 +
    |              |                        |              |
 +
    |              |  Update Subscriber    |              |
 +
    |              |  Session Request      |              |
 +
    |            10|<--------via Ci---------|              |
 +
    |              |                        |              |
 +
    |              |  Update Subscriber    |              |
 +
    |              |  Session Response    |              |
 +
    |            11|---------via Ci-------->|              |
 +
    |              |                        |  Accounting  |
 +
    |              |                      12|<------------->|
 +
    |              |  Send DHCPv6 Reply    |              |
 +
    |            13|<----to UP via Si-------|              |
 +
    |              |                        |              |
 +
    | DHCPv6 Reply  |                        |              |
 +
  14|<--------------|                        |              |
 +
    |              |                        |              |
  
  The following call flow (Figure 17) shows the DHCP IPv6 and SLAAC
+
                  Figure 17: DHCPv6 and SLAAC Access
  access process.
 
  
        RG              UP                      CP            AAA
+
When a subscriber passes AAA authentication, the CP will create a
        |      RS      |                        |              |
+
subscriber session on the UP. This is achieved by sending an
      1|-------------->|                        |              |
+
Update_Request message to the UP (step 4).
        |              |  Relay the RS          |              |
 
        |              2|-----to CP via Si------>|      AAA      |
 
        |              |                        |    Req/Rep    |
 
        |              |                      3|<------------->|
 
        |              |  Create Subscriber    |              |
 
        |              |  Session Request      |              |
 
        |              4|<--------via Ci---------|              |
 
        |              |                        |              |
 
        |              |  Create Subscriber    |              |
 
        |              |  Session Response    |              |
 
        |              5|---------via Ci-------->|              |
 
        |              |                        |              |
 
        |              |  Send RA              |              |
 
        |              6|<----to UP via Si-------|              |
 
        |      RA      |                        |              |
 
      7|<--------------|                        |              |
 
        |              |                        |              |
 
        |DHCPv6 Solicit |                        |              |
 
      8|-------------->|                        |              |
 
        |              |  Relay DHCPv6 Solicit |              |
 
        |              9|-----to CP via Si------>|              |
 
        |              |                        |              |
 
        |              |  Update Subscriber    |              |
 
        |              |  Session Request      |              |
 
        |            10|<--------via Ci---------|              |
 
        |              |                        |              |
 
        |              |  Update Subscriber    |              |
 
        |              |  Session Response    |              |
 
        |            11|---------via Ci-------->|              |
 
        |              |                        |  Accounting  |
 
        |              |                      12|<------------->|
 
        |              |  Send DHCPv6 Reply    |              |
 
        |            13|<----to UP via Si-------|              |
 
        |              |                        |              |
 
        | DHCPv6 Reply  |                        |              |
 
      14|<--------------|                        |              |
 
        |              |                        |              |
 
  
                    Figure 17: DHCPv6 and SLAAC Access
+
<Update_Request Message> ::= <Common Header>
 +
                  <Basic Subscriber TLV>
 +
                  <IPv6 Subscriber TLV>
 +
                  <IPv6 Routing TLV>
 +
                  [<Subscriber Policy TLV>]
  
  When a subscriber passes AAA authentication, the CP will create a
+
The UP will reply with an Update_Response message (step 5). The
  subscriber session on the UP.  This is achieved by sending an
+
format of the Update_Response is as follows:
  Update_Request message to the UP (step 4).
 
  
  <Update_Request Message> ::= <Common Header>
+
<Update_Response Message> ::= <Common Header>
                    <Basic Subscriber TLV>
+
                <Update Response TLV>
                    <IPv6 Subscriber TLV>
 
                    <IPv6 Routing TLV>
 
                    [<Subscriber Policy TLV>]
 
  
  The UP will reply with an Update_Response message (step 5). The
+
After receiving a DHCPv6 Solicit, the CP will update the subscriber
  format of the Update_Response is as follows:
+
session by sending an Update_Request message with new parameters to
 +
the UP (step 10).
  
  <Update_Response Message> ::= <Common Header>
+
The format of the Update_Request message is as follows:
                    <Update Response TLV>
 
  
  After receiving a DHCPv6 Solicit, the CP will update the subscriber
+
<Update_Request Message> ::= <Common Header>
  session by sending an Update_Request message with new parameters to
+
                  <Basic Subscriber TLV>
  the UP (step 10).
+
                  <IPv6 Subscriber TLV>
 +
                  <IPv6 Routing TLV>
 +
                  [<Subscriber Policy TLV>]
  
  The format of the Update_Request message is as follows:
+
The UP will reply with an Update_Response message (step 11).  The
 +
format of the Update_Response is as follows:
  
  <Update_Request Message> ::= <Common Header>
+
<Update_Response Message> ::= <Common Header>
                    <Basic Subscriber TLV>
+
                <Update Response TLV>
                    <IPv6 Subscriber TLV>
 
                    <IPv6 Routing TLV>
 
                    [<Subscriber Policy TLV>]
 
  
  The UP will reply with an Update_Response message (step 11).  The
+
==== DHCP Dual-Stack Access ====
  format of the Update_Response is as follows:
 
  
  <Update_Response Message> ::= <Common Header>
+
The following sequence (Figure 18) is a combination of DHCP IPv4 and
                    <Update Response TLV>
+
DHCP IPv6 access processes.
  
5.1.5. DHCP Dual-Stack Access
+
    RG              UP                      CP            AAA
 +
    | DHCP Discovery|                        |              |
 +
    1|-------------->|                        |              |
 +
    |              |Relay the DHCP Discovery|              |
 +
    |              2|-----to CP via Si------>|    AAA      |
 +
    |              |                        |  Req/Resp    |
 +
    |              |                      3|<------------->|
 +
    |              |  Send the DHCP Offer  |              |
 +
    |              4|<----to UP via Si-------|              |
 +
    |  DHCP Offer  |                        |              |
 +
    5|<--------------|                        |              |
 +
    |  DHCP Request |                        |              |
 +
    6|-------------->|                        |              |
 +
    |              |  Relay the DHCP Request|              |
 +
    |              7|-----to CP via Si------>|              |
 +
    |              |                        |              |
 +
    |              |  Create Subscriber    |              |
 +
    |              |  Session Request      |              |
 +
    |              8|<--------via Ci-------->|              |
 +
    |              |  Create Subscriber    |              |
 +
    |              |  Session Response    |              |
 +
    |              9|---------via Ci-------->|              |
 +
    |              |                        |  Accounting  |
 +
    |              |                      10|<------------->|
 +
    |              |  Send DHCP ACK        |              |
 +
    |            11|<----to UP via Si-------|              |
 +
    | DHCP ACK    |                        |              |
 +
  12|<--------------|                        |              |
 +
    |      RS      |                        |              |
 +
  13|-------------->|                        |              |
 +
    |              |  Relay the RS          |              |
 +
    |            14|-----to CP via Si------>|      AAA      |
 +
    |              |                        |    Req/Rep    |
 +
    |              |                      15|<------------->|
 +
    |              |  Create Subscriber    |              |
 +
    |              |  Session Request      |              |
 +
    |            16|<--------via Ci---------|              |
 +
    |              |  Create Subscriber    |              |
 +
    |              |  Session Response    |              |
 +
    |            17|---------via Ci-------->|              |
 +
    |              |                        |              |
 +
    |              |  Send the RA          |              |
 +
    |            18|<----to UP via Si-------|              |
 +
    |      RA      |                        |              |
 +
  19|<--------------|                        |              |
 +
    |DHCPv6 Solicit |                        |              |
 +
  20|-------------->|                        |              |
 +
    |              |  Relay DHCPv6 Solicit  |              |
 +
    |            21|-----to CP via Si------>|              |
 +
    |              |                        |              |
 +
    |              |  Update Subscriber    |              |
 +
    |              |  Session Request      |              |
 +
    |            22|<--------via Ci---------|              |
 +
    |              |  Update Subscriber    |              |
 +
    |              |  Session Response    |              |
 +
    |            23|---------via Ci-------->|              |
 +
    |              |                        |  Accounting  |
 +
    |              |                      24|<------------->|
 +
    |              |  Send DHCPv6 Reply    |              |
 +
    |            25|<----to UP via Si-------|              |
 +
    | DHCPv6 Reply  |                        |              |
 +
  26|<--------------|                        |              |
 +
    |              |                        |              |
  
  The following sequence (Figure 18) is a combination of DHCP IPv4 and
+
                  Figure 18: DHCP Dual-Stack Access
  DHCP IPv6 access processes.
 
  
        RG              UP                      CP            AAA
+
The DHCP dual-stack access includes three sets of Update_Request/
        | DHCP Discovery|                        |              |
+
Update_Response exchanges to create/update a DHCPv4/v6 subscriber
      1|-------------->|                        |              |
+
session.
        |              |Relay the DHCP Discovery|              |
 
        |              2|-----to CP via Si------>|    AAA      |
 
        |              |                        |  Req/Resp    |
 
        |              |                      3|<------------->|
 
        |              |  Send the DHCP Offer  |              |
 
        |              4|<----to UP via Si-------|              |
 
        |  DHCP Offer  |                        |              |
 
      5|<--------------|                        |              |
 
        |  DHCP Request |                        |              |
 
      6|-------------->|                        |              |
 
        |              |  Relay the DHCP Request|              |
 
        |              7|-----to CP via Si------>|              |
 
        |              |                        |              |
 
        |              |  Create Subscriber    |              |
 
        |              |  Session Request      |              |
 
        |              8|<--------via Ci-------->|              |
 
        |              |  Create Subscriber    |              |
 
        |              |  Session Response    |              |
 
        |              9|---------via Ci-------->|              |
 
        |              |                        |  Accounting  |
 
        |              |                      10|<------------->|
 
        |              |  Send DHCP ACK        |              |
 
        |            11|<----to UP via Si-------|              |
 
        |  DHCP ACK    |                        |              |
 
      12|<--------------|                        |              |
 
        |      RS      |                        |              |
 
      13|-------------->|                        |              |
 
        |              |  Relay the RS          |              |
 
        |            14|-----to CP via Si------>|      AAA      |
 
        |              |                        |    Req/Rep    |
 
        |              |                      15|<------------->|
 
        |              |  Create Subscriber    |              |
 
        |              |  Session Request      |              |
 
        |            16|<--------via Ci---------|              |
 
        |              |  Create Subscriber    |              |
 
        |              |  Session Response    |              |
 
        |            17|---------via Ci-------->|              |
 
        |              |                        |              |
 
        |              |  Send the RA          |              |
 
        |            18|<----to UP via Si-------|              |
 
        |      RA      |                        |              |
 
      19|<--------------|                        |              |
 
        |DHCPv6 Solicit |                        |              |
 
      20|-------------->|                        |              |
 
        |              |  Relay DHCPv6 Solicit  |              |
 
        |            21|-----to CP via Si------>|              |
 
        |              |                        |              |
 
        |              |  Update Subscriber    |              |
 
        |              |  Session Request      |              |
 
        |            22|<--------via Ci---------|              |
 
        |              |  Update Subscriber    |              |
 
        |              |  Session Response    |              |
 
        |            23|---------via Ci-------->|              |
 
        |              |                        |  Accounting  |
 
        |              |                      24|<------------->|
 
        |              |  Send DHCPv6 Reply    |              |
 
        |            25|<----to UP via Si-------|              |
 
        | DHCPv6 Reply  |                        |              |
 
      26|<--------------|                        |              |
 
        |              |                        |              |
 
  
                    Figure 18: DHCP Dual-Stack Access
+
(1)  Create a DHCPv4 session (steps 8 and 9):
  
   The DHCP dual-stack access includes three sets of Update_Request/
+
   <Update_Request Message> ::= <Common Header>
  Update_Response exchanges to create/update a DHCPv4/v6 subscriber
+
                    <Basic Subscriber TLV>
  session.
+
                    <IPv4 Subscriber TLV>
 
+
                    <IPv4 Routing TLV>
  (1)  Create a DHCPv4 session (steps 8 and 9):
+
                    [<Subscriber Policy TLV>]
 
 
      <Update_Request Message> ::= <Common Header>
 
                        <Basic Subscriber TLV>
 
                        <IPv4 Subscriber TLV>
 
                        <IPv4 Routing TLV>
 
                        [<Subscriber Policy TLV>]
 
 
 
      <Update_Response Message> ::= <Common Header>
 
                      <Update Response TLV>
 
                      [<Subscriber CGN Port Range TLV>]
 
 
 
  (2)  Create a DHCPv6 session (steps 16 and 17):
 
 
 
      <Update_Request Message> ::= <Common Header>
 
                        <Basic Subscriber TLV>
 
                        <IPv6 Subscriber TLV>
 
                        <IPv6 Routing TLV>
 
                        [<Subscriber Policy TLV>]
 
 
 
      <Update_Response Message> ::= <Common Header>
 
                      <Update Response TLV>
 
 
 
  (3)  Update DHCPv6 session (steps 22 and 23):
 
 
 
      <Update_Request Message> ::= <Common Header>
 
                        <Basic Subscriber TLV>
 
                        <IPv6 Subscriber TLV>
 
                        <IPv6 Routing TLV>
 
                        [<Subscriber Policy TLV>]
 
 
 
      <Update_Response Message> ::= <Common Header>
 
                      <Update Response TLV>
 
 
 
5.1.6.  L2 Static Subscriber Access
 
 
 
  L2 static subscriber access processes are as follows:
 
 
 
        RG              UP                      CP              AAA
 
        |              |    Static Subscriber  |              |
 
        |              |    Detection Req.    |              |
 
        |              1|<-----to UP via Ci------|              |
 
        |              |    Static Subscriber  |              |
 
        |              |    Detection Rep.    |              |
 
        |              2|------to UP via Ci----->|              |
 
        |  ARP/ND(REQ)  |                        |              |
 
    3.1|<--------------|                        |              |
 
        |  ARP/ND(ACK)  |                        |              |
 
    3.2|-------------->|                        |              |
 
        |              |  Relay the ARP/ND      |              |
 
        |            3.3|-----to CP via Si------>|      AAA    |
 
        |              |                        |    Req/Rep    |
 
        |              |                    3.4|<------------->|
 
        |              |  Create Subscriber    |              |
 
        |              |  Session Request      |              |
 
        |            3.5|<--------via Ci---------|              |
 
        |              |  Create Subscriber    |              |
 
        |              |  Session Response    |              |
 
        |            3.6|---------via Ci-------->|              |
 
        |  ARP/ND(REQ)  |                        |              |
 
    4.1|-------------->|                        |              |
 
        |              |  Relay the ARP/ND      |              |
 
        |            4.2|-----to CP via Si------>|      AAA      |
 
        |              |                        |    Req/Rep    |
 
        |              |                    4.3|<------------->|
 
        |              |  Create Subscriber    |              |
 
        |              |  Session Request      |              |
 
        |            4.4|<--------via Ci---------|              |
 
        |              |  Create Subscriber    |              |
 
        |              |  Session Response    |              |
 
        |            4.5|---------via Ci-------->|              |
 
        |  ARP/ND(ACK)  |                        |              |
 
    4.6|<--------------|                        |              |
 
        |  IP Traffic  |                        |              |
 
    5.1|-------------->|                        |              |
 
        |              |  Relay the IP Traffic  |              |
 
        |            5.2|-----to CP via Si------>|      AAA      |
 
        |              |                        |    Req/Rep    |
 
        |              |                    5.3|<------------->|
 
        |              |  Create Subscriber    |              |
 
        |              |  Session Request      |              |
 
        |            5.4|<--------via Ci-------->|              |
 
        |              |  Create Subscriber    |              |
 
        |              |  Session Response    |              |
 
        |            5.5|---------via Ci-------->|              |
 
        |  ARP/ND(REQ)  |                        |              |
 
    5.6|<--------------|                        |              |
 
        |  ARP/ND(ACK)  |                        |              |
 
    5.7|-------------->|                        |              |
 
        |              |                        |              |
 
 
 
                  Figure 19: L2 Static Subscriber Access
 
 
 
  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:
 
 
 
  <Update_Request Message> ::= <Common Header>
 
                    <IPv4 Static Subscriber Detect TLVs>
 
                    <IPv6 Static Subscriber Detect TLVs>
 
  
 
   <Update_Response Message> ::= <Common Header>
 
   <Update_Response Message> ::= <Common Header>
 
                     <Update Response TLV>
 
                     <Update Response TLV>
 +
                    [<Subscriber CGN Port Range TLV>]
  
  For L2 static subscriber access, there are three ways to trigger the
+
(2Create a DHCPv6 session (steps 16 and 17):
  access process:
 
 
 
  (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.
 
 
 
  (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.
 
 
 
  (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.
 
 
 
  From a subscriber session point of view, the procedures and the
 
  message formats for the three cases above are the same, as follows.
 
 
 
  IPv4 Case:
 
  
 
   <Update_Request Message> ::= <Common Header>
 
   <Update_Request Message> ::= <Common Header>
 
                     <Basic Subscriber TLV>
 
                     <Basic Subscriber TLV>
                     <IPv4 Subscriber TLV>
+
                     <IPv6 Subscriber TLV>
                     <IPv4 Routing TLV>
+
                     <IPv6 Routing TLV>
 
                     [<Subscriber Policy TLV>]
 
                     [<Subscriber Policy TLV>]
  
 
   <Update_Response Message> ::= <Common Header>
 
   <Update_Response Message> ::= <Common Header>
 
                     <Update Response TLV>
 
                     <Update Response TLV>
                    [<Subscriber CGN Port Range TLV>]
 
  
  IPv6 Case:
+
(3)  Update DHCPv6 session (steps 22 and 23):
  
 
   <Update_Request Message> ::= <Common Header>
 
   <Update_Request Message> ::= <Common Header>
Line 1,655: Line 1,529:
 
                     <Update Response TLV>
 
                     <Update Response TLV>
  
5.2.  PPPoE
+
==== L2 Static Subscriber Access ====
  
5.2.1.  IPv4 PPPoE Access
+
L2 static subscriber access processes are as follows:
  
   Figure 20 shows the IPv4 PPPoE access call flow.
+
    RG              UP                      CP              AAA
 +
    |              |   Static Subscriber  |              |
 +
    |              |    Detection Req.    |              |
 +
    |              1|<-----to UP via Ci------|              |
 +
    |              |    Static Subscriber  |              |
 +
    |              |    Detection Rep.    |              |
 +
    |              2|------to UP via Ci----->|              |
 +
    |  ARP/ND(REQ)  |                        |              |
 +
  3.1|<--------------|                        |              |
 +
    |  ARP/ND(ACK)  |                        |              |
 +
  3.2|-------------->|                        |              |
 +
    |              |  Relay the ARP/ND      |              |
 +
    |            3.3|-----to CP via Si------>|      AAA    |
 +
    |              |                        |    Req/Rep    |
 +
    |              |                    3.4|<------------->|
 +
    |              |  Create Subscriber    |              |
 +
    |              |  Session Request      |              |
 +
    |            3.5|<--------via Ci---------|              |
 +
    |              |  Create Subscriber    |              |
 +
    |              |  Session Response    |              |
 +
    |            3.6|---------via Ci-------->|              |
 +
    |  ARP/ND(REQ)  |                        |              |
 +
  4.1|-------------->|                        |              |
 +
    |              |  Relay the ARP/ND      |              |
 +
    |            4.2|-----to CP via Si------>|      AAA      |
 +
    |              |                        |    Req/Rep    |
 +
    |              |                    4.3|<------------->|
 +
    |              |  Create Subscriber    |              |
 +
    |              |  Session Request      |              |
 +
    |            4.4|<--------via Ci---------|              |
 +
    |              |  Create Subscriber    |              |
 +
    |              |  Session Response    |              |
 +
    |            4.5|---------via Ci-------->|              |
 +
    |  ARP/ND(ACK)  |                        |              |
 +
  4.6|<--------------|                        |              |
 +
    |  IP Traffic  |                        |              |
 +
  5.1|-------------->|                        |              |
 +
    |              |  Relay the IP Traffic  |              |
 +
    |            5.2|-----to CP via Si------>|      AAA      |
 +
    |              |                        |    Req/Rep    |
 +
    |              |                    5.3|<------------->|
 +
    |              |  Create Subscriber    |              |
 +
    |              |  Session Request      |              |
 +
    |            5.4|<--------via Ci-------->|              |
 +
    |              |  Create Subscriber    |              |
 +
    |              |  Session Response    |              |
 +
    |            5.5|---------via Ci-------->|              |
 +
    |  ARP/ND(REQ)  |                        |              |
 +
  5.6|<--------------|                        |              |
 +
    |  ARP/ND(ACK)  |                        |              |
 +
  5.7|-------------->|                        |              |
 +
    |              |                        |              |
  
        RG              UP                      CP              AAA
+
                Figure 19: L2 Static Subscriber Access
        |  PPPoE Disc  |        PPPoE Disc      |              |
 
      1|<------------->|<---------via Si------->|              |
 
        |              |                        |              |
 
        |  PPP LCP      |        PPP LCP        |              |
 
      2|<------------->|<---------via Si------->|              |
 
        |              |                        |      AAA      |
 
        |  PPP PAP/CHAP |        PPP PAP/CHAP    |    Req/Rep    |
 
      3|<------------->|<---------via Si------->|<------------->|
 
        |              |                        |              |
 
        |  PPP IPCP    |        PPP IPCP        |              |
 
      4|<------------->|<---------via Si------->|              |
 
        |              |                        |              |
 
        |              |  Create Subscriber     |              |
 
        |              |  Session Request      |              |
 
        |              5|<--------via Ci---------|              |
 
        |              |  Create Subscriber    |              |
 
        |              |  Session Response    |              |
 
        |              6|---------via Ci-------->|              |
 
        |              |                        |  Accounting  |
 
        |              |                      7|<------------->|
 
        |              |                        |              |
 
  
                        Figure 20: IPv4 PPPoE Access
+
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:
  
  In the above sequence, steps 1-4 are the standard PPPoE call flow.
+
<Update_Request Message> ::= <Common Header>
  The UP is responsible for redirecting the PPPoE control packets to
+
                  <IPv4 Static Subscriber Detect TLVs>
  the CP or RG.  The PPPoE control packets are transmitted between the
+
                  <IPv6 Static Subscriber Detect TLVs>
  CP and UP through the Si.
 
  
  After the PPPoE call flow, if the subscriber passed the AAA
+
<Update_Response Message> ::= <Common Header>
  authentication and authorization, the CP will create a corresponding
+
                <Update Response TLV>
  session on the UP through the Ci.  The formats of the messages are as
+
 
  follows:
+
For L2 static subscriber access, there are three ways to trigger the
 +
access process:
  
  <Update_Request Message> ::= <Common Header>
+
(1)  Triggered by UP (steps 3.1-3.6): This assumes that the UP knows
                    <Basic Subscriber TLV>
+
    the IP address, the access interface, and the VLAN of the RG.
                    <PPP Subscriber TLV>
+
    The UP will actively trigger the access flow by sending an ARP/
                    <IPv4 Subscriber TLV>
+
    ND packet to the RG.  If the RG is online, it will reply with an
                    <IPv4 Routing TLV>
+
    ARP/ND to the UP.  The UP will tunnel the ARP/ND to the CP
                    [<Subscriber Policy TLV>]
+
    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.
  
  <Update_Response Message> ::= <Common Header>
+
(2)  Triggered by RG ARP/ND (steps 4.1-4.6): Most of the process is
                    <Update Response TLV>
+
    the same as option 1 (triggered by UP).  The difference is that
                    [<Subscriber CGN Port Range TLV>]
+
    the RG will actively send the ARP/ND to trigger the process.
  
5.2.2IPv6 PPPoE Access
+
(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.
  
  Figure 21 describes the IPv6 PPPoE access call flow.
+
From a subscriber session point of view, the procedures and the
 +
message formats for the three cases above are the same, as follows.
  
        RG              UP                      CP              AAA
+
IPv4 Case:
        |  PPPoE Disc  |        PPPoE Disc      |              |
 
      1|<------------->|<--------via Si-------->|              |
 
        |              |                        |              |
 
        |  PPP LCP      |        PPP LCP        |              |
 
      2|<------------->|<---------via Si------->|              |
 
        |              |                        |      AAA      |
 
        |  PPP PAP/CHAP |        PPP PAP/CHAP    |    Req/Rep    |
 
      3|<------------->|<---------via Si------->|<------------->|
 
        |              |                        |              |
 
        |  PPP IP6CP    |        PPP IP6CP      |              |
 
      4|<------------->|<---------via Si------->|              |
 
        |              |                        |              |
 
        |              |  Create Subscriber    |              |
 
        |              |  Session Request      |              |
 
        |              5|<--------via Ci---------|              |
 
        |              |  Create Subscriber    |              |
 
        |              |  Session Response    |              |
 
        |              6|---------via Ci-------->|              |
 
        |              |                        |              |
 
        | ND Negotiation|        ND Negotiation  |              |
 
      7|<------------->|<---------via Si------->|              |
 
        |              |                        |              |
 
        |              |  Update Subscriber    |              |
 
        |              |  Session Request      |              |
 
        |              8|<--------via Ci---------|              |
 
        |              |  Update Subscriber    |              |
 
        |              |  Session Response    |              |
 
        |              9|---------via Ci-------->|              |
 
        |              |                        |  Accounting  |
 
        |              |                      10|<------------->|
 
        |    DHCPv6    |        DHCPv6          |              |
 
        |  Negotiation  |      Negotiation      |              |
 
      7'|<------------->|<---------via Si------->|              |
 
        |              |                        |              |
 
        |              |  Update Subscriber    |              |
 
        |              |  Session Request      |              |
 
        |            8'|<---------via Ci--------|              |
 
        |              |  Update Subscriber    |              |
 
        |              |  Session Response    |              |
 
        |            9'|---------via Ci-------->|              |
 
        |              |                        |  Accounting  |
 
        |              |                    10'|<------------->|
 
        |              |                        |              |
 
  
                        Figure 21: IPv6 PPPoE Access
+
<Update_Request Message> ::= <Common Header>
 +
                  <Basic Subscriber TLV>
 +
                  <IPv4 Subscriber TLV>
 +
                  <IPv4 Routing TLV>
 +
                  [<Subscriber Policy TLV>]
  
  From the above sequence, steps 1-4 are the standard PPPoE call flow.
+
<Update_Response Message> ::= <Common Header>
  The UP is responsible for redirecting the PPPoE control packets to
+
                <Update Response TLV>
  the CP or RG.  The PPPoE control packets are transmitted between the
+
                [<Subscriber CGN Port Range TLV>]
  CP and UP through the Si.
 
  
  After the PPPoE call flow, if the subscriber passed the AAA
+
IPv6 Case:
  authentication and authorization, the CP will create a corresponding
 
  session on the UP through the Ci.  The formats of the messages are as
 
  follows:
 
  
  <Update_Request Message> ::= <Common Header>
+
<Update_Request Message> ::= <Common Header>
                    <Basic Subscriber TLV>
+
                  <Basic Subscriber TLV>
                    <PPP Subscriber TLV>
+
                  <IPv6 Subscriber TLV>
                    <IPv6 Subscriber TLV>
+
                  <IPv6 Routing TLV>
                    <IPv6 Routing TLV>
+
                  [<Subscriber Policy TLV>]
                    [<Subscriber Policy TLV>]
 
  
  <Update_Response Message> ::= <Common Header>
+
<Update_Response Message> ::= <Common Header>
                    <Update Response TLV>
+
                <Update Response TLV>
  
  Then, the RG will initialize an ND/DHCPv6 negotiation process with
+
=== PPPoE ===
  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:
 
  
  <Update_Request Message> ::= <Common Header>
+
==== IPv4 PPPoE Access ====
                    <Basic Subscriber TLV>
+
 
                    <PPP Subscriber TLV>
+
Figure 20 shows the IPv4 PPPoE access call flow.
                    <IPv6 Subscriber TLV>
+
 
                    <IPv6 Routing TLV>
+
    RG              UP                      CP              AAA
                     [<Subscriber Policy TLV>]
+
    |  PPPoE Disc  |        PPPoE Disc      |              |
 +
    1|<------------->|<---------via Si------->|              |
 +
    |              |                        |              |
 +
    |  PPP LCP      |        PPP LCP        |              |
 +
    2|<------------->|<---------via Si------->|              |
 +
    |              |                        |      AAA      |
 +
    |  PPP PAP/CHAP |        PPP PAP/CHAP    |    Req/Rep    |
 +
    3|<------------->|<---------via Si------->|<------------->|
 +
    |              |                        |              |
 +
    |  PPP IPCP    |        PPP IPCP        |              |
 +
    4|<------------->|<---------via Si------->|              |
 +
    |              |                        |              |
 +
    |              |  Create Subscriber     |              |
 +
    |              |  Session Request      |              |
 +
    |              5|<--------via Ci---------|              |
 +
    |              |  Create Subscriber     |              |
 +
    |              |  Session Response    |              |
 +
    |              6|---------via Ci-------->|              |
 +
    |              |                        |  Accounting  |
 +
    |              |                      7|<------------->|
 +
    |              |                        |              |
 +
 
 +
                     Figure 20: IPv4 PPPoE Access
  
  <Update_Response Message> ::= <Common Header>
+
In the above sequence, steps 1-4 are the standard PPPoE call flow.
                    <Update Response TLV>
+
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.
  
5.2.3PPPoE Dual-Stack Access
+
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 CiThe formats of the messages are as
 +
follows:
  
  Figure 22 shows a combination of IPv4 and IPv6 PPPoE access call
+
<Update_Request Message> ::= <Common Header>
  flows.
+
                  <Basic Subscriber TLV>
 +
                  <PPP Subscriber TLV>
 +
                  <IPv4 Subscriber TLV>
 +
                  <IPv4 Routing TLV>
 +
                  [<Subscriber Policy TLV>]
  
        RG              UP                      CP              AAA
+
<Update_Response Message> ::= <Common Header>
        |PPPoE Discovery|      PPPoE Discovery  |              |
+
                <Update Response TLV>
      1|<------------->|<---------via Si------->|              |
+
                [<Subscriber CGN Port Range TLV>]
        |              |                        |              |
 
        |  PPP LCP      |        PPP LCP        |              |
 
      2|<------------->|<---------via Si------->|              |
 
        |              |                        |      AAA      |
 
        |  PPP PAP/CHAP |        PPP PAP/CHAP    |    Req/Rep    |
 
      3|<------------->|<---------via Si------->|<------------->|
 
        |              |                        |              |
 
        |  PPP IPCP    |        PPP IPCP        |              |
 
      4|<------------->|<---------via Si------->|              |
 
        |              |                        |              |
 
        |              |  Create v4 Subscriber  |              |
 
        |              |  Session Request      |              |
 
        |              5|<--------via Ci---------|              |
 
        |              |  Create v4 Subscriber  |              |
 
        |              |  Session Response    |              |
 
        |              6|---------via Ci-------->|              |
 
        |              |                        |  Accounting  |
 
        |              |                      7|<------------->|
 
        |  PPP IP6CP    |        PPP IP6CP      |              |
 
      4'|<------------->|<---------via Si------->|              |
 
        |              |                        |              |
 
        |              |  Create V6 Subscriber  |              |
 
        |              |  Session Request      |              |
 
        |            5'|<--------via Ci---------|              |
 
        |              |  Create v6 Subscriber  |              |
 
        |              |  Session Response    |              |
 
        |            6'|---------via Ci-------->|              |
 
        |              |                        |              |
 
        | ND Negotiation|    ND Negotiation    |              |
 
      8|<------------->|<---------via Si------->|              |
 
        |              |                        |              |
 
        |              |  Update v6 Subscriber  |              |
 
        |              |  Session Request      |              |
 
        |              9|<---------via Ci--------|              |
 
        |              |  Update v6 Subscriber  |              |
 
        |              |  Session Response     |              |
 
        |            10|---------via Ci-------->|              |
 
        |              |                        |  Accounting  |
 
        |              |                      7'|<------------->|
 
        |    DHCPv6    |        DHCPv6          |              |
 
        |  Negotiation  |      Negotiation      |              |
 
      8'|<------------->|<---------via Si------->|              |
 
        |              |                        |              |
 
        |              |  Update v6 Subscriber |              |
 
        |              |  Session Request      |              |
 
        |            9'|<--------via Ci---------|              |
 
        |              |  Update v6 Subscriber  |              |
 
        |              |  Session Response    |              |
 
        |            10'|---------via Ci-------->|              |
 
        |              |                        |  Accounting  |
 
        |              |                      7"|<------------->|
 
        |              |                        |              |
 
  
                    Figure 22: PPPoE Dual-Stack Access
+
==== IPv6 PPPoE Access ====
  
  PPPoE dual stack is a combination of IPv4 PPPoE and IPv6 PPPoE
+
Figure 21 describes the IPv6 PPPoE access call flow.
  access. The process is as above.  The formats of the messages are as
 
  follows:
 
  
   (1) Create an IPv4 PPPoE subscriber session (steps 5-6):
+
    RG              UP                      CP              AAA
 +
    |  PPPoE Disc  |        PPPoE Disc      |              |
 +
    1|<------------->|<--------via Si-------->|              |
 +
    |              |                        |              |
 +
    |  PPP LCP      |        PPP LCP        |              |
 +
    2|<------------->|<---------via Si------->|              |
 +
    |              |                        |      AAA      |
 +
    |  PPP PAP/CHAP |        PPP PAP/CHAP    |    Req/Rep    |
 +
    3|<------------->|<---------via Si------->|<------------->|
 +
    |              |                        |              |
 +
    |  PPP IP6CP   |        PPP IP6CP      |              |
 +
    4|<------------->|<---------via Si------->|              |
 +
    |              |                        |              |
 +
    |              | Create Subscriber    |              |
 +
    |              |  Session Request      |              |
 +
    |              5|<--------via Ci---------|              |
 +
    |              |  Create Subscriber    |              |
 +
    |              |  Session Response    |              |
 +
    |              6|---------via Ci-------->|              |
 +
    |              |                        |              |
 +
    | ND Negotiation|        ND Negotiation  |              |
 +
    7|<------------->|<---------via Si------->|              |
 +
    |              |                        |              |
 +
    |              |  Update Subscriber    |              |
 +
    |              |  Session Request      |              |
 +
    |              8|<--------via Ci---------|              |
 +
    |              |  Update Subscriber    |              |
 +
    |              |  Session Response    |              |
 +
    |              9|---------via Ci-------->|              |
 +
    |              |                        |  Accounting  |
 +
    |              |                      10|<------------->|
 +
    |    DHCPv6    |        DHCPv6          |              |
 +
    |  Negotiation  |      Negotiation      |              |
 +
  7'|<------------->|<---------via Si------->|              |
 +
    |              |                        |              |
 +
    |              |  Update Subscriber    |              |
 +
    |              |  Session Request      |              |
 +
    |            8'|<---------via Ci--------|              |
 +
    |              |  Update Subscriber    |              |
 +
    |              |  Session Response    |              |
 +
    |            9'|---------via Ci-------->|              |
 +
    |              |                        |  Accounting  |
 +
    |              |                    10'|<------------->|
 +
    |              |                        |              |
  
      <Update_Request Message> ::= <Common Header>
+
                    Figure 21: IPv6 PPPoE Access
                        <Basic Subscriber TLV>
 
                        <PPP Subscriber TLV>
 
                        <IPv4 Subscriber TLV>
 
                        <IPv4 Routing TLV>
 
                        [<Subscriber Policy TLV>]
 
  
      <Update_Response Message> ::= <Common Header>
+
From the above sequence, steps 1-4 are the standard PPPoE call flow.
                      <Update Response TLV>
+
The UP is responsible for redirecting the PPPoE control packets to
                      [<Subscriber CGN Port Range TLV>]
+
the CP or RG.  The PPPoE control packets are transmitted between the
 +
CP and UP through the Si.
  
  (2)  Create an IPv6 PPPoE subscriber session (steps 5'-6'):
+
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:
  
      <Update_Request Message> ::= <Common Header>
+
<Update_Request Message> ::= <Common Header>
                        <Basic Subscriber TLV>
+
                  <Basic Subscriber TLV>
                        <PPP Subscriber TLV>
+
                  <PPP Subscriber TLV>
                        <IPv6 Subscriber TLV>
+
                  <IPv6 Subscriber TLV>
                        <IPv6 Routing TLV>
+
                  <IPv6 Routing TLV>
                        [<Subscriber Policy TLV>]
+
                  [<Subscriber Policy TLV>]
  
      <Update_Response Message> ::= <Common Header>
+
<Update_Response Message> ::= <Common Header>
                      <Update Response TLV>
+
                <Update Response TLV>
  
  (3) Update the IPv6 PPPoE subscriber session (steps 9-10 and 9'-
+
Then, the RG will initialize an ND/DHCPv6 negotiation process with
        10'):
+
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:
  
      <Update_Request Message> ::= <Common Header>
+
<Update_Request Message> ::= <Common Header>
                        <Basic Subscriber TLV>
+
                  <Basic Subscriber TLV>
                        <PPP Subscriber TLV>
+
                  <PPP Subscriber TLV>
                        <IPv6 Subscriber TLV>
+
                  <IPv6 Subscriber TLV>
                        <IPv6 Routing TLV>
+
                  <IPv6 Routing TLV>
                        [<Subscriber Policy TLV>]
+
                  [<Subscriber Policy TLV>]
  
      <Update_Response Message> ::= <Common Header>
+
<Update_Response Message> ::= <Common Header>
                      <Update Response TLV>
+
                <Update Response TLV>
  
5.3.  WLAN Access
+
==== PPPoE Dual-Stack Access ====
  
  Figure 23 shows the WLAN access call flow.
+
Figure 22 shows a combination of IPv4 and IPv6 PPPoE access call
 +
flows.
  
        RG           UP              CP        AAA      Web Server
+
    RG             UP                     CP             AAA
        |   DHCP    |               |          |          |
+
     |PPPoE Discovery|     PPPoE Discovery   |               |
        |  Discovery |                |          |           |
+
    1|<------------->|<---------via Si------->|               |
      1|------------>|               |          |          |
+
    |              |                        |               |
        |            | DHCP Discovery |          |          |
+
    |  PPP LCP      |        PPP LCP         |               |
        |            2|-----via Si---->|   AAA    |           |
+
    2|<------------->|<---------via Si------->|               |
         |             |   DHCP Offer  |<-------->|          |
+
    |              |                       |      AAA      |
        |            3|<----via Si-----|         |           |
+
    PPP PAP/CHAP |       PPP PAP/CHAP    |   Req/Rep    |
        DHCP Offer |               |         |          |
+
    3|<------------->|<---------via Si------->|<------------->|
      4|<------------|               |          |          |
+
    |              |                       |               |
        | DHCP Request|                |          |          |
+
    PPP IPCP    |       PPP IPCP        |               |
      5|------------>|               |         |           |
+
    4|<------------->|<---------via Si------->|               |
        |            DHCP Request  |         |           |
+
    |               |                       |               |
        |           6|-----via Si---->|         |          |
+
    |               | Create v4 Subscriber  |               |
        |            |               |         |           |
+
    |               |   Session Request     |               |
        |             | Create Session |         |          |
+
    |             5|<--------via Ci---------|               |
        |             |   Request     |         |          |
+
    |               | Create v4 Subscriber  |               |
        |           7|<----via Ci-----|         |          |
+
    |               |   Session Response     |               |
        |             | Create Session |          |           |
+
    |             6|---------via Ci-------->|               |
        |             |   Response   |          |           |
+
    |               |                       |   Accounting  |
        |           8|----via Ci----->|         |          |
+
     |               |                       7|<------------->|
        |             |               |         |          |
+
    PPP IP6CP    |       PPP IP6CP      |               |
        |            |  DHCP ACK     |         |           |
+
  4'|<------------->|<---------via Si------->|               |
        |            9|<----via Si-----|          |          |
+
    |               |                       |               |
        DHCP ACK  |               |         |          |
+
    |               | Create V6 Subscriber  |               |
      10|<------------|               |          |           |
+
    |               |   Session Request      |               |
        |             |               |         |           |
+
    |             5'|<--------via Ci---------|               |
        | Subscriber  |               |          |          |
+
    |               | Create v6 Subscriber |               |
        | HTTP Traffic|               |         |           |
+
    |               |   Session Response    |               |
      11|------------>|-->            |         |          |
+
    |            6'|---------via Ci-------->|              |
        |             |  | Web URL    |          |          |
+
    |               |                       |               |
        |  Traffic    | | Redirect    |          |           |
+
    | ND Negotiation|    ND Negotiation    |               |
        | Redirection |  |            |         |          |
+
    8|<------------->|<---------via Si------->|              |
      12|<------------|<-+            |         |           |
+
    |              |                        |              |
        |                                                     |
+
    |              |  Update v6 Subscriber  |              |
      13|-----------------Redirect to Web Server------------->|
+
    |              |  Session Request      |               |
        |                                                     |
+
    |              9|<---------via Ci--------|              |
      14|<----------------Push HTTP Log-in Page---------------|
+
    |              |  Update v6 Subscriber  |              |
        |                                                     |
+
    |              |  Session Response    |               |
      15|-----------------User Authentication---------------->|
+
    |            10|---------via Ci-------->|              |
        |                                                     |
+
    |              |                        |  Accounting  |
        |             |               Portal Interchange |
+
    |              |                      7'|<------------->|
        |             |             16|<-------------------->|
+
    |   DHCPv6    |       DHCPv6          |               |
        |             |               |                     |
+
    Negotiation |     Negotiation      |               |
        |             |               |   AAA    |          |
+
  8'|<------------->|<---------via Si------->|              |
        |             |               |  Req/Rep |           |
+
    |               |                       |               |
        |            |              17|<-------->|           |
+
    |               | Update v6 Subscriber  |               |
        |             |               |          |           |
+
    |               |   Session Request      |               |
        |             | Update Session |          |          |
+
    |            9'|<--------via Ci---------|               |
        |            |    Request     |         |          |
+
    |               | Update v6 Subscriber  |               |
        |           18|<----via Ci-----|         |          |
+
    |               |   Session Response     |               |
        |             | Update Session |         |          |
+
    |           10'|---------via Ci-------->|               |
        |             |   Response    |          |          |
+
    |               |                       |   Accounting  |
        |          19|-----via Ci---->|          |          |
+
    |               |                     7"|<------------->|
        |             |               |          |           |
+
    |               |                       |               |
  
                          Figure 23: WLAN Access
+
                  Figure 22: PPPoE Dual-Stack Access
  
  WLAN access starts with the DHCP dial-up process (steps 1-6)After
+
PPPoE dual stack is a combination of IPv4 PPPoE and IPv6 PPPoE
  that, the CP will create a subscriber session on the UP (steps 7-8).
+
access.  The process is as above.  The formats of the messages are as
  The formats of the session creation messages are as follows:
+
follows:
  
  IPv4 Case:
+
(1)  Create an IPv4 PPPoE subscriber session (steps 5-6):
  
 
   <Update_Request Message> ::= <Common Header>
 
   <Update_Request Message> ::= <Common Header>
 
                     <Basic Subscriber TLV>
 
                     <Basic Subscriber TLV>
 +
                    <PPP Subscriber TLV>
 
                     <IPv4 Subscriber TLV>
 
                     <IPv4 Subscriber TLV>
 
                     <IPv4 Routing TLV>
 
                     <IPv4 Routing TLV>
Line 1,976: Line 1,868:
 
                     [<Subscriber CGN Port Range TLV>]
 
                     [<Subscriber CGN Port Range TLV>]
  
  IPv6 Case:
+
(2)  Create an IPv6 PPPoE subscriber session (steps 5'-6'):
  
 
   <Update_Request Message> ::= <Common Header>
 
   <Update_Request Message> ::= <Common Header>
 
                     <Basic Subscriber TLV>
 
                     <Basic Subscriber TLV>
 +
                    <PPP Subscriber TLV>
 
                     <IPv6 Subscriber TLV>
 
                     <IPv6 Subscriber TLV>
 
                     <IPv6 Routing TLV>
 
                     <IPv6 Routing TLV>
Line 1,987: Line 1,880:
 
                     <Update Response TLV>
 
                     <Update Response TLV>
  
  After step 10, the RG will be allocated an IP address, and its first
+
(3Update the IPv6 PPPoE subscriber session (steps 9-10 and 9'-
  HTTP packet will be redirected to a web server for subscriber
+
    10'):
  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:
 
 
 
  IPv4 Case:
 
  
 
   <Update_Request Message> ::= <Common Header>
 
   <Update_Request Message> ::= <Common Header>
 
                     <Basic Subscriber TLV>
 
                     <Basic Subscriber TLV>
                     <IPv4 Subscriber TLV>
+
                     <PPP Subscriber TLV>
                     <IPv4 Routing TLV>
+
                     <IPv6 Subscriber TLV>
 +
                    <IPv6 Routing TLV>
 
                     [<Subscriber Policy TLV>]
 
                     [<Subscriber Policy TLV>]
  
 
   <Update_Response Message> ::= <Common Header>
 
   <Update_Response Message> ::= <Common Header>
 
                     <Update Response TLV>
 
                     <Update Response TLV>
                    [<Subscriber CGN Port Range TLV>]
 
  
  IPv6 Case:
+
=== WLAN Access ===
  
  <Update_Request Message> ::= <Common Header>
+
Figure 23 shows the WLAN access call flow.
                    <Basic Subscriber TLV>
 
                    <IPv6 Subscriber TLV>
 
                    <IPv6 Routing TLV>
 
                    [<Subscriber Policy TLV>]
 
  
   <Update_Response Message> ::= <Common Header>
+
    RG            UP              CP        AAA      Web Server
                    <Update Response TLV>
+
    |    DHCP    |                |          |          |
 +
    |  Discovery  |                |          |          |
 +
    1|------------>|                |          |          |
 +
    |            | DHCP Discovery |          |          |
 +
    |            2|-----via Si---->|  AAA    |          |
 +
    |            |  DHCP Offer  |<-------->|          |
 +
    |            3|<----via Si-----|          |          |
 +
    |  DHCP Offer |                |          |          |
 +
    4|<------------|                |          |          |
 +
    | DHCP Request|                |          |          |
 +
    5|------------>|                |          |          |
 +
    |            |  DHCP Request  |          |          |
 +
    |            6|-----via Si---->|          |          |
 +
    |            |                |          |          |
 +
    |            | Create Session |          |          |
 +
    |            |    Request    |          |          |
 +
    |            7|<----via Ci-----|          |          |
 +
    |            | Create Session |          |          |
 +
    |            |    Response    |          |          |
 +
    |            8|----via Ci----->|          |          |
 +
    |            |                |          |          |
 +
    |            |  DHCP ACK      |          |          |
 +
    |            9|<----via Si-----|          |          |
 +
    |  DHCP ACK  |                |          |          |
 +
  10|<------------|                |          |          |
 +
    |            |                |          |          |
 +
    | Subscriber  |                |          |          |
 +
    | HTTP Traffic|                |          |          |
 +
  11|------------>|-->            |          |          |
 +
    |            |  | Web URL    |          |          |
 +
    |  Traffic    |  | Redirect   |          |          |
 +
    | Redirection |  |            |          |          |
 +
  12|<------------|<-+            |          |          |
 +
    |                                                    |
 +
  13|-----------------Redirect to Web Server------------->|
 +
    |                                                    |
 +
  14|<----------------Push HTTP Log-in Page---------------|
 +
    |                                                    |
 +
  15|-----------------User Authentication---------------->|
 +
    |                                                    |
 +
    |            |                |  Portal Interchange  |
 +
    |            |              16|<-------------------->|
 +
    |            |                |                      |
 +
    |            |                |  AAA    |          |
 +
    |            |                |  Req/Rep |          |
 +
    |            |              17|<-------->|          |
 +
    |            |                |          |          |
 +
    |            | Update Session |          |          |
 +
    |            |    Request    |          |          |
 +
    |          18|<----via Ci-----|          |          |
 +
    |            | Update Session |          |          |
 +
    |            |    Response   |          |          |
 +
    |          19|-----via Ci---->|          |          |
 +
    |            |                |          |          |
  
5.4.  L2TP
+
                        Figure 23: WLAN Access
  
5.4.1.  L2TP LAC Access
+
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:
  
        RG        UP(LAC)      CP(LAC)    AAA        LNS
+
IPv4 Case:
        |    PPPoE  |    PPPoE    |        |          |
 
        |  Discovery |  Discovery  |        |          |
 
      1|<---------->|<---via Si--->|        |          |
 
        |            |              |        |          |
 
        |  PPP LCP  |  PPP LCP    |        |          |
 
      2|<---------->|<---via Si--->|        |          |
 
        |            |              |  AAA  |          |
 
        |PPP PAP/CHAP| PPP PAP/CHAP | Req/Rep|          |
 
      3|<---------->|<---via Si--->|<------>|          |
 
        |            |              |        |          |
 
        |  PPP IPCP  |  PPP IPCP    |        |          |
 
      4|<---------->|<---via Si--->|        |          |
 
        |            |              |        |          |
 
        |            | L2TP Tunnel  |        |          |
 
        |            | Negotiation  |        |          |
 
        |            |  SCCRQ/    |        |          |
 
        |            |  SCCRP/    |        |          |
 
        |            |  SCCCN      |        |          |
 
        |          5|<---via Si--->|        |          |
 
        |            | /\                              |
 
        |            | || Forward                      |
 
        |            | \/                              |
 
        |            |<-----------via Routing---------->|
 
        |            |                                  |
 
        |            | L2TP Session |        |          |
 
        |            | Negotiation  |        |          |
 
        |            |    ICRQ/    |        |          |
 
        |            |    ICRP/    |        |          |
 
        |            |    ICCN      |        |          |
 
        |          6|<---via Si--->|        |          |
 
        |            | /\                              |
 
        |            | || Forward                      |
 
        |            | \/                              |
 
        |            |<-----------via Routing---------->|
 
        |            |                                  |
 
        |            |    Create    |        |        |
 
        |            |  Subscriber  |        |        |
 
        |            |  Session Req |        |        |
 
        |          7|<---via Ci----|        |        |
 
        |            |    Create    |        |        |
 
        |            |  Subscriber  |        |        |
 
        |            |  Session Rep |        |        |
 
        |          8|----via Ci--->|        |        |
 
        |            |              |        |        |
 
        |                                              |
 
        |        PAP/CHAP (Triggered by LNS)          |
 
      9|<-----------------via Routing----------------->|
 
        |                                              |
 
  
                        Figure 24: L2TP LAC Access
+
<Update_Request Message> ::= <Common Header>
 +
                  <Basic Subscriber TLV>
 +
                  <IPv4 Subscriber TLV>
 +
                  <IPv4 Routing TLV>
 +
                  [<Subscriber Policy TLV>]
  
  Steps 1-4 are a standard PPPoE access process.  After that, the LAC-
+
<Update_Response Message> ::= <Common Header>
  CP starts to negotiate an L2TP session and tunnel with the LNS.
+
                <Update Response TLV>
  After the negotiation, the CP will create an L2TP LAC subscriber
+
                [<Subscriber CGN Port Range TLV>]
  session on the UP through the following messages:
 
  
  <Update_Request Message> ::= <Common Header>
+
IPv6 Case:
                    <Basic Subscriber TLV>
 
                    <L2TP-LAC Subscriber TLV>
 
                    <L2TP-LAC Tunnel TLV>
 
  
  <Update_Response Message> ::= <Common Header>
+
<Update_Request Message> ::= <Common Header>
                    <Update Response TLV>
+
                  <Basic Subscriber TLV>
 +
                  <IPv6 Subscriber TLV>
 +
                  <IPv6 Routing TLV>
 +
                  [<Subscriber Policy TLV>]
  
5.4.2.  L2TP LNS IPv4 Access
+
<Update_Response Message> ::= <Common Header>
 +
                <Update Response TLV>
  
        RG         LAC            UP(LNS)  AAA      CP(LNS)
+
After step 10, the RG will be allocated an IP address, and its first
        |    PPPoE  |              |        |          |
+
HTTP packet will be redirected to a web server for subscriber
        |  Discovery |              |        |          |
+
authentication (steps 11-17). After the web authentication, if the
      1|<---------->|              |        |          |
+
result is positive, the CP will update the subscriber session by
        |            |              |        |          |
+
using the following message exchanges:
        |  PPP LCP  |              |        |          |
 
      2|<---------->|                      |          |
 
        |            |          AAA          |          |
 
        |PPP PAP/CHAP|        Req/Rep        |          |
 
      3|<---------->|<--------------------->|          |
 
        |            |                                  |
 
        |            | L2TP Tunnel  |    L2TP Tunnel  |
 
        |            | Negotiation  |    Negotiation  |
 
        |            |  SCCRQ/    |      SCCRQ/      |
 
        |            |  SCCRP/    |      SCCRP/      |
 
        |            |  SCCCN      |      SCCCN      |
 
        |          4|<------------>|<------via Si----->|
 
        |            |              |                  |
 
        |            | L2TP Session |    L2TP Session  |
 
        |            | Negotiation  |    Negotiation  |
 
        |            |    ICRQ/    |        ICRQ/      |
 
        |            |    ICRP/    |        ICRP/      |
 
        |            |    ICCN      |        ICCN      |
 
        |          5|<------------>|<------via Si----->|
 
        |            |              |                  |
 
        |            |              | Create Subscriber |
 
        |            |              | Session Request  |
 
        |            |            6|<-----via Ci-------|
 
        |            |              | Create Subscriber |
 
        |            |              | Session Response  |
 
        |            |            7|------via Ci------>|
 
        |                                              |
 
        |          PAP/CHAP (Triggered by LNS)          |
 
      8|<--------------------------------------------->|
 
        |                                              |
 
        |            |              |        |    AAA  |
 
        |            |              |        |  Req/Rep |
 
        |            |              |      9|<-------->|
 
        |            |              |                  |
 
        |                                              |
 
        |                  PPP IPCP                    |
 
      10|<--------------------------------------------->|
 
        |                                              |
 
        |            |              | Update Subscriber |
 
        |            |              | Session Request  |
 
        |            |            11|<-----via Ci-------|
 
        |            |              | Update Subscriber |
 
        |            |              | Session Response |
 
        |            |            12|------via Ci------>|
 
        |            |              |                  |
 
  
                      Figure 25: L2TP LNS IPv4 Access
+
IPv4 Case:
  
  In this case, the BNG is running as an LNS and separated into LNS-CP
+
<Update_Request Message> ::= <Common Header>
  and LNS-UP.  Steps 1-5 finish the normal L2TP dial-up process.  When
+
                  <Basic Subscriber TLV>
  the L2TP session and tunnel negotiations are finished, the LNS-CP
+
                  <IPv4 Subscriber TLV>
  will create an L2TP LNS subscriber session on the LNS-UP.  The format
+
                  <IPv4 Routing TLV>
  of the messages is as follows:
+
                  [<Subscriber Policy TLV>]
  
  <Update_Request Message> ::= <Common Header>
+
<Update_Response Message> ::= <Common Header>
                    <L2TP-LNS Subscriber TLV>
+
                <Update Response TLV>
                    <Basic Subscriber TLV>
+
                [<Subscriber CGN Port Range TLV>]
                    <PPP Subscriber TLV>
+
 
                    <IPv4 Subscriber TLV>
+
IPv6 Case:
                    <IPv4 Routing TLV>
 
                    <L2TP-LNS Tunnel TLV>
 
                    [<Subscriber Policy TLV>]
 
  
  <Update_Response Message> ::= <Common Header>
+
<Update_Request Message> ::= <Common Header>
                    <Update Response TLV>
+
                  <Basic Subscriber TLV>
                    [<Subscriber CGN Port Range TLV>]
+
                  <IPv6 Subscriber TLV>
 +
                  <IPv6 Routing TLV>
 +
                  [<Subscriber Policy TLV>]
  
  After that, the LNS-CP will trigger a AAA authentication.  If the
+
<Update_Response Message> ::= <Common Header>
  authentication result is positive, a PPP IP Control Protocol (IPCP)
+
                <Update Response TLV>
  process will follow, and then the CP will update the session with the
 
  following message exchanges:
 
  
  <Update_Request Message> ::= <Common Header>
+
=== L2TP ===
                    <L2TP-LNS Subscriber TLV>
 
                    <Basic Subscriber TLV>
 
                    <PPP Subscriber TLV>
 
                    <IPv4 Subscriber TLV>
 
                    <IPv4 Routing TLV>
 
                    <L2TP-LNS Tunnel TLV>
 
                    [<Subscriber Policy TLV>]
 
  
  <Update_Response Message> ::= <Common Header>
+
==== L2TP LAC Access ====
                    <Update Response TLV>
 
                    [<Subscriber CGN Port Range TLV>]
 
  
5.4.3. L2TP LNS IPv6 Access
+
    RG        UP(LAC)      CP(LAC)    AAA        LNS
 +
    |    PPPoE  |    PPPoE    |        |          |
 +
    |  Discovery |  Discovery  |        |          |
 +
    1|<---------->|<---via Si--->|        |          |
 +
    |            |              |        |          |
 +
    |  PPP LCP  |  PPP LCP    |        |          |
 +
    2|<---------->|<---via Si--->|        |          |
 +
    |            |              |  AAA  |          |
 +
    |PPP PAP/CHAP| PPP PAP/CHAP | Req/Rep|          |
 +
    3|<---------->|<---via Si--->|<------>|          |
 +
    |            |              |        |          |
 +
    |  PPP IPCP  |  PPP IPCP    |        |          |
 +
    4|<---------->|<---via Si--->|        |          |
 +
    |            |              |        |          |
 +
    |            | L2TP Tunnel  |        |          |
 +
    |            | Negotiation |        |          |
 +
    |            |  SCCRQ/    |        |          |
 +
    |            |  SCCRP/    |        |          |
 +
    |            |  SCCCN      |        |          |
 +
    |          5|<---via Si--->|        |          |
 +
    |            | /\                              |
 +
    |            | || Forward                      |
 +
    |            | \/                              |
 +
    |            |<-----------via Routing---------->|
 +
    |            |                                  |
 +
    |            | L2TP Session |        |          |
 +
    |            | Negotiation  |        |          |
 +
    |            |    ICRQ/    |        |          |
 +
    |            |    ICRP/    |        |          |
 +
    |            |    ICCN      |        |          |
 +
    |          6|<---via Si--->|        |          |
 +
    |            | /\                              |
 +
    |            | || Forward                      |
 +
    |            | \/                              |
 +
    |            |<-----------via Routing---------->|
 +
    |            |                                  |
 +
    |            |    Create    |        |        |
 +
    |            |  Subscriber  |        |        |
 +
    |            |  Session Req |        |        |
 +
    |          7|<---via Ci----|        |        |
 +
    |            |    Create    |        |        |
 +
    |            |  Subscriber  |        |        |
 +
    |            |  Session Rep |        |        |
 +
    |          8|----via Ci--->|        |        |
 +
    |            |              |        |        |
 +
    |                                              |
 +
    |        PAP/CHAP (Triggered by LNS)          |
 +
    9|<-----------------via Routing----------------->|
 +
    |                                              |
  
        RG          LAC          UP(LNS)    AAA      CP(LNS)
+
                       Figure 24: L2TP LAC Access
        |    PPPoE  |              |        |          |
 
        |  Discovery |              |        |          |
 
      1|<---------->|              |        |          |
 
        |            |              |        |          |
 
        |  PPP LCP  |              |        |          |
 
      2|<---------->|                       |          |
 
        |            |          AAA          |          |
 
        |PPP PAP/CHAP|        Req/Rep        |          |
 
      3|<---------->|<--------------------->|          |
 
        |            |                                  |
 
        |            | L2TP Tunnel  |    L2TP Tunnel  |
 
        |            | Negotiation  |    Negotiation  |
 
        |            |  SCCRQ/    |      SCCRQ/      |
 
        |            |  SCCRP/    |      SCCRP/      |
 
        |            |  SCCCN      |      SCCCN      |
 
        |          4|<------------>|<------via Si----->|
 
        |            |              |                  |
 
        |            | L2TP Session |    L2TP Session  |
 
        |            | Negotiation  |    Negotiation  |
 
        |            |    ICRQ/    |        ICRQ/      |
 
        |            |    ICRP/    |        ICRP/      |
 
        |            |    ICCN      |        ICCN      |
 
        |          5|<------------>|<------via Si----->|
 
        |            |              |                  |
 
        |            |              | Create Subscriber |
 
        |            |              | Session Request  |
 
        |            |            6|<-----via Ci-------|
 
        |            |              | Create Subscriber |
 
        |            |              | Session Response  |
 
        |            |            7|------via Ci------>|
 
        |                                              |
 
        |          PAP/CHAP (Triggered by LNS)          |
 
      8|<--------------------------------------------->|
 
        |                                              |
 
        |            |              |        |    AAA  |
 
        |            |              |        |  Req/Rep |
 
        |            |              |      9|<-------->|
 
        |            |              |        |          |
 
        |                                              |
 
        |                  PPP IP6CP                  |
 
      10|<--------------------------------------------->|
 
        |                                              |
 
        |            |              | Update Subscriber |
 
        |            |              | Session Request  |
 
        |            |            11|<-----via Ci-------|
 
        |            |              | Update Subscriber |
 
        |            |              | Session Response  |
 
        |            |            12|------via Ci------>|
 
        |                          |                  |
 
        |      ND Negotiation      |  ND Negotiation  |
 
      13|<------------------------->|<-----via Si------>|
 
        |                          |                  |
 
        |            |              | Update Subscriber |
 
        |            |              | Session Request  |
 
        |            |            14|<-----via Ci-------|
 
        |            |              | Update Subscriber |
 
        |            |              | Session Response  |
 
        |            |            15|------via Ci------>|
 
        |            |              |                  |
 
  
                      Figure 26: L2TP LNS IPv6 Access
+
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:
  
  Steps 1-12 are the same as L2TP LNS IPv4 access.  Steps 1-5 finish
+
<Update_Request Message> ::= <Common Header>
  the normal L2TP dial-up process.  When the L2TP session and tunnel
+
                  <Basic Subscriber TLV>
  negotiations are finished, the LNS-CP will create an L2TP LNS
+
                  <L2TP-LAC Subscriber TLV>
  subscriber session on the LNS-UP.  The format of the messages is as
+
                  <L2TP-LAC Tunnel TLV>
  follows:
 
  
  <Update_Request Message> ::= <Common Header>
+
<Update_Response Message> ::= <Common Header>
                    <L2TP-LNS Subscriber TLV>
+
                <Update Response TLV>
                    <Basic Subscriber TLV>
 
                    <PPP Subscriber TLV>
 
                    <IPv6 Subscriber TLV>
 
                    <IPv6 Routing TLV>
 
                    <L2TP-LNS Tunnel TLV>
 
                    [<Subscriber Policy TLV>]
 
  
  <Update_Response Message> ::= <Common Header>
+
==== L2TP LNS IPv4 Access ====
                    <Update Response TLV>
 
  
   After that, the LNS-CP will trigger a AAA authentication. If the
+
    RG          LAC            UP(LNS)  AAA      CP(LNS)
  authentication result is positive, a PPP IP6CP process will follow,
+
    |    PPPoE  |              |        |          |
   and then the CP will update the session with the following message
+
    |  Discovery |              |        |          |
  exchanges:
+
    1|<---------->|              |        |          |
 +
    |            |              |        |          |
 +
    |  PPP LCP  |              |        |          |
 +
    2|<---------->|                      |          |
 +
    |            |          AAA          |          |
 +
    |PPP PAP/CHAP|        Req/Rep        |          |
 +
    3|<---------->|<--------------------->|          |
 +
    |            |                                  |
 +
    |            | L2TP Tunnel  |    L2TP Tunnel  |
 +
    |            | Negotiation  |    Negotiation  |
 +
    |            |  SCCRQ/    |      SCCRQ/      |
 +
    |            |  SCCRP/    |      SCCRP/      |
 +
    |            |  SCCCN      |      SCCCN      |
 +
    |          4|<------------>|<------via Si----->|
 +
    |            |              |                  |
 +
    |            | L2TP Session |    L2TP Session  |
 +
    |            | Negotiation  |    Negotiation  |
 +
    |            |   ICRQ/    |        ICRQ/      |
 +
    |            |    ICRP/    |        ICRP/      |
 +
    |            |    ICCN      |        ICCN      |
 +
    |          5|<------------>|<------via Si----->|
 +
    |            |              |                  |
 +
    |            |              | Create Subscriber |
 +
    |            |              | Session Request  |
 +
    |            |            6|<-----via Ci-------|
 +
    |            |              | Create Subscriber |
 +
    |            |              | Session Response  |
 +
    |            |            7|------via Ci------>|
 +
    |                                              |
 +
    |          PAP/CHAP (Triggered by LNS)          |
 +
    8|<--------------------------------------------->|
 +
    |                                              |
 +
    |            |              |        |    AAA   |
 +
    |            |              |        | Req/Rep |
 +
    |            |              |      9|<-------->|
 +
    |            |              |                  |
 +
    |                                              |
 +
    |                  PPP IPCP                    |
 +
   10|<--------------------------------------------->|
 +
    |                                              |
 +
    |            |              | Update Subscriber |
 +
    |            |              | Session Request  |
 +
    |            |            11|<-----via Ci-------|
 +
    |            |              | Update Subscriber |
 +
    |            |              | Session Response  |
 +
    |            |            12|------via Ci------>|
 +
    |            |              |                  |
  
  <Update_Request Message> ::= <Common Header>
+
                  Figure 25: L2TP LNS IPv4 Access
                    <L2TP-LNS Subscriber TLV>
 
                    <Basic Subscriber TLV>
 
                    <PPP Subscriber TLV>
 
                    <IPv6 Subscriber TLV>
 
                    <IPv6 Routing TLV>
 
                    <L2TP-LNS Tunnel TLV>
 
                    [<Subscriber Policy TLV>]
 
  
  <Update_Response Message> ::= <Common Header>
+
In this case, the BNG is running as an LNS and separated into LNS-CP
                    <Update Response TLV>
+
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:
  
  Then, an ND negotiation will be triggered by the RG.  After the ND
+
<Update_Request Message> ::= <Common Header>
  negotiation, the CP will update the session with the following
+
                  <L2TP-LNS Subscriber TLV>
  message exchanges:
+
                  <Basic Subscriber TLV>
 +
                  <PPP Subscriber TLV>
 +
                  <IPv4 Subscriber TLV>
 +
                  <IPv4 Routing TLV>
 +
                  <L2TP-LNS Tunnel TLV>
 +
                  [<Subscriber Policy TLV>]
  
  <Update_Request Message> ::= <Common Header>
+
<Update_Response Message> ::= <Common Header>
                    <L2TP-LAC Subscriber TLV>
+
                <Update Response TLV>
                    <Basic Subscriber TLV>
+
                [<Subscriber CGN Port Range TLV>]
                    <PPP Subscriber TLV>
 
                    <IPv6 Subscriber TLV>
 
                    <IPv6 Routing TLV>
 
                    <L2TP-LNS Tunnel TLV>
 
                    [<Subscriber Policy TLV>]
 
  
  <Update_Response Message> ::= <Common Header>
+
After that, the LNS-CP will trigger a AAA authentication.  If the
                    <Update Response TLV>
+
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:
  
5.5.  CGN (Carrier Grade NAT)
+
<Update_Request Message> ::= <Common Header>
 +
                  <L2TP-LNS Subscriber TLV>
 +
                  <Basic Subscriber TLV>
 +
                  <PPP Subscriber TLV>
 +
                  <IPv4 Subscriber TLV>
 +
                  <IPv4 Routing TLV>
 +
                  <L2TP-LNS Tunnel TLV>
 +
                  [<Subscriber Policy TLV>]
 +
 
 +
<Update_Response Message> ::= <Common Header>
 +
                <Update Response TLV>
 +
                [<Subscriber CGN Port Range TLV>]
 +
 
 +
==== L2TP LNS IPv6 Access ====
  
          RG             UP                       CP             AAA
+
    RG         LAC          UP(LNS)    AAA      CP(LNS)
          |               | Public Address Block  |               |
+
    |    PPPoE  |             |       |         |
          |               |   Allocation Request  |               |
+
    |  Discovery |             |       |         |
          |              1|<--------via Ci-------->|               |
+
    1|<---------->|              |        |          |
          |               | Public Address Block  |               |
+
    |            |              |        |          |
          |               |   Allocation Reply    |               |
+
    |  PPP LCP  |              |        |          |
          |             2|---------via Ci-------->|               |
+
    2|<---------->|                       |          |
          Subscriber |                       |               |
+
    |           |         AAA          |         |
          | Access Request|       Subscriber     |               |
+
    |PPP PAP/CHAP|       Req/Rep        |         |
        3|-------------->|      Access Request   |               |
+
    3|<---------->|<--------------------->|         |
           |             4|----------via Si------->|               |
+
    |            |                                  |
          |               |                       |      AAA     |
+
    |            | L2TP Tunnel  |     L2TP Tunnel   |
          |               |       Subscriber       |   Req/Rep    |
+
    |            | Negotiation |     Negotiation  |
          Subscriber  |      Access Reply    5|<------------->|
+
    |            |  SCCRQ/    |      SCCRQ/      |
          | Access Reply 6|<---------via Si--------|              |
+
    |            |  SCCRP/    |      SCCRP/      |
        7|<--------------|                       |               |
+
    |           |   SCCCN     |       SCCCN      |
          |               Create Subscriber    |               |
+
    |          4|<------------>|<------via Si----->|
          |               |   Session Request     |               |
+
     |            |              |                  |
          |             8|<--------via Ci---------|               |
+
    |            | L2TP Session |    L2TP Session  |
          |               |                       |               |
+
    |            | Negotiation  |    Negotiation  |
          |               | Create Subscriber     |               |
+
    |            |    ICRQ/    |        ICRQ/      |
          |               |   Session Response     |               |
+
    |            |    ICRP/    |        ICRP/      |
          |               | (with NAT information) |               |
+
    |            |   ICCN      |       ICCN      |
          |              9|---------via Ci-------->|               |
+
    |           5|<------------>|<------via Si----->|
          |              |                       |   Accounting  |
+
    |            |              |                  |
          |               |                       | with source  |
+
    |           |             | Create Subscriber |
          |               |                       information |
+
     |            |              | Session Request  |
          |               |                     10|<------------->|
+
     |            |            6|<-----via Ci-------|
          |               |                       | Public IP +  |
+
    |           |             | Create Subscriber |
          |               |                       Port Range  |
+
    |            |             | Session Response |
          |               |                       | to Private IP|
+
     |           |            7|------via Ci------>|
          |              |                        |  Mapping     |
+
    |                                              |
          |               |                        |               |
+
    |          PAP/CHAP (Triggered by LNS)          |
 +
    8|<--------------------------------------------->|
 +
    |                                               |
 +
    |            |              |        |    AAA  |
 +
    |            |              |       Req/Rep |
 +
    |            |              |       9|<-------->|
 +
    |            |              |       |         |
 +
     |                                               |
 +
    |                  PPP IP6CP                  |
 +
  10|<--------------------------------------------->|
 +
    |                                              |
 +
    |            |              | Update Subscriber |
 +
    |            |             | Session Request  |
 +
    |           |           11|<-----via Ci-------|
 +
    |           |             | Update Subscriber |
 +
    |           |             | Session Response |
 +
    |            |           12|------via Ci------>|
 +
    |                          |                   |
 +
    |      ND Negotiation      |   ND Negotiation  |
 +
  13|<------------------------->|<-----via Si------>|
 +
    |                           |                   |
 +
    |           |             | Update Subscriber |
 +
    |           |             | Session Request   |
 +
    |           |           14|<-----via Ci-------|
 +
    |           |             | Update Subscriber |
 +
    |           |             | Session Response |
 +
    |           |           15|------via Ci------>|
 +
     |           |             |                   |
  
                          Figure 27: CGN Access
+
                  Figure 26: L2TP LNS IPv6 Access
  
  The first steps allocate one or more CGN address blocks to the UP
+
Steps 1-12 are the same as L2TP LNS IPv4 access.  Steps 1-5 finish
  (steps 1-2)This is achieved by the following message exchanges
+
the normal L2TP dial-up processWhen the L2TP session and tunnel
  between CP and UP:
+
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:
  
  <Addr_Allocation_Req Message> ::= <Common Header>
+
<Update_Request Message> ::= <Common Header>
                    <Address Allocation Request TLV>
+
                  <L2TP-LNS Subscriber TLV>
 +
                  <Basic Subscriber TLV>
 +
                  <PPP Subscriber TLV>
 +
                  <IPv6 Subscriber TLV>
 +
                  <IPv6 Routing TLV>
 +
                  <L2TP-LNS Tunnel TLV>
 +
                  [<Subscriber Policy TLV>]
  
  <Addr_Allocation_Ack Message> ::= <Common Header>
+
<Update_Response Message> ::= <Common Header>
                    <Address Allocation Response TLV>
+
                <Update Response TLV>
  
  Steps 3-9 show the general dial-up process in the case of CGN mode.
+
After that, the LNS-CP will trigger a AAA authentication.  If the
  The specific processes (e.g., IPoE, PPPoE, L2TP, etc.) are defined in
+
authentication result is positive, a PPP IP6CP process will follow,
  above sections.
+
and then the CP will update the session with the following message
 +
exchanges:
  
  If a subscriber is a CGN subscriber, once the subscriber session is
+
<Update_Request Message> ::= <Common Header>
  created/updated, the UP will report the NAT information to the CP.
+
                  <L2TP-LNS Subscriber TLV>
  This is achieved by carrying the Subscriber CGN Port Range TLV in the
+
                  <Basic Subscriber TLV>
  Update_Response message.
+
                  <PPP Subscriber TLV>
 +
                  <IPv6 Subscriber TLV>
 +
                  <IPv6 Routing TLV>
 +
                  <L2TP-LNS Tunnel TLV>
 +
                  [<Subscriber Policy TLV>]
  
5.6.  L3 Leased Line Access
+
<Update_Response Message> ::= <Common Header>
 +
                <Update Response TLV>
  
5.6.1Web Authentication
+
Then, an ND negotiation will be triggered by the RGAfter the ND
 +
negotiation, the CP will update the session with the following
 +
message exchanges:
  
        RG            UP              CP        AAA      Web Server
+
<Update_Request Message> ::= <Common Header>
        | User traffic|                |          |          |
+
                  <L2TP-LAC Subscriber TLV>
      1|------------>|                |          |          |
+
                  <Basic Subscriber TLV>
        |            | User traffic  |          |          |
+
                  <PPP Subscriber TLV>
        |            2|-----via Si---->|    AAA  |          |
+
                  <IPv6 Subscriber TLV>
        |            |                |  Req/Rep |          |
+
                  <IPv6 Routing TLV>
        |            |              3|<-------->|          |
+
                  <L2TP-LNS Tunnel TLV>
        |            | Create Session |          |          |
+
                  [<Subscriber Policy TLV>]
        |            |    Request    |          |          |
 
        |            4|<----via Ci-----|          |          |
 
        |            | Create Session |          |          |
 
        |            |    Response    |          |          |
 
        |            5|----via Ci----->|          |          |
 
        |            |                |          |          |
 
        | HTTP traffic|                |          |          |
 
      6|------------>|                |          |          |
 
        |            |                |          |          |
 
        | Redirect to |                |          |          |
 
        |  Web URL  |                |          |          |
 
      7|<------------|                |          |          |
 
        |            |                |          |          |
 
        |                                                    |
 
      8|-----------------Redirected to Web Server----------->|
 
        |                                                    |
 
      9|<----------------Push HTTP Log-in Page---------------|
 
        |                                                    |
 
      10|-----------------User Authentication---------------->|
 
        |                                                    |
 
        |            |                |  Portal Interchange  |
 
        |            |              11|<-------------------->|
 
        |            |                |                      |
 
        |            |                |  AAA    |          |
 
        |            |                |  Req/Rep |          |
 
        |            |              12|<-------->|          |
 
        |            |                |          |          |
 
        |            | Update Session |          |          |
 
        |            |    Request    |          |          |
 
        |          13|<----via Ci-----|          |          |
 
        |            | Update Session |          |          |
 
        |            |    Response    |          |          |
 
        |          14|----via Ci----->|          |          |
 
        |            |                |          |          |
 
  
        Figure 28: Web Authentication-Based L3 Leased Line Access
+
<Update_Response Message> ::= <Common Header>
 +
                <Update Response TLV>
  
  In this case, IP traffic from the RG will trigger the CP to
+
=== CGN (Carrier Grade NAT) ===
  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:
 
  
   IPv4 Case:
+
      RG              UP                      CP            AAA
 +
      |              |  Public Address Block  |              |
 +
      |              |  Allocation Request  |              |
 +
      |              1|<--------via Ci-------->|              |
 +
      |              |  Public Address Block  |              |
 +
      |              |  Allocation Reply    |              |
 +
      |              2|---------via Ci-------->|              |
 +
      |  Subscriber  |                        |              |
 +
      | Access Request|        Subscriber      |              |
 +
      3|-------------->|      Access Request   |              |
 +
      |              4|----------via Si------->|              |
 +
      |              |                        |      AAA      |
 +
      |              |      Subscriber      |    Req/Rep    |
 +
      |  Subscriber  |      Access Reply    5|<------------->|
 +
      | Access Reply 6|<---------via Si--------|              |
 +
      7|<--------------|                        |              |
 +
      |              |  Create Subscriber    |              |
 +
      |              |  Session Request      |              |
 +
      |              8|<--------via Ci---------|              |
 +
      |              |                        |              |
 +
      |              |  Create Subscriber    |              |
 +
      |              |  Session Response    |              |
 +
      |              | (with NAT information) |              |
 +
      |              9|---------via Ci-------->|              |
 +
      |              |                        |  Accounting  |
 +
      |              |                        |  with source  |
 +
      |              |                        |  information |
 +
      |              |                      10|<------------->|
 +
      |              |                        |  Public IP +  |
 +
      |              |                        |  Port Range  |
 +
      |              |                        |  to Private IP|
 +
      |              |                        |  Mapping      |
 +
      |              |                        |              |
  
  <Update_Request Message> ::= <Common Header>
+
                        Figure 27: CGN Access
                    <Basic Subscriber TLV>
 
                    <IPv4 Subscriber TLV>
 
                    <IPv4 Routing TLV>
 
                    [<Subscriber Policy TLV>]
 
  
  <Update_Response Message> ::= <Common Header>
+
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:
  
                    <Update Response TLV>
+
<Addr_Allocation_Req Message> ::= <Common Header>
                    [<Subscriber CGN Port Range TLV>]
+
                  <Address Allocation Request TLV>
  
  IPv6 Case:
+
<Addr_Allocation_Ack Message> ::= <Common Header>
 +
                <Address Allocation Response TLV>
  
  <Update_Request Message> ::= <Common Header>
+
Steps 3-9 show the general dial-up process in the case of CGN mode.
                    <Basic Subscriber TLV>
+
The specific processes (e.g., IPoE, PPPoE, L2TP, etc.) are defined in
                    <IPv6 Subscriber TLV>
+
above sections.
                    <IPv6 Routing TLV>
 
                    [<Subscriber Policy TLV>]
 
 
 
  <Update_Response Message> ::= <Common Header>
 
                    <Update Response TLV>
 
  
  Then, the HTTP traffic from the RG will be redirected to a web server
+
If a subscriber is a CGN subscriber, once the subscriber session is
  to finish the web authentication.  Once the web authentication is
+
created/updated, the UP will report the NAT information to the CP.
  passed, the CP will trigger another AAA authentication.  After the
+
This is achieved by carrying the Subscriber CGN Port Range TLV in the
  AAA authentication, the CP will update the session with the following
+
Update_Response message.
  message exchanges:
 
  
  IPv4 Case:
+
=== L3 Leased Line Access ===
  
  <Update_Request Message> ::= <Common Header>
+
==== Web Authentication ====
                    <Basic Subscriber TLV>
 
                    <IPv4 Subscriber TLV>
 
                    <IPv4 Routing TLV>
 
                    [<Subscriber Policy TLV>]
 
  
   <Update_Response Message> ::= <Common Header>
+
    RG            UP              CP        AAA      Web Server
                    <Update Response TLV>
+
    | User traffic|                |          |          |
                    [<Subscriber CGN Port Range TLV>]
+
    1|------------>|                |          |          |
 +
    |            | User traffic  |          |          |
 +
    |            2|-----via Si---->|    AAA  |          |
 +
    |            |                |  Req/Rep |          |
 +
    |            |              3|<-------->|          |
 +
    |            | Create Session |          |          |
 +
    |            |    Request    |          |          |
 +
    |            4|<----via Ci-----|          |          |
 +
    |            | Create Session |          |          |
 +
    |            |    Response    |          |          |
 +
    |            5|----via Ci----->|          |          |
 +
    |            |                |          |          |
 +
    | HTTP traffic|                |          |          |
 +
    6|------------>|                |          |          |
 +
    |            |                |          |          |
 +
    | Redirect to |                |          |          |
 +
    |  Web URL  |                |          |          |
 +
    7|<------------|                |          |          |
 +
    |            |                |          |          |
 +
    |                                                    |
 +
    8|-----------------Redirected to Web Server----------->|
 +
    |                                                    |
 +
    9|<----------------Push HTTP Log-in Page---------------|
 +
    |                                                    |
 +
   10|-----------------User Authentication---------------->|
 +
    |                                                    |
 +
    |            |                |  Portal Interchange  |
 +
    |            |              11|<-------------------->|
 +
    |            |                |                      |
 +
    |            |                |  AAA    |          |
 +
    |            |                |  Req/Rep |          |
 +
    |            |              12|<-------->|          |
 +
    |            |                |          |          |
 +
    |            | Update Session |          |          |
 +
    |            |    Request    |          |          |
 +
    |          13|<----via Ci-----|          |          |
 +
    |            | Update Session |          |          |
 +
    |            |    Response   |          |          |
 +
    |          14|----via Ci----->|          |          |
 +
    |            |                |          |          |
  
  IPv6 Case:
+
      Figure 28: Web Authentication-Based L3 Leased Line Access
  
  <Update_Request Message> ::= <Common Header>
+
In this case, IP traffic from the RG will trigger the CP to
                    <Basic Subscriber TLV>
+
authenticate the RG by checking the source IP and the exchanges with
                    <IPv6 Subscriber TLV>
+
the AAA server.  Once the RG has passed the authentication, the CP
                    <IPv6 Routing TLV>
+
will create a corresponding subscriber session on the UP through the
                    [<Subscriber Policy TLV>]
+
following message exchanges:
  
  <Update_Response Message> ::= <Common Header>
+
IPv4 Case:
                    <Update Response TLV>
 
  
5.6.2.  User Traffic Trigger
+
<Update_Request Message> ::= <Common Header>
 +
                  <Basic Subscriber TLV>
 +
                  <IPv4 Subscriber TLV>
 +
                  <IPv4 Routing TLV>
 +
                  [<Subscriber Policy TLV>]
  
        RG            UP              CP        AAA
+
<Update_Response Message> ::= <Common Header>
        |            |  L3 access    |          |
 
        |            |  control list  |          |
 
        |            1|<----via Ci-----|          |
 
        |    User    |                |          |
 
        |  traffic  |                |          |
 
      2|------------>|                |          |
 
        |            |  User traffic  |          |
 
        |            3|-----via Si---->|          |
 
        |            |                |  AAA    |
 
        |            |                |  Req/Rep |
 
        |            |              4|<-------->|
 
        |            |                |          |
 
        |            | Create Session |          |
 
        |            |    Request    |          |
 
        |            5|<----via Ci-----|          |
 
        |            | Create Session |          |
 
        |            |    Response    |          |
 
        |            6|----via Ci----->|          |
 
        |            |                |          |
 
  
          Figure 29: User Traffic Triggered L3 Leased Line Access
+
                <Update Response TLV>
 +
                [<Subscriber CGN Port Range TLV>]
  
  In this case, the CP must install on the UP an access control list,
+
IPv6 Case:
  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:
 
  
  IPv4 Case:
+
<Update_Request Message> ::= <Common Header>
 +
                  <Basic Subscriber TLV>
 +
                  <IPv6 Subscriber TLV>
 +
                  <IPv6 Routing TLV>
 +
                  [<Subscriber Policy TLV>]
  
  <Update_Request Message> ::= <Common Header>
+
<Update_Response Message> ::= <Common Header>
                    <Basic Subscriber TLV>
+
                <Update Response TLV>
                    <IPv4 Subscriber TLV>
 
                    <IPv4 Routing TLV>
 
                    [<Subscriber Policy TLV>]
 
 
 
  <Update_Response Message> ::= <Common Header>
 
                    <Update Response TLV>
 
                    [<Subscriber CGN Port Range TLV>]
 
 
 
  IPv6 Case:
 
 
 
  <Update_Request Message> ::= <Common Header>
 
                    <Basic Subscriber TLV>
 
                    <IPv6 Subscriber TLV>
 
                    <IPv6 Routing TLV>
 
                    [<Subscriber Policy TLV>]
 
 
 
  <Update_Response Message> ::= <Common Header>
 
                    <Update Response TLV>
 
 
 
5.7.  Multicast Service Access
 
 
 
              RG            UP              CP        AAA
 
              | User Access |  User Access  |  AAA    |
 
              |  Request  |    Request    |  Req/Rep |
 
            1|<----------->|<----via Si---->|<-------->|
 
              |            |                |          |
 
              |            | Create Session |          |
 
              |            |    Request    |          |
 
              |            2|<----via Ci---->|          |
 
              |            |                |          |
 
              |            | Create Session |          |
 
              |            |    Response    |          |
 
              |            3|----via Ci----->|          |
 
              |            |                |          |
 
              |  Multicast  |                |          |
 
              | negotiation |                |          |
 
            4|<----------->|                |          |
 
              |            |                |          |
 
  
                        Figure 30: Multicast Access
+
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:
  
  Multicast access starts with a user access request from the RG.  The
+
IPv4 Case:
  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:
 
  
  IPv4 Case, there will be a Multicast-ProfileV4 sub-TLV present in the
+
<Update_Request Message> ::= <Common Header>
  Subscriber Policy TLV:
 
 
 
  <Update_Request Message> ::= <Common Header>
 
 
                   <Basic Subscriber TLV>
 
                   <Basic Subscriber TLV>
 
                   <IPv4 Subscriber TLV>
 
                   <IPv4 Subscriber TLV>
 
                   <IPv4 Routing TLV>
 
                   <IPv4 Routing TLV>
                   <Subscriber Policy TLV>
+
                   [<Subscriber Policy TLV>]
  
  <Update_Response Message> ::= <Common Header>
+
<Update_Response Message> ::= <Common Header>
 
                 <Update Response TLV>
 
                 <Update Response TLV>
 
                 [<Subscriber CGN Port Range TLV>]
 
                 [<Subscriber CGN Port Range TLV>]
  
  IPv6 Case, there will be a Multicast-ProfileV6 sub-TLV present in the
+
IPv6 Case:
  Subscriber Policy TLV:
 
  
  <Update_Request Message> ::= <Common Header>
+
<Update_Request Message> ::= <Common Header>
 
                   <Basic Subscriber TLV>
 
                   <Basic Subscriber TLV>
 
                   <IPv6 Subscriber TLV>
 
                   <IPv6 Subscriber TLV>
 
                   <IPv6 Routing TLV>
 
                   <IPv6 Routing TLV>
                   <Subscriber Policy TLV>
+
                   [<Subscriber Policy TLV>]
  
  <Update_Response Message> ::= <Common Header>
+
<Update_Response Message> ::= <Common Header>
 
                 <Update Response TLV>
 
                 <Update Response TLV>
  
6.  S-CUSP Message Formats
+
==== User Traffic Trigger ====
  
   An S-CUSP message consists of a common header followed by a variable-
+
    RG            UP              CP        AAA
   length body consisting entirely of TLVs. Receiving an S-CUSP message
+
    |            |  L3 access   |          |
   with an unknown message type or missing mandatory TLV MUST trigger an
+
    |            |  control list  |          |
   Error message (see Section 6.7) or a Response message with an Error
+
    |            1|<----via Ci-----|          |
  Information TLV (see Section 7.6).
+
    |    User    |                |          |
 +
    |  traffic  |                |          |
 +
    2|------------>|                |          |
 +
    |            |  User traffic  |          |
 +
    |            3|-----via Si---->|          |
 +
    |            |                |  AAA   |
 +
    |            |                | Req/Rep |
 +
    |            |              4|<-------->|
 +
    |            |                |          |
 +
    |            | Create Session |          |
 +
    |            |   Request    |          |
 +
    |            5|<----via Ci-----|          |
 +
    |            | Create Session |          |
 +
    |            |   Response   |          |
 +
    |            6|----via Ci----->|          |
 +
    |            |                |          |
  
  Conversely, if a TLV is optional, the TLV may or may not be present.
+
      Figure 29: User Traffic Triggered L3 Leased Line Access
  Optional TLVs are indicated in the message formats shown in this
 
  document by being enclosed in square brackets.
 
  
  This section specifies the format of the common S-CUSP message header
+
In this case, the CP must install on the UP an access control list,
  and lists the defined messages.
+
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:
  
  Network byte order is used for all multi-byte fields.
+
IPv4 Case:
  
6.1.  Common Message Header
+
<Update_Request Message> ::= <Common Header>
 +
                  <Basic Subscriber TLV>
 +
                  <IPv4 Subscriber TLV>
 +
                  <IPv4 Routing TLV>
 +
                  [<Subscriber Policy TLV>]
  
      0                  1                  2                  3
+
<Update_Response Message> ::= <Common Header>
      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
+
                <Update Response TLV>
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
                [<Subscriber CGN Port Range TLV>]
      |  Ver  |  Resv | Message-Type  |        Message-Length        |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |            Reserved          |        Transaction-ID        |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                  Figure 31: S-CUSP Message Common Header
+
IPv6 Case:
  
  Ver (4 bits): The major version of the protocol.  This document
+
<Update_Request Message> ::= <Common Header>
      specifies version 1.  Different major versions of the protocol may
+
                  <Basic Subscriber TLV>
      have significantly different message structures and formats except
+
                  <IPv6 Subscriber TLV>
      that the Ver field will always be in the same place at the
+
                  <IPv6 Routing TLV>
      beginning of each message.  A successful S-CUSP session depends on
+
                  [<Subscriber Policy TLV>]
      the CP and the UP both using the same major version of the
 
      protocol.
 
  
  Resv (4 bits): Reserved.  MUST be sent as zero and ignored on
+
<Update_Response Message> ::= <Common Header>
      receipt.
+
                <Update Response TLV>
  
  Message-Type (8 bits):  The set of message types specified in this
+
=== Multicast Service Access ===
      document is listed in Section 8.1.
 
  
   Message-Length (16 bits): Total length of the S-CUSP message
+
          RG            UP              CP        AAA
      including the common header, expressed in number of bytes as an
+
          | User Access |  User Access  |  AAA    |
      unsigned integer.
+
          |  Request  |    Request    |  Req/Rep |
 +
          1|<----------->|<----via Si---->|<-------->|
 +
          |            |                |          |
 +
          |            | Create Session |          |
 +
          |            |    Request    |          |
 +
          |            2|<----via Ci---->|          |
 +
          |            |                |          |
 +
          |            | Create Session |          |
 +
          |            |   Response    |          |
 +
          |            3|----via Ci----->|          |
 +
          |            |                |          |
 +
          |  Multicast |                |          |
 +
          | negotiation |                |          |
 +
          4|<----------->|                |          |
 +
          |            |                |          |
  
  Transaction-ID (16 bits): This field is used to identify requests.
+
                    Figure 30: Multicast Access
      It is echoed back in any corresponding ACK/Response/Error message.
 
      It is RECOMMENDED 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 MUST NOT use for any purpose except to echo back in a
 
      corresponding response and, optionally, for logging.
 
  
6.2Control Messages
+
Multicast access starts with a user access request from the RG. The
 +
request will be redirected to the CP by the SiA 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:
  
  This document defines the following control messages:
+
IPv4 Case, there will be a Multicast-ProfileV4 sub-TLV present in the
 +
Subscriber Policy TLV:
  
      +------+-----------------+------------------------------------+
+
<Update_Request Message> ::= <Common Header>
      | Type | Name            | Notes and TLVs that can be carried |
+
              <Basic Subscriber TLV>
      +======+=================+====================================+
+
              <IPv4 Subscriber TLV>
      | 1    | Hello          | Hello TLV, Keepalive TLV           |
+
              <IPv4 Routing TLV>
      +------+-----------------+------------------------------------+
+
               <Subscriber Policy TLV>
      | 2    | Keepalive      | A common header with the Keepalive |
 
      |      |                | message type                      |
 
      +------+-----------------+------------------------------------+
 
      | 3    | Sync_Request    | Synchronization request            |
 
      +------+-----------------+------------------------------------+
 
      | 4    | Sync_Begin      | Synchronization starts            |
 
      +------+-----------------+------------------------------------+
 
      | 5    | Sync_Data      | Synchronization data: TLVs        |
 
      |      |                | specified in Section 7            |
 
      +------+-----------------+------------------------------------+
 
      | 6    | Sync_End        | End synchronization               |
 
      +------+-----------------+------------------------------------+
 
      | 7    | Update_Request  | TLVs specified in Sections 7.6-7.9 |
 
      +------+-----------------+------------------------------------+
 
      | 8    | Update_Response | TLVs specified in Sections 7.6-7.9 |
 
      +------+-----------------+------------------------------------+
 
  
                        Table 2: Control Messages
+
<Update_Response Message> ::= <Common Header>
 +
              <Update Response TLV>
 +
              [<Subscriber CGN Port Range TLV>]
  
6.2.1.  Hello Message
+
IPv6 Case, there will be a Multicast-ProfileV6 sub-TLV present in the
 +
Subscriber Policy TLV:
  
  The Hello message is used for S-CUSP session establishment and
+
<Update_Request Message> ::= <Common Header>
  version negotiation.  The details of S-CUSP session establishment and
+
              <Basic Subscriber TLV>
  version negotiation can be found in Section 4.1.1.
+
              <IPv6 Subscriber TLV>
 +
              <IPv6 Routing TLV>
 +
              <Subscriber Policy TLV>
  
  The format of the Hello message is as follows:
+
<Update_Response Message> ::= <Common Header>
 +
              <Update Response TLV>
  
  <Hello Message> ::= <Common Header>
+
== S-CUSP Message Formats ==
                        <Hello TLV>
 
                        <Keepalive TLV>
 
                        [<Error Information TLV>]
 
  
  The return code and negotiation result will be carried in the Error
+
An S-CUSP message consists of a common header followed by a variable-
  Information TLV. They are listed as follows:
+
length body consisting entirely of TLVs.  Receiving an S-CUSP message
 +
with an unknown message type or missing mandatory TLV MUST trigger an
 +
Error message (see Section 6.7) or a Response message with an Error
 +
Information TLV (see Section 7.6).
  
  0:  Success. Version negotiation success.
+
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.
  
  1:  Failure.  Malformed message received.
+
This section specifies the format of the common S-CUSP message header
 +
and lists the defined messages.
  
  2:  TLV-Unknown.  One or more of the TLVs was not understood.
+
Network byte order is used for all multi-byte fields.
  
  1001:  Version-Mismatch.  The version negotiation fails.  The S-CUSP
+
=== Common Message Header ===
      session establishment phase fails.
 
  
   1002: Keepalive Error. The keepalive negotiation fails. The S-CUSP
+
    0                  1                  2                  3
      session establishment phase fails.
+
    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        |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
  1003: Timer Expires.  The establishment timer expired.  Session
+
              Figure 31: S-CUSP Message Common Header
      establishment phase fails.
 
  
6.2.2Keepalive Message
+
Ver (4 bits):  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 messageA successful S-CUSP session depends on
 +
  the CP and the UP both using the same major version of the
 +
  protocol.
  
  Each end of an S-CUSP session periodically sends a Keepalive message.
+
Resv (4 bits):  ReservedMUST be sent as zero and ignored on
  It is used to detect whether the peer end is still aliveThe
+
   receipt.
   Keepalive procedures are defined in Section 4.1.2.
 
  
  The format of the Keepalive message is as follows:
+
Message-Type (8 bits):  The set of message types specified in this
 +
  document is listed in Section 8.1.
  
  <Keepalive Message> ::= <Common Header>
+
Message-Length (16 bits): Total length of the S-CUSP message
 +
  including the common header, expressed in number of bytes as an
 +
  unsigned integer.
  
6.2.3Sync_Request Message
+
Transaction-ID (16 bits):  This field is used to identify requests.
 +
  It is echoed back in any corresponding ACK/Response/Error message.
 +
  It is RECOMMENDED that a monotonically increasing value be used in
 +
  successive messages and that the value wraps back to zero after
 +
  0xFFFFThe content of this field is an opaque value that the
 +
  receiver MUST NOT use for any purpose except to echo back in a
 +
  corresponding response and, optionally, for logging.
  
  The Sync_Request message is used to request synchronization from an
+
=== Control Messages ===
  S-CUSP peer.  Both CP and UP can request their peer to synchronize
 
  data.
 
  
  The format of the Sync_Request message is as follows:
+
This document defines the following control messages:
  
   <Sync_Request Message> ::= <Common Header>
+
   +------+-----------------+------------------------------------+
 +
  | Type | Name            | Notes and TLVs that can be carried |
 +
  +======+=================+====================================+
 +
  | 1    | Hello          | Hello TLV, Keepalive TLV          |
 +
  +------+-----------------+------------------------------------+
 +
  | 2    | Keepalive      | A common header with the Keepalive |
 +
  |      |                | message type                      |
 +
  +------+-----------------+------------------------------------+
 +
  | 3    | Sync_Request   | Synchronization request            |
 +
  +------+-----------------+------------------------------------+
 +
  | 4    | Sync_Begin      | Synchronization starts            |
 +
  +------+-----------------+------------------------------------+
 +
  | 5    | Sync_Data      | Synchronization data: TLVs        |
 +
  |      |                | specified in Section 7            |
 +
  +------+-----------------+------------------------------------+
 +
  | 6    | Sync_End        | End synchronization                |
 +
  +------+-----------------+------------------------------------+
 +
  | 7    | Update_Request  | TLVs specified in Sections 7.6-7.9 |
 +
  +------+-----------------+------------------------------------+
 +
  | 8    | Update_Response | TLVs specified in Sections 7.6-7.9 |
 +
  +------+-----------------+------------------------------------+
  
  A Sync_Request message may result in a Sync_Begin message from its
+
                      Table 2: Control Messages
  peer.  The Sync_Begin message is defined in Section 6.2.4.
 
  
6.2.4.  Sync_Begin Message
+
==== Hello Message ====
  
  The Sync_Begin message is a reply to a Sync_Request messageIt is
+
The Hello message is used for S-CUSP session establishment and
  used to notify the synchronization requester whether the
+
version negotiationThe details of S-CUSP session establishment and
  synchronization can be started.
+
version negotiation can be found in Section 4.1.1.
  
  The format of the Sync_Begin message is as follows:
+
The format of the Hello message is as follows:
  
  <Sync_Begin Message> ::= <Common Header>
+
<Hello Message> ::= <Common Header>
                          <Error Information TLV>
+
                    <Hello TLV>
 +
                    <Keepalive TLV>
 +
                    [<Error Information TLV>]
  
  The return codes are carried in the Error Information TLV.  The codes
+
The return code and negotiation result will be carried in the Error
  are listed below:
+
Information TLV.  They are listed as follows:
  
  0:  Success.  Be ready to synchronize.
+
0:  Success.  Version negotiation success.
  
  1:  Failure.  Malformed message received.
+
1:  Failure.  Malformed message received.
  
  2:  TLV-Unknown.  One or more of the TLVs was not understood.
+
2:  TLV-Unknown.  One or more of the TLVs was not understood.
  
  2001Synch-NoReady.  The data to be synchronized is not ready.
+
1001Version-Mismatch.  The version negotiation fails.  The S-CUSP
 +
  session establishment phase fails.
  
  2002Synch-Unsupport.  The data synchronization is not supported.
+
1002Keepalive Error.  The keepalive negotiation fails.  The S-CUSP
 +
  session establishment phase fails.
  
6.2.5. Sync_Data Message
+
1003:  Timer Expires. The establishment timer expired. Session
 +
  establishment phase fails.
  
  The Sync_Data message is used to send data being synchronized between
+
==== Keepalive Message ====
  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.
 
  
  There are two scenarios:
+
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 Section 4.1.2.
  
  *  Synchronization from UP to CP: Synchronize the resource data to
+
The format of the Keepalive message is as follows:
      CP.
 
  
            <Sync_Data Message> ::= <Common Header>
+
<Keepalive Message> ::= <Common Header>
                                    [<Interface Status TLV>]
 
                                    [<Board Status TLV>]
 
  
  *  Synchronization from CP to UP: Synchronize all subscriber sessions
+
==== Sync_Request Message ====
      to the UP.  The Subscriber TLVs carried are those appearing in
 
      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
 
      Section 5 to see more details.
 
  
            <Sync_Data Message> ::= <Common Header>
+
The Sync_Request message is used to request synchronization from an
                                [<IPv4 Routing TLV>]
+
S-CUSP peer.  Both CP and UP can request their peer to synchronize
                                [<IPv6 Routing TLV>]
+
data.
                                [<Subscriber TLVs>]
 
  
6.2.6.  Sync_End Message
+
The format of the Sync_Request message is as follows:
  
  The Sync_End message is used to indicate the end of a synchronization
+
<Sync_Request Message> ::= <Common Header>
  process.  The format of a Sync_End message is as follows:
 
  
  <Sync_End Message> ::= <Common Header>
+
A Sync_Request message may result in a Sync_Begin message from its
                          <Error Information TLV>
+
peer.  The Sync_Begin message is defined in Section 6.2.4.
  
  The return/error codes are listed as follows:
+
==== Sync_Begin Message ====
  
  0:  SuccessSynchronization finished.
+
The Sync_Begin message is a reply to a Sync_Request messageIt is
 +
used to notify the synchronization requester whether the
 +
synchronization can be started.
  
  1: Failure.  Malformed message received.
+
The format of the Sync_Begin message is as follows:
  
  2: TLV-Unknown.  One or more of the TLVs was not understood.
+
<Sync_Begin Message> ::= <Common Header>
 +
                        <Error Information TLV>
  
6.2.7Update_Request Message
+
The return codes are carried in the Error Information TLVThe codes
 +
are listed below:
  
  The Update_Request message is a multipurpose message; it can be used
+
0:  Success.  Be ready to synchronize.
  to create, update, and delete subscriber sessions on a UP.
 
  
  For session operations, the specific operation is controlled by the
+
1:  FailureMalformed message received.
  Oper field of the carried TLVsAs defined in Section 7.1, the Oper
 
  field can be set to either Update or Delete when a TLV is carried in
 
  an Update_Request message.
 
  
  When the Oper field is set to Update, it means to create or update a
+
2:  TLV-UnknownOne or more of the TLVs was not understood.
  subscriber sessionIf the Oper field is set to Delete, it is a
 
  request to delete a corresponding session.
 
  
  The format of the Update_Request message is as follows:
+
2001:  Synch-NoReady.  The data to be synchronized is not ready.
  
  <Update_Request Message> ::= <Common Header>
+
2002: Synch-Unsupport.  The data synchronization is not supported.
                          [<IPv4 Routing TLV>]
 
                          [<IPv6 Routing TLV>]
 
                          [<Subscriber TLVs>]
 
  
  Where the Subscriber TLVs are those appearing in Section 7.9.  Each
+
==== Sync_Data Message ====
  Update_Request message will result in an Update_Response message,
 
  which is defined in Section 6.2.8.
 
  
6.2.8Update_Response Message
+
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 messageAn error caused by the Sync_Data
 +
message will result in a Sync_End message.
  
  The Update_Response message is a response to an Update_Request
+
There are two scenarios:
  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:
 
  
  <Update_Response Message> ::= <Common Header>
+
*  Synchronization from UP to CP: Synchronize the resource data to
                          [<Subscriber CGN Port Range TLV>]
+
  CP.
                          <Error Information TLV>
 
  
  The return/error codes are carried in the Error Information TLV.
+
        <Sync_Data Message> ::= <Common Header>
  They are listed as follows:
+
                                [<Interface Status TLV>]
 +
                                [<Board Status TLV>]
  
   0: Success.
+
*  Synchronization from CP to UP: Synchronize all subscriber sessions
 +
  to the UP.  The Subscriber TLVs carried are those appearing in
 +
  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
 +
  Section 5 to see more details.
  
  1: Failure.  Malformed message received.
+
        <Sync_Data Message> ::= <Common Header>
 +
                              [<IPv4 Routing TLV>]
 +
                              [<IPv6 Routing TLV>]
 +
                              [<Subscriber TLVs>]
  
  2:  TLV-Unknown.  One or more of the TLVs was not understood.
+
==== Sync_End Message ====
  
  3001:  Pool-Mismatch.  The corresponding address pool cannot be
+
The Sync_End message is used to indicate the end of a synchronization
      found.
+
process.  The format of a Sync_End message is as follows:
  
  3002: Pool-Full.  The address pool is fully allocated, and no
+
<Sync_End Message> ::= <Common Header>
      address segment is available.
+
                        <Error Information TLV>
  
  3003: Subnet-Mismatch.  The address pool subnet cannot be found.
+
The return/error codes are listed as follows:
  
  3004Subnet-ConflictSubnets in the address pool have been
+
0SuccessSynchronization finished.
      classified into other clients.
 
  
  4001Update-Fail-No-Res. The forwarding table fails to be delivered
+
1Failure. Malformed message received.
      because the forwarding resources are insufficient.
 
  
  4002QoS-Update-SuccessThe QoS policy takes effect.
+
2TLV-UnknownOne or more of the TLVs was not understood.
  
  4003:  QoS-Update-Sq-Fail.  Failed to process the queue in the QoS
+
==== Update_Request Message ====
      policy.
 
  
  4004:  QoS-Update-CAR-Fail.  Processing of the CAR in the QoS policy
+
The Update_Request message is a multipurpose message; it can be used
      fails.
+
to create, update, and delete subscriber sessions on a UP.
  
  4005: Statistic-Fail-No-Res. Statistics processing failed due to
+
For session operations, the specific operation is controlled by the
      insufficient statistics resources.
+
Oper field of the carried TLVs. As defined in Section 7.1, the Oper
 +
field can be set to either Update or Delete when a TLV is carried in
 +
an Update_Request message.
  
6.3. Event Message
+
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.
  
  The Event message is used to report subscriber session traffic
+
The format of the Update_Request message is as follows:
  statistics and detection information.  The format of the Event
 
  message is as follows:
 
  
  <Event Message> ::= <Common Header>
+
<Update_Request Message> ::= <Common Header>
                          [<Subscriber Traffic Statistics Report TLV>]
+
                        [<IPv4 Routing TLV>]
                          [<Subscriber Detection Result Report TLV>]
+
                        [<IPv6 Routing TLV>]
 +
                        [<Subscriber TLVs>]
  
6.4. Report Message
+
Where the Subscriber TLVs are those appearing in Section 7.9.  Each
 +
Update_Request message will result in an Update_Response message,
 +
which is defined in Section 6.2.8.
  
  The Report message is used to report board and interface status on a
+
==== Update_Response Message ====
  UP.  The format of the Report message is as follows:
 
  
  <Report Message> ::= <Common Header>
+
The Update_Response message is a response to an Update_Request
                          [<Board Status TLVs>]
+
message.  It is used to confirm the update request (or reject it in
                          [<Interface Status TLVs>]
+
the case of an error).  The format of an Update_Response message is
 +
as follows:
  
6.5.  CGN Messages
+
<Update_Response Message> ::= <Common Header>
 +
                        [<Subscriber CGN Port Range TLV>]
 +
                        <Error Information TLV>
  
  This document defines the following resource allocation messages:
+
The return/error codes are carried in the Error Information TLV.
 +
They are listed as follows:
  
      +------+---------------------+-----------------------------+
+
0: Success.
      | Type | Message Name        | TLV that is carried        |
 
      +======+=====================+=============================+
 
      | 200 | Addr_Allocation_Req | Address Allocation Request  |
 
      +------+---------------------+-----------------------------+
 
      | 201  | Addr_Allocation_Ack | Address Allocation Response |
 
      +------+---------------------+-----------------------------+
 
      | 202  | Addr_Renew_Req      | Address Renewal Request    |
 
      +------+---------------------+-----------------------------+
 
      | 203  | Addr_Renew_Ack      | Address Renewal Response    |
 
      +------+---------------------+-----------------------------+
 
      | 204  | Addr_Release_Req    | Address Release Request    |
 
      +------+---------------------+-----------------------------+
 
      | 205  | Addr_Release_Ack    | Address Release Response    |
 
      +------+---------------------+-----------------------------+
 
  
                  Table 3: Resource Allocation Messages
+
1: Failure.  Malformed message received.
  
6.5.1. Addr_Allocation_Req Message
+
2:  TLV-Unknown. One or more of the TLVs was not understood.
  
  The Addr_Allocation_Req message is used to request CGN address
+
3001:  Pool-Mismatch.  The corresponding address pool cannot be
   allocation. The format of the Addr_Allocation_Req message is as
+
   found.
  follows:
 
  
  <Addr_Allocation_Req Message> ::= <Common Header>
+
3002: Pool-Full.  The address pool is fully allocated, and no
                          <Address Allocation Request TLV>
+
  address segment is available.
  
6.5.2. Addr_Allocation_Ack Message
+
3003:  Subnet-Mismatch. The address pool subnet cannot be found.
  
  The Addr_Allocation_Ack message is a response to an
+
3004:  Subnet-ConflictSubnets in the address pool have been
  Addr_Allocation_Req messageThe format of the Addr_Allocation_Ack
+
   classified into other clients.
   message is as follows:
 
  
  <Addr_Allocation_Ack Message> ::= <Common Header>
+
4001: Update-Fail-No-Res. The forwarding table fails to be delivered
                          <Address Allocation Response TLV>
+
  because the forwarding resources are insufficient.
  
6.5.3. Addr_Renew_Req Message
+
4002:  QoS-Update-Success. The QoS policy takes effect.
  
  The Addr_Renew_Req message is used to request address renewalThe
+
4003:  QoS-Update-Sq-FailFailed to process the queue in the QoS
   format of the Addr_Renew_Req message is as follows:
+
   policy.
  
  <Addr_Renew_Req Message> ::= <Common Header>
+
4004: QoS-Update-CAR-Fail.  Processing of the CAR in the QoS policy
                          <Address Renewal Request TLV>
+
  fails.
  
6.5.4.  Addr_Renew_Ack Message
+
4005:  Statistic-Fail-No-Res. Statistics processing failed due to
 +
  insufficient statistics resources.
  
  The Addr_Renew_Ack message is a response to an Addr_Renew_Req
+
=== Event Message ===
  message.  The format of the Addr_Renew_Req message is as follows:
 
  
  <Addr_Renew_Ack Message> ::= <Common Header>
+
The Event message is used to report subscriber session traffic
                          <Address Renewal Response TLV>
+
statistics and detection information.  The format of the Event
 +
message is as follows:
  
6.5.5.  Addr_Release_Req Message
+
<Event Message> ::= <Common Header>
 +
                        [<Subscriber Traffic Statistics Report TLV>]
 +
                        [<Subscriber Detection Result Report TLV>]
  
  The Addr_Release_Req message is used to request address release.  The
+
=== Report Message ===
  format of the Addr_Release_Req message is as follows:
 
  
  <Addr_Release_Req Message> ::= <Common Header>
+
The Report message is used to report board and interface status on a
                          <Address Release Request TLV>
+
UP.  The format of the Report message is as follows:
  
6.5.6.  Addr_Release_Ack Message
+
<Report Message> ::= <Common Header>
 +
                        [<Board Status TLVs>]
 +
                        [<Interface Status TLVs>]
  
  The Addr_Release_Ack message is a response to an Addr_Release_Req
+
=== CGN Messages ===
  message.  The format of the Addr_Release_Ack message is as follows:
 
  
  <Addr_Release_Ack Message> ::= <Common Header>
+
This document defines the following resource allocation messages:
                          <Address Release Response TLV>
 
  
6.6. Vendor Message
+
    +------+---------------------+-----------------------------+
 +
    | Type | Message Name        | TLV that is carried        |
 +
    +======+=====================+=============================+
 +
    | 200  | Addr_Allocation_Req | Address Allocation Request  |
 +
    +------+---------------------+-----------------------------+
 +
    | 201  | Addr_Allocation_Ack | Address Allocation Response |
 +
    +------+---------------------+-----------------------------+
 +
    | 202  | Addr_Renew_Req      | Address Renewal Request    |
 +
    +------+---------------------+-----------------------------+
 +
    | 203  | Addr_Renew_Ack      | Address Renewal Response    |
 +
    +------+---------------------+-----------------------------+
 +
    | 204  | Addr_Release_Req    | Address Release Request    |
 +
    +------+---------------------+-----------------------------+
 +
    | 205 | Addr_Release_Ack    | Address Release Response    |
 +
    +------+---------------------+-----------------------------+
  
  The Vendor message, in conjunction with the Vendor TLV and Vendor
+
              Table 3: Resource Allocation Messages
  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.
 
  
  The format of the Vendor message is as follows:
+
==== Addr_Allocation_Req Message ====
  
  <Vendor Message> ::= <Common Header>
+
The Addr_Allocation_Req message is used to request CGN address
                        <Vendor TLV>
+
allocation.  The format of the Addr_Allocation_Req message is as
                        [<any other TLVs as specified by the vendor>]
+
follows:
  
6.7.  Error Message
+
<Addr_Allocation_Req Message> ::= <Common Header>
 +
                        <Address Allocation Request TLV>
  
  The Error message is defined to return some critical error
+
==== Addr_Allocation_Ack Message ====
  information to the sender.  If a receiver does not support the type
 
  of the received message, it MUST return an Error message to the
 
  sender.
 
  
  The format of the Error message is as below:
+
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:
  
  <Error Message> ::= <Common Header>
+
<Addr_Allocation_Ack Message> ::= <Common Header>
                      <Error Information TLV>
+
                        <Address Allocation Response TLV>
  
7.  S-CUSP TLVs and Sub-TLVs
+
==== Addr_Renew_Req Message ====
  
  This section specifies the following:
+
The Addr_Renew_Req message is used to request address renewal.  The
 +
format of the Addr_Renew_Req message is as follows:
  
  *  The format of the TLVs that appear in S-CUSP messages,
+
<Addr_Renew_Req Message> ::= <Common Header>
 +
                        <Address Renewal Request TLV>
  
  *  The format of the sub-TLVs that appear within the values of some
+
==== Addr_Renew_Ack Message ====
      TLVs, and
 
  
  * The format of some basic data fields that appear within TLVs or
+
The Addr_Renew_Ack message is a response to an Addr_Renew_Req
      sub-TLVs.
+
message. The format of the Addr_Renew_Req message is as follows:
  
  See Section 8 for a list of all defined TLVs and sub-TLVs.
+
<Addr_Renew_Ack Message> ::= <Common Header>
 +
                        <Address Renewal Response TLV>
  
7.1.  Common TLV Header
+
==== Addr_Release_Req Message ====
  
  S-CUSP messages consist of the common header specified in Section 6.1
+
The Addr_Release_Req message is used to request address release.  The
  followed by TLVs formatted as specified in this section.
+
format of the Addr_Release_Req message is as follows:
  
      0                  1                  2                  3
+
<Addr_Release_Req Message> ::= <Common Header>
      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
+
                        <Address Release Request TLV>
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      | Oper  |      TLV-Type        |      TLV-Length              |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      ~                            Value                            ~
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                        Figure 32: Common TLV Header
+
==== Addr_Release_Ack Message ====
  
  Oper (4 bits):  For Message-Types that specify an operation on a data
+
The Addr_Release_Ack message is a response to an Addr_Release_Req
      set, the Oper field is interpreted as Update, Delete, or Reserved
+
messageThe format of the Addr_Release_Ack message is as follows:
      as specified in Section 8.3For all other Message-Types, the
 
      Oper field MUST be sent as zero and ignored on receipt.
 
  
  TLV-Type (12 bits): The type of a TLV.  TLV-Type specifies the
+
<Addr_Release_Ack Message> ::= <Common Header>
      interpretation and format of the Value field of the TLV.  See
+
                        <Address Release Response TLV>
      Section 8.2.
 
  
  TLV-Length (2 bytes):  The length of the Value portion of the TLV in
+
=== Vendor Message ===
      bytes as an unsigned integer.
 
  
  Value (variable length):  This is the portion of the TLV whose size
+
The Vendor message, in conjunction with the Vendor TLV and Vendor
      is given by TLV-LengthIt consists of fields, frequently using
+
sub-TLV, can be used by vendors to extend S-CUSP.  The Message-Type
      one of the basic data field types (see Section 7.2) and sub-TLVs
+
is 11If the receiver does not recognize the message, an Error
      (see Section 7.3).
+
message will be returned to the sender.
  
7.2.  Basic Data Fields
+
The format of the Vendor message is as follows:
  
  This section specifies the binary format of several standard basic
+
<Vendor Message> ::= <Common Header>
  data fields that are used within other data structures in this
+
                    <Vendor TLV>
  specification.
+
                    [<any other TLVs as specified by the vendor>]
  
  STRING:  0 to 255 octets.  Will be encoded as a sub-TLV (see
+
=== Error Message ===
      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 [RFC20].
 
  
  MAC-Addr:  6 octetsEthernet MAC address [RFC7042].
+
The Error message is defined to return some critical error
 +
information to the senderIf a receiver does not support the type
 +
of the received message, it MUST return an Error message to the
 +
sender.
  
  IPv4-Address:  8 octets. 4 octets of the IPv4 address value followed
+
The format of the Error message is as below:
      by a 4-octet address mask in the format XXX.XXX.XXX.XXX.
 
  
  IPv6-Address: 20 octets. 16 octets of the IPv6 address followed by a
+
<Error Message> ::= <Common Header>
      4-octet integer n in the range of 0 to 128, which gives the
+
                    <Error Information TLV>
      address mask as the one's complement of 2**(128-n) - 1.
 
  
  VLAN ID:  2 octets.  As follows [802.1Q]:
+
== S-CUSP TLVs and Sub-TLVs ==
  
            0                  1
+
This section specifies the following:
            0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
 
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
            | PRI |D|      VLAN-ID          |
 
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
      PRI: Priority.  Default value 7.
+
* The format of the TLVs that appear in S-CUSP messages,
  
      D: Drop Eligibility Indicator (DEI).  Default value 0.
+
* The format of the sub-TLVs that appear within the values of some
 +
  TLVs, and
  
      VLAN-ID: Unsigned integer in the range 1-4094. (0 and 4095 are
+
* The format of some basic data fields that appear within TLVs or
        not valid VLAN IDs [802.1Q].)
+
  sub-TLVs.
  
7.3.  Sub-TLV Format and Sub-TLVs
+
See Section 8 for a list of all defined TLVs and sub-TLVs.
  
  In some cases, the Value portion of a TLV, as specified in
+
=== Common TLV Header ===
  Section 7.1, can contain one or more sub-TLVs formatted as follows:
 
  
      0                  1                  2                  3
+
S-CUSP messages consist of the common header specified in Section 6.1
      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
+
followed by TLVs formatted as specified in this section.
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |              Type            |          Length              |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |                        Value                                  |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
 
  
                        Figure 33: Sub-TLV Header
+
    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                            ~
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
  Type (2 bytes): The type of a sub-TLV.  The Type field specifies the
+
                    Figure 32: Common TLV Header
      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 Section 8.4.
 
  
  Length (2 bytes):  The length of the Value portion of the sub-TLV in
+
Oper (4 bits):  For Message-Types that specify an operation on a data
      bytes as an unsigned integer.
+
  set, the Oper field is interpreted as Update, Delete, or Reserved
 +
  as specified in Section 8.3.  For all other Message-Types, the
 +
  Oper field MUST be sent as zero and ignored on receipt.
  
  Value (variable length):  This is the Value portion of the sub-TLV
+
TLV-Type (12 bits):  The type of a TLV.  TLV-Type specifies the
      whose size is given by Length.
+
  interpretation and format of the Value field of the TLV.  See
 +
  Section 8.2.
  
  The sub-TLVs currently specified are defined in the following
+
TLV-Length (2 bytes):  The length of the Value portion of the TLV in
   subsections.
+
   bytes as an unsigned integer.
  
7.3.1.  Name Sub-TLVs
+
Value (variable length):  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 Section 7.2) and sub-TLVs
 +
  (see Section 7.3).
  
  This document defines the following name sub-TLVs that are used to
+
=== Basic Data Fields ===
  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.
 
  
    +------+---------------------+------------------------------------+
+
This section specifies the binary format of several standard basic
    | Type | Sub-TLV Name        | Meaning                            |
+
data fields that are used within other data structures in this
    +======+=====================+====================================+
+
specification.
    | 1    | VRF-Name            | The name of a VRF                  |
 
    +------+---------------------+------------------------------------+
 
    | 2    | Ingress-QoS-Profile | The name of an ingress QoS profile |
 
    +------+---------------------+------------------------------------+
 
    | 3    | Egress-QoS-Profile  | The name of an egress QoS profile  |
 
    +------+---------------------+------------------------------------+
 
    | 4    | User-ACL-Policy    | The name of an ACL policy          |
 
    +------+---------------------+------------------------------------+
 
    | 5    | Multicast-ProfileV4 | The name of an IPv4 multicast      |
 
    |      |                    | profile                            |
 
    +------+---------------------+------------------------------------+
 
    | 6    | Multicast-ProfileV6 | The name of an IPv6 multicast      |
 
    |      |                    | profile                            |
 
    +------+---------------------+------------------------------------+
 
    | 9    | NAT-Instance        | The name of a NAT instance        |
 
    +------+---------------------+------------------------------------+
 
    | 10  | Pool-Name          | The name of an address pool        |
 
    +------+---------------------+------------------------------------+
 
  
                          Table 4: Name Sub-TLVs
+
STRING: 0 to 255 octets.  Will be encoded as a sub-TLV (see
 +
  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 [[RFC20]].
  
7.3.2.  Ingress-CAR Sub-TLV
+
MAC-Addr:  6 octets. Ethernet MAC address [[RFC7042]].
  
  The Ingress-CAR sub-TLV indicates the authorized upstream Committed
+
IPv4-Address:  8 octets. 4 octets of the IPv4 address value followed
  Access Rate (CAR) parameters. The sub-TLV type of the Ingress-CAR
+
   by a 4-octet address mask in the format XXX.XXX.XXX.XXX.
   sub-TLV is 7. The sub-TLV length is 16. The format is as shown in
 
  Figure 34.
 
  
      0                  1                  2                  3
+
IPv6-Address:  20 octets. 16 octets of the IPv6 address followed by a
      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
+
  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.
      |                  CIR (Committed Information Rate)            |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |                  PIR (Peak Information Rate)                 |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |                  CBS (Committed Burst Size)                  |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |                  PBS (Peak Burst Size)                        |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                      Figure 34: Ingress-CAR Sub-TLV
+
VLAN ID:  2 octets.  As follows [802.1Q]:
  
  Where:
+
          0                  1
 +
          0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
 +
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
        | PRI |D|      VLAN-ID          |
 +
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
      CIR (4 bytes)Guaranteed rate in bits/second.
+
  PRIPriority.  Default value 7.
  
      PIR (4 bytes): Burst rate in bits/second.
+
  D:  Drop Eligibility Indicator (DEI). Default value 0.
  
      CBS (4 bytes)The token bucket in bytes.
+
  VLAN-IDUnsigned integer in the range 1-4094. (0 and 4095 are
 +
      not valid VLAN IDs [802.1Q].)
  
      PBS (4 bytes):  Burst token bucket in bytes.
+
=== Sub-TLV Format and Sub-TLVs ===
  
  These fields are unsigned integers.  More details about CIR, PIR,
+
In some cases, the Value portion of a TLV, as specified in
  CBS, and PBS can be found in [RFC2698].
+
Section 7.1, can contain one or more sub-TLVs formatted as follows:
  
7.3.3.  Egress-CAR Sub-TLV
+
    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                                  |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
  
  The Egress-CAR sub-TLV indicates the authorized downstream Committed
+
                      Figure 33: Sub-TLV Header
  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.
 
  
      0                  1                  2                  3
+
Type (2 bytes):  The type of a sub-TLV.  The Type field specifies the
      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
+
  interpretation and format of the Value field of the TLV.  Sub-TLV
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
  type values have the same meaning regardless of the TLV type of
      |                  CIR (Committed Information Rate)             |
+
  the TLV within which the sub-TLV occurs.  See Section 8.4.
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |                  PIR (Peak Information Rate)                  |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |                  CBS (Committed Burst Size)                  |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |                  PBS (Peak Burst Size)                        |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                      Figure 35: Egress-CAR Sub-TLV
+
Length (2 bytes): The length of the Value portion of the sub-TLV in
 +
  bytes as an unsigned integer.
  
   Where:
+
Value (variable length):  This is the Value portion of the sub-TLV
 +
   whose size is given by Length.
  
      CIR (4 bytes):  Guaranteed rate in bits/second.
+
The sub-TLVs currently specified are defined in the following
 +
subsections.
  
      PIR (4 bytes):  Burst rate in bits/second.
+
==== Name Sub-TLVs ====
  
      CBS (4 bytes): The token bucket in bytes.
+
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.
  
      PBS (4 bytes): Burst token bucket in bytes.
+
+------+---------------------+------------------------------------+
 +
| Type | Sub-TLV Name        | Meaning                            |
 +
+======+=====================+====================================+
 +
| 1    | VRF-Name            | The name of a VRF                  |
 +
+------+---------------------+------------------------------------+
 +
| 2    | Ingress-QoS-Profile | The name of an ingress QoS profile |
 +
+------+---------------------+------------------------------------+
 +
| 3    | Egress-QoS-Profile  | The name of an egress QoS profile  |
 +
+------+---------------------+------------------------------------+
 +
| 4   | User-ACL-Policy    | The name of an ACL policy          |
 +
+------+---------------------+------------------------------------+
 +
| 5    | Multicast-ProfileV4 | The name of an IPv4 multicast      |
 +
|      |                    | profile                            |
 +
+------+---------------------+------------------------------------+
 +
| 6    | Multicast-ProfileV6 | The name of an IPv6 multicast      |
 +
|      |                    | profile                            |
 +
+------+---------------------+------------------------------------+
 +
| 9    | NAT-Instance        | The name of a NAT instance        |
 +
+------+---------------------+------------------------------------+
 +
| 10  | Pool-Name          | The name of an address pool        |
 +
  +------+---------------------+------------------------------------+
  
  These fields are unsigned integers.  More details about CIR, PIR,
+
                        Table 4: Name Sub-TLVs
  CBS, and PBS can be found in [RFC2698].
 
  
7.3.4.  If-Desc Sub-TLV
+
==== Ingress-CAR Sub-TLV ====
  
  The If-Desc sub-TLV is defined to designate an interface.  It is an
+
The Ingress-CAR sub-TLV indicates the authorized upstream Committed
  optional sub-TLV that may be carried in those TLVs that have an If-
+
Access Rate (CAR) parameters.  The sub-TLV type of the Ingress-CAR
  Index or Out-If-Index field.  The If-Desc sub-TLV is used as a
+
sub-TLV is 7.  The sub-TLV length is 16.  The format is as shown in
  locally unique identifier within a BNG.
+
Figure 34.
 
 
  The sub-TLV type is 11.  The sub-TLV length is 12 octets.  The format
 
  depends on the If-Type (Section 8.6).  The format of the value part
 
  is as follows:
 
  
 
     0                  1                  2                  3
 
     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
 
     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              |
+
   |                 CIR (Committed Information Rate)            |
 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Sub-Slot            |            Port Number        |
+
   |                 PIR (Peak Information Rate)                  |
 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         Sub-Port Number                      |
+
   |                 CBS (Committed Burst Size)                  |
 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                     If-Desc Sub-TLV (Physical Port)
+
  |                  PBS (Peak Burst Size)                        |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
 
 +
                     Figure 34: Ingress-CAR Sub-TLV
 +
 
 +
Where:
 +
 
 +
  CIR (4 bytes):  Guaranteed rate in bits/second.
 +
 
 +
  PIR (4 bytes):  Burst rate in bits/second.
 +
 
 +
  CBS (4 bytes):  The token bucket in bytes.
 +
 
 +
  PBS (4 bytes):  Burst token bucket in bytes.
 +
 
 +
These fields are unsigned integers.  More details about CIR, PIR,
 +
CBS, and PBS can be found in [[RFC2698]].
 +
 
 +
==== Egress-CAR Sub-TLV ====
 +
 
 +
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.
  
 
     0                  1                  2                  3
 
     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
 
     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                      |
+
   |                 CIR (Committed Information Rate)            |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |                  PIR (Peak Information Rate)                 |
 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Logic-ID                          |
+
   |                 CBS (Committed Burst Size)                  |
 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         Sub-Port Number                      |
+
   |                 PBS (Peak Burst Size)                        |
 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                    If-Desc Sub-TLV (Virtual Port)
 
  
                    Figure 36: If-Desc Sub-TLV Formats
+
                    Figure 35: Egress-CAR Sub-TLV
  
  Where:
+
Where:
  
      If-Type8 bits in length.  The value of this field indicates the
+
  CIR (4 bytes)Guaranteed rate in bits/second.
        type of an interface.  The If-Type values defined in this
 
        document are listed in Section 8.6.
 
  
      Chassis (8 bits):  Identifies the chassis that the interface
+
  PIR (4 bytes):  Burst rate in bits/second.
        belongs to.
 
  
      Slot (16 bits):  Identifies the slot that the interface belongs
+
  CBS (4 bytes):  The token bucket in bytes.
        to.
 
  
      Sub-Slot (16 bits):  Identifies the sub-slot the interface belongs
+
  PBS (4 bytes):  Burst token bucket in bytes.
        to.
 
  
      Port Number (16 bits): An identifier of a physical port/interface
+
These fields are unsigned integers. More details about CIR, PIR,
        (e.g., If-Type: 1-5).  It is locally significant within the
+
CBS, and PBS can be found in [[RFC2698]].
        slot/sub-slot.
 
  
      Sub-Port Number (32 bits):  An identifier of the sub-port.
+
==== If-Desc Sub-TLV ====
        Locally significant within its "parent" port (physical or
 
        virtual).
 
  
      Logic-ID (32 bits):  An identifier of a virtual interface (e.g.,
+
The If-Desc sub-TLV is defined to designate an interface. It is an
        If-Type: 6-7).
+
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.
  
7.3.5IPv6 Address List Sub-TLV
+
The sub-TLV type is 11.  The sub-TLV length is 12 octets. The format
 +
depends on the If-Type (Section 8.6)The format of the value part
 +
is as follows:
  
   The IPv6 Address List sub-TLV is used to convey one or more IPv6
+
0                  1                  2                  3
  addresses.  It is carried in the IPv6 Subscriber TLV.  The sub-TLV
+
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 is 12.  The sub-TLV length is variable.
+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
|  If-Type (1-5)|   Chassis    |            Slot              |
 +
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
|          Sub-Slot            |            Port Number        |
 +
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
|                        Sub-Port Number                      |
 +
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
                If-Desc Sub-TLV (Physical Port)
  
  The format of the value part of the IPv6 Address List sub-TLV is as
+
0                  1                  2                  3
  follows:
+
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)
  
      0                   1                  2                  3
+
                   Figure 36: If-Desc Sub-TLV Formats
      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                          ~
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                    Figure 37: IPv6 Address List Sub-TLV
+
Where:
  
   Where:
+
   If-Type: 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 Section 8.6.
  
      IPv6 Address (IPv6-Address):  Each IP Address is of type IP-
+
  Chassis (8 bits):  Identifies the chassis that the interface
        Address and carries an IPv6 address and length.
+
      belongs to.
  
7.3.6. Vendor Sub-TLV
+
  Slot (16 bits):  Identifies the slot that the interface belongs
 +
      to.
  
   The Vendor sub-TLV is intended to be used inside the Value portion of
+
   Sub-Slot (16 bits): Identifies the sub-slot the interface belongs
  the Vendor TLV (Section 7.13). It provides a Sub-Type that
+
      to.
  effectively extends the sub-TLV type in the sub-TLV header and
 
  provides for versioning of Vendor sub-TLVs.
 
  
   The value part of the Vendor sub-TLV is formatted as follows:
+
   Port Number (16 bits):  An identifier of a physical port/interface
 +
      (e.g., If-Type: 1-5).  It is locally significant within the
 +
      slot/sub-slot.
  
      0                  1                  2                  3
+
  Sub-Port Number (32 bits):  An identifier of the sub-port.
      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
+
       Locally significant within its "parent" port (physical or
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
       virtual).
      |                          Vendor-ID                          |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |          Sub-Type            |      Sub-Type-Version        |
 
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
       ~            Value (other as specified by vendor)             ~
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                        Figure 38: Vendor Sub-TLV
+
  Logic-ID (32 bits):  An identifier of a virtual interface (e.g.,
 +
      If-Type: 6-7).
  
  Where:
+
==== IPv6 Address List Sub-TLV ====
  
      Sub-TLV type: 13.
+
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.
  
      Sub-TLV length: Variable.
+
The format of the value part of the IPv6 Address List sub-TLV is as
 +
follows:
  
      Vendor-ID (4 bytes):  Vendor ID as defined in RADIUS [RFC2865].
+
    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                          ~
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
      Sub-Type (2 bytes):  Used by the vendor to distinguish multiple
+
                Figure 37: IPv6 Address List Sub-TLV
        different sub-TLVs.
 
  
      Sub-Type-Version (2 bytes): Used by the vendor to distinguish
+
Where:
        different versions of a vendor-defined sub-TLV Sub-Type.
 
  
      ValueAs specified by the vendor.
+
  IPv6 Address (IPv6-Address)Each IP Address is of type IP-
 +
      Address and carries an IPv6 address and length.
  
  Since vendor code will be handling the sub-TLV after the Vendor-ID
+
==== Vendor Sub-TLV ====
  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
 
  RECOMMENDED 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
 
  SHOULD increase the value it is using in the Sub-Type-Version field.
 
  
7.4Hello TLV
+
The Vendor sub-TLV is intended to be used inside the Value portion of
 +
the Vendor TLV (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.
  
  The Hello TLV is defined to be carried in the Hello message for
+
The value part of the Vendor sub-TLV is formatted as follows:
  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:
 
  
      0                  1                  2                  3
+
    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
+
    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                          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                          Vendor-ID                          |
+
  |          Sub-Type            |       Sub-Type-Version        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                          Capabilities                        |
+
  ~            Value (other as specified by vendor)              ~
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
                            Figure 39: Hello TLV
+
                      Figure 38: Vendor Sub-TLV
  
  Where:
+
Where:
  
      TLV type:  100.
+
  Sub-TLV type:  13.
  
      TLV length:  12 octets.
+
  Sub-TLV length:  Variable.
  
      VerSupported32 bits in length.  It is a bit map of the Sub-
+
  Vendor-ID (4 bytes)Vendor ID as defined in RADIUS [[RFC2865]].
        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 MUST 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.
 
  
      Vendor-ID4 bytes in length.  Vendor ID, as defined in RADIUS
+
  Sub-Type (2 bytes)Used by the vendor to distinguish multiple
        [RFC2865].
+
      different sub-TLVs.
  
      Capabilities32 bits in length.  Flags that indicate the support
+
  Sub-Type-Version (2 bytes)Used by the vendor to distinguish
        of particular capabilities by the sender of the Hello.  No
+
      different versions of a vendor-defined sub-TLV Sub-Type.
        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 MUST be checked before
 
        any other TLVs in the Hello because capabilities defined in the
 
        future might extend existing TLVs or permit new TLVs.
 
  
   After the exchange of Hello messages, the CP and UP each perform a
+
   Value:  As specified by the vendor.
  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.
 
  
  If the result of the AND of the Sub-Versions supported is zero, then
+
Since vendor code will be handling the sub-TLV after the Vendor-ID
  no session can be established, and the connection is torn downIf
+
field is recognized, the remainder of the sub-TLV can be organized
  the result of the AND of the Sub-Versions supported is nonzero, then
+
however the vendor wantsBut it desirable for a vendor to be able
  the session uses the highest Sub-Version supported by both the CP and
+
to define multiple different Vendor sub-TLVs and to keep track of
  UP.
+
different versions of its vendor-defined sub-TLVs.  Thus, it is
 +
RECOMMENDED 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
 +
SHOULD increase the value it is using in the Sub-Type-Version field.
  
  For example, if one side supports Sub-Versions 1, 3, 4, and 5
+
=== Hello TLV ===
  (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.
 
  
  The result of the logical AND of the Capabilities bits will show what
+
The Hello TLV is defined to be carried in the Hello message for
  additional capabilities both sides support.  If this result is zero,
+
version and capabilities negotiationIt indicates the S-CUSP sub-
  there are no such capabilities, so none can be used during the
+
version and capabilities supported.  The format of the value part of
  sessionIf this result is nonzero, it shows the additional
+
the Hello TLV is as follows:
  capabilities that can be used during the session.  The CP and the UP
 
  MUST NOT use a capability unless both advertise support.
 
  
7.5.  Keepalive TLV
+
    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                        |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
  The Keepalive TLV is carried in the Hello message.  It provides
+
                        Figure 39: Hello TLV
  timing information for this feature.  The format of the value part of
 
  the Keepalive TLV is as follows:
 
  
      0                  1                  2                  3
+
Where:
      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          |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                          Figure 40: Keepalive TLV
+
  TLV type: 100.
  
   Where:
+
   TLV length: 12 octets.
  
       TLV type: 102.
+
  VerSupported:  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 MUST 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.
  
      TLV length:  4 octets.
+
  Vendor-ID:  4 bytes in length.  Vendor ID, as defined in RADIUS
 +
      [[RFC2865]].
  
      Keepalive (8 bits): Indicates the maximum interval (in seconds)
+
  Capabilities:  32 bits in length. Flags that indicate the support
        between two consecutive S-CUSP messages sent by the sender of
+
      of particular capabilities by the sender of the HelloNo
        the message containing this TLV as an unsigned integerThe
+
      capabilities are defined in this document, so implementations
        minimum value for the Keepalive field is 1 second. When set to
+
      of the version specified herein will set this field to zero.
        0, once the session is established, no further Keepalive
+
      The Capabilities field of the Hello TLV MUST be checked before
        messages are sent to the remote peer.  A RECOMMENDED value for
+
      any other TLVs in the Hello because capabilities defined in the
        the Keepalive frequency is 30 seconds.
+
      future might extend existing TLVs or permit new TLVs.
  
      DeadTimer (8 bits in length):  Specifies the amount of time as an
+
After the exchange of Hello messages, the CP and UP each perform a
        unsigned integer number of seconds, after the expiration of
+
logical AND of the Sub-Version supported by the CP and the UP and
        which, the S-CUSP peer can declare the session with the sender
+
separately perform a logical AND of the Capabilities field for the CP
        of the Hello message to be down if no S-CUSP message has been
+
and the UP.
        received.  The DeadTimer SHOULD be set to 0 and MUST be ignored
 
        if the Keepalive is set to 0.  A RECOMMENDED value for the
 
        DeadTimer is 4 times the value of the Keepalive.
 
  
      Reserved: The Reserved bits MUST be sent as zero and ignored on
+
If the result of the AND of the Sub-Versions supported is zero, then
        receipt.
+
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.
  
7.6. Error Information TLV
+
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.
  
  The Error Information TLV is a common TLV that can be used in many
+
The result of the logical AND of the Capabilities bits will show what
  responses (e.g., Update_Response message) and ACK messages (e.g.,
+
additional capabilities both sides support.  If this result is zero,
  Addr_Allocation_Ack message)It is used to convey the information
+
there are no such capabilities, so none can be used during the
  about an error in the received S-CUSP message.  The format of the
+
sessionIf this result is nonzero, it shows the additional
  value part of the Error Information TLV is as follows:
+
capabilities that can be used during the session.  The CP and the UP
 +
MUST NOT use a capability unless both advertise support.
  
      0                  1                  2                  3
+
=== Keepalive TLV ===
      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                          |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                      Figure 41: Error Information TLV
+
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:
  
   Where:
+
    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          |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
      TLV type:  101.
+
                      Figure 40: Keepalive TLV
  
      TLV length: 8 octets.
+
Where:
  
      Message-Type (1 byte)This parameter is the message type of the
+
  TLV type102.
        message containing an error.
 
  
      Reserved (1 byte)MUST be sent as zero and ignored on receipt.
+
  TLV length4 octets.
  
      TLV-Type (2 bytes):  Indicates which TLV caused the error.
+
  Keepalive (8 bits):  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 RECOMMENDED value for
 +
      the Keepalive frequency is 30 seconds.
  
       Error Code: 4 bytes in lengthIndicate the specific Error Code
+
  DeadTimer (8 bits in length):  Specifies the amount of time as an
        (see Section 8.5).
+
      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 SHOULD be set to 0 and MUST be ignored
 +
      if the Keepalive is set to 0A RECOMMENDED value for the
 +
      DeadTimer is 4 times the value of the Keepalive.
  
7.7.  BAS Function TLV
+
  Reserved:  The Reserved bits MUST be sent as zero and ignored on
 +
      receipt.
  
  The BAS Function TLV is used by a CP to control the access mode,
+
=== Error Information TLV ===
  authentication methods, and other related functions of an interface
 
  on a UP.
 
  
  The format of the BAS Function TLV value part is as follows:
+
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:
  
      0                  1                  2                  3
+
    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
+
    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                            |
+
  | Message-Type Reserved            TLV-Type            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Access-Mode Auth-Method4 Auth-Method6 |    Reserved  |
+
  |                           Error Code                          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                             Flags                            |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |                        Sub-TLVs (optional)                  |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                        Figure 42: BAS Function TLV
+
                  Figure 41: Error Information TLV
  
  Where:
+
Where:
  
      TLV type:  1.
+
  TLV type:  101.
  
      TLV length:  Variable.
+
  TLV length:  8 octets.
  
      If-Index4 bytes in length, a unique identifier of an interface
+
  Message-Type (1 byte)This parameter is the message type of the
        of a BNG.
+
      message containing an error.
  
      Access-Mode:  1 byte in length.  It indicates the access mode of
+
  Reserved (1 byte): MUST be sent as zero and ignored on receipt.
        the interface. The defined values are listed in Section 8.7.
 
  
      Auth-Method41 byte in length.  It indicates the authentication
+
  TLV-Type (2 bytes)Indicates which TLV caused the error.
        on this interface for the IPv4 scenario.  This field is defined
 
        as a bitmap.  The bits defined in this document are listed in
 
        Section 8.8.  Other bits are reserved and MUST be sent as zero
 
        and ignored on receipt.
 
  
      Auth-Method61 byte in length.  It indicates the authentication
+
  Error Code4 bytes in length.  Indicate the specific Error Code
        on this interface for the IPv6 scenario.  This field is defined
+
      (see Section 8.5).
        as a bitmap.  The bits defined in this document are listed in
 
        Section 8.8.  Other bits are reserved and MUST be sent as zero
 
        and ignored on receipt.
 
  
      Sub-TLVs:  The IF-Desc sub-TLV can be carried.
+
=== BAS Function TLV ===
  
        If-Desc sub-TLV:  Carries the interface information.
+
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.
  
      Flags:  The Flags field is defined as follows:
+
The format of the BAS Function TLV value part is as follows:
  
      0                  1                  2                  3
+
    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
+
    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|
+
  |                         If-Index                            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  | Access-Mode  | Auth-Method4 | Auth-Method6 |   Reserved  |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |                             Flags                            |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |                         Sub-TLVs (optional)                  |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
                        Figure 43: Interface Flags
+
                    Figure 42: BAS Function TLV
  
  Where:
+
Where:
  
      F (IPv4 Trigger) bitIndicates whether IPv4 packets can trigger
+
  TLV type1.
        a subscriber to go online.
 
  
        1Enabled.
+
  TLV lengthVariable.
  
        0Disabled.
+
  If-Index4 bytes in length, a unique identifier of an interface
 +
      of a BNG.
  
      S (IPv6 Trigger) bitIndicates whether IPv6 packets can trigger
+
  Access-Mode1 byte in length.  It indicates the access mode of
        a subscriber to go online.
+
      the interface.  The defined values are listed in Section 8.7.
  
        1: Enabled.
+
  Auth-Method4:  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
 +
      Section 8.8. Other bits are reserved and MUST be sent as zero
 +
      and ignored on receipt.
  
        0Disabled.
+
  Auth-Method61 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
 +
      Section 8.8.  Other bits are reserved and MUST be sent as zero
 +
      and ignored on receipt.
  
      A (ARP Trigger) bitIndicates whether ARP packets can trigger a
+
  Sub-TLVsThe IF-Desc sub-TLV can be carried.
        subscriber to go online.
 
  
        1Enabled.
+
      If-Desc sub-TLVCarries the interface information.
  
        0Disabled.
+
  FlagsThe Flags field is defined as follows:
  
      N (ND Trigger) bit:  Indicates whether ND packets can trigger a
+
    0                  1                  2                  3
        subscriber to go online.
+
    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|
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
        1: Enabled.
+
                      Figure 43: Interface Flags
  
        0: Disabled.
+
Where:
  
      I (IPoE-Flow-Check):  Used for UP detection.
+
  F (IPv4 Trigger) bitIndicates whether IPv4 packets can trigger
 +
      a subscriber to go online.
  
        1:  Enable traffic detection.
+
      1:  Enabled.
  
        0:  Disable traffic detection.
+
      0:  Disabled.
  
      P (PPP-Flow-Check) bit:  Used for UP detection.
+
  S (IPv6 Trigger) bit:  Indicates whether IPv6 packets can trigger
 +
      a subscriber to go online.
  
        1:  Enable traffic detection.
+
      1:  Enabled.
  
        0:  Disable traffic detection.
+
      0:  Disabled.
  
      X (ARP-Proxy) bit:  Indicates whether ARP proxy is enabled on the
+
  A (ARP Trigger) bit:  Indicates whether ARP packets can trigger a
        interface.
+
      subscriber to go online.
  
        1:  The interface is enabled with ARP proxy and can process ARP
+
      1:  Enabled.
            requests across different network ports and VLANs.
 
  
        0:  The ARP proxy is not enabled on the interface and only the
+
      0:  Disabled.
            ARP requests of the same network port and VLAN are
 
            processed.
 
  
      Y (ND-Proxy) bit:  Indicates whether ND proxy is enabled on the
+
  N (ND Trigger) bit:  Indicates whether ND packets can trigger a
        interface.
+
      subscriber to go online.
  
        1:  The interface is enabled with ND proxy and can process ND
+
      1:  Enabled.
            requests across different network ports and VLANs.
 
  
        0:  The ND proxy is not enabled on the interface and only the
+
      0:  Disabled.
            ND requests of the same network port and VLAN are processed.
 
  
      MBZReserved bits that MUST be sent as zero and ignored on
+
  I (IPoE-Flow-Check)Used for UP detection.
        receipt.
 
  
7.8.  Routing TLVs
+
      1:  Enable traffic detection.
  
  Typically, after an S-CUSP session is established between a UP and a
+
      0: Disable traffic detection.
  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 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.
 
  
   The Routing TLVs are used by a CP to notify a UP of the updates to
+
   P (PPP-Flow-Check) bit:  Used for UP detection.
  network routing information.  They can be carried in the
 
  Update_Request message and Sync_Data message.
 
  
7.8.1. IPv4 Routing TLV
+
      1:  Enable traffic detection.
  
  The IPv4 Routing TLV is used to carry information related to IPv4
+
      0:  Disable traffic detection.
  network routing.
 
  
   The format of the TLV value part is as below:
+
   X (ARP-Proxy) bit:  Indicates whether ARP proxy is enabled on the
 +
      interface.
  
      0                  1                   2                  3
+
      1:  The interface is enabled with ARP proxy and can process ARP
      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
+
         requests across different network ports and VLANs.
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |                          User-ID                              |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |                          Dest-Address                        |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |                          Next-Hop                            |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |                          Out-If-Index                        |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |                          Cost                                |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |                          Tag                                  |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |        Route-Type            |         Reserved          |A|
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      ~                          Sub-TLVs  (optional)                ~
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                        Figure 44: IPv4 Routing TLV
+
      0: The ARP proxy is not enabled on the interface and only the
 +
        ARP requests of the same network port and VLAN are
 +
        processed.
  
   Where:
+
   Y (ND-Proxy) bit: Indicates whether ND proxy is enabled on the
 +
      interface.
  
       TLV type7.
+
       1The interface is enabled with ND proxy and can process ND
 +
        requests across different network ports and VLANs.
  
       TLV lengthVariable.
+
       0The ND proxy is not enabled on the interface and only the
 +
        ND requests of the same network port and VLAN are processed.
  
      User-ID4 bytes in length.  This field carries the user
+
  MBZReserved bits that MUST be sent as zero and ignored on
        identifier.  It is filled with all Fs when a non-user route is
+
      receipt.
        delivered to the UP.
 
  
      Dest-Address (IPv4-Address type):  Identifies the destination
+
=== Routing TLVs ===
        address.
 
  
      Next-Hop (IPv4-Address type): Identifies the next-hop address.
+
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 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.
  
      Out-If-Index (4 bytes): Indicates the interface index.
+
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.
  
      Cost (4 bytes):  The cost value of the route.
+
==== IPv4 Routing TLV ====
  
      Tag (4 bytes):  The tag value of the route.
+
The IPv4 Routing TLV is used to carry information related to IPv4
 +
network routing.
  
      Route-Type (2 bytes):  The value of this field indicates the route
+
The format of the TLV value part is as below:
        type.  The values defined in this document are listed in
 
        Section 8.9.
 
  
      Advertise-Flag:  1 bit shown as "A" in the figure above
+
    0                  1                  2                  3
        (Figure 44).  Indicates whether the UP should advertise the
+
    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
        route.  The following flag values are defined:
+
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |                          User-ID                              |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |                          Dest-Address                        |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |                          Next-Hop                            |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |                          Out-If-Index                        |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |                          Cost                                |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |                          Tag                                  |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |        Route-Type            |          Reserved          |A|
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  ~                          Sub-TLVs  (optional)                 ~
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
        0: Not advertised.
+
                    Figure 44: IPv4 Routing TLV
  
        1: Advertised.
+
Where:
  
      Sub-TLVsThe VRF-Name and/or If-Desc sub-TLVs can be carried.
+
  TLV type7.
  
        VRF-Name sub-TLV:  Indicates which VRF the route belongs to.
+
  TLV lengthVariable.
  
        If-Desc sub-TLVCarries the interface information.
+
  User-ID4 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.
  
      ReservedThe Reserved field MUST be sent as zero and ignored on
+
  Dest-Address (IPv4-Address type)Identifies the destination
        receipt.
+
      address.
  
7.8.2. IPv6 Routing TLV
+
  Next-Hop (IPv4-Address type):  Identifies the next-hop address.
  
   The IPv6 Routing TLV is used to carry IPv6 network routing
+
   Out-If-Index (4 bytes):  Indicates the interface index.
  information.
 
  
   The format of the value part of this TLV is as follows:
+
   Cost (4 bytes):  The cost value of the route.
  
      0                  1                  2                  3
+
  Tag (4 bytes):  The tag value of the route.
      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)                 ~
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                        Figure 45: IPv6 Routing TLV
+
  Route-Type (2 bytes): The value of this field indicates the route
 +
      type.  The values defined in this document are listed in
 +
      Section 8.9.
  
   Where:
+
   Advertise-Flag:  1 bit shown as "A" in the figure above
 +
      (Figure 44).  Indicates whether the UP should advertise the
 +
      route.  The following flag values are defined:
  
       TLV type8.
+
       0Not advertised.
  
       TLV lengthVariable.
+
       1Advertised.
  
      User-ID4 bytes in length.  This field carries the user
+
  Sub-TLVsThe VRF-Name and/or If-Desc sub-TLVs can be carried.
        identifier.  This field is filled with all Fs when a non-user
 
        route is delivered to the UP.
 
  
       IPv6 Dest-Address (IPv6-Address type)Identifies the destination
+
       VRF-Name sub-TLVIndicates which VRF the route belongs to.
        address.
 
  
       IPv6 Next-Hop (IPv6-Address type)Identifies the next-hop
+
       If-Desc sub-TLVCarries the interface information.
        address.
 
  
      Out-If-Index (4 bytes)Indicates the interface index.
+
  ReservedThe Reserved field MUST be sent as zero and ignored on
 +
      receipt.
  
      Cost (4 bytes):  This is the cost value of the route.
+
==== IPv6 Routing TLV ====
  
      Tag (4 bytes):  The tag value of the route.
+
The IPv6 Routing TLV is used to carry IPv6 network routing
 +
information.
  
      Route-Type (2 bytes):  The value of this field indicates the route
+
The format of the value part of this TLV is as follows:
        type.  The values defined in this document are listed in
 
        Section 8.9.
 
  
      Advertise-Flag:  1 bit shown as "A" in the figure above
+
    0                  1                  2                  3
        (Figure 45).  Indicates whether the UP should advertise the
+
    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
        route.  The following flags are defined:
+
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |                          User-ID                              |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  ~                          IPv6 Dest-Address                    ~
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  ~                          IPv6 Next-Hop                        ~
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |                          Out-If-Index                        |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |                          Cost                                |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |                          Tag                                  |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |        Route-Type            |          Reserved          |A|
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  ~                          Sub-TLVs (optional)                 ~
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
        0: Not advertised.
+
                    Figure 45: IPv6 Routing TLV
  
        1: Advertised.
+
Where:
  
      Sub-TLVsThe If-Desc and VRF-Name sub-TLVs can be carried.
+
  TLV type8.
  
        VRF-Name sub-TLV:  Indicates the VRF to which the subscriber
+
  TLV lengthVariable.
            belongs.
 
  
        If-Desc sub-TLVCarries the interface information.
+
  User-ID4 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.
  
      ReservedThe Reserved field MUST be sent as zero and ignored on
+
  IPv6 Dest-Address (IPv6-Address type)Identifies the destination
        receipt.
+
      address.
  
7.9.  Subscriber TLVs
+
  IPv6 Next-Hop (IPv6-Address type):  Identifies the next-hop
 +
      address.
  
   The Subscriber TLVs are defined for a CP to send the basic
+
   Out-If-Index (4 bytes):  Indicates the interface index.
  information about a user to a UP.
 
  
7.9.1. Basic Subscriber TLV
+
  Cost (4 bytes):  This is the cost value of the route.
  
   The Basic Subscriber TLV is used to carry the common information for
+
   Tag (4 bytes):  The tag value of the route.
  all kinds of access subscribers.  It is carried in an Update_Request
 
  message.
 
  
   The format of the Basic Subscriber TLV value part is as follows:
+
   Route-Type (2 bytes):  The value of this field indicates the route
 +
      type.  The values defined in this document are listed in
 +
      Section 8.9.
  
      0                  1                  2                  3
+
   Advertise-Flag: 1 bit shown as "A" in the figure above
      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
+
       (Figure 45).  Indicates whether the UP should advertise the
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
       route.  The following flags are defined:
      |                          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)               ~
 
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                      Figure 46: Basic Subscriber TLV
+
      0: Not advertised.
  
  Where:
+
      1: Advertised.
  
      TLV type2.
+
  Sub-TLVsThe If-Desc and VRF-Name sub-TLVs can be carried.
  
       TLV lengthVariable.
+
       VRF-Name sub-TLV:  Indicates the VRF to which the subscriber
 +
        belongs.
  
       User-ID (4 bytes)The identifier of a subscriber.
+
       If-Desc sub-TLVCarries the interface information.
  
      Session-ID (4 bytes): Session ID of a PPPoE subscriber. The
+
  Reserved:  The Reserved field MUST be sent as zero and ignored on
        value zero identifies a non-PPPoE subscriber.
+
      receipt.
  
      User-MAC (MAC-Addr type):  The MAC address of a subscriber.
+
=== Subscriber TLVs ===
  
      Oper-ID (1 byte):  Indicates the ID of an operation performed by a
+
The Subscriber TLVs are defined for a CP to send the basic
        user.  This field is carried in the response from the UP.
+
information about a user to a UP.
  
      Reserved (1 byte):  MUST be sent as zero and ignored on receipt.
+
==== Basic Subscriber TLV ====
  
      Access-Type (1 byte):  Indicates the type of subscriber access.
+
The Basic Subscriber TLV is used to carry the common information for
        Values defined in this document are listed in Section 8.10.
+
all kinds of access subscribers. It is carried in an Update_Request
 +
message.
  
      Sub-Access-Type (1 byte): Indicates whether PPP termination or
+
The format of the Basic Subscriber TLV value part is as follows:
        PPP relay is used.
 
  
        0: Reserved.
+
    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
         1:  PPP Relay (for LAC).
+
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |                          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)               ~
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
        2: PPP termination (for LNS).
+
                  Figure 46: Basic Subscriber TLV
  
      Account-Type (1 byte): Indicates whether traffic statistics are
+
Where:
        collected independently.
 
  
        0Collects statistics on IPv4 and IPv6 traffic of terminals
+
  TLV type2.
            independently.
 
  
        1Collects statistics on IPv4 and IPv6 traffic of terminals.
+
  TLV lengthVariable.
  
      Address Family (1 byte):  The type of IP address.
+
  User-ID (4 bytes):  The identifier of a subscriber.
  
        1IPv4.
+
  Session-ID (4 bytes)Session ID of a PPPoE subscriber.  The
 +
      value zero identifies a non-PPPoE subscriber.
  
        2IPv6.
+
  User-MAC (MAC-Addr type)The MAC address of a subscriber.
  
        3Dual stack.
+
  Oper-ID (1 byte)Indicates the ID of an operation performed by a
 +
      user.  This field is carried in the response from the UP.
  
      C-VID (VLAN-ID):  Indicates the inner VLAN ID.  The value 0
+
  Reserved (1 byte):  MUST be sent as zero and ignored on receipt.
        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.
 
  
      P-VID (VLAN-ID):  Indicates the outer VLAN ID. The value 0
+
  Access-Type (1 byte):  Indicates the type of subscriber access.
        indicates that the VLAN ID is invalid. The format is the same
+
      Values defined in this document are listed in Section 8.10.
        as that for C-VID.
 
  
      Detect-Times (2 bytes):  Number of detection timeout times.  The
+
  Sub-Access-Type (1 byte):  Indicates whether PPP termination or
        value 0 indicates that no detection is performed.
+
      PPP relay is used.
  
       Detect-Interval (2 bytes)Detection interval in seconds.
+
       0Reserved.
  
       If-Index (4 bytes):  Interface index.
+
       1:  PPP Relay (for LAC).
  
       Sub-TLVsThe VRF-Name sub-TLV and If-Desc sub-TLV can be
+
       2PPP termination (for LNS).
        carried.
 
  
        VRF-Name sub-TLV:  Indicates the VRF to which the subscriber
+
  Account-Type (1 byte):  Indicates whether traffic statistics are
            belongs.
+
      collected independently.
  
        If-Desc sub-TLVCarries the interface information.
+
      0Collects statistics on IPv4 and IPv6 traffic of terminals
 +
        independently.
  
       ReservedThe Reserved field MUST be sent as zero and ignored on
+
       1Collects statistics on IPv4 and IPv6 traffic of terminals.
        receipt.
 
  
7.9.2. PPP Subscriber TLV
+
  Address Family (1 byte):  The type of IP address.
  
  The PPP Subscriber TLV is defined to carry PPP information of a user
+
      1: IPv4.
  from a CP to a UP. It will be carried in an Update_Request message
 
  when PPPoE or L2TP access is used.
 
  
  The format of the TLV value part is as follows:
+
      2: IPv6.
  
      0                  1                  2                  3
+
      3:  Dual stack.
      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                    |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                      Figure 47: PPP Subscriber TLV
+
  C-VID (VLAN-ID): 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.
  
   Where:
+
   P-VID (VLAN-ID): 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.
  
      TLV type3.
+
  Detect-Times (2 bytes)Number of detection timeout times.  The
 +
      value 0 indicates that no detection is performed.
  
      TLV length12 octets.
+
  Detect-Interval (2 bytes)Detection interval in seconds.
  
      User-ID (4 bytes):  The identifier of a subscriber.
+
  If-Index (4 bytes):  Interface index.
  
      MSS-Value (2 bytes)Indicates the MSS value (in bytes).
+
  Sub-TLVsThe VRF-Name sub-TLV and If-Desc sub-TLV can be
 +
      carried.
  
       MSS-Enable (M) (1 bit):  Indicates whether the MSS is enabled.
+
       VRF-Name sub-TLV:  Indicates the VRF to which the subscriber
 +
        belongs.
  
        0Disabled.
+
      If-Desc sub-TLVCarries the interface information.
  
        1Enabled.
+
  ReservedThe Reserved field MUST be sent as zero and ignored on
 +
      receipt.
  
      MRU (2 bytes):  PPPoE local MRU (in bytes).
+
==== PPP Subscriber TLV ====
  
      Magic-Number (4 bytes): Local magic number in PPP negotiation
+
The PPP Subscriber TLV is defined to carry PPP information of a user
        packets.
+
from a CP to a UP. It will be carried in an Update_Request message
 +
when PPPoE or L2TP access is used.
  
      Peer-Magic-Number (4 bytes): Remote peer magic number.
+
The format of the TLV value part is as follows:
  
      Reserved:  The Reserved fields MUST be sent as zero and ignored on
+
    0                  1                  2                  3
        receipt.
+
    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                    |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
7.9.3.  IPv4 Subscriber TLV
+
                    Figure 47: PPP Subscriber TLV
  
  The IPv4 Subscriber TLV is defined to carry IPv4-related information
+
Where:
  for a BNG user.  It will be carried in an Update_Request message when
 
  IPv4 IPoE or PPPoE access is used.
 
  
   The format of the TLV value part is as follows:
+
   TLV type: 3.
  
      0                  1                  2                  3
+
  TLV length:  12 octets.
      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                     ~
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                      Figure 48: IPv4 Subscriber TLV
+
  User-ID (4 bytes): The identifier of a subscriber.
  
   Where:
+
   MSS-Value (2 bytes): Indicates the MSS value (in bytes).
  
      TLV type4.
+
  MSS-Enable (M) (1 bit)Indicates whether the MSS is enabled.
  
       TLV lengthVariable.
+
       0Disabled.
  
       User-ID (4 bytes)The identifier of a subscriber.
+
       1Enabled.
  
      User-IPv4 (IPv4-Address):  The IPv4 address of the subscriber.
+
  MRU (2 bytes):  PPPoE local MRU (in bytes).
  
      Gateway-IPv4 (IPv4-Address):  The gateway address of the
+
  Magic-Number (4 bytes):  Local magic number in PPP negotiation
        subscriber.
+
      packets.
  
      Portal-Force (P) (1 bit):  Push advertisement.
+
  Peer-Magic-Number (4 bytes):  Remote peer magic number.
  
        0Off.
+
  ReservedThe Reserved fields MUST be sent as zero and ignored on
 +
      receipt.
  
        1:  On.
+
==== IPv4 Subscriber TLV ====
  
      Web-Force (W) (1 bit): Push IPv4 Web.
+
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.
  
        0: Off.
+
The format of the TLV value part is as follows:
  
        1:  On.
+
    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
      Echo-Enable (E) (1 bit):  UP returns ARP Req or PPP Echo.
+
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
+
  |                          User-ID                              |
         0:  Off.
+
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
+
  |                          User-IPv4                            |
        1:  On.
+
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |                          Gateway-IPv4                        |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |         MTU                  |  Reserved            |U|E|W|P|
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  ~                          VRF-Name Sub-TLV                    ~
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
      IPv4-URPF (U) (1 bit):  User Unicast Reverse Path Forwarding
+
                    Figure 48: IPv4 Subscriber TLV
        (URPF) flag.
 
  
        0: Off.
+
Where:
  
        1On.
+
  TLV type4.
  
      MTU (2 bytes)MTU value.  The default value is 1500.
+
  TLV lengthVariable.
  
      VRF-Name Sub-TLVIndicates the subscriber belongs to which VRF.
+
  User-ID (4 bytes)The identifier of a subscriber.
  
      Reserved:  The Reserved field MUST be sent as zero and ignored on
+
  User-IPv4 (IPv4-Address):  The IPv4 address of the subscriber.
        receipt.
 
  
7.9.4. IPv6 Subscriber TLV
+
  Gateway-IPv4 (IPv4-Address):  The gateway address of the
 +
      subscriber.
  
   The IPv6 Subscriber TLV is defined to carry IPv6-related information
+
   Portal-Force (P) (1 bit): Push advertisement.
  for a BNG user. It will be carried in an Update_Request message when
 
  IPv6 IPoE or PPPoE access is used.
 
  
  The format of the TLV value part is as follows:
+
      0: Off.
  
      0                  1                  2                  3
+
      1:  On.
      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)                ~
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                      Figure 49: IPv6 Subscriber TLV
+
  Web-Force (W) (1 bit): Push IPv4 Web.
  
  Where:
+
      0: Off.
  
       TLV type5.
+
       1On.
  
      TLV lengthVariable.
+
  Echo-Enable (E) (1 bit)UP returns ARP Req or PPP Echo.
  
       User-ID (4 bytes)The identifier of a subscriber.
+
       0Off.
  
       User PD-Addresses (IPv6 Address List)Carries a list of Prefix
+
       1On.
        Delegation (PD) addresses of the subscriber.
 
  
      User ND-Addresses (IPv6 Address List):  Carries a list of Neighbor
+
  IPv4-URPF (U) (1 bit):  User Unicast Reverse Path Forwarding
        Discovery (ND) addresses of the subscriber.
+
      (URPF) flag.
  
       User Link-Local-Address (IPv6-Address)The link-local address of
+
       0Off.
        the subscriber.
 
  
       IPv6 Interface ID (8 bytes)The identifier of an IPv6 interface.
+
       1On.
  
      Portal-Force 1 bit (P):  Push advertisement.
+
  MTU (2 bytes):  MTU value.  The default value is 1500.
  
        0Off.
+
  VRF-Name Sub-TLVIndicates the subscriber belongs to which VRF.
  
        1On.
+
  ReservedThe Reserved field MUST be sent as zero and ignored on
 +
      receipt.
  
      Web-Force 1 bit (W):  Push IPv6 Web.
+
==== IPv6 Subscriber TLV ====
  
        0: Off.
+
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.
  
        1: On.
+
The format of the TLV value part is as follows:
  
      Echo-Enable 1 bit (E):  The UP returns ARP Req or PPP Echo.
+
    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)               ~
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
        0: Off.
+
                    Figure 49: IPv6 Subscriber TLV
  
        1: On.
+
Where:
  
      IPv6-URPF 1 bit (U)User Reverse Path Forwarding (URPF) flag.
+
  TLV type5.
  
        0Off.
+
  TLV lengthVariable.
  
        1On.
+
  User-ID (4 bytes)The identifier of a subscriber.
  
      MTU (2 bytes):  The MTU value.  The default value is 1500.
+
  User PD-Addresses (IPv6 Address List):  Carries a list of Prefix
 +
      Delegation (PD) addresses of the subscriber.
  
      VRF-Name Sub-TLVIndicates the VRF to which the subscriber
+
  User ND-Addresses (IPv6 Address List)Carries a list of Neighbor
        belongs.
+
      Discovery (ND) addresses of the subscriber.
  
      Reserved:  The Reserved field MUST be sent as zero and ignored on
+
  User Link-Local-Address (IPv6-Address):  The link-local address of
        receipt.
+
      the subscriber.
  
7.9.5. IPv4 Static Subscriber Detect TLV
+
  IPv6 Interface ID (8 bytes):  The identifier of an IPv6 interface.
  
   The IPv4 Static Subscriber Detect TLV is defined to carry
+
   Portal-Force 1 bit (P): Push advertisement.
  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.
 
  
  The format of the TLV value part is as follows:
+
      0: Off.
  
      0                  1                  2                  3
+
      1:  On.
      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)                    ~
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                  Figure 50: IPv4 Static Subscriber TLV
+
  Web-Force 1 bit (W): Push IPv6 Web.
  
  Where:
+
      0: Off.
  
       TLV type9.
+
       1On.
  
      TLV lengthVariable.
+
  Echo-Enable 1 bit (E)The UP returns ARP Req or PPP Echo.
  
       If-Index (4 bytes)The interface index of the interface from
+
       0Off.
        which the subscriber will dial-up.
 
  
       C-VID (VLAN-ID)Indicates the inner VLAN ID.  The value 0
+
       1On.
        indicates that the VLAN ID is invalid.  A valid value is
 
        1-4094.
 
  
      P-VID (VLAN-ID):  Indicates the outer VLAN ID.  The value 0
+
  IPv6-URPF 1 bit (U):  User Reverse Path Forwarding (URPF) flag.
        indicates that the VLAN ID is invalid.  The format is the same
 
        as that of the C-VID.  A valid value is 1-4094.
 
  
       User Address (IPv4-Addr)The user's IPv4 address.
+
       0Off.
  
       Gateway Address (IPv4-Addr)The gateway's IPv4 address.
+
       1On.
  
      User-MAC (MAC-Addr type):  The MAC address of the subscriber.
+
  MTU (2 bytes):  The MTU value.  The default value is 1500.
  
      Sub-TLVsThe VRF-Name and If-Desc sub-TLVs may be carried.
+
  VRF-Name Sub-TLVIndicates the VRF to which the subscriber
 +
      belongs.
  
        VRF-Name sub-TLVIndicates the VRF to which the subscriber
+
  ReservedThe Reserved field MUST be sent as zero and ignored on
            belongs.
+
      receipt.
  
        If-Desc sub-TLV:  Carries the interface information.
+
==== IPv4 Static Subscriber Detect TLV ====
  
      Reserved: The Reserved field MUST be sent as zero and ignored on
+
The IPv4 Static Subscriber Detect TLV is defined to carry
        receipt.
+
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.
  
7.9.6.  IPv6 Static Subscriber Detect TLV
+
The format of the TLV value part is as follows:
  
   The IPv6 Static Subscriber Detect TLV is defined to carry
+
    0                  1                  2                  3
   IPv6-related information for a static access subscriber. It will be
+
    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
   carried in an Update_Request message when needed to enable IPv6
+
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   static subscriber detection on a UP.
+
  |                          If-Index                            |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |          C-VID              |          P-VID              |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |                          User Address                        |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |                          Gateway Address                      |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
   |                          User-MAC                            |
 +
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |        User-MAC (cont.)      |          Reserved            |
 +
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
   ~                      Sub-TLVs (optional)                    ~
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
  The format of the TLV value part is as follows:
+
                Figure 50: IPv4 Static Subscriber TLV
  
      0                  1                  2                  3
+
Where:
      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)                    ~
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                Figure 51: IPv6 Static Subscriber Detect TLV
+
  TLV type: 9.
  
   Where:
+
   TLV length: Variable.
  
      TLV type10.
+
  If-Index (4 bytes)The interface index of the interface from
 +
      which the subscriber will dial-up.
  
       TLV length: Variable.
+
  C-VID (VLAN-ID):  Indicates the inner VLAN ID.  The value 0
 +
       indicates that the VLAN ID is invalid. A valid value is
 +
      1-4094.
  
      If-Index (4 bytes):  The interface index of the interface from
+
  P-VID (VLAN-ID): Indicates the outer VLAN ID.  The value 0
        which the subscriber will dial-up.
+
      indicates that the VLAN ID is invalid. The format is the same
 +
      as that of the C-VID.  A valid value is 1-4094.
  
      C-VID (VLAN-ID): Indicates the inner VLAN ID. The value 0
+
  User Address (IPv4-Addr):  The user's IPv4 address.
        indicates that the VLAN ID is invalid.  A valid value is
 
        1-4094.
 
  
      P-VID (VLAN-ID): Indicates the outer VLAN ID.  The value 0
+
  Gateway Address (IPv4-Addr):  The gateway's IPv4 address.
        indicates that the VLAN ID is invalid. The format is the same
 
        as that the of C-VID.  A valid value is 1-4094.
 
  
      User Address (IPv6-Address type):  The subscriber's IPv6 address.
+
  User-MAC (MAC-Addr type):  The MAC address of the subscriber.
  
      Gateway Address (IPv6-Address type):  The gateway's IPv6 Address.
+
  Sub-TLVs:  The VRF-Name and If-Desc sub-TLVs may be carried.
  
       User-MAC (MAC-Addr type)The MAC address of the subscriber.
+
       VRF-Name sub-TLVIndicates the VRF to which the subscriber
 +
        belongs.
  
       Sub-TLVs:  VRF-Name and If-Desc sub-TLVs may be carried
+
       If-Desc sub-TLV:  Carries the interface information.
  
        VRF-Name sub-TLVIndicates the VRF to which the subscriber
+
  ReservedThe Reserved field MUST be sent as zero and ignored on
            belongs.
+
      receipt.
  
        If-Desc sub-TLV:  Carries the interface information.
+
==== IPv6 Static Subscriber Detect TLV ====
  
      Reserved: The Reserved field MUST be sent as zero and ignored on
+
The IPv6 Static Subscriber Detect TLV is defined to carry
        receipt.
+
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.
  
7.9.7.  L2TP-LAC Subscriber TLV
+
The format of the TLV value part is as follows:
  
   The L2TP-LAC Subscriber TLV is defined to carry the related
+
    0                  1                  2                  3
   information for an L2TP LAC access subscriber. It will be carried in
+
    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
   an Update_Request message when L2TP LAC access is used.
+
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |                          If-Index                            |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |          C-VID              |          P-VID              |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  ~                          User Address                        ~
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  ~                          Gateway Address                      ~
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
   |                          User-MAC                            |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
   |        User-MAC (cont.)      |          Reserved            |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
   ~                        Sub-TLVs (optional)                    ~
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
  The format of the TLV value part is as follows:
+
            Figure 51: IPv6 Static Subscriber Detect TLV
  
      0                  1                  2                  3
+
Where:
      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        |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                    Figure 52: L2TP-LAC Subscriber TLV
+
  TLV type: 10.
  
   Where:
+
   TLV length: Variable.
  
      TLV type11.
+
  If-Index (4 bytes)The interface index of the interface from
 +
      which the subscriber will dial-up.
  
       TLV length: 12 octets.
+
  C-VID (VLAN-ID):  Indicates the inner VLAN ID.  The value 0
 +
       indicates that the VLAN ID is invalid. A valid value is
 +
      1-4094.
  
      User-ID (4 bytes):  The identifier of a user/subscriber.
+
  P-VID (VLAN-ID): 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.
  
      Local-Tunnel-ID (2 bytes):  The local ID of the L2TP tunnel.
+
  User Address (IPv6-Address type):  The subscriber's IPv6 address.
  
      Local-Session-ID (2 bytes):  The local session ID with the L2TP
+
  Gateway Address (IPv6-Address type):  The gateway's IPv6 Address.
        tunnel.
 
  
      Remote-Tunnel-ID (2 bytes):  The identifier of the L2TP tunnel at
+
  User-MAC (MAC-Addr type):  The MAC address of the subscriber.
        the remote endpoint.
 
  
      Remote-Session-ID (2 bytes)The session ID of the L2TP tunnel at
+
  Sub-TLVsVRF-Name and If-Desc sub-TLVs may be carried
        the remote endpoint.
 
  
7.9.8.  L2TP-LNS Subscriber TLV
+
      VRF-Name sub-TLV:  Indicates the VRF to which the subscriber
 +
        belongs.
  
  The L2TP-LNS Subscriber TLV is defined to carry the related
+
      If-Desc sub-TLV:  Carries the interface information.
  information for a L2TP LNS access subscriber.  It will be carried in
 
  an Update_Request message when L2TP LNS access is used.
 
  
   The format of the TLV value part is as follows:
+
   Reserved:  The Reserved field MUST be sent as zero and ignored on
 +
      receipt.
  
      0                  1                  2                  3
+
==== L2TP-LAC Subscriber TLV ====
      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        |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                    Figure 53: L2TP-LNS Subscriber TLV
+
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.
  
  Where:
+
The format of the TLV value part is as follows:
  
      TLV type:  12.
+
    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        |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
      TLV length:  12 octets.
+
                  Figure 52: L2TP-LAC Subscriber TLV
  
      User-ID (4 bytes): The identifier of a user/subscriber.
+
Where:
  
      Local-Tunnel-ID (2 bytes)The local ID of the L2TP tunnel.
+
  TLV type11.
  
      Local-Session-ID (2 bytes)The local session ID with the L2TP
+
  TLV length12 octets.
        tunnel.
 
  
      Remote-Tunnel-ID (2 bytes):  The identifier of the L2TP tunnel at
+
  User-ID (4 bytes):  The identifier of a user/subscriber.
        the remote endpoint.
 
  
      Remote-Session-ID (2 bytes):  The session ID of the L2TP tunnel at
+
  Local-Tunnel-ID (2 bytes):  The local ID of the L2TP tunnel.
        the remote endpoint.
 
  
7.9.9. L2TP-LAC Tunnel TLV
+
  Local-Session-ID (2 bytes): The local session ID with the L2TP
 +
      tunnel.
  
   The L2TP-LAC Tunnel TLV is defined to carry information related to
+
   Remote-Tunnel-ID (2 bytes):  The identifier of the L2TP tunnel at
  the L2TP LAC tunnel.  It will be carried in the Update_Request
+
      the remote endpoint.
  message when L2TP LAC access is used.
 
  
   The format of the TLV value part is as follows:
+
   Remote-Session-ID (2 bytes):  The session ID of the L2TP tunnel at
 +
      the remote endpoint.
  
      0                  1                  2                  3
+
==== L2TP-LNS Subscriber TLV ====
      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                     ~
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                      Figure 54: L2TP-LAC Tunnel TLV
+
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.
  
  Where:
+
The format of the TLV value part is as follows:
  
      TLV type:  13.
+
    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        |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
      TLV length:  Variable.
+
                  Figure 53: L2TP-LNS Subscriber TLV
  
      Local-Tunnel-ID (2 bytes): The local ID of the L2TP tunnel.
+
Where:
  
      Remote-Tunnel-ID (2 bytes)The remote ID of the L2TP tunnel.
+
  TLV type12.
  
      Source-Port (2 bytes)The source UDP port number of an L2TP
+
  TLV length12 octets.
        subscriber.
 
  
      Dest-Port (2 bytes):  The destination UDP port number of an L2TP
+
  User-ID (4 bytes):  The identifier of a user/subscriber.
        subscriber.
 
  
      Source-IP (IPv4/v6):  The source IP address of the tunnel.
+
  Local-Tunnel-ID (2 bytes):  The local ID of the L2TP tunnel.
  
      Dest-IP (IPv4/v6):  The destination IP address of the tunnel.
+
  Local-Session-ID (2 bytes):  The local session ID with the L2TP
 +
      tunnel.
  
      VRF-Name Sub-TLV:  The VRF name to which the L2TP subscriber
+
  Remote-Tunnel-ID (2 bytes):  The identifier of the L2TP tunnel at
        tunnel belongs.
+
      the remote endpoint.
  
7.9.10. L2TP-LNS Tunnel TLV
+
  Remote-Session-ID (2 bytes): The session ID of the L2TP tunnel at
 +
      the remote endpoint.
  
  The L2TP-LNS Tunnel TLV is defined to carry information related to
+
==== L2TP-LAC Tunnel TLV ====
  the L2TP LNS tunnel.  It will be carried in the Update_Request
 
  message when L2TP LNS access is used.
 
  
  The format of the TLV value part is as follows:
+
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.
  
      0                  1                  2                  3
+
The format of the TLV value part is as follows:
      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                       ~
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                      Figure 55: L2TP-LNS Tunnel TLV
+
    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                     ~
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
  Where:
+
                    Figure 54: L2TP-LAC Tunnel TLV
  
      TLV type: 14.
+
Where:
  
      TLV lengthVariable.
+
  TLV type13.
  
      Local-Tunnel-ID (2 bytes)The local ID of the L2TP tunnel.
+
  TLV lengthVariable.
  
      Remote-Tunnel-ID (2 bytes):  The remote ID of the L2TP tunnel.
+
  Local-Tunnel-ID (2 bytes):  The local ID of the L2TP tunnel.
  
      Source-Port (2 bytes):  The source UDP port number of an L2TP
+
  Remote-Tunnel-ID (2 bytes):  The remote ID of the L2TP tunnel.
        subscriber.
 
  
      Dest-Port (2 bytes):  The destination UDP port number of an L2TP
+
  Source-Port (2 bytes):  The source UDP port number of an L2TP
        subscriber.
+
      subscriber.
  
      Source-IP (IPv4/v6):  The source IP address of the tunnel.
+
  Dest-Port (2 bytes):  The destination UDP port number of an L2TP
 +
      subscriber.
  
      Dest-IP (IPv4/v6):  The destination IP address of the tunnel.
+
  Source-IP (IPv4/v6):  The source IP address of the tunnel.
  
      VRF-Name Sub-TLV:  The VRF name to which the L2TP subscriber
+
  Dest-IP (IPv4/v6):  The destination IP address of the tunnel.
        tunnel belongs.
 
  
7.9.11. Update Response TLV
+
  VRF-Name Sub-TLV:  The VRF name to which the L2TP subscriber
 +
      tunnel belongs.
  
  The Update Response TLV is used to return the operation result of an
+
7.9.10L2TP-LNS Tunnel TLV
  update requestIt is carried in the Update_Response message as a
 
  response to the Update_Request message.
 
  
  The format of the value part of the Update Response TLV is as
+
The L2TP-LNS Tunnel TLV is defined to carry information related to
  follows:
+
the L2TP LNS tunnel.  It will be carried in the Update_Request
 +
message when L2TP LNS access is used.
  
        0                  1                  2                  3
+
The format of the TLV value part is as follows:
        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                            |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                       Figure 56: Update Response TLV
+
    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                       ~
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
  Where:
+
                    Figure 55: L2TP-LNS Tunnel TLV
  
      TLV type: 302.
+
Where:
  
      TLV length12.
+
  TLV type14.
  
      User-ID (4 bytes)A unique identifier of a user/subscriber.
+
  TLV lengthVariable.
  
      User-Trans-ID (1 byte):  In the case of dual-stack access or when
+
  Local-Tunnel-ID (2 bytes):  The local ID of the L2TP tunnel.
        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.
 
  
      Oper-Code (1 byte):  Operation code.
+
  Remote-Tunnel-ID (2 bytes):  The remote ID of the L2TP tunnel.
  
        1Update.
+
  Source-Port (2 bytes)The source UDP port number of an L2TP
 +
      subscriber.
  
        2:  Delete.
+
  Dest-Port (2 bytes)The destination UDP port number of an L2TP
 +
      subscriber.
  
      Oper-Result (1 byte):  Operation Result.
+
  Source-IP (IPv4/v6):  The source IP address of the tunnel.
  
        0Success.
+
  Dest-IP (IPv4/v6)The destination IP address of the tunnel.
  
        OthersFailure.
+
  VRF-Name Sub-TLVThe VRF name to which the L2TP subscriber
 +
      tunnel belongs.
  
      Error-Code (4 bytes):  Operation failure cause code. For details,
+
7.9.11. Update Response TLV
        see Section 8.5.
 
  
      Reserved: The Reserved field MUST be sent as zero and ignored on
+
The Update Response TLV is used to return the operation result of an
        receipt.
+
update request. It is carried in the Update_Response message as a
 +
response to the Update_Request message.
  
7.9.12.  Subscriber Policy TLV
+
The format of the value part of the Update Response TLV is as
 +
follows:
  
  The Subscriber Policy TLV is used to carry the policies that will be
+
    0                  1                  2                  3
  applied to a subscriber. It is carried in the Update_Request
+
    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.
+
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
    |                          User-ID                              |
 +
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
    | User-Trans-ID |  Oper-Code  |  Oper-Result | Reserved    |
 +
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
    |                        Error-Code                            |
 +
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
  The format of the TLV value part is as follows:
+
                    Figure 56: Update Response TLV
  
      0                  1                  2                  3
+
Where:
      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                            ~
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                      Figure 57: Subscriber Policy TLV
+
  TLV type: 302.
  
   Where:
+
   TLV length: 12.
  
      TLV type6.
+
  User-ID (4 bytes)A unique identifier of a user/subscriber.
  
       TLV length: Variable.
+
  User-Trans-ID (1 byte):  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.
  
      User-ID (4 bytes):  The identifier of a user/subscriber.
+
  Oper-Code (1 byte):  Operation code.
  
       Ingress-Priority (1 byte)Indicates the upstream priority.  The
+
       1:  Update.
        value range is 0~7.
 
  
       Egress-Priority (1 byte)Indicates the downstream priority.  The
+
       2Delete.
        value range is 0~7.
 
  
      Sub-TLVsThe sub-TLVs that are present can occur in any order.
+
  Oper-Result (1 byte)Operation Result.
  
        Ingress-CAR sub-TLVUpstream CAR.
+
      0Success.
  
        Egress-CAR sub-TLVDownstream CAR.
+
      OthersFailure.
  
        Ingress-QoS-Profile sub-TLVIndicates the name of the QoS-
+
  Error-Code (4 bytes)Operation failure cause code.  For details,
            Profile that is the profile in the upstream direction.
+
      see Section 8.5.
  
        Egress-QoS-Profile sub-TLVIndicates the name of the QoS-
+
  ReservedThe Reserved field MUST be sent as zero and ignored on
            Profile that is the profile in the downstream direction.
+
      receipt.
  
        User-ACL-Policy sub-TLV:  All ACL user policies, including
+
7.9.12.  Subscriber Policy TLV
            v4ACLIN, v4ACLOUT, v6ACLIN, v6ACLOUT, v4WEBACL, v6WEBACL,
 
            v4SpecialACL, and v6SpecialACL.
 
  
        Multicast-Profile4 sub-TLV: IPv4 multicast policy name.
+
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.
  
        Multicast-Profile6 sub-TLV: IPv6 multicast policy name.
+
The format of the TLV value part is as follows:
  
        NAT-Instance sub-TLV: Indicates the instance ID of a NAT user.
+
    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                            ~
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
      Reserved: The Reserved field MUST be sent as zero and ignored on
+
                  Figure 57: Subscriber Policy TLV
        receipt.
 
  
7.9.13.  Subscriber CGN Port Range TLV
+
Where:
  
   The Subscriber CGN Port Range TLV is used to carry the NAT public
+
   TLV type: 6.
  address and port range. It will be carried in the Update_Response
 
  message when CGN is used.
 
  
   The format of the value part of this TLV is as follows:
+
   TLV length: Variable.
  
      0                  1                  2                  3
+
  User-ID (4 bytes):  The identifier of a user/subscriber.
      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                        |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                  Figure 58: Subscriber CGN Port Range TLV
+
  Ingress-Priority (1 byte): Indicates the upstream priority.  The
 +
      value range is 0~7.
  
   Where:
+
   Egress-Priority (1 byte): Indicates the downstream priority.  The
 +
      value range is 0~7.
  
      TLV type15.
+
  Sub-TLVsThe sub-TLVs that are present can occur in any order.
  
       TLV length12 octets.
+
       Ingress-CAR sub-TLV:  Upstream CAR.
  
       User-ID (4 bytes)The identifier of a user/subscriber.
+
       Egress-CAR sub-TLVDownstream CAR.
  
       NAT-Port-Start (2 bytes)The start port number.
+
       Ingress-QoS-Profile sub-TLVIndicates the name of the QoS-
 +
        Profile that is the profile in the upstream direction.
  
       NAT-Port-End (2 bytes)The end port number.
+
       Egress-QoS-Profile sub-TLVIndicates the name of the QoS-
 +
        Profile that is the profile in the downstream direction.
  
       NAT-Address (4 bytes)The NAT public network address.
+
       User-ACL-Policy sub-TLVAll ACL user policies, including
 +
        v4ACLIN, v4ACLOUT, v6ACLIN, v6ACLOUT, v4WEBACL, v6WEBACL,
 +
        v4SpecialACL, and v6SpecialACL.
  
7.10.  Device Status TLVs
+
      Multicast-Profile4 sub-TLV:  IPv4 multicast policy name.
  
  The TLVs in this section are for reporting interface and board-level
+
      Multicast-Profile6 sub-TLV:  IPv6 multicast policy name.
  information from the UP to the CP.
 
  
7.10.1. Interface Status TLV
+
      NAT-Instance sub-TLV:  Indicates the instance ID of a NAT user.
  
   The Interface Status TLV is used to carry the status information of
+
   Reserved:  The Reserved field MUST be sent as zero and ignored on
  an interface on a UP.  It is carried in a Report message.
+
      receipt.
  
  The format of the value part of this TLV is as follows:
+
7.9.13.  Subscriber CGN Port Range TLV
  
      0                  1                  2                  3
+
The Subscriber CGN Port Range TLV is used to carry the NAT public
      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
+
address and port range.  It will be carried in the Update_Response
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
message when CGN is used.
      |                          If-Index                            |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |                          MAC-Address (upper part)            |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |  MAC-Address (lower part)    |  Phy-State  |  Reserved    |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |                          MTU                                  |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |                          Sub-TLVs (optional)                  |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                      Figure 59: Interface Status TLV
+
The format of the value part of this TLV is as follows:
  
   Where:
+
    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                        |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
      TLV type:  200.
+
              Figure 58: Subscriber CGN Port Range TLV
  
      TLV length: Variable.
+
Where:
  
      If-Index (4 bytes)Indicates the interface index.
+
  TLV type15.
  
      MAC-Address (MAC-Addr type)Interface MAC address.
+
  TLV length12 octets.
  
      Phy-State (1 byte):  Physical status of the interface.
+
  User-ID (4 bytes):  The identifier of a user/subscriber.
  
        0Down.
+
  NAT-Port-Start (2 bytes)The start port number.
  
        1Up.
+
  NAT-Port-End (2 bytes)The end port number.
  
      MTU (4 bytes):  Interface MTU value.
+
  NAT-Address (4 bytes):  The NAT public network address.
  
      Sub-TLVs: The If-Desc and VRF-Name sub-TLVs can be carried.
+
7.10. Device Status TLVs
  
      Reserved:  The Reserved field MUST be sent as zero and ignored on
+
The TLVs in this section are for reporting interface and board-level
        receipt.
+
information from the UP to the CP.
  
7.10.2Board Status TLV
+
7.10.1Interface Status TLV
  
  The Board Status TLV is used to carry the status information of a
+
The Interface Status TLV is used to carry the status information of
  board on an UP.  It is carried in a Report message.
+
an interface on a UP.  It is carried in a Report message.
  
  The format of the value part of the Board Status TLV is as follows:
+
The format of the value part of this TLV is as follows:
  
      0                  1                  2                  3
+
    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
+
    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    |
+
  |                          If-Index                            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |               Slot            |          Sub-Slot            |
+
  |                          MAC-Address (upper part)            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  MAC-Address (lower part)    |   Phy-State  |  Reserved    |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |                          MTU                                  |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |                         Sub-TLVs (optional)                  |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
                        Figure 60: Board Status TLV
+
                  Figure 59: Interface Status TLV
  
  Where:
+
Where:
  
      TLV type:  201.
+
  TLV type:  200.
  
      TLV length:  8 octets.
+
  TLV length:  Variable.
  
      Chassis (1 byte):  The chassis number of the board.
+
  If-Index (4 bytes):  Indicates the interface index.
  
      Slot (16 bits):  The slot number of the board.
+
  MAC-Address (MAC-Addr type):  Interface MAC address.
  
      Sub-Slot (16 bits):  The sub-slot number of the board.
+
  Phy-State (1 byte):  Physical status of the interface.
  
       Board-Type (1 byte)The type of board used.
+
       0Down.
  
        1:  CGN Service Process Unit (SPU) board.
+
      1:  Up.
  
        2Line Process Unit (LPU) board.
+
  MTU (4 bytes)Interface MTU value.
  
      Board-State (1 byte)Indicates whether there are issues with the
+
  Sub-TLVsThe If-Desc and VRF-Name sub-TLVs can be carried.
        board.
 
  
        0Normal.
+
  ReservedThe Reserved field MUST be sent as zero and ignored on
 +
      receipt.
  
        1: Abnormal.
+
7.10.2. Board Status TLV
  
      Reserved:  The Reserved field MUST be sent as zero and ignored on
+
The Board Status TLV is used to carry the status information of a
        receipt.
+
board on an UP.  It is carried in a Report message.
  
7.11.  CGN TLVs
+
The format of the value part of the Board Status TLV is as follows:
  
7.11.1.  Address Allocation Request TLV
+
    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
   The Address Allocation Request TLV is used to request address
+
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   allocation from the CP.  A Pool-Name sub-TLV is carried to indicate
+
   |  Board-Type  | Board-State  |  Reserved    |  Chassis    |
   from which address pool to allocate addresses.  The Address
+
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   Allocation Request TLV is carried in the Addr_Allocation_Req message.
+
   |              Slot            |          Sub-Slot            |
 +
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
  The format of the value part of this TLV is as follows:
+
                    Figure 60: Board Status TLV
  
      0                  1                  2                  3
+
Where:
      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                    ~
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                Figure 61: Address Allocation Request TLV
+
  TLV type: 201.
  
   Where:
+
   TLV length: 8 octets.
  
      TLV type400.
+
  Chassis (1 byte)The chassis number of the board.
  
      TLV lengthVariable.
+
  Slot (16 bits)The slot number of the board.
  
      Pool-Name sub-TLV:  Indicates from which address pool to allocate
+
  Sub-Slot (16 bits):  The sub-slot number of the board.
        address.
 
  
7.11.2. Address Allocation Response TLV
+
  Board-Type (1 byte):  The type of board used.
  
  The Address Allocation Response TLV is used to return the address
+
      1:  CGN Service Process Unit (SPU) board.
  allocation result; it is carried in the Addr_Allocation_Ack message.
 
  
  The value part of the Address Allocation Response TLV is formatted as
+
      2: Line Process Unit (LPU) board.
  follows:
 
  
      0                  1                  2                  3
+
  Board-State (1 byte):  Indicates whether there are issues with the
      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.
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |                        Lease Time                            |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |                        Client-IP                              |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |                        Client-IP (cont.)                     |
 
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |                        Error-Code                            |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      ~                        Pool-Name Sub-TLV                      ~
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                Figure 62: Address Allocation Response TLV
+
      0: Normal.
  
  Where:
+
      1: Abnormal.
  
      TLV type401.
+
  ReservedThe Reserved field MUST be sent as zero and ignored on
 +
      receipt.
  
      TLV length: Variable.
+
7.11. CGN TLVs
  
      Lease Time (4 bytes): Duration of address lease in seconds.
+
7.11.1. Address Allocation Request TLV
  
      Client-IP (IPv4-Address type): The allocated IPv4 address and
+
The Address Allocation Request TLV is used to request address
        mask.
+
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.
  
      Error-Code (4 bytes): Indicates success or an error.
+
The format of the value part of this TLV is as follows:
  
        0:  Success.
+
    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                    ~
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
        1: Failure.
+
              Figure 61: Address Allocation Request TLV
  
        3001: Pool-Mismatch.  The corresponding address pool cannot be
+
Where:
            found.
 
  
        3002Pool-Full.  The address pool is fully allocated, and no
+
  TLV type400.
            address segment is available.
 
  
      Pool-Name sub-TLV:  Indicates from which address pool the address
+
  TLV lengthVariable.
        is allocated.
 
  
7.11.3. Address Renewal Request TLV
+
  Pool-Name sub-TLV:  Indicates from which address pool to allocate
 +
      address.
  
  The Address Renewal Request TLV is used to request address renewal
+
7.11.2.  Address Allocation Response TLV
  from the CP.  It is carried in the Addr_Renew_Req message.
 
  
  The format of this TLV value is as follows:
+
The Address Allocation Response TLV is used to return the address
 +
allocation result; it is carried in the Addr_Allocation_Ack message.
  
      0                  1                  2                  3
+
The value part of the Address Allocation Response TLV is formatted as
      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
+
follows:
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |                    Client-IP                                |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |                    Client-IP (cont.)                        |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      ~                    Pool-Name Sub-TLV                         ~
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                  Figure 63: Address Renewal Request TLV
+
    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                     ~
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
  Where:
+
              Figure 62: Address Allocation Response TLV
  
      TLV type: 402.
+
Where:
  
      TLV lengthVariable.
+
  TLV type401.
  
      Client-IP (IPv4-Address type)The IPv4 address and mask to be
+
  TLV lengthVariable.
        renewed.
 
  
      Pool-Name sub-TLVIndicates from which address pool to renew the
+
  Lease Time (4 bytes)Duration of address lease in seconds.
        address.
 
  
7.11.4. Address Renewal Response TLV
+
  Client-IP (IPv4-Address type):  The allocated IPv4 address and
 +
      mask.
  
   The Address Renewal Response TLV is used to return the address
+
   Error-Code (4 bytes): Indicates success or an error.
  renewal result. It is carried in the Addr_Renew_Ack message.
 
  
  The format of this TLV value is as follows:
+
      0: Success.
  
      0                  1                  2                  3
+
      1:  Failure.
      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                        ~
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                  Figure 64: Address Renewal Response TLV
+
      3001: Pool-Mismatch.  The corresponding address pool cannot be
 +
        found.
  
  Where:
+
      3002: Pool-Full.  The address pool is fully allocated, and no
 +
        address segment is available.
  
      TLV type403.
+
  Pool-Name sub-TLV:  Indicates from which address pool the address
 +
      is allocated.
  
      TLV length:  Variable.
+
7.11.3.  Address Renewal Request TLV
  
      Client-IP (IPv4-Address type): The renewed IPv4 address and mask.
+
The Address Renewal Request TLV is used to request address renewal
 +
from the CP. It is carried in the Addr_Renew_Req message.
  
      Error-Code (4 bytes):  Indicates success or an error:
+
The format of this TLV value is as follows:
  
        0:  Success.
+
    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
        1:  Failure.
+
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
+
  |                    Client-IP                                |
        3001:  Pool-Mismatch.  The corresponding address pool cannot be
+
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            found.
+
  |                    Client-IP (cont.)                        |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  ~                    Pool-Name Sub-TLV                        ~
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
        3002: Pool-Full.  The address pool is fully allocated, and no
+
                Figure 63: Address Renewal Request TLV
            address segment is available.
 
  
        3003: Subnet-Mismatch.  The address pool subnet cannot be
+
Where:
            found.
 
  
        3004Subnet-Conflict.  Subnets in the address pool have been
+
  TLV type402.
            assigned to other clients.
 
  
      Pool-Name sub-TLV:  Indicates from which address pool to renew the
+
  TLV lengthVariable.
        address.
 
  
7.11.5. Address Release Request TLV
+
  Client-IP (IPv4-Address type):  The IPv4 address and mask to be
 +
      renewed.
  
   The Address Release Request TLV is used to release an IPv4 address.
+
   Pool-Name sub-TLV:  Indicates from which address pool to renew the
  It is carried in the Addr_Release_Req message.
+
      address.
  
  The value part of this TLV is formatted as follows:
+
7.11.4.  Address Renewal Response TLV
  
      0                  1                  2                  3
+
The Address Renewal Response TLV is used to return the address
      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
+
renewal result.  It is carried in the Addr_Renew_Ack message.
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |                    Client-IP                                |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |                    Client-IP (cont.)                        |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      ~                    Pool-Name sub-TLV                        ~
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                  Figure 65: Address Release Request TLV
+
The format of this TLV value is as follows:
  
   Where:
+
    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                        ~
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
      TLV type:  404.
+
              Figure 64: Address Renewal Response TLV
  
      TLV length: Variable.
+
Where:
  
      Client-IP (IPv4-Address type)The IPv4 address and mask to be
+
  TLV type:  403.
        released.
 
  
      Pool-Name sub-TLV:  Indicates from which address pool to release
+
  TLV lengthVariable.
        the address.
 
  
7.11.6. Address Release Response TLV
+
  Client-IP (IPv4-Address type):  The renewed IPv4 address and mask.
  
   The Address Release Response TLV is used to return the address
+
   Error-Code (4 bytes): Indicates success or an error:
  release result. It is carried in the Addr_Release_Ack message.
 
  
  The format of the value part of this TLV is as follows:
+
      0: Success.
  
      0                  1                  2                  3
+
      1:  Failure.
      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                        ~
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                  Figure 66: Address Release Response TLV
+
      3001: Pool-Mismatch.  The corresponding address pool cannot be
 +
        found.
  
  Where:
+
      3002: Pool-Full.  The address pool is fully allocated, and no
 +
        address segment is available.
  
       TLV type405.
+
       3003Subnet-Mismatch.  The address pool subnet cannot be
 +
        found.
  
       TLV lengthVariable.
+
       3004Subnet-Conflict.  Subnets in the address pool have been
 +
        assigned to other clients.
  
      Client-IP (IPv4-Address type)The released IPv4 address and
+
  Pool-Name sub-TLVIndicates from which address pool to renew the
        mask.
+
      address.
  
      Error-Code (4 bytes): Indicates success or an error.
+
7.11.5. Address Release Request TLV
  
        0:  Success.  Address release success.
+
The Address Release Request TLV is used to release an IPv4 address.
 +
It is carried in the Addr_Release_Req message.
  
        1: Failure.  Address release failed.
+
The value part of this TLV is formatted as follows:
  
        3001:  Pool-Mismatch. The corresponding address pool cannot be
+
    0                  1                  2                  3
            found.
+
    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
 
+
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        3003:  Subnet-Mismatch.  The address cannot be found.
+
  |                    Client-IP                                |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |                    Client-IP (cont.)                        |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  ~                    Pool-Name sub-TLV                        ~
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
        3004: Subnet-Conflict.  The address has been allocated to
+
                Figure 65: Address Release Request TLV
            another subscriber.
 
  
      Pool-Name sub-TLV: Indicates from which address pool to release
+
Where:
        the address.
 
  
7.12.  Event TLVs
+
  TLV type:  404.
  
7.12.1. Subscriber Traffic Statistics TLV
+
  TLV length:  Variable.
  
   The Subscriber Traffic Statistics TLV is used to return the traffic
+
   Client-IP (IPv4-Address type):  The IPv4 address and mask to be
  statistics of a user/subscriber. The format of the value part of
+
      released.
  this TLV is as follows:
 
  
      0                  1                  2                  3
+
  Pool-Name sub-TLV:  Indicates from which address pool to release
      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
+
       the address.
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      |                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)                |
 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  
                Figure 67: Subscriber Traffic Statistics TLV
+
7.11.6.  Address Release Response TLV
  
  Where:
+
The Address Release Response TLV is used to return the address
 +
release result.  It is carried in the Addr_Release_Ack message.
  
      TLV type: 300.
+
The format of the value part of this TLV is as follows:
  
      TLV length:  72 octets.
+
    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 (4 bytes):  The subscriber identifier.
+
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |                    Client-IP                                |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |                    Client-IP (cont.)                         |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  |                    Error-Code                                |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
  ~                    Pool-Name sub-TLV                        ~
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
      Statistics-Type (4 bytes):  Traffic type.  It can be one of the
+
              Figure 66: Address Release Response TLV
        following options:
 
  
        0: IPv4 traffic.
+
Where:
  
        1IPv6 traffic.
+
  TLV type405.
  
        2Dual-stack traffic.
+
  TLV lengthVariable.
  
      Ingress Packets (8 bytes):  The number of the packets in the
+
  Client-IP (IPv4-Address type):  The released IPv4 address and
        upstream direction.
+
      mask.
  
      Ingress Bytes (8 bytes):  The bytes of the upstream traffic.
+
  Error-Code (4 bytes):  Indicates success or an error.
  
       Ingress Loss Packets (8 bytes)The number of the lost packets in
+
       0Success.  Address release success.
        the upstream direction.
 
  
       Ingress Loss Bytes (8 bytes)The bytes of the lost upstream
+
       1Failure.  Address release failed.
        packets.
 
  
       Egress Packets (8 bytes):  The number of the packets in the
+
       3001: Pool-Mismatch. The corresponding address pool cannot be
         downstream direction.
+
         found.
  
       Egress Bytes (8 bytes):  The bytes of the downstream traffic.
+
       3003: Subnet-Mismatch. The address cannot be found.
  
       Egress Loss Packets (8 bytes):  The number of the lost packets in
+
       3004: Subnet-Conflict. The address has been allocated to
         the downstream direction.
+
         another subscriber.
  
      Egress Loss Bytes (8 bytes)The bytes of the lost downstream
+
  Pool-Name sub-TLVIndicates from which address pool to release
        packets.
+
      the address.
  
7.12.2Subscriber Detection Result TLV
+
7.12.  Event TLVs
  
  The Subscriber Detection Result TLV is used to return the detection
+
7.12.1.  Subscriber Traffic Statistics TLV
  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).
 
  
  The format of this TLV value part is as follows:
+
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:
  
      0                  1                  2                  3
+
    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
+
    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-ID                                       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | Detect-Type   | Detect-Result |         Reserved            |
+
  |               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)                |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
                Figure 68: Subscriber Detection Result TLV
+
            Figure 67: Subscriber Traffic Statistics TLV
  
  Where:
+
Where:
  
      TLV type:  301.
+
  TLV type:  300.
  
       TLV length:  8 octets.
+
  TLV length:  72 octets.
 
+
 
      User-ID (4 bytes):  The subscriber identifier.
+
  User-ID (4 bytes):  The subscriber identifier.
 
+
 
      Detect-Type (1 byte):  Type of traffic detected.
+
  Statistics-Type (4 bytes):  Traffic type.  It can be one of the
 
+
      following options:
        0:  IPv4 detection.
+
 
 
+
      0:  IPv4 traffic.
        1:  IPv6 detection.
+
 
 
+
      1:  IPv6 traffic.
        2:  PPP detection.
+
 
 
+
      2:  Dual-stack traffic.
      Detect-Result (1 byte):  Indicates whether the detection was
+
 
        successful.
+
  Ingress Packets (8 bytes):  The number of the packets in the
 
+
       upstream direction.
        0:  Indicates that the detection is successful.
+
 
 
+
  Ingress Bytes (8 bytes):  The bytes of the upstream traffic.
        1:  Detection failure.  The UP needs to report only when the
+
 
            detection fails.
+
  Ingress Loss Packets (8 bytes):  The number of the lost packets in
 
+
      the upstream direction.
      Reserved:  The Reserved field MUST be sent as zero and ignored on
+
 
        receipt.
+
  Ingress Loss Bytes (8 bytes):  The bytes of the lost upstream
 
+
      packets.
7.13.  Vendor TLV
+
 
 
+
  Egress Packets (8 bytes):  The number of the packets in the
  The Vendor TLV occurs as the first TLV in the Vendor message
+
      downstream direction.
  (Section 6.6).  It provides a Sub-Type that effectively extends the
+
 
  message type in the message header, provides for versioning of vendor
+
  Egress Bytes (8 bytes):  The bytes of the downstream traffic.
  TLVs, and can accommodate sub-TLVs.
+
 
 
+
  Egress Loss Packets (8 bytes):  The number of the lost packets in
  The value part of the Vendor TLV is formatted as follows:
+
      the downstream direction.
 
+
 
      0                  1                  2                  3
+
  Egress Loss Bytes (8 bytes):  The bytes of the lost downstream
      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
+
      packets.
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
 
      |                          Vendor-ID                          |
+
7.12.2.  Subscriber Detection Result TLV
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
 
      |          Sub-Type            |      Sub-Type-Version        |
+
The Subscriber Detection Result TLV is used to return the detection
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
result of a subscriber.  Subscriber detection is a function to detect
      ~                      Sub-TLVs (optional)                      ~
+
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).
 +
 
 +
The format of this TLV value part is as follows:
 +
 
 +
    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            |
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
 
 +
              Figure 68: Subscriber Detection Result TLV
 +
 
 +
Where:
 +
 
 +
  TLV type:  301.
 +
 
 +
  TLV length:  8 octets.
 +
 
 +
  User-ID (4 bytes):  The subscriber identifier.
 +
 
 +
  Detect-Type (1 byte):  Type of traffic detected.
 +
 
 +
      0:  IPv4 detection.
 +
 
 +
      1:  IPv6 detection.
 +
 
 +
      2:  PPP detection.
 +
 
 +
  Detect-Result (1 byte):  Indicates whether the detection was
 +
      successful.
 +
 
 +
      0:  Indicates that the detection is successful.
 +
 
 +
      1:  Detection failure.  The UP needs to report only when the
 +
        detection fails.
 +
 
 +
  Reserved:  The Reserved field MUST be sent as zero and ignored on
 +
      receipt.
 +
 
 +
7.13.  Vendor TLV
 +
 
 +
The Vendor TLV occurs as the first TLV in the Vendor message
 +
(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.
 +
 
 +
The value part of the Vendor TLV is formatted as follows:
 +
 
 +
    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)                      ~
 +
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
                          Figure 69: Vendor TLV
+
                        Figure 69: Vendor TLV
  
  Where:
+
Where:
  
      TLV type:  1024.
+
  TLV type:  1024.
  
      TLV length:  Variable.
+
  TLV length:  Variable.
  
      Vendor-ID (4 bytes):  Vendor ID as defined in RADIUS [RFC2865].
+
  Vendor-ID (4 bytes):  Vendor ID as defined in RADIUS [[RFC2865]].
  
      Sub-Type (2 bytes):  Used by the vendor to distinguish multiple
+
  Sub-Type (2 bytes):  Used by the vendor to distinguish multiple
        different vendor messages.
+
      different vendor messages.
  
      Sub-Type-Version (2 bytes):  Used by the vendor to distinguish
+
  Sub-Type-Version (2 bytes):  Used by the vendor to distinguish
        different versions of a vendor-defined message Sub-Type.
+
      different versions of a vendor-defined message Sub-Type.
  
      Sub-TLVs (variable):  Sub-TLVs as specified by the vendor.
+
  Sub-TLVs (variable):  Sub-TLVs as specified by the vendor.
  
  Since vendor code will be handling the TLV after the Vendor-ID field
+
Since vendor code will be handling the TLV after the Vendor-ID field
  is recognized, the remainder of the TLV values can be organized
+
is recognized, the remainder of the TLV values can be organized
  however the vendor wants.  But it is desirable for a vendor to be
+
however the vendor wants.  But it is desirable for a vendor to be
  able to define multiple different vendor messages and to keep track
+
able to define multiple different vendor messages and to keep track
  of different versions of its vendor-defined messages.  Thus, it is
+
of different versions of its vendor-defined messages.  Thus, it is
  RECOMMENDED that the vendor assign a Sub-Type value for each vendor
+
RECOMMENDED that the vendor assign a Sub-Type value for each vendor
  message that it defines different from other Sub-Type values that
+
message that it defines different from other Sub-Type values that
  vendor has used.  Also, when modifying a vendor-defined message in a
+
vendor has used.  Also, when modifying a vendor-defined message in a
  way potentially incompatible with a previous definition, the vendor
+
way potentially incompatible with a previous definition, the vendor
  SHOULD increase the value it is using in the Sub-Type-Version field.
+
SHOULD increase the value it is using in the Sub-Type-Version field.
  
8.  Tables of S-CUSP Codepoints
+
== Tables of S-CUSP Codepoints ==
  
  This section provides tables of the S-CUSP codepoints, particularly
+
This section provides tables of the S-CUSP codepoints, particularly
  message types, TLV types, TLV operation codes, sub-TLV types, and
+
message types, TLV types, TLV operation codes, sub-TLV types, and
  error codes.  In most cases, references are provided to relevant
+
error codes.  In most cases, references are provided to relevant
  sections elsewhere in this document.
+
sections elsewhere in this document.
  
8.1.  Message Types
+
=== Message Types ===
  
      +---------+---------------------+--------------------------+
+
    +---------+---------------------+--------------------------+
      | Type    | Name                | Section of This Document |
+
    | Type    | Name                | Section of This Document |
      +=========+=====================+==========================+
+
    +=========+=====================+==========================+
      | 0      | Reserved            |                          |
+
    | 0      | Reserved            |                          |
      +---------+---------------------+--------------------------+
+
    +---------+---------------------+--------------------------+
      | 1      | Hello              | 6.2.1                    |
+
    | 1      | Hello              | 6.2.1                    |
      +---------+---------------------+--------------------------+
+
    +---------+---------------------+--------------------------+
      | 2      | Keepalive          | 6.2.2                    |
+
    | 2      | Keepalive          | 6.2.2                    |
      +---------+---------------------+--------------------------+
+
    +---------+---------------------+--------------------------+
      | 3      | Sync_Request        | 6.2.3                    |
+
    | 3      | Sync_Request        | 6.2.3                    |
      +---------+---------------------+--------------------------+
+
    +---------+---------------------+--------------------------+
      | 4      | Sync_Begin          | 6.2.4                    |
+
    | 4      | Sync_Begin          | 6.2.4                    |
      +---------+---------------------+--------------------------+
+
    +---------+---------------------+--------------------------+
      | 5      | Sync_Data          | 6.2.5                    |
+
    | 5      | Sync_Data          | 6.2.5                    |
      +---------+---------------------+--------------------------+
+
    +---------+---------------------+--------------------------+
      | 6      | Sync_End            | 6.2.6                    |
+
    | 6      | Sync_End            | 6.2.6                    |
      +---------+---------------------+--------------------------+
+
    +---------+---------------------+--------------------------+
      | 7      | Update_Request      | 6.2.7                    |
+
    | 7      | Update_Request      | 6.2.7                    |
      +---------+---------------------+--------------------------+
+
    +---------+---------------------+--------------------------+
      | 8      | Update_Response    | 6.2.8                    |
+
    | 8      | Update_Response    | 6.2.8                    |
      +---------+---------------------+--------------------------+
+
    +---------+---------------------+--------------------------+
      | 9      | Report              | 6.4                      |
+
    | 9      | Report              | 6.4                      |
      +---------+---------------------+--------------------------+
+
    +---------+---------------------+--------------------------+
      | 10      | Event              | 6.3                      |
+
    | 10      | Event              | 6.3                      |
      +---------+---------------------+--------------------------+
+
    +---------+---------------------+--------------------------+
      | 11      | Vendor              | 6.6                      |
+
    | 11      | Vendor              | 6.6                      |
      +---------+---------------------+--------------------------+
+
    +---------+---------------------+--------------------------+
      | 12      | Error              | 6.7                      |
+
    | 12      | Error              | 6.7                      |
      +---------+---------------------+--------------------------+
+
    +---------+---------------------+--------------------------+
      | 13-199  | Unassigned          |                          |
+
    | 13-199  | Unassigned          |                          |
      +---------+---------------------+--------------------------+
+
    +---------+---------------------+--------------------------+
      | 200    | Addr_Allocation_Req | 6.5.1                    |
+
    | 200    | Addr_Allocation_Req | 6.5.1                    |
      +---------+---------------------+--------------------------+
+
    +---------+---------------------+--------------------------+
      | 201    | Addr_Allocation_Ack | 6.5.2                    |
+
    | 201    | Addr_Allocation_Ack | 6.5.2                    |
      +---------+---------------------+--------------------------+
+
    +---------+---------------------+--------------------------+
      | 202    | Addr_Renew_Req      | 6.5.3                    |
+
    | 202    | Addr_Renew_Req      | 6.5.3                    |
      +---------+---------------------+--------------------------+
+
    +---------+---------------------+--------------------------+
      | 203    | Addr_Renew_Ack      | 6.5.4                    |
+
    | 203    | Addr_Renew_Ack      | 6.5.4                    |
      +---------+---------------------+--------------------------+
+
    +---------+---------------------+--------------------------+
      | 204    | Addr_Release_Req    | 6.5.5                    |
+
    | 204    | Addr_Release_Req    | 6.5.5                    |
      +---------+---------------------+--------------------------+
+
    +---------+---------------------+--------------------------+
      | 205    | Addr_Release_Ack    | 6.5.6                    |
+
    | 205    | Addr_Release_Ack    | 6.5.6                    |
      +---------+---------------------+--------------------------+
+
    +---------+---------------------+--------------------------+
      | 206-254 | Unassigned          |                          |
+
    | 206-254 | Unassigned          |                          |
      +---------+---------------------+--------------------------+
+
    +---------+---------------------+--------------------------+
      | 255    | Reserved            |                          |
+
    | 255    | Reserved            |                          |
      +---------+---------------------+--------------------------+
+
    +---------+---------------------+--------------------------+
  
                          Table 5: Message Types
+
                      Table 5: Message Types
  
8.2.  TLV Types
+
=== TLV Types ===
  
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | Type      | Name        | Usage Description                |
+
  | Type      | Name        | Usage Description                |
      +===========+=============+===================================+
+
  +===========+=============+===================================+
      | 0        | Reserved    | -                                |
+
  | 0        | Reserved    | -                                |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 1        | BAS        | Carries the BNG access functions  |
+
  | 1        | BAS        | Carries the BNG access functions  |
      |          | Function    | to be enabled or disabled on      |
+
  |          | Function    | to be enabled or disabled on      |
      |          |            | specified interfaces.            |
+
  |          |            | specified interfaces.            |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 2        | Basic      | Carries the basic information    |
+
  | 2        | Basic      | Carries the basic information    |
      |          | Subscriber  | about a BNG subscriber.          |
+
  |          | Subscriber  | about a BNG subscriber.          |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 3        | PPP        | Carries the PPP information about |
+
  | 3        | PPP        | Carries the PPP information about |
      |          | Subscriber  | a BNG subscriber.                |
+
  |          | Subscriber  | a BNG subscriber.                |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 4        | IPv4        | Carries the IPv4 address of a BNG |
+
  | 4        | IPv4        | Carries the IPv4 address of a BNG |
      |          | Subscriber  | subscriber.                      |
+
  |          | Subscriber  | subscriber.                      |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 5        | IPv6        | Carries the IPv6 address of a BNG |
+
  | 5        | IPv6        | Carries the IPv6 address of a BNG |
      |          | Subscriber  | subscriber.                      |
+
  |          | Subscriber  | subscriber.                      |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 6        | Subscriber  | Carries the policy information    |
+
  | 6        | Subscriber  | Carries the policy information    |
      |          | Policy      | applied to a BNG subscriber.      |
+
  |          | Policy      | applied to a BNG subscriber.      |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 7        | IPv4        | Carries the IPv4 network routing  |
+
  | 7        | IPv4        | Carries the IPv4 network routing  |
      |          | Routing    | information.                      |
+
  |          | Routing    | information.                      |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 8        | IPv6        | Carries the IPv6 network routing  |
+
  | 8        | IPv6        | Carries the IPv6 network routing  |
      |          | Routing    | information.                      |
+
  |          | Routing    | information.                      |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 9        | IPv4 Static | Carries the IPv4 static          |
+
  | 9        | IPv4 Static | Carries the IPv4 static          |
      |          | Subscriber  | subscriber detect information.    |
+
  |          | Subscriber  | subscriber detect information.    |
      |          | Detect      |                                  |
+
  |          | Detect      |                                  |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 10        | IPv6 Static | Carries the IPv6 static          |
+
  | 10        | IPv6 Static | Carries the IPv6 static          |
      |          | Subscriber  | subscriber detect information.    |
+
  |          | Subscriber  | subscriber detect information.    |
      |          | Detect      |                                  |
+
  |          | Detect      |                                  |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 11        | L2TP-LAC    | Carries the L2TP LAC subscriber  |
+
  | 11        | L2TP-LAC    | Carries the L2TP LAC subscriber  |
      |          | Subscriber  | information.                      |
+
  |          | Subscriber  | information.                      |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 12        | L2TP-LNS    | Carries the L2TP LNS subscriber  |
+
  | 12        | L2TP-LNS    | Carries the L2TP LNS subscriber  |
      |          | Subscriber  | information.                      |
+
  |          | Subscriber  | information.                      |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 13        | L2TP-LAC    | Carries the L2TP LAC tunnel      |
+
  | 13        | L2TP-LAC    | Carries the L2TP LAC tunnel      |
      |          | Tunnel      | subscriber information.          |
+
  |          | Tunnel      | subscriber information.          |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 14        | L2TP-LNS    | Carries the L2TP LNS tunnel      |
+
  | 14        | L2TP-LNS    | Carries the L2TP LNS tunnel      |
      |          | Tunnel      | subscriber information.          |
+
  |          | Tunnel      | subscriber information.          |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 15        | Subscriber  | Carries the public IPv4 address  |
+
  | 15        | Subscriber  | Carries the public IPv4 address  |
      |          | CGN Port    | and related port range of a BNG  |
+
  |          | CGN Port    | and related port range of a BNG  |
      |          | Range      | subscriber.                      |
+
  |          | Range      | subscriber.                      |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 16-99    | Unassigned  | -                                |
+
  | 16-99    | Unassigned  | -                                |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 100      | Hello      | Used for version and Keepalive    |
+
  | 100      | Hello      | Used for version and Keepalive    |
      |          |            | timers negotiation.              |
+
  |          |            | timers negotiation.              |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 101      | Error      | Carried in the Ack of the control |
+
  | 101      | Error      | Carried in the Ack of the control |
      |          | Information | message.  Carries the processing  |
+
  |          | Information | message.  Carries the processing  |
      |          |            | result, success, or error.        |
+
  |          |            | result, success, or error.        |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 102      | Keepalive  | Carried in the Hello message for  |
+
  | 102      | Keepalive  | Carried in the Hello message for  |
      |          |            | Keepalive timers negotiation.    |
+
  |          |            | Keepalive timers negotiation.    |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 103-199  | Unassigned  | -                                |
+
  | 103-199  | Unassigned  | -                                |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 200      | Interface  | Interfaces status reported by the |
+
  | 200      | Interface  | Interfaces status reported by the |
      |          | Status      | UP including physical interfaces, |
+
  |          | Status      | UP including physical interfaces, |
      |          |            | sub-interfaces, trunk interfaces, |
+
  |          |            | sub-interfaces, trunk interfaces, |
      |          |            | and tunnel interfaces.            |
+
  |          |            | and tunnel interfaces.            |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 201      | Board      | Board information reported by the |
+
  | 201      | Board      | Board information reported by the |
      |          | Status      | UP including the board type and  |
+
  |          | Status      | UP including the board type and  |
      |          |            | in-position status.              |
+
  |          |            | in-position status.              |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 202-299  | Unassigned  | -                                |
+
  | 202-299  | Unassigned  | -                                |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 300      | Subscriber  | User traffic statistics.          |
+
  | 300      | Subscriber  | User traffic statistics.          |
      |          | Traffic    |                                  |
+
  |          | Traffic    |                                  |
      |          | Statistics  |                                  |
+
  |          | Statistics  |                                  |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 301      | Subscriber  | User detection information.      |
+
  | 301      | Subscriber  | User detection information.      |
      |          | Detection  |                                  |
+
  |          | Detection  |                                  |
      |          | Result      |                                  |
+
  |          | Result      |                                  |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 302      | Update      | The processing result of a        |
+
  | 302      | Update      | The processing result of a        |
      |          | Response    | subscriber session update.        |
+
  |          | Response    | subscriber session update.        |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 303-299  | Unassigned  | -                                |
+
  | 303-299  | Unassigned  | -                                |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 400      | Address    | Request address allocation.      |
+
  | 400      | Address    | Request address allocation.      |
      |          | Allocation  |                                  |
+
  |          | Allocation  |                                  |
      |          | Request    |                                  |
+
  |          | Request    |                                  |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 401      | Address    | Address allocation response.      |
+
  | 401      | Address    | Address allocation response.      |
      |          | Allocation  |                                  |
+
  |          | Allocation  |                                  |
      |          | Response    |                                  |
+
  |          | Response    |                                  |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 402      | Address    | Request for address lease        |
+
  | 402      | Address    | Request for address lease        |
      |          | Renewal    | renewal.                          |
+
  |          | Renewal    | renewal.                          |
      |          | Request    |                                  |
+
  |          | Request    |                                  |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 403      | Address    | Response to a request for        |
+
  | 403      | Address    | Response to a request for        |
      |          | Renewal    | extending an IP address lease.    |
+
  |          | Renewal    | extending an IP address lease.    |
      |          | Response    |                                  |
+
  |          | Response    |                                  |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 404      | Address    | Request to release the address.  |
+
  | 404      | Address    | Request to release the address.  |
      |          | Release    |                                  |
+
  |          | Release    |                                  |
      |          | Request    |                                  |
+
  |          | Request    |                                  |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 405      | Address    | Ack of a message releasing an IP  |
+
  | 405      | Address    | Ack of a message releasing an IP  |
      |          | Release    | address.                          |
+
  |          | Release    | address.                          |
      |          | Response    |                                  |
+
  |          | Response    |                                  |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 406-1023  | Unassigned  | -                                |
+
  | 406-1023  | Unassigned  | -                                |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 1024      | Vendor      | As implemented by the vendor.    |
+
  | 1024      | Vendor      | As implemented by the vendor.    |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
      | 1039-4095 | Unassigned  | -                                |
+
  | 1039-4095 | Unassigned  | -                                |
      +-----------+-------------+-----------------------------------+
+
  +-----------+-------------+-----------------------------------+
  
                            Table 6: TLV Types
+
                          Table 6: TLV Types
  
8.3.  TLV Operation Codes
+
=== TLV Operation Codes ===
  
  TLV operation codes appear in the Oper field in the header of some
+
TLV operation codes appear in the Oper field in the header of some
  TLVs.  See Section 7.1.
+
TLVs.  See Section 7.1.
  
                          +------+------------+
+
                        +------+------------+
                          | Code | Operation  |
+
                        | Code | Operation  |
                          +======+============+
+
                        +======+============+
                          | 0    | Reserved  |
+
                        | 0    | Reserved  |
                          +------+------------+
+
                        +------+------------+
                          | 1    | Update    |
+
                        | 1    | Update    |
                          +------+------------+
+
                        +------+------------+
                          | 2    | Delete    |
+
                        | 2    | Delete    |
                          +------+------------+
+
                        +------+------------+
                          | 3-15 | Unassigned |
+
                        | 3-15 | Unassigned |
                          +------+------------+
+
                        +------+------------+
  
                          Table 7: TLV Operation
+
                        Table 7: TLV Operation
                                  Codes
+
                                Codes
  
8.4.  Sub-TLV Types
+
=== Sub-TLV Types ===
  
  See Section 7.3.
+
See Section 7.3.
  
      +----------+---------------------+--------------------------+
+
    +----------+---------------------+--------------------------+
      | Type    | Name                | Section of This Document |
+
    | Type    | Name                | Section of This Document |
      +==========+=====================+==========================+
+
    +==========+=====================+==========================+
      | 0        | Reserved            |                          |
+
    | 0        | Reserved            |                          |
      +----------+---------------------+--------------------------+
+
    +----------+---------------------+--------------------------+
      | 1        | VRF Name            | 7.3.1                    |
+
    | 1        | VRF Name            | 7.3.1                    |
      +----------+---------------------+--------------------------+
+
    +----------+---------------------+--------------------------+
      | 2        | Ingress-QoS-Profile | 7.3.1                    |
+
    | 2        | Ingress-QoS-Profile | 7.3.1                    |
      +----------+---------------------+--------------------------+
+
    +----------+---------------------+--------------------------+
      | 3        | Egress-QoS-Profile  | 7.3.1                    |
+
    | 3        | Egress-QoS-Profile  | 7.3.1                    |
      +----------+---------------------+--------------------------+
+
    +----------+---------------------+--------------------------+
      | 4        | User-ACL-Policy    | 7.3.1                    |
+
    | 4        | User-ACL-Policy    | 7.3.1                    |
      +----------+---------------------+--------------------------+
+
    +----------+---------------------+--------------------------+
      | 5        | Multicast-ProfileV4 | 7.3.1                    |
+
    | 5        | Multicast-ProfileV4 | 7.3.1                    |
      +----------+---------------------+--------------------------+
+
    +----------+---------------------+--------------------------+
      | 6        | Multicast-ProfileV6 | 7.3.1                    |
+
    | 6        | Multicast-ProfileV6 | 7.3.1                    |
      +----------+---------------------+--------------------------+
+
    +----------+---------------------+--------------------------+
      | 7        | Ingress-CAR        | 7.3.2                    |
+
    | 7        | Ingress-CAR        | 7.3.2                    |
      +----------+---------------------+--------------------------+
+
    +----------+---------------------+--------------------------+
      | 8        | Egress-CAR          | 7.3.3                    |
+
    | 8        | Egress-CAR          | 7.3.3                    |
      +----------+---------------------+--------------------------+
+
    +----------+---------------------+--------------------------+
      | 9        | NAT-Instance        | 7.3.1                    |
+
    | 9        | NAT-Instance        | 7.3.1                    |
      +----------+---------------------+--------------------------+
+
    +----------+---------------------+--------------------------+
      | 10      | Pool-Name          | 7.3.1                    |
+
    | 10      | Pool-Name          | 7.3.1                    |
      +----------+---------------------+--------------------------+
+
    +----------+---------------------+--------------------------+
      | 11      | If-Desc            | 7.3.4                    |
+
    | 11      | If-Desc            | 7.3.4                    |
      +----------+---------------------+--------------------------+
+
    +----------+---------------------+--------------------------+
      | 12      | IPv6-Address List  | 7.3.5                    |
+
    | 12      | IPv6-Address List  | 7.3.5                    |
      +----------+---------------------+--------------------------+
+
    +----------+---------------------+--------------------------+
      | 13      | Vendor              | 7.3.6                    |
+
    | 13      | Vendor              | 7.3.6                    |
      +----------+---------------------+--------------------------+
+
    +----------+---------------------+--------------------------+
      | 12-64534 | Unassigned          |                          |
+
    | 12-64534 | Unassigned          |                          |
      +----------+---------------------+--------------------------+
+
    +----------+---------------------+--------------------------+
      | 65535    | Reserved            |                          |
+
    | 65535    | Reserved            |                          |
      +----------+---------------------+--------------------------+
+
    +----------+---------------------+--------------------------+
  
                          Table 8: Sub-TLV Types
+
                        Table 8: Sub-TLV Types
  
8.5.  Error Codes
+
=== Error Codes ===
  
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  | Value          | Name                  | Remarks                |
+
| Value          | Name                  | Remarks                |
  +=================+=======================+=========================+
+
+=================+=======================+=========================+
  | 0              | Success              | Success                |
+
| 0              | Success              | Success                |
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  | 1              | Failure              | Malformed message      |
+
| 1              | Failure              | Malformed message      |
  |                |                      | received.              |
+
|                |                      | received.              |
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  | 2              | TLV-Unknown          | One or more of the      |
+
| 2              | TLV-Unknown          | One or more of the      |
  |                |                      | TLVs was not            |
+
|                |                      | TLVs was not            |
  |                |                      | understood.            |
+
|                |                      | understood.            |
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  | 3              | TLV-Length            | The TLV length is      |
+
| 3              | TLV-Length            | The TLV length is      |
  |                |                      | abnormal.              |
+
|                |                      | abnormal.              |
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  | 4-999          | Unassigned            | Unassigned basic        |
+
| 4-999          | Unassigned            | Unassigned basic        |
  |                |                      | error codes.            |
+
|                |                      | error codes.            |
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  | 1000            | Reserved              |                        |
+
| 1000            | Reserved              |                        |
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  | 1001            | Version-Mismatch      | The version            |
+
| 1001            | Version-Mismatch      | The version            |
  |                |                      | negotiation fails.      |
+
|                |                      | negotiation fails.      |
  |                |                      | Terminate.  The        |
+
|                |                      | Terminate.  The        |
  |                |                      | subsequent service      |
+
|                |                      | subsequent service      |
  |                |                      | processes              |
+
|                |                      | processes              |
  |                |                      | corresponding to the    |
+
|                |                      | corresponding to the    |
  |                |                      | UP are suspended.      |
+
|                |                      | UP are suspended.      |
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  | 1002            | Keepalive Error      | The keepalive          |
+
| 1002            | Keepalive Error      | The keepalive          |
  |                |                      | negotiation fails.      |
+
|                |                      | negotiation fails.      |
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  | 1003            | Timer Expires        | The establishment      |
+
| 1003            | Timer Expires        | The establishment      |
  |                |                      | timer expired.          |
+
|                |                      | timer expired.          |
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  | 1004-1999      | Unassigned            | Unassigned error        |
+
| 1004-1999      | Unassigned            | Unassigned error        |
  |                |                      | codes for version      |
+
|                |                      | codes for version      |
  |                |                      | negotiation.            |
+
|                |                      | negotiation.            |
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  | 2000            | Reserved              |                        |
+
| 2000            | Reserved              |                        |
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  | 2001            | Synch-NoReady        | The data to be          |
+
| 2001            | Synch-NoReady        | The data to be          |
  |                |                      | smoothed is not        |
+
|                |                      | smoothed is not        |
  |                |                      | ready.                  |
+
|                |                      | ready.                  |
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  | 2002            | Synch-Unsupport      | The request for        |
+
| 2002            | Synch-Unsupport      | The request for        |
  |                |                      | smooth data is not      |
+
|                |                      | smooth data is not      |
  |                |                      | supported.              |
+
|                |                      | supported.              |
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  | 2003-2999      | Unassigned            | Unassigned data        |
+
| 2003-2999      | Unassigned            | Unassigned data        |
  |                |                      | synchronization        |
+
|                |                      | synchronization        |
  |                |                      | error codes.            |
+
|                |                      | error codes.            |
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  | 3000            | Reserved              |                        |
+
| 3000            | Reserved              |                        |
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  | 3001            | Pool-Mismatch        | The corresponding      |
+
| 3001            | Pool-Mismatch        | The corresponding      |
  |                |                      | address pool cannot    |
+
|                |                      | address pool cannot    |
  |                |                      | be found.              |
+
|                |                      | be found.              |
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  | 3002            | Pool-Full            | The address pool is    |
+
| 3002            | Pool-Full            | The address pool is    |
  |                |                      | fully allocated, and    |
+
|                |                      | fully allocated, and    |
  |                |                      | no address segment      |
+
|                |                      | no address segment      |
  |                |                      | is available.          |
+
|                |                      | is available.          |
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  | 3003            | Subnet-Mismatch      | The address pool        |
+
| 3003            | Subnet-Mismatch      | The address pool        |
  |                |                      | subnet cannot be        |
+
|                |                      | subnet cannot be        |
  |                |                      | found.                  |
+
|                |                      | found.                  |
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  | 3004            | Subnet-Conflict      | Subnets in the          |
+
| 3004            | Subnet-Conflict      | Subnets in the          |
  |                |                      | address pool have      |
+
|                |                      | address pool have      |
  |                |                      | been classified into    |
+
|                |                      | been classified into    |
  |                |                      | other clients.          |
+
|                |                      | other clients.          |
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  | 3005-3999      | Unassigned            | Unassigned error        |
+
| 3005-3999      | Unassigned            | Unassigned error        |
  |                |                      | codes for address      |
+
|                |                      | codes for address      |
  |                |                      | allocation.            |
+
|                |                      | allocation.            |
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  | 4000            | Reserved              |                        |
+
| 4000            | Reserved              |                        |
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  | 4001            | Update-Fail-No-Res    | The forwarding table    |
+
| 4001            | Update-Fail-No-Res    | The forwarding table    |
  |                |                      | fails to be            |
+
|                |                      | fails to be            |
  |                |                      | delivered because      |
+
|                |                      | delivered because      |
  |                |                      | the forwarding          |
+
|                |                      | the forwarding          |
  |                |                      | resources are          |
+
|                |                      | resources are          |
  |                |                      | insufficient.          |
+
|                |                      | insufficient.          |
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  | 4002            | QoS-Update-Success    | The QoS policy takes    |
+
| 4002            | QoS-Update-Success    | The QoS policy takes    |
  |                |                      | effect.                |
+
|                |                      | effect.                |
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  | 4003            | QoS-Update-Sq-Fail    | Failed to process      |
+
| 4003            | QoS-Update-Sq-Fail    | Failed to process      |
  |                |                      | the queue in the QoS    |
+
|                |                      | the queue in the QoS    |
  |                |                      | policy.                |
+
|                |                      | policy.                |
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  | 4004            | QoS-Update-CAR-Fail  | Processing of the      |
+
| 4004            | QoS-Update-CAR-Fail  | Processing of the      |
  |                |                      | CAR in the QoS          |
+
|                |                      | CAR in the QoS          |
  |                |                      | policy fails.          |
+
|                |                      | policy fails.          |
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  | 4005            | Statistic-Fail-No-Res | Statistics              |
+
| 4005            | Statistic-Fail-No-Res | Statistics              |
  |                |                      | processing failed      |
+
|                |                      | processing failed      |
  |                |                      | due to insufficient    |
+
|                |                      | due to insufficient    |
  |                |                      | statistics              |
+
|                |                      | statistics              |
  |                |                      | resources.              |
+
|                |                      | resources.              |
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  | 4006-4999      | Unassigned            | Unassigned              |
+
| 4006-4999      | Unassigned            | Unassigned              |
  |                |                      | forwarding table        |
+
|                |                      | forwarding table        |
  |                |                      | delivery error          |
+
|                |                      | delivery error          |
  |                |                      | codes.                  |
+
|                |                      | codes.                  |
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  | 5000-4294967295 | Reserved              |                        |
+
| 5000-4294967295 | Reserved              |                        |
  +-----------------+-----------------------+-------------------------+
+
+-----------------+-----------------------+-------------------------+
  
                            Table 9: Error Codes
+
                        Table 9: Error Codes
  
8.6.  If-Type Values
+
=== If-Type Values ===
  
  Defined values of the If-Type field in the If-Desc sub-TLV (see
+
Defined values of the If-Type field in the If-Desc sub-TLV (see
  Section 7.3.4) are as follows:
+
Section 7.3.4) are as follows:
  
                      +-------+--------------------+
+
                  +-------+--------------------+
                      | Value | Meaning            |
+
                  | Value | Meaning            |
                      +=======+====================+
+
                  +=======+====================+
                      | 0    | Reserved          |
+
                  | 0    | Reserved          |
                      +-------+--------------------+
+
                  +-------+--------------------+
                      | 1    | Fast Ethernet (FE) |
+
                  | 1    | Fast Ethernet (FE) |
                      +-------+--------------------+
+
                  +-------+--------------------+
                      | 2    | GE                |
+
                  | 2    | GE                |
                      +-------+--------------------+
+
                  +-------+--------------------+
                      | 3    | 10GE              |
+
                  | 3    | 10GE              |
                      +-------+--------------------+
+
                  +-------+--------------------+
                      | 4    | 100GE              |
+
                  | 4    | 100GE              |
                      +-------+--------------------+
+
                  +-------+--------------------+
                      | 5    | Eth-Trunk          |
+
                  | 5    | Eth-Trunk          |
                      +-------+--------------------+
+
                  +-------+--------------------+
                      | 6    | Tunnel            |
+
                  | 6    | Tunnel            |
                      +-------+--------------------+
+
                  +-------+--------------------+
                      | 7    | VE                |
+
                  | 7    | VE                |
                      +-------+--------------------+
+
                  +-------+--------------------+
                      | 8-254 | Unassigned        |
+
                  | 8-254 | Unassigned        |
                      +-------+--------------------+
+
                  +-------+--------------------+
                      | 255  | Reserved          |
+
                  | 255  | Reserved          |
                      +-------+--------------------+
+
                  +-------+--------------------+
  
                        Table 10: If-Type Values
+
                      Table 10: If-Type Values
  
8.7.  Access-Mode Values
+
=== Access-Mode Values ===
  
  Defined values of the Access-Mode field in the BAS Function TLV (see
+
Defined values of the Access-Mode field in the BAS Function TLV (see
  Section 7.7) are as follows:
+
Section 7.7) are as follows:
  
                      +-------+---------------------+
+
                  +-------+---------------------+
                      | Value | Meaning            |
+
                  | Value | Meaning            |
                      +=======+=====================+
+
                  +=======+=====================+
                      | 0    | Layer 2 subscriber  |
+
                  | 0    | Layer 2 subscriber  |
                      +-------+---------------------+
+
                  +-------+---------------------+
                      | 1    | Layer 3 subscriber  |
+
                  | 1    | Layer 3 subscriber  |
                      +-------+---------------------+
+
                  +-------+---------------------+
                      | 2    | Layer 2 leased line |
+
                  | 2    | Layer 2 leased line |
                      +-------+---------------------+
+
                  +-------+---------------------+
                      | 3    | Layer 3 leased line |
+
                  | 3    | Layer 3 leased line |
                      +-------+---------------------+
+
                  +-------+---------------------+
                      | 4-254 | Unassigned          |
+
                  | 4-254 | Unassigned          |
                      +-------+---------------------+
+
                  +-------+---------------------+
                      | 255  | Reserved            |
+
                  | 255  | Reserved            |
                      +-------+---------------------+
+
                  +-------+---------------------+
  
                        Table 11: Access-Mode Values
+
                    Table 11: Access-Mode Values
  
8.8.  Access Method Bits
+
=== Access Method Bits ===
  
  Defined values of the Auth-Method4 and Auth-Method6 fields in the BAS
+
Defined values of the Auth-Method4 and Auth-Method6 fields in the BAS
  Function TLV (see Section 7.7) are defined as bit fields as follows:
+
Function TLV (see Section 7.7) are defined as bit fields as follows:
  
                    +------+-------------------------+
+
                +------+-------------------------+
                    | Bit  | Meaning                |
+
                | Bit  | Meaning                |
                    +======+=========================+
+
                +======+=========================+
                    | 0x01 | PPPoE authentication    |
+
                | 0x01 | PPPoE authentication    |
                    +------+-------------------------+
+
                +------+-------------------------+
                    | 0x02 | DOT1X authentication    |
+
                | 0x02 | DOT1X authentication    |
                    +------+-------------------------+
+
                +------+-------------------------+
                    | 0x04 | Web authentication      |
+
                | 0x04 | Web authentication      |
                    +------+-------------------------+
+
                +------+-------------------------+
                    | 0x08 | Web fast authentication |
+
                | 0x08 | Web fast authentication |
                    +------+-------------------------+
+
                +------+-------------------------+
                    | 0x10 | Binding authentication  |
+
                | 0x10 | Binding authentication  |
                    +------+-------------------------+
+
                +------+-------------------------+
                    | 0x20 | Reserved                |
+
                | 0x20 | Reserved                |
                    +------+-------------------------+
+
                +------+-------------------------+
                    | 0x40 | Reserved                |
+
                | 0x40 | Reserved                |
                    +------+-------------------------+
+
                +------+-------------------------+
                    | 0x80 | Reserved                |
+
                | 0x80 | Reserved                |
                    +------+-------------------------+
+
                +------+-------------------------+
  
                      Table 12: Auth-Method4 Values
+
                  Table 12: Auth-Method4 Values
  
                    +------+-------------------------+
+
                +------+-------------------------+
                    | Bit  | Meaning                |
+
                | Bit  | Meaning                |
                    +======+=========================+
+
                +======+=========================+
                    | 0x01 | PPPoE authentication    |
+
                | 0x01 | PPPoE authentication    |
                    +------+-------------------------+
+
                +------+-------------------------+
                    | 0x02 | DOT1X authentication    |
+
                | 0x02 | DOT1X authentication    |
                    +------+-------------------------+
+
                +------+-------------------------+
                    | 0x04 | Web authentication      |
+
                | 0x04 | Web authentication      |
                    +------+-------------------------+
+
                +------+-------------------------+
                    | 0x08 | Web fast authentication |
+
                | 0x08 | Web fast authentication |
                    +------+-------------------------+
+
                +------+-------------------------+
                    | 0x10 | Binding authentication  |
+
                | 0x10 | Binding authentication  |
                    +------+-------------------------+
+
                +------+-------------------------+
                    | 0x20 | Reserved                |
+
                | 0x20 | Reserved                |
                    +------+-------------------------+
+
                +------+-------------------------+
                    | 0x40 | Reserved                |
+
                | 0x40 | Reserved                |
                    +------+-------------------------+
+
                +------+-------------------------+
                    | 0x80 | Reserved                |
+
                | 0x80 | Reserved                |
                    +------+-------------------------+
+
                +------+-------------------------+
  
                      Table 13: Auth-Method6 Values
+
                  Table 13: Auth-Method6 Values
  
8.9.  Route-Type Values
+
=== Route-Type Values ===
  
  Values of the Route-Type field in the IPv4 and IPv6 Routing TLVs (see
+
Values of the Route-Type field in the IPv4 and IPv6 Routing TLVs (see
  Sections 7.8.1 and 7.8.2) defined in this document are as follows:
+
Sections 7.8.1 and 7.8.2) defined in this document are as follows:
  
              +---------+---------------------------------+
+
            +---------+---------------------------------+
              | Value  | Meaning                        |
+
            | Value  | Meaning                        |
              +=========+=================================+
+
            +=========+=================================+
              | 0      | User host route                |
+
            | 0      | User host route                |
              +---------+---------------------------------+
+
            +---------+---------------------------------+
              | 1      | Radius authorization FrameRoute |
+
            | 1      | Radius authorization FrameRoute |
              +---------+---------------------------------+
+
            +---------+---------------------------------+
              | 2      | Network segment route          |
+
            | 2      | Network segment route          |
              +---------+---------------------------------+
+
            +---------+---------------------------------+
              | 3      | Gateway route                  |
+
            | 3      | Gateway route                  |
              +---------+---------------------------------+
+
            +---------+---------------------------------+
              | 4      | Radius authorized IP route      |
+
            | 4      | Radius authorized IP route      |
              +---------+---------------------------------+
+
            +---------+---------------------------------+
              | 5      | L2TP LNS side user route        |
+
            | 5      | L2TP LNS side user route        |
              +---------+---------------------------------+
+
            +---------+---------------------------------+
              | 6-65534 | Unassigned                      |
+
            | 6-65534 | Unassigned                      |
              +---------+---------------------------------+
+
            +---------+---------------------------------+
              | 65535  | Reserved                        |
+
            | 65535  | Reserved                        |
              +---------+---------------------------------+
+
            +---------+---------------------------------+
  
                        Table 14: Route-Type Values
+
                    Table 14: Route-Type Values
  
 
8.10.  Access-Type Values
 
8.10.  Access-Type Values
  
  Values of the Access-Type field in the Basic Subscriber TLV (see
+
Values of the Access-Type field in the Basic Subscriber TLV (see
  Section 7.9.1) defined in this document are as follows:
+
Section 7.9.1) defined in this document are as follows:
  
  +--------+---------------------------------------------------------+
+
+--------+---------------------------------------------------------+
  | Value  | Meaning                                                |
+
| Value  | Meaning                                                |
  +========+=========================================================+
+
+========+=========================================================+
  | 0      | Reserved                                                |
+
| 0      | Reserved                                                |
  +--------+---------------------------------------------------------+
+
+--------+---------------------------------------------------------+
  | 1      | PPP access (PPP [RFC1661])                              |
+
| 1      | PPP access (PPP [[RFC1661]])                              |
  +--------+---------------------------------------------------------+
+
+--------+---------------------------------------------------------+
  | 2      | PPP over Ethernet over ATM access (PPPoEoA)            |
+
| 2      | PPP over Ethernet over ATM access (PPPoEoA)            |
  +--------+---------------------------------------------------------+
+
+--------+---------------------------------------------------------+
  | 3      | PPP over ATM access (PPPoA [RFC3336])                  |
+
| 3      | PPP over ATM access (PPPoA [[RFC3336]])                  |
  +--------+---------------------------------------------------------+
+
+--------+---------------------------------------------------------+
  | 4      | PPP over Ethernet access (PPPoE [RFC2516])              |
+
| 4      | PPP over Ethernet access (PPPoE [[RFC2516]])              |
  +--------+---------------------------------------------------------+
+
+--------+---------------------------------------------------------+
  | 5      | PPPoE over VLAN access (PPPoEoVLAN [RFC2516])          |
+
| 5      | PPPoE over VLAN access (PPPoEoVLAN [[RFC2516]])          |
  +--------+---------------------------------------------------------+
+
+--------+---------------------------------------------------------+
  | 6      | PPP over LNS access (PPPoLNS)                          |
+
| 6      | PPP over LNS access (PPPoLNS)                          |
  +--------+---------------------------------------------------------+
+
+--------+---------------------------------------------------------+
  | 7      | IP over Ethernet DHCP access (IPoE_DHCP)                |
+
| 7      | IP over Ethernet DHCP access (IPoE_DHCP)                |
  +--------+---------------------------------------------------------+
+
+--------+---------------------------------------------------------+
  | 8      | IP over Ethernet EAP authentication access (IPoE_EAP)  |
+
| 8      | IP over Ethernet EAP authentication access (IPoE_EAP)  |
  +--------+---------------------------------------------------------+
+
+--------+---------------------------------------------------------+
  | 9      | IP over Ethernet Layer 3 access (IPoE_L3)              |
+
| 9      | IP over Ethernet Layer 3 access (IPoE_L3)              |
  +--------+---------------------------------------------------------+
+
+--------+---------------------------------------------------------+
  | 10    | IP over Ethernet Layer 2 Static access (IPoE_L2_STATIC) |
+
| 10    | IP over Ethernet Layer 2 Static access (IPoE_L2_STATIC) |
  +--------+---------------------------------------------------------+
+
+--------+---------------------------------------------------------+
  | 11    | Layer 2 Leased Line access (L2_Leased_Line)            |
+
| 11    | Layer 2 Leased Line access (L2_Leased_Line)            |
  +--------+---------------------------------------------------------+
+
+--------+---------------------------------------------------------+
  | 12    | Layer 2 VPN Leased Line access (L2VPN_Leased_Line)      |
+
| 12    | Layer 2 VPN Leased Line access (L2VPN_Leased_Line)      |
  +--------+---------------------------------------------------------+
+
+--------+---------------------------------------------------------+
  | 13    | Layer 3 Leased Line access (L3_Leased_Line)            |
+
| 13    | Layer 3 Leased Line access (L3_Leased_Line)            |
  +--------+---------------------------------------------------------+
+
+--------+---------------------------------------------------------+
  | 14    | Layer 2 Leased line Sub-User access                    |
+
| 14    | Layer 2 Leased line Sub-User access                    |
  |        | (L2_Leased_Line_SUB_USER)                              |
+
|        | (L2_Leased_Line_SUB_USER)                              |
  +--------+---------------------------------------------------------+
+
+--------+---------------------------------------------------------+
  | 15    | L2TP LAC tunnel access (L2TP_LAC)                      |
+
| 15    | L2TP LAC tunnel access (L2TP_LAC)                      |
  +--------+---------------------------------------------------------+
+
+--------+---------------------------------------------------------+
  | 16    | L2TP LNS tunnel access (L2TP_LNS)                      |
+
| 16    | L2TP LNS tunnel access (L2TP_LNS)                      |
  +--------+---------------------------------------------------------+
+
+--------+---------------------------------------------------------+
  | 17-254 | Unassigned                                              |
+
| 17-254 | Unassigned                                              |
  +--------+---------------------------------------------------------+
+
+--------+---------------------------------------------------------+
  | 255    | Reserved                                                |
+
| 255    | Reserved                                                |
  +--------+---------------------------------------------------------+
+
+--------+---------------------------------------------------------+
  
                      Table 15: Access-Type Values
+
                    Table 15: Access-Type Values
  
9.  IANA Considerations
+
== IANA Considerations ==
  
  This document has no IANA actions.
+
This document has no IANA actions.
  
 
10.  Security Considerations
 
10.  Security Considerations
  
  The Service, Control, and Management Interfaces between the CP and UP
+
The Service, Control, and Management Interfaces between the CP and UP
  might be across the general Internet or other hostile environment.
+
might be across the general Internet or other hostile environment.
  The ability of an adversary to block or corrupt messages or introduce
+
The ability of an adversary to block or corrupt messages or introduce
  spurious messages on any one or more of these interfaces would give
+
spurious messages on any one or more of these interfaces would give
  the adversary the ability to stop subscribers from accessing network
+
the adversary the ability to stop subscribers from accessing network
  services, disrupt existing subscriber sessions, divert traffic, mess
+
services, disrupt existing subscriber sessions, divert traffic, mess
  up accounting statistics, and generally cause havoc.  Damage would
+
up accounting statistics, and generally cause havoc.  Damage would
  not necessarily be limited to one or a few subscribers but could
+
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
+
disrupt routing or deny service to one or more instances of the CP or
  otherwise cause extensive interference.  If the adversary knows the
+
otherwise cause extensive interference.  If the adversary knows the
  details of the UP equipment and its forwarding rule capabilities, 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
+
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
+
sent to an address of the adversary's choosing, thus enabling
  eavesdropping.
+
eavesdropping.
  
  Thus, appropriate protections MUST be implemented to provide
+
Thus, appropriate protections MUST be implemented to provide
  integrity, authenticity, and secrecy of traffic over those
+
integrity, authenticity, and secrecy of traffic over those
  interfaces.  Whether such protection is used is the decision of the
+
interfaces.  Whether such protection is used is the decision of the
  network operator.  See [RFC6241] for Mi/NETCONF security.  Security
+
network operator.  See [[RFC6241]] for Mi/NETCONF security.  Security
  on the Si is dependent on the tunneling protocol used, which is out
+
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
+
of scope for this document.  Security for the Ci, over which S-CUSP
  flows, is further discussed below.
+
flows, is further discussed below.
  
  S-CUSP messages do not provide security.  Thus, if these messages are
+
S-CUSP messages do not provide security.  Thus, if these messages are
  exchanged in an environment where security is a concern, that
+
exchanged in an environment where security is a concern, that
  security MUST be provided by another protocol such as TLS 1.3
+
security MUST be provided by another protocol such as TLS 1.3
  [RFC8446] or IPsec.  TLS 1.3 is the mandatory-to-implement protocol
+
[[RFC8446]] or IPsec.  TLS 1.3 is the mandatory-to-implement protocol
  for interoperability.  The use of a particular security protocol on
+
for interoperability.  The use of a particular security protocol on
  the Ci is determined by configuration.  Such security protocols need
+
the Ci is determined by configuration.  Such security protocols need
  not always be used, and lesser security precautions might be
+
not always be used, and lesser security precautions might be
  appropriate because, in some cases, the communication between the CP
+
appropriate because, in some cases, the communication between the CP
  and UP is in a benign environment.
+
and UP is in a benign environment.
  
 
11.  References
 
11.  References
Line 5,585: Line 5,580:
 
11.1.  Normative References
 
11.1.  Normative References
  
  [RFC20]    Cerf, V., "ASCII format for network interchange", STD 80,
+
[[RFC20]]    Cerf, V., "ASCII format for network interchange", [[STD80|STD 80]],
              RFC 20, DOI 10.17487/RFC0020, October 1969,
+
          [[RFC20|RFC 20]], DOI 10.17487/RFC0020, October 1969,
              <https://www.rfc-editor.org/info/rfc20>.
+
          <https://www.rfc-editor.org/info/rfc20>.
  
  [RFC793]  Postel, J., "Transmission Control Protocol", STD 7,
+
[[RFC793]]  Postel, J., "Transmission Control Protocol", [[STD7|STD 7]],
              RFC 793, DOI 10.17487/RFC0793, September 1981,
+
          [[RFC793|RFC 793]], DOI 10.17487/RFC0793, September 1981,
              <https://www.rfc-editor.org/info/rfc793>.
+
          <https://www.rfc-editor.org/info/rfc793>.
  
  [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
+
[[RFC2119]]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
+
          Requirement Levels", [[BCP14|BCP 14]], [[RFC2119|RFC 2119]],
              DOI 10.17487/RFC2119, March 1997,
+
          DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.
+
          <https://www.rfc-editor.org/info/rfc2119>.
  
  [RFC2661]  Townsley, W., Valencia, A., Rubens, A., Pall, G., Zorn,
+
[[RFC2661]]  Townsley, W., Valencia, A., Rubens, A., Pall, G., Zorn,
              G., and B. Palter, "Layer Two Tunneling Protocol "L2TP"",
+
          G., and B. Palter, "Layer Two Tunneling Protocol "L2TP"",
              RFC 2661, DOI 10.17487/RFC2661, August 1999,
+
          [[RFC2661|RFC 2661]], DOI 10.17487/RFC2661, August 1999,
              <https://www.rfc-editor.org/info/rfc2661>.
+
          <https://www.rfc-editor.org/info/rfc2661>.
  
  [RFC2865]  Rigney, C., Willens, S., Rubens, A., and W. Simpson,
+
[[RFC2865]]  Rigney, C., Willens, S., Rubens, A., and W. Simpson,
              "Remote Authentication Dial In User Service (RADIUS)",
+
          "Remote Authentication Dial In User Service (RADIUS)",
              RFC 2865, DOI 10.17487/RFC2865, June 2000,
+
          [[RFC2865|RFC 2865]], DOI 10.17487/RFC2865, June 2000,
              <https://www.rfc-editor.org/info/rfc2865>.
+
          <https://www.rfc-editor.org/info/rfc2865>.
  
  [RFC6241]  Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
+
[[RFC6241]]  Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
              and A. Bierman, Ed., "Network Configuration Protocol
+
          and A. Bierman, Ed., "Network Configuration Protocol
              (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
+
          (NETCONF)", [[RFC6241|RFC 6241]], DOI 10.17487/RFC6241, June 2011,
              <https://www.rfc-editor.org/info/rfc6241>.
+
          <https://www.rfc-editor.org/info/rfc6241>.
  
  [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
+
[[RFC8174]]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
+
          2119 Key Words", [[BCP14|BCP 14]], [[RFC8174|RFC 8174]], DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.
+
          May 2017, <https://www.rfc-editor.org/info/rfc8174>.
  
 
11.2.  Informative References
 
11.2.  Informative References
  
  [802.1Q]  IEEE, "IEEE Standard for Local and metropolitan area
+
[802.1Q]  IEEE, "IEEE Standard for Local and metropolitan area
              networks--Bridges and Bridged Networks", IEEE 802.1Q-2018,
+
          networks--Bridges and Bridged Networks", IEEE 802.1Q-2018,
              DOI 10.1109/IEEESTD.2018.8403927, July 2018,
+
          DOI 10.1109/IEEESTD.2018.8403927, July 2018,
              <https://doi.org/10.1109/IEEESTD.2018.8403927>.
+
          <https://doi.org/10.1109/IEEESTD.2018.8403927>.
  
  [RFC1661]  Simpson, W., Ed., "The Point-to-Point Protocol (PPP)",
+
[[RFC1661]]  Simpson, W., Ed., "The Point-to-Point Protocol (PPP)",
              STD 51, RFC 1661, DOI 10.17487/RFC1661, July 1994,
+
          [[STD51|STD 51]], [[RFC1661|RFC 1661]], DOI 10.17487/RFC1661, July 1994,
              <https://www.rfc-editor.org/info/rfc1661>.
+
          <https://www.rfc-editor.org/info/rfc1661>.
  
  [RFC2131]  Droms, R., "Dynamic Host Configuration Protocol",
+
[[RFC2131]]  Droms, R., "Dynamic Host Configuration Protocol",
              RFC 2131, DOI 10.17487/RFC2131, March 1997,
+
          [[RFC2131|RFC 2131]], DOI 10.17487/RFC2131, March 1997,
              <https://www.rfc-editor.org/info/rfc2131>.
+
          <https://www.rfc-editor.org/info/rfc2131>.
  
  [RFC2516]  Mamakos, L., Lidl, K., Evarts, J., Carrel, D., Simone, D.,
+
[[RFC2516]]  Mamakos, L., Lidl, K., Evarts, J., Carrel, D., Simone, D.,
              and R. Wheeler, "A Method for Transmitting PPP Over
+
          and R. Wheeler, "A Method for Transmitting PPP Over
              Ethernet (PPPoE)", RFC 2516, DOI 10.17487/RFC2516,
+
          Ethernet (PPPoE)", [[RFC2516|RFC 2516]], DOI 10.17487/RFC2516,
              February 1999, <https://www.rfc-editor.org/info/rfc2516>.
+
          February 1999, <https://www.rfc-editor.org/info/rfc2516>.
  
  [RFC2698]  Heinanen, J. and R. Guerin, "A Two Rate Three Color
+
[[RFC2698]]  Heinanen, J. and R. Guerin, "A Two Rate Three Color
              Marker", RFC 2698, DOI 10.17487/RFC2698, September 1999,
+
          Marker", [[RFC2698|RFC 2698]], DOI 10.17487/RFC2698, September 1999,
              <https://www.rfc-editor.org/info/rfc2698>.
+
          <https://www.rfc-editor.org/info/rfc2698>.
  
  [RFC3022]  Srisuresh, P. and K. Egevang, "Traditional IP Network
+
[[RFC3022]]  Srisuresh, P. and K. Egevang, "Traditional IP Network
              Address Translator (Traditional NAT)", RFC 3022,
+
          Address Translator (Traditional NAT)", [[RFC3022|RFC 3022]],
              DOI 10.17487/RFC3022, January 2001,
+
          DOI 10.17487/RFC3022, January 2001,
              <https://www.rfc-editor.org/info/rfc3022>.
+
          <https://www.rfc-editor.org/info/rfc3022>.
  
  [RFC3336]  Thompson, B., Koren, T., and B. Buffam, "PPP Over
+
[[RFC3336]]  Thompson, B., Koren, T., and B. Buffam, "PPP Over
              Asynchronous Transfer Mode Adaptation Layer 2 (AAL2)",
+
          Asynchronous Transfer Mode Adaptation Layer 2 (AAL2)",
              RFC 3336, DOI 10.17487/RFC3336, December 2002,
+
          [[RFC3336|RFC 3336]], DOI 10.17487/RFC3336, December 2002,
              <https://www.rfc-editor.org/info/rfc3336>.
+
          <https://www.rfc-editor.org/info/rfc3336>.
  
  [RFC5511]  Farrel, A., "Routing Backus-Naur Form (RBNF): A Syntax
+
[[RFC5511]]  Farrel, A., "Routing Backus-Naur Form (RBNF): A Syntax
              Used to Form Encoding Rules in Various Routing Protocol
+
          Used to Form Encoding Rules in Various Routing Protocol
              Specifications", RFC 5511, DOI 10.17487/RFC5511, April
+
          Specifications", [[RFC5511|RFC 5511]], DOI 10.17487/RFC5511, April
              2009, <https://www.rfc-editor.org/info/rfc5511>.
+
          2009, <https://www.rfc-editor.org/info/rfc5511>.
  
  [RFC7042]  Eastlake 3rd, D. and J. Abley, "IANA Considerations and
+
[[RFC7042]]  Eastlake 3rd, D. and J. Abley, "IANA Considerations and
              IETF Protocol and Documentation Usage for IEEE 802
+
          IETF Protocol and Documentation Usage for IEEE 802
              Parameters", BCP 141, RFC 7042, DOI 10.17487/RFC7042,
+
          Parameters", [[BCP141|BCP 141]], [[RFC7042|RFC 7042]], DOI 10.17487/RFC7042,
              October 2013, <https://www.rfc-editor.org/info/rfc7042>.
+
          October 2013, <https://www.rfc-editor.org/info/rfc7042>.
  
  [RFC7348]  Mahalingam, M., Dutt, D., Duda, K., Agarwal, P., Kreeger,
+
[[RFC7348]]  Mahalingam, M., Dutt, D., Duda, K., Agarwal, P., Kreeger,
              L., Sridhar, T., Bursell, M., and C. Wright, "Virtual
+
          L., Sridhar, T., Bursell, M., and C. Wright, "Virtual
              eXtensible Local Area Network (VXLAN): A Framework for
+
          eXtensible Local Area Network (VXLAN): A Framework for
              Overlaying Virtualized Layer 2 Networks over Layer 3
+
          Overlaying Virtualized Layer 2 Networks over Layer 3
              Networks", RFC 7348, DOI 10.17487/RFC7348, August 2014,
+
          Networks", [[RFC7348|RFC 7348]], DOI 10.17487/RFC7348, August 2014,
              <https://www.rfc-editor.org/info/rfc7348>.
+
          <https://www.rfc-editor.org/info/rfc7348>.
  
  [RFC8446]  Rescorla, E., "The Transport Layer Security (TLS) Protocol
+
[[RFC8446]]  Rescorla, E., "The Transport Layer Security (TLS) Protocol
              Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
+
          Version 1.3", [[RFC8446|RFC 8446]], DOI 10.17487/RFC8446, August 2018,
              <https://www.rfc-editor.org/info/rfc8446>.
+
          <https://www.rfc-editor.org/info/rfc8446>.
  
  [TR-384]  Broadband Forum, "Cloud Central Office Reference
+
[TR-384]  Broadband Forum, "Cloud Central Office Reference
              Architectural Framework", BBF TR-384, January 2018.
+
          Architectural Framework", BBF TR-384, January 2018.
  
  [WT-459]  Broadband Forum, "Control and User Plane Separation for a
+
[WT-459]  Broadband Forum, "Control and User Plane Separation for a
              Disaggregated BNG", BBF WT-459, 2019.
+
          Disaggregated BNG", BBF WT-459, 2019.
  
 
Acknowledgements
 
Acknowledgements
  
  The helpful comments and suggestions from the following individuals
+
The helpful comments and suggestions from the following individuals
  are hereby acknowledged:
+
are hereby acknowledged:
  
  *  Loa Andersson
+
*  Loa Andersson
  
  *  Greg Mirsky
+
*  Greg Mirsky
  
 
Contributors
 
Contributors
  
  Zhenqiang Li
+
Zhenqiang Li
  China Mobile
+
China Mobile
  32 Xuanwumen West Ave
+
32 Xuanwumen West Ave
  Xicheng District
+
Xicheng District
  Beijing
+
Beijing
  100053
+
100053
  China
+
China
 
 
 
 
 
 
 
  Mach(Guoyi) Chen
 
  Huawei Technologies
 
  Huawei Bldg., No. 156 Beiqing Road
 
  Beijing
 
  100095
 
  China
 
 
 
 
 
 
 
 
  Zhouyi Yu
 
  Huawei Technologies
 
 
 
 
 
 
  
  Chengguang Niu
+
  Huawei Technologies
 
  
  Email: chengguang.niu@huawei.com
+
Mach(Guoyi) Chen
 +
Huawei Technologies
 +
Huawei Bldg., No. 156 Beiqing Road
 +
Beijing
 +
100095
 +
China
  
 +
  
  Zitao Wang
+
Zhouyi Yu
  Huawei Technologies
+
Huawei Technologies
  
  Email: wangzitao@huawei.com
+
Email: yuzhouyi@huawei.com
  
 +
Chengguang Niu
 +
Huawei Technologies
  
  Jun Song
+
  Huawei Technologies
 
  
+
Zitao Wang
 +
Huawei Technologies
  
 +
  
  Dan Meng
+
Jun Song
  H3C Technologies
+
Huawei Technologies
  No. 1 Lixing Center
 
  No. 8 Guangxun South Street
 
  Chaoyang District
 
  Beijing
 
  100102
 
  China
 
  
  Email: mengdan@h3c.com
+
Email: song.jun@huawei.com
  
 +
Dan Meng
 +
H3C Technologies
 +
No. 1 Lixing Center
 +
No. 8 Guangxun South Street
 +
Chaoyang District
 +
Beijing
 +
100102
 +
China
  
  Hanlei Liu
+
Email: mengdan@h3c.com
  H3C Technologies
 
  No. 1 Lixing Center
 
  No. 8 Guangxun South Street
 
  Chaoyang District
 
  Beijing
 
  100102
 
  China
 
  
  Email: hanlei_liu@h3c.com
+
Hanlei Liu
 +
H3C Technologies
 +
No. 1 Lixing Center
 +
No. 8 Guangxun South Street
 +
Chaoyang District
 +
Beijing
 +
100102
 +
China
  
 +
  
  Victor Lopez
+
Victor Lopez
  Telefonica
+
Telefonica
  Spain
+
Spain
 
 
 
  
 +
  
 
Authors' Addresses
 
Authors' Addresses
  
  Shujun Hu
+
Shujun Hu
  China Mobile
+
China Mobile
  32 Xuanwumen West Ave
+
32 Xuanwumen West Ave
  Xicheng District
+
Xicheng District
  Beijing
+
Beijing
  100053
+
100053
  China
+
China
 
 
 
 
 
 
 
  Donald Eastlake 3rd
 
  Futurewei Technologies
 
  2386 Panoramic Circle
 
  Apopka, FL 32703
 
  United States of America
 
  
  Phone: +1-508-333-2270
+
Email: hushujun@chinamobile.com
  Email: d3e3e3@gmail.com
 
  
 +
Donald Eastlake 3rd
 +
Futurewei Technologies
 +
2386 Panoramic Circle
 +
Apopka, FL 32703
 +
United States of America
  
  Fengwei Qin
+
Phone: +1-508-333-2270
  China Mobile
+
  32 Xuanwumen West Ave
 
  Xicheng District
 
  Beijing
 
  100053
 
  China
 
  
+
Fengwei Qin
 +
China Mobile
 +
32 Xuanwumen West Ave
 +
Xicheng District
 +
Beijing
 +
100053
 +
China
  
 +
  
  Tee Mong Chua
+
Tee Mong Chua
  Singapore Telecommunications Limited
+
Singapore Telecommunications Limited
  31 Exeter Road, #05-04 Comcentre Podium Block
+
31 Exeter Road, #05-04 Comcentre Podium Block
  SINGAPORE 239732
+
SINGAPORE 239732
  Singapore
+
Singapore
  
+
  
 +
Daniel Huang
 +
ZTE
  
  Daniel Huang
+
  ZTE
 
  
+
[[Category:Informational]]

Latest revision as of 11:00, 30 October 2020



Independent Submission S. Hu Request for Comments: 8772 China Mobile Category: Informational D. Eastlake 3rd ISSN: 2070-1721 Futurewei Technologies

                                                              F. Qin
                                                        China Mobile
                                                             T. Chua
                                        Singapore Telecommunications
                                                            D. Huang
                                                                 ZTE
                                                            May 2020

The China Mobile, Huawei, and ZTE Broadband Network Gateway (BNG) Simple

      Control and User Plane Separation Protocol (S-CUSP)

Abstract

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.

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.

Status of This Memo

This document is not an Internet Standards Track specification; it is published for informational purposes.

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.

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at https://www.rfc-editor.org/info/rfc8772.

Copyright Notice

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

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document.

1. Introduction 2. Terminology

 2.1.  Implementation Requirement Keywords
 2.2.  Terms

3. BNG CUPS Overview

 3.1.  BNG CUPS Motivation
 3.2.  BNG CUPS Architecture Overview
 3.3.  BNG CUPS Interfaces
   3.3.1.  Service Interface (Si)
   3.3.2.  Control Interface (Ci)
   3.3.3.  Management Interface (Mi)
 3.4.  BNG CUPS Procedure Overview

4. S-CUSP Protocol Overview

 4.1.  Control Channel Procedures
   4.1.1.  S-CUSP Session Establishment
   4.1.2.  Keepalive Timer and DeadTimer
 4.2.  Node Procedures
   4.2.1.  UP Resource Report
   4.2.2.  Update BAS Function on Access Interface
   4.2.3.  Update Network Routing
   4.2.4.  CGN Public IP Address Allocation
   4.2.5.  Data Synchronization between the CP and UP
 4.3.  Subscriber Session Procedures
   4.3.1.  Create Subscriber Session
   4.3.2.  Update Subscriber Session
   4.3.3.  Delete Subscriber Session
   4.3.4.  Subscriber Session Events Report

5. S-CUSP Call Flows

 5.1.  IPoE
   5.1.1.  DHCPv4 Access
   5.1.2.  DHCPv6 Access
   5.1.3.  IPv6 Stateless Address Autoconfiguration (SLAAC) Access
   5.1.4.  DHCPv6 and SLAAC Access
   5.1.5.  DHCP Dual-Stack Access
   5.1.6.  L2 Static Subscriber Access
 5.2.  PPPoE
   5.2.1.  IPv4 PPPoE Access
   5.2.2.  IPv6 PPPoE Access
   5.2.3.  PPPoE Dual-Stack Access
 5.3.  WLAN Access
 5.4.  L2TP
   5.4.1.  L2TP LAC Access
   5.4.2.  L2TP LNS IPv4 Access
   5.4.3.  L2TP LNS IPv6 Access
 5.5.  CGN (Carrier Grade NAT)
 5.6.  L3 Leased Line Access
   5.6.1.  Web Authentication
   5.6.2.  User Traffic Trigger
 5.7.  Multicast Service Access

6. S-CUSP Message Formats

 6.1.  Common Message Header
 6.2.  Control Messages
   6.2.1.  Hello Message
   6.2.2.  Keepalive Message
   6.2.3.  Sync_Request Message
   6.2.4.  Sync_Begin Message
   6.2.5.  Sync_Data Message
   6.2.6.  Sync_End Message
   6.2.7.  Update_Request Message
   6.2.8.  Update_Response Message
 6.3.  Event Message
 6.4.  Report Message
 6.5.  CGN Messages
   6.5.1.  Addr_Allocation_Req Message
   6.5.2.  Addr_Allocation_Ack Message
   6.5.3.  Addr_Renew_Req Message
   6.5.4.  Addr_Renew_Ack Message
   6.5.5.  Addr_Release_Req Message
   6.5.6.  Addr_Release_Ack Message
 6.6.  Vendor Message
 6.7.  Error Message

7. S-CUSP TLVs and Sub-TLVs

 7.1.  Common TLV Header
 7.2.  Basic Data Fields
 7.3.  Sub-TLV Format and Sub-TLVs
   7.3.1.  Name Sub-TLVs
   7.3.2.  Ingress-CAR Sub-TLV
   7.3.3.  Egress-CAR Sub-TLV
   7.3.4.  If-Desc Sub-TLV
   7.3.5.  IPv6 Address List Sub-TLV
   7.3.6.  Vendor Sub-TLV
 7.4.  Hello TLV
 7.5.  Keepalive TLV
 7.6.  Error Information TLV
 7.7.  BAS Function TLV
 7.8.  Routing TLVs
   7.8.1.  IPv4 Routing TLV
   7.8.2.  IPv6 Routing TLV
 7.9.  Subscriber TLVs
   7.9.1.  Basic Subscriber TLV
   7.9.2.  PPP Subscriber TLV
   7.9.3.  IPv4 Subscriber TLV
   7.9.4.  IPv6 Subscriber TLV
   7.9.5.  IPv4 Static Subscriber Detect TLV
   7.9.6.  IPv6 Static Subscriber Detect TLV
   7.9.7.  L2TP-LAC Subscriber TLV
   7.9.8.  L2TP-LNS Subscriber TLV
   7.9.9.  L2TP-LAC Tunnel TLV
   7.9.10. L2TP-LNS Tunnel TLV
   7.9.11. Update Response TLV
   7.9.12. Subscriber Policy TLV
   7.9.13. Subscriber CGN Port Range TLV
 7.10. Device Status TLVs
   7.10.1.  Interface Status TLV
   7.10.2.  Board Status TLV
 7.11. CGN TLVs
   7.11.1.  Address Allocation Request TLV
   7.11.2.  Address Allocation Response TLV
   7.11.3.  Address Renewal Request TLV
   7.11.4.  Address Renewal Response TLV
   7.11.5.  Address Release Request TLV
   7.11.6.  Address Release Response TLV
 7.12. Event TLVs
   7.12.1.  Subscriber Traffic Statistics TLV
   7.12.2.  Subscriber Detection Result TLV
 7.13. Vendor TLV

8. Tables of S-CUSP Codepoints

 8.1.  Message Types
 8.2.  TLV Types
 8.3.  TLV Operation Codes
 8.4.  Sub-TLV Types
 8.5.  Error Codes
 8.6.  If-Type Values
 8.7.  Access-Mode Values
 8.8.  Access Method Bits
 8.9.  Route-Type Values
 8.10. Access-Type Values

9. IANA Considerations 10. Security Considerations 11. References

 11.1.  Normative References
 11.2.  Informative References

Acknowledgements Contributors Authors' Addresses

Contents

Introduction

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 [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.

Note: In this document, the terms "user" and "subscriber" are used interchangeably.

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.

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.

At the time of writing this document, the BBF is working to produce [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.

Terminology

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 RFC5511.

Implementation Requirement Keywords

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 RFC2119 RFC8174 when, and only when, they appear in all capitals, as shown here.

Terms

This section specifies terms used in this document.

AAA: Authentication Authorization Accounting.

ACK: Acknowledgement message.

BAS: Broadband Access Server, also known as a BBRAS, BNG, or

            BRAS.

BNG: 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.

BRAS: Broadband Remote Access Server, also known as a BAS,

            BBRAS, or BNG.

CAR: Committed Access Rate.

CBS: Committed Burst Size.

CGN: Carrier Grade NAT.

Ci: Control Interface.

CIR: Committed Information Rate.

CoA: Change of Authorization.

CP: 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.

CU: Control Plane / User Plane.

CUSP: Control and User Plane Separation Protocol.

DEI: Drop Eligibility Indicator as defined in [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).)

DHCP: Dynamic Host Configuration Protocol RFC2131.

dial-up: 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 RFC2516
            or IPoE.

EMS: Element Management System.

IPoE: IP over Ethernet.

L2TP: Layer 2 Tunneling Protocol RFC2661.

LAC: L2TP Access Concentrator.

LNS: L2TP Network Server.

MAC: 48-bit Media Access Control address RFC7042.

MANO: Management and Orchestration.

Mi: Management Interface.

MSS: Maximum Segment Size.

MRU: Maximum Receive Unit.

NAT: Network Address Translation RFC3022.

ND: Neighbor Discovery.

NFV: Network Function Virtualization.

NFVI: NFV Infrastructure.

PBS: Peak Burst Size.

PD: Prefix Delegation.

PIR: Peak Information Rate.

PPP: Point-to-Point Protocol RFC1661.

PPPoE: PPP over Ethernet RFC2516.

RBNF: Routing Backus-Naur Form RFC5511.

RG: Residential Gateway.

S-CUSP: Simple Control and User Plane Separation Protocol.

Subscriber: The remote user gaining network accesses via a BNG.

Si: Service Interface.

TLV: Type-Length-Value. See Sections 7.1 and 7.3.

UP: 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.

URPF: Unicast Reverse Path Forwarding.

User: Equivalent to "customer" or "subscriber".

VRF: Virtual Routing and Forwarding.

BNG CUPS Overview

BNG CUPS Motivation

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:

Low resource utilization: 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.

Complex management and maintenance: 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.

Slow service provisioning: 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.

The framework for a cloud-based BNG with CU separation to address these challenges for fixed networks is described in [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.

BNG CUPS Architecture Overview

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).

Figure 1 shows the architecture of a CU-separated BNG:

+------------------------------------------------------------------+
|        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|  |
| +---------------------------+      +--------------------------+  |

+------------------------------------------------------------------+

            Figure 1: Architecture of a CU-Separated BNG

As shown in 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.

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 SHOULD 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 [TR-384].

The details of the CU-separated BNG's function components are as follows:

The CP is responsible for the following:

  • Address management: Unified address pool management and CGN
  subscriber address traceability management.
  • 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.
  • Subscriber management: User entry management and forwarding policy
  management.
  • Access management: Process user dial-up packets, such as PPPoE,
  DHCP, L2TP, etc.
  • UP management: Management of UP interface status and the setup,
  deletion, and maintenance of channels between CP and UP.

The UP is responsible for the following:

  • Routing control functions: Responsible for instantiating routing
  forwarding plane (e.g., routing, multicast, MPLS, etc.).
  • Routing and service forwarding plane functions: Responsibilities
  include traffic forwarding, QoS, and traffic statistics
  collection.
  • Subscriber detection: Responsible for detecting whether a
  subscriber is still online.

BNG CUPS Interfaces

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 Figure 2.

         +-----------------------------------+
         |                                   |
         |               BNG-CP              |
         |                                   |
         +--+--------------+--------------+--+
            |              |              |
 1. Service |   2. Control | 3. Management|
  Interface |    Interface |    Interface |
       (Si) |         (Ci) |         (Mi) |
            |              |              |
            |           ___|___           |
            |       ___(       )___       |
           _|______(               )______|_
          (                                 )
         (         Network/Internet         )
          (________                 ________)
            |      (___         ___)      |
            |          (_______)          |
            |              |              |
            |              |              |
         +--+--------------+--------------+--+
         |                                   |
         |               BNG-UP              |
         |                                   |
         +-----------------------------------+
       Figure 2: Interfaces between the CP and UP of the BNG

Service Interface (Si)

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.

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) RFC7348.

The detailed definition of Si is out of scope for this document.

Control Interface (Ci)

The CP uses the Ci to deliver subscriber session states, network routing entries, etc., to the UP (see Section 6.2.7). The UP uses this interface to report subscriber service statistics, subscriber detection results, etc., to the CP (see Sections 6.3 and 6.4). A carrying protocol for this interface is specified in this document.

Management Interface (Mi)

The Network Configuration Protocol (NETCONF) 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.

BNG CUPS Procedure Overview

The following numbered sequences (Figure 3) give a high-level view of the main BNG CUPS procedures.

  RG              UP                      CP              AAA
  |               |Establish S-CUSP Channel|               |
  |              1|<---------------------->|               |
  |               |                        |               |
  |               | Report board interface |               |
  |               |      information       |               |
  |              2|------to CP via Ci----->|               |
  |               |                        |               |
  |               |  Update BAS function   |               |
  |              3|    request/response    |               |
  |               |<-----on UP via Ci----->|               |
  |               |                        |               |
  |               | Update network routing |               |
  |               |    request/response    |               |
  |              4|<------- via Ci-------->|               |
  |  Online Req   |                        |               |

5.1|-------------->| | |

  |               | Relay the Online Req   |               |
  |            5.2|-----to CP via Si------>| Authentication|
  |               |                        |    Req/Rep    |
  |               |                     5.3|<------------->|
  |               | Send the Online Rep    |               |
  |            5.4|<----to UP via Si-------|               |
  |               |                        |               |
  |               | Create subscriber      |               |
  |               |    session on UP       |               |
  |            5.5|<--------via Ci-------->|               |
  |  Online Rep   |                        |               |

5.6|<--------------| | |

  |               |                        |  CoA Request  |
  |               |                     6.1|<--------------|
  |               | Update session on UP   |               |
  |            6.2|<--------via Ci-------->|               |
  |               |                        |  CoA Response |
  |  Offline Req  |                     6.3|-------------->|

7.1|-------------->| | |

  |               | Relay the Offline Req  |               |
  |            7.2|------to CP via Si----->|               |
  |               |                        |               |
  |               | Send the Offline Rep   |               |
  |            7.3|<-----to UP via Si------|               |
  |  Offline Rep  |                        |               |

7.4|<--------------| | |

  |               | Delete session on UP   |               |
  |            7.5|<--------via Ci-------->|               |
  |               |                        |               |
  |               |      Event report      |               |
  |              8|---------via Ci-------->|               |
  |               |                        |               |
  |               | Data synchronization   |               |
  |              9|<--------via Ci-------->|               |
  |               |                        |               |
  |               | CGN address allocation |               |
  |             10|<--------via Ci-------->|               |
  |               |                        |               |
               Figure 3: BNG CUPS Procedures Overview

(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 Section 4.1.1.

(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 4.2.1 and 7.10 for more details on
     resource reporting.

(3) BAS function enable: To enable the BAS function on the

     specified interfaces of a UP.

(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.

(5) 5.1-5.6 is a complete call flow of a subscriber dial-up (as

     defined in 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 Section 5.

(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 Section 4.3.2 for more
     detail on CP messages updating UP tables.

(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.

(8) Event reports include the following two parts (more detail can

     be found in Section 4.3.4).  Both are reported using the Event
     message:
        8.1.  Subscriber Traffic Statistics Report
        8.2.  Subscriber Detection Result Report

(9) Data synchronization: See Section 4.2.5 for more detail on CP

     and UP synchronization.

(10) CGN address allocation: See Section 4.2.4 for more detail on

     CGN address allocation.

S-CUSP Protocol Overview

Control Channel Procedures

S-CUSP Session Establishment

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.

Once a UP knows its CPs, the UP starts to establish S-CUSP sessions with those CPs, as shown in Figure 4.

                UP                               CP
                |   TCP Session Establishment     |
                |<------------------------------->|
                |                                 |
                |   Hello (version, capability)   |
                |-------------------------------->|
                |                                 |
                |   Hello (version, capability)   |
                |<--------------------------------|
                |                                 |
               Figure 4: S-CUSP Session Establishment

The S-CUSP session establishment consists of two successive steps:

(1) Establishment of a TCP connection (3-way handshake) RFC793

    between the CP and the UP using a configured port from the
    dynamic port range (49152-65535).

(2) Establishment of an S-CUSP session over the TCP connection.

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.

The version information (Hello TLV, see Section 7.4) is carried within Hello messages (see 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.

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.

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 SHOULD make use of an exponential backoff session establishment retry procedure.

The S-CUSP session timer values that need to be configured are summarized in Table 1.

    +---------------------+------------------+---------------+
    | Timer Name          | Range in Seconds | Default Value |
    +=====================+==================+===============+
    | Establishment Timer | 1-32767          | 45            |
    +---------------------+------------------+---------------+
    | Keepalive Timer     | 0-255            | 30            |
    +---------------------+------------------+---------------+
    | DeadTimer           | 1-32767          | 4 * Keepalive |
    +---------------------+------------------+---------------+
                  Table 1: S-CUSP Session Timers

Keepalive Timer and DeadTimer

Once an S-CUSP session has been established, a UP or CP may want to know that its S-CUSP peer is still connected.

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.

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.

The minimum value of the Keepalive timer is 1 second, and it is specified in units of 1 second. The RECOMMENDED 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.

The Keepalive timer and DeadTimer are negotiated through the Keepalive TLV carried in the Hello message.

Node Procedures

UP Resource Report

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 Figure 5. Report messages are unacknowledged and are assumed to be delivered because the session runs over TCP.

The CP can use that information to activate/enable the BAS functions (e.g., IPoE, PPPoE, etc.) on the specified interfaces.

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.

                    UP                      CP
                    |  Report Board Status   |
                    |------to CP via Ci----->|
                    |                        |
                    | Report Interface Status|
                    |------to CP via Ci----->|
                    |                        |
              Figure 5: UP Board and Interface Report

Board status information is carried in the Board Status TLV (Section 7.10.2), and interface status information is carried in the Interface Status TLV (Section 7.10.1). Both Board Status and Interface Status TLVs are carried in the Report message (Section 6.4).

Update BAS Function on Access Interface

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 (Section 6.2), carrying the BAS Function TLV (Section 7.7).

                    UP                       CP
                    |   Update BAS Function   |
                    |         Request         |
                    |<-----on UP via Ci-------|
                    |                         |
                    |   Update BAS Function   |
                    |         Response        |
                    |------on UP via Ci------>|
                    |                         |
                   Figure 6: Update BAS Function

Update Network Routing

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.

                    UP                       CP
                    | Subscriber network route|
                    |      update request     |
                    |<------- via Ci----------|
                    |                         |
                    | Subscriber network route|
                    |      update response    |
                    |-------- via Ci--------->|
                    |                         |
                  Figure 7: Update Network Routing

The Update_Request and Update_Response message exchanges, carrying the IPv4/IPv6 Routing TLVs (Section 7.8), update the subscriber's network routing information.

CGN Public IP Address Allocation

The following sequences (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.

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.

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.

If the public IP address will not be used anymore, the UP SHOULD release the address by sending an Addr_Release_Req message to the CP.

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 Section 7.1) in the IPv4/IPv6 Routing TLV (see Section 7.8) determines whether the request is an update or withdraw.

The relevant messages are defined in Section 6.5.

                UP                       CP
                | CGN Address Allocation  |
                |         Request         |
             1.1|-------- via Ci--------->|
                | CGN Address Allocation  |
                |         Response        |
             1.2|<------- via Ci----------|
                |                         |
                | CGN Address Renew       |
                |         Request         |
             2.1|-------- via Ci--------->|
                | CGN Address Renew       |
                |         Response        |
             2.2|<------- via Ci----------|
                |                         |
                | CGN Address Release     |
                |         Request         |
             3.1|-------- via Ci--------->|
                | CGN Address Release     |
                |         Response        |
             3.3|<------- via Ci----------|
                |                         |
             Figure 8: CGN Public IP Address Allocation

Data Synchronization between the CP and UP

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.

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.

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.

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.

Figure 9 shows the process of data synchronization between a UP and a CP.

                    UP                       CP
                    | Synchronization Request |
                    |<------- via Ci----------|
                    |                         |
                    | Synchronization Begin   |
                    |-------- via Ci--------->|
                    |                         |
                    | Board/Interface Report  |
                    |-------- via Ci--------->|
                    |                         |
                    | Synchronization End     |
                    |-------- via Ci--------->|
                    |                         |
                   1) Synchronization from UP to CP
                    UP                       CP
                    | Synchronization Request |
                    |-------- via Ci--------->|
                    |                         |
                    | Synchronization Begin   |
                    |<-------- via Ci---------|
                    |                         |
                    |      Synchronizes       |
                    |Subscriber Session States|
                    |  Network Route Entries  |
                    |<------- via Ci----------|
                    |                         |
                    | Synchronization End     |
                    |<-------- via Ci---------|
                    |                         |
                   2) Synchronization from CP to UP
                   Figure 9: Data Synchronization

Subscriber Session Procedures

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.

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.

Create Subscriber Session

The sequence below (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 Section 5.1.2.)

    RG              UP                       CP             AAA
    | Online Request|                        |               |
   1|-------------->|                        |               |
    |               |Relay the Online Request|               |
    |              2|-----to CP via Si------>| Authentication|
    |               |                        |    Req/Rep    |
    |               |                       3|<------------->|
    |               |  Create Subscriber     |               |
    |               |   Session Request      |               |
    |              4|<--------via Ci---------|               |
    |               |                        |               |
    |               |  Create Subscriber     |               |
    |               |   Session Response     |               |
    |              5|---------via Ci-------->|               |
    |               |                        |   Accounting  |
    |               |                       6|<------------->|
    |               |  Send Online Response  |               |
    |              7|<----to UP via Si-------|               |
    |               |                        |               |
    |Online Response|                        |               |
   8|<--------------|                        |               |
    |               |                        |               |
              Figure 10: Creating a Subscriber Session

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.

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).

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).

That completes the subscriber activation process.

Update Subscriber Session

The following numbered sequence (Figure 11) shows the process of updating the subscriber session.

           UP                       CP             AAA
           |                        |  CoA Request  |
           |                       1|<--------------|
           | Session Update Request |               |
          2|<--------via Ci---------|               |
           |                        |               |
           | Session Update Response|               |
          3|---------via Ci-------->|               |
           |                        |  CoA Response |
           |                       4|-------------->|
           |                        |               |
              Figure 11: Updating a Subscriber Session

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.).

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.

Delete Subscriber Session

The call flow below shows how S-CUSP deals with a subscriber Offline Request.

          RG               UP                       CP
           |Offline Request |                        |
          1|--------------->|                        |
           |                |    Relay the Offline   |
           |                |        Request         |
           |               2|------to CP via Si----->|
           |                |                        |
           |                |    Send the Offline    |
           |                |        Response        |
           |               3|<-----to UP via Si------|
           |Offline Response|                        |
          4|<---------------|                        |
           |                |     Session Delete     |
           |                |        Request         |
           |                |<--------via Ci---------|
           |                |     Session Delete     |
           |                |       Response         |
           |                |---------via Ci-------->|
           |                |                        |
              Figure 12: Deleting a Subscriber Session

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.

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.

Subscriber Session Events Report

                    UP                       CP
                    | Statistic/Detect Report|
                    |---------via Ci-------->|
                    |                        |
                      Figure 13: Events Report

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.

S-CUSP Call Flows

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.

S-CUSP messages are described in this document using Routing Backus Naur Form (RBNF) as defined in RFC5511.

IPoE

DHCPv4 Access

The following sequence (Figure 14) shows detailed procedures for DHCPv4 access.

    RG              UP                       CP             AAA
    | DHCP Discovery|                        |               |
   1|-------------->|                        |               |
    |               |Relay the DHCP Discovery|               |
    |              2|-----to CP via Si------>|      AAA      |
    |               |                        |    Req/Rep    |
    |               |                       3|<------------->|
    |               |  Send the DHCP Offer   |               |
    |              4|<----to UP via Si-------|               |
    |  DHCP Offer   |                        |               |
   5|<--------------|                        |               |
    |  DHCP Request |                        |               |
   6|-------------->|                        |               |
    |               | Relay the DHCP Request |               |
    |              7|-----to CP via Si------>|               |
    |               |                        |               |
    |               |  Create Subscriber     |               |
    |               |   Session Request      |               |
    |              8|<--------via Ci---------|               |
    |               |  Create Subscriber     |               |
    |               |   Session Response     |               |
    |              9|---------via Ci-------->|               |
    |               |                        |   Accounting  |
    |               |                      10|<------------->|
    |               |  Send DHCP ACK         |               |
    |             11|<----to UP via Si-------|               |
    |               |                        |               |
    |  DHCP ACK     |                        |               |
  12|<--------------|                        |               |
    |               |                        |               |
                      Figure 14: DHCPv4 Access

S-CUSP implements steps 8 and 9.

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.

The format of the Update_Request message is shown as follows using RBNF:

<Update_Request Message> ::= <Common Header>

                 <Basic Subscriber TLV>
                 <IPv4 Subscriber TLV>
                 <IPv4 Routing TLV>
                 [<Subscriber Policy TLV>]

The UP will reply with an Update_Response message. The format of the Update_Response message is as follows:

<Update_Response Message> ::= <Common Header>

                <Update Response TLV>
                [<Subscriber CGN Port Range TLV>]

DHCPv6 Access

The following sequence (Figure 15) shows detailed procedures for DHCPv6 access.

    RG              UP                       CP             AAA
    |  Solicit      |                        |               |
   1|-------------->|                        |               |
    |               |  Relay the Solicit     |               |
    |              2|-----to CP via Si------>|      AAA      |
    |               |                        |    Req/Rep    |
    |               |                       3|<------------->|
    |               |  Send the Advertise    |               |
    |              4|<----to UP via Si-------|               |
    |  Advertise    |                        |               |
   5|<--------------|                        |               |
    |               |                        |               |
    |  Request      |                        |               |
   6|-------------->|                        |               |
    |               |  Relay the Request     |               |
    |              7|-----to CP via Si------>|               |
    |               |                        |               |
    |               |  Create Subscriber     |               |
    |               |   Session Request      |               |
    |              8|<--------via Ci-------->|               |
    |               |                        |               |
    |               |  Create Subscriber     |               |
    |               |   Session Response     |               |
    |              9|---------via Ci-------->|               |
    |               |                        |   Accounting  |
    |               |                      10|<------------->|
    |               |  Send Reply            |               |
    |             11|<----to UP via Si-------|               |
    |  Reply        |                        |               |
  12|<--------------|                        |               |
    |               |                        |               |
                      Figure 15: DHCPv6 Access

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).

The format of the Update_Request message is as follows:

<Update_Request Message> ::= <Common Header>

                 <Basic Subscriber TLV>
                 <IPv6 Subscriber TLV>
                 <IPv6 Routing TLV>
                 [<Subscriber Policy TLV>]

The UP will reply with an Update_Response message (step 9). The format of the Update_Response message is as follows:

<Update_Response Message> ::= <Common Header>

                <Update Response TLV>

IPv6 Stateless Address Autoconfiguration (SLAAC) Access

The following flow (Figure 16) shows the IPv6 SLAAC access process.

    RG              UP                       CP             AAA
    |      RS       |                        |               |
   1|-------------->|                        |               |
    |               |  Relay the Router      |               |
    |               |    Solicit (RS)        |               |
    |              2|-----to CP via Si------>|      AAA      |
    |               |                        |    Req/Rep    |
    |               |                       3|<------------->|
    |               |  Create Subscriber     |               |
    |               |   Session Request      |               |
    |              4|<--------via Ci---------|               |
    |               |                        |               |
    |               |  Create Subscriber     |               |
    |               |   Session Response     |               |
    |              5|---------via Ci-------->|               |
    |               |                        |               |
    |               |  Send Router Advertise |               |
    |               |         (RA)           |               |
    |              6|<----to UP via Si-------|               |
    |      RA       |                        |               |
   7|<--------------|                        |               |
    |               |                        |               |
    |      NS       |                        |               |
   8|-------------->|                        |               |
    |               |  Relay the Neighbor    |               |
    |               |     Solicit (NS)       |               |
    |              9|-----to CP via Si------>|               |
    |               |                        |   Accounting  |
    |               |                      10|<------------->|
    |               |  Send a Neighbor       |               |
    |               |     Advertise (NA)     |               |
    |             11|<----to UP via Si-------|               |
    |      NA       |                        |               |
  12|<--------------|                        |               |
    |               |                        |               |
                    Figure 16: IPv6 SLAAC Access

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.

This is achieved by sending an Update_Request message to the UP (step 4).

The format of the Update_Request message is as follows:

<Update_Request Message> ::= <Common Header>

                 <Basic Subscriber TLV>
                 <IPv6 Subscriber TLV>
                 <IPv6 Routing TLV>
                 [<Subscriber Policy TLV>]

The UP will reply with an Update_Response message (step 5). The format of the Update_Response message is as follows:

<Update_Response Message> ::= <Common Header>

                <Update Response TLV>

DHCPv6 and SLAAC Access

The following call flow (Figure 17) shows the DHCP IPv6 and SLAAC access process.

    RG              UP                       CP             AAA
    |      RS       |                        |               |
   1|-------------->|                        |               |
    |               |  Relay the RS          |               |
    |              2|-----to CP via Si------>|      AAA      |
    |               |                        |    Req/Rep    |
    |               |                       3|<------------->|
    |               |  Create Subscriber     |               |
    |               |   Session Request      |               |
    |              4|<--------via Ci---------|               |
    |               |                        |               |
    |               |  Create Subscriber     |               |
    |               |   Session Response     |               |
    |              5|---------via Ci-------->|               |
    |               |                        |               |
    |               |  Send RA               |               |
    |              6|<----to UP via Si-------|               |
    |      RA       |                        |               |
   7|<--------------|                        |               |
    |               |                        |               |
    |DHCPv6 Solicit |                        |               |
   8|-------------->|                        |               |
    |               |  Relay DHCPv6 Solicit  |               |
    |              9|-----to CP via Si------>|               |
    |               |                        |               |
    |               |  Update Subscriber     |               |
    |               |   Session Request      |               |
    |             10|<--------via Ci---------|               |
    |               |                        |               |
    |               |  Update Subscriber     |               |
    |               |   Session Response     |               |
    |             11|---------via Ci-------->|               |
    |               |                        |   Accounting  |
    |               |                      12|<------------->|
    |               |  Send DHCPv6 Reply     |               |
    |             13|<----to UP via Si-------|               |
    |               |                        |               |
    | DHCPv6 Reply  |                        |               |
  14|<--------------|                        |               |
    |               |                        |               |
                 Figure 17: DHCPv6 and SLAAC Access

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).

<Update_Request Message> ::= <Common Header>

                 <Basic Subscriber TLV>
                 <IPv6 Subscriber TLV>
                 <IPv6 Routing TLV>
                 [<Subscriber Policy TLV>]

The UP will reply with an Update_Response message (step 5). The format of the Update_Response is as follows:

<Update_Response Message> ::= <Common Header>

                <Update Response TLV>

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).

The format of the Update_Request message is as follows:

<Update_Request Message> ::= <Common Header>

                 <Basic Subscriber TLV>
                 <IPv6 Subscriber TLV>
                 <IPv6 Routing TLV>
                 [<Subscriber Policy TLV>]

The UP will reply with an Update_Response message (step 11). The format of the Update_Response is as follows:

<Update_Response Message> ::= <Common Header>

                <Update Response TLV>

DHCP Dual-Stack Access

The following sequence (Figure 18) is a combination of DHCP IPv4 and DHCP IPv6 access processes.

    RG              UP                       CP             AAA
    | DHCP Discovery|                        |               |
   1|-------------->|                        |               |
    |               |Relay the DHCP Discovery|               |
    |              2|-----to CP via Si------>|     AAA       |
    |               |                        |   Req/Resp    |
    |               |                       3|<------------->|
    |               |  Send the DHCP Offer   |               |
    |              4|<----to UP via Si-------|               |
    |  DHCP Offer   |                        |               |
   5|<--------------|                        |               |
    |  DHCP Request |                        |               |
   6|-------------->|                        |               |
    |               |  Relay the DHCP Request|               |
    |              7|-----to CP via Si------>|               |
    |               |                        |               |
    |               |  Create Subscriber     |               |
    |               |   Session Request      |               |
    |              8|<--------via Ci-------->|               |
    |               |  Create Subscriber     |               |
    |               |   Session Response     |               |
    |              9|---------via Ci-------->|               |
    |               |                        |   Accounting  |
    |               |                      10|<------------->|
    |               |  Send DHCP ACK         |               |
    |             11|<----to UP via Si-------|               |
    |  DHCP ACK     |                        |               |
  12|<--------------|                        |               |
    |      RS       |                        |               |
  13|-------------->|                        |               |
    |               |  Relay the RS          |               |
    |             14|-----to CP via Si------>|      AAA      |
    |               |                        |    Req/Rep    |
    |               |                      15|<------------->|
    |               |  Create Subscriber     |               |
    |               |   Session Request      |               |
    |             16|<--------via Ci---------|               |
    |               |  Create Subscriber     |               |
    |               |   Session Response     |               |
    |             17|---------via Ci-------->|               |
    |               |                        |               |
    |               |  Send the RA           |               |
    |             18|<----to UP via Si-------|               |
    |      RA       |                        |               |
  19|<--------------|                        |               |
    |DHCPv6 Solicit |                        |               |
  20|-------------->|                        |               |
    |               |  Relay DHCPv6 Solicit  |               |
    |             21|-----to CP via Si------>|               |
    |               |                        |               |
    |               |  Update Subscriber     |               |
    |               |   Session Request      |               |
    |             22|<--------via Ci---------|               |
    |               |  Update Subscriber     |               |
    |               |   Session Response     |               |
    |             23|---------via Ci-------->|               |
    |               |                        |   Accounting  |
    |               |                      24|<------------->|
    |               |  Send DHCPv6 Reply     |               |
    |             25|<----to UP via Si-------|               |
    | DHCPv6 Reply  |                        |               |
  26|<--------------|                        |               |
    |               |                        |               |
                 Figure 18: DHCP Dual-Stack Access

The DHCP dual-stack access includes three sets of Update_Request/ Update_Response exchanges to create/update a DHCPv4/v6 subscriber session.

(1) Create a DHCPv4 session (steps 8 and 9):

  <Update_Request Message> ::= <Common Header>
                    <Basic Subscriber TLV>
                    <IPv4 Subscriber TLV>
                    <IPv4 Routing TLV>
                    [<Subscriber Policy TLV>]
  <Update_Response Message> ::= <Common Header>
                   <Update Response TLV>
                   [<Subscriber CGN Port Range TLV>]

(2) Create a DHCPv6 session (steps 16 and 17):

  <Update_Request Message> ::= <Common Header>
                    <Basic Subscriber TLV>
                    <IPv6 Subscriber TLV>
                    <IPv6 Routing TLV>
                    [<Subscriber Policy TLV>]
  <Update_Response Message> ::= <Common Header>
                   <Update Response TLV>

(3) Update DHCPv6 session (steps 22 and 23):

  <Update_Request Message> ::= <Common Header>
                    <Basic Subscriber TLV>
                    <IPv6 Subscriber TLV>
                    <IPv6 Routing TLV>
                    [<Subscriber Policy TLV>]
  <Update_Response Message> ::= <Common Header>
                   <Update Response TLV>

L2 Static Subscriber Access

L2 static subscriber access processes are as follows:

    RG              UP                      CP              AAA
    |               |    Static Subscriber   |               |
    |               |     Detection Req.     |               |
    |              1|<-----to UP via Ci------|               |
    |               |    Static Subscriber   |               |
    |               |     Detection Rep.     |               |
    |              2|------to UP via Ci----->|               |
    |  ARP/ND(REQ)  |                        |               |
 3.1|<--------------|                        |               |
    |  ARP/ND(ACK)  |                        |               |
 3.2|-------------->|                        |               |
    |               |  Relay the ARP/ND      |               |
    |            3.3|-----to CP via Si------>|       AAA     |
    |               |                        |    Req/Rep    |
    |               |                     3.4|<------------->|
    |               |  Create Subscriber     |               |
    |               |   Session Request      |               |
    |            3.5|<--------via Ci---------|               |
    |               |  Create Subscriber     |               |
    |               |   Session Response     |               |
    |            3.6|---------via Ci-------->|               |
    |  ARP/ND(REQ)  |                        |               |
 4.1|-------------->|                        |               |
    |               |  Relay the ARP/ND      |               |
    |            4.2|-----to CP via Si------>|      AAA      |
    |               |                        |    Req/Rep    |
    |               |                     4.3|<------------->|
    |               |  Create Subscriber     |               |
    |               |   Session Request      |               |
    |            4.4|<--------via Ci---------|               |
    |               |  Create Subscriber     |               |
    |               |   Session Response     |               |
    |            4.5|---------via Ci-------->|               |
    |  ARP/ND(ACK)  |                        |               |
 4.6|<--------------|                        |               |
    |   IP Traffic  |                        |               |
 5.1|-------------->|                        |               |
    |               |  Relay the IP Traffic  |               |
    |            5.2|-----to CP via Si------>|      AAA      |
    |               |                        |    Req/Rep    |
    |               |                     5.3|<------------->|
    |               |  Create Subscriber     |               |
    |               |   Session Request      |               |
    |            5.4|<--------via Ci-------->|               |
    |               |  Create Subscriber     |               |
    |               |   Session Response     |               |
    |            5.5|---------via Ci-------->|               |
    |  ARP/ND(REQ)  |                        |               |
 5.6|<--------------|                        |               |
    |  ARP/ND(ACK)  |                        |               |
 5.7|-------------->|                        |               |
    |               |                        |               |
               Figure 19: L2 Static Subscriber Access

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:

<Update_Request Message> ::= <Common Header>

                 <IPv4 Static Subscriber Detect TLVs>
                 <IPv6 Static Subscriber Detect TLVs>

<Update_Response Message> ::= <Common Header>

                <Update Response TLV>

For L2 static subscriber access, there are three ways to trigger the access process:

(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.

(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.

(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.

From a subscriber session point of view, the procedures and the message formats for the three cases above are the same, as follows.

IPv4 Case:

<Update_Request Message> ::= <Common Header>

                 <Basic Subscriber TLV>
                 <IPv4 Subscriber TLV>
                 <IPv4 Routing TLV>
                 [<Subscriber Policy TLV>]

<Update_Response Message> ::= <Common Header>

                <Update Response TLV>
                [<Subscriber CGN Port Range TLV>]

IPv6 Case:

<Update_Request Message> ::= <Common Header>

                 <Basic Subscriber TLV>
                 <IPv6 Subscriber TLV>
                 <IPv6 Routing TLV>
                 [<Subscriber Policy TLV>]

<Update_Response Message> ::= <Common Header>

                <Update Response TLV>

PPPoE

IPv4 PPPoE Access

Figure 20 shows the IPv4 PPPoE access call flow.

    RG              UP                      CP              AAA
    |  PPPoE Disc   |        PPPoE Disc      |               |
   1|<------------->|<---------via Si------->|               |
    |               |                        |               |
    |  PPP LCP      |        PPP LCP         |               |
   2|<------------->|<---------via Si------->|               |
    |               |                        |      AAA      |
    |  PPP PAP/CHAP |        PPP PAP/CHAP    |    Req/Rep    |
   3|<------------->|<---------via Si------->|<------------->|
    |               |                        |               |
    |  PPP IPCP     |        PPP IPCP        |               |
   4|<------------->|<---------via Si------->|               |
    |               |                        |               |
    |               |  Create Subscriber     |               |
    |               |   Session Request      |               |
    |              5|<--------via Ci---------|               |
    |               |  Create Subscriber     |               |
    |               |   Session Response     |               |
    |              6|---------via Ci-------->|               |
    |               |                        |   Accounting  |
    |               |                       7|<------------->|
    |               |                        |               |
                    Figure 20: IPv4 PPPoE Access

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.

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:

<Update_Request Message> ::= <Common Header>

                 <Basic Subscriber TLV>
                 <PPP Subscriber TLV>
                 <IPv4 Subscriber TLV>
                 <IPv4 Routing TLV>
                 [<Subscriber Policy TLV>]

<Update_Response Message> ::= <Common Header>

                <Update Response TLV>
                [<Subscriber CGN Port Range TLV>]

IPv6 PPPoE Access

Figure 21 describes the IPv6 PPPoE access call flow.

    RG              UP                      CP              AAA
    |  PPPoE Disc   |        PPPoE Disc      |               |
   1|<------------->|<--------via Si-------->|               |
    |               |                        |               |
    |  PPP LCP      |        PPP LCP         |               |
   2|<------------->|<---------via Si------->|               |
    |               |                        |      AAA      |
    |  PPP PAP/CHAP |        PPP PAP/CHAP    |    Req/Rep    |
   3|<------------->|<---------via Si------->|<------------->|
    |               |                        |               |
    |  PPP IP6CP    |        PPP IP6CP       |               |
   4|<------------->|<---------via Si------->|               |
    |               |                        |               |
    |               |  Create Subscriber     |               |
    |               |   Session Request      |               |
    |              5|<--------via Ci---------|               |
    |               |  Create Subscriber     |               |
    |               |   Session Response     |               |
    |              6|---------via Ci-------->|               |
    |               |                        |               |
    | ND Negotiation|        ND Negotiation  |               |
   7|<------------->|<---------via Si------->|               |
    |               |                        |               |
    |               |  Update Subscriber     |               |
    |               |   Session Request      |               |
    |              8|<--------via Ci---------|               |
    |               |  Update Subscriber     |               |
    |               |   Session Response     |               |
    |              9|---------via Ci-------->|               |
    |               |                        |   Accounting  |
    |               |                      10|<------------->|
    |    DHCPv6     |        DHCPv6          |               |
    |  Negotiation  |      Negotiation       |               |
  7'|<------------->|<---------via Si------->|               |
    |               |                        |               |
    |               |  Update Subscriber     |               |
    |               |   Session Request      |               |
    |             8'|<---------via Ci--------|               |
    |               |  Update Subscriber     |               |
    |               |   Session Response     |               |
    |             9'|---------via Ci-------->|               |
    |               |                        |   Accounting  |
    |               |                     10'|<------------->|
    |               |                        |               |
                    Figure 21: IPv6 PPPoE Access

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.

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:

<Update_Request Message> ::= <Common Header>

                 <Basic Subscriber TLV>
                 <PPP Subscriber TLV>
                 <IPv6 Subscriber TLV>
                 <IPv6 Routing TLV>
                 [<Subscriber Policy TLV>]

<Update_Response Message> ::= <Common Header>

                <Update Response TLV>

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:

<Update_Request Message> ::= <Common Header>

                 <Basic Subscriber TLV>
                 <PPP Subscriber TLV>
                 <IPv6 Subscriber TLV>
                 <IPv6 Routing TLV>
                 [<Subscriber Policy TLV>]

<Update_Response Message> ::= <Common Header>

                <Update Response TLV>

PPPoE Dual-Stack Access

Figure 22 shows a combination of IPv4 and IPv6 PPPoE access call flows.

    RG              UP                      CP              AAA
    |PPPoE Discovery|      PPPoE Discovery   |               |
   1|<------------->|<---------via Si------->|               |
    |               |                        |               |
    |  PPP LCP      |        PPP LCP         |               |
   2|<------------->|<---------via Si------->|               |
    |               |                        |      AAA      |
    |  PPP PAP/CHAP |        PPP PAP/CHAP    |    Req/Rep    |
   3|<------------->|<---------via Si------->|<------------->|
    |               |                        |               |
    |  PPP IPCP     |        PPP IPCP        |               |
   4|<------------->|<---------via Si------->|               |
    |               |                        |               |
    |               |  Create v4 Subscriber  |               |
    |               |   Session Request      |               |
    |              5|<--------via Ci---------|               |
    |               |  Create v4 Subscriber  |               |
    |               |   Session Response     |               |
    |              6|---------via Ci-------->|               |
    |               |                        |   Accounting  |
    |               |                       7|<------------->|
    |  PPP IP6CP    |        PPP IP6CP       |               |
  4'|<------------->|<---------via Si------->|               |
    |               |                        |               |
    |               |  Create V6 Subscriber  |               |
    |               |   Session Request      |               |
    |             5'|<--------via Ci---------|               |
    |               |  Create v6 Subscriber  |               |
    |               |   Session Response     |               |
    |             6'|---------via Ci-------->|               |
    |               |                        |               |
    | ND Negotiation|     ND Negotiation     |               |
   8|<------------->|<---------via Si------->|               |
    |               |                        |               |
    |               |  Update v6 Subscriber  |               |
    |               |   Session Request      |               |
    |              9|<---------via Ci--------|               |
    |               |  Update v6 Subscriber  |               |
    |               |   Session Response     |               |
    |             10|---------via Ci-------->|               |
    |               |                        |   Accounting  |
    |               |                      7'|<------------->|
    |    DHCPv6     |        DHCPv6          |               |
    |  Negotiation  |      Negotiation       |               |
  8'|<------------->|<---------via Si------->|               |
    |               |                        |               |
    |               |  Update v6 Subscriber  |               |
    |               |   Session Request      |               |
    |             9'|<--------via Ci---------|               |
    |               |  Update v6 Subscriber  |               |
    |               |   Session Response     |               |
    |            10'|---------via Ci-------->|               |
    |               |                        |   Accounting  |
    |               |                      7"|<------------->|
    |               |                        |               |
                 Figure 22: PPPoE Dual-Stack Access

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:

(1) Create an IPv4 PPPoE subscriber session (steps 5-6):

  <Update_Request Message> ::= <Common Header>
                    <Basic Subscriber TLV>
                    <PPP Subscriber TLV>
                    <IPv4 Subscriber TLV>
                    <IPv4 Routing TLV>
                    [<Subscriber Policy TLV>]
  <Update_Response Message> ::= <Common Header>
                   <Update Response TLV>
                   [<Subscriber CGN Port Range TLV>]

(2) Create an IPv6 PPPoE subscriber session (steps 5'-6'):

  <Update_Request Message> ::= <Common Header>
                    <Basic Subscriber TLV>
                    <PPP Subscriber TLV>
                    <IPv6 Subscriber TLV>
                    <IPv6 Routing TLV>
                    [<Subscriber Policy TLV>]
  <Update_Response Message> ::= <Common Header>
                   <Update Response TLV>

(3) Update the IPv6 PPPoE subscriber session (steps 9-10 and 9'-

    10'):
  <Update_Request Message> ::= <Common Header>
                    <Basic Subscriber TLV>
                    <PPP Subscriber TLV>
                    <IPv6 Subscriber TLV>
                    <IPv6 Routing TLV>
                    [<Subscriber Policy TLV>]
  <Update_Response Message> ::= <Common Header>
                   <Update Response TLV>

WLAN Access

Figure 23 shows the WLAN access call flow.

    RG            UP              CP         AAA      Web Server
    |    DHCP     |                |          |           |
    |  Discovery  |                |          |           |
   1|------------>|                |          |           |
    |             | DHCP Discovery |          |           |
    |            2|-----via Si---->|   AAA    |           |
    |             |   DHCP Offer   |<-------->|           |
    |            3|<----via Si-----|          |           |
    |  DHCP Offer |                |          |           |
   4|<------------|                |          |           |
    | DHCP Request|                |          |           |
   5|------------>|                |          |           |
    |             |  DHCP Request  |          |           |
    |            6|-----via Si---->|          |           |
    |             |                |          |           |
    |             | Create Session |          |           |
    |             |    Request     |          |           |
    |            7|<----via Ci-----|          |           |
    |             | Create Session |          |           |
    |             |    Response    |          |           |
    |            8|----via Ci----->|          |           |
    |             |                |          |           |
    |             |  DHCP ACK      |          |           |
    |            9|<----via Si-----|          |           |
    |  DHCP ACK   |                |          |           |
  10|<------------|                |          |           |
    |             |                |          |           |
    | Subscriber  |                |          |           |
    | HTTP Traffic|                |          |           |
  11|------------>|-->             |          |           |
    |             |  | Web URL     |          |           |
    |  Traffic    |  | Redirect    |          |           |
    | Redirection |  |             |          |           |
  12|<------------|<-+             |          |           |
    |                                                     |
  13|-----------------Redirect to Web Server------------->|
    |                                                     |
  14|<----------------Push HTTP Log-in Page---------------|
    |                                                     |
  15|-----------------User Authentication---------------->|
    |                                                     |
    |             |                |  Portal Interchange  |
    |             |              16|<-------------------->|
    |             |                |                      |
    |             |                |   AAA    |           |
    |             |                |  Req/Rep |           |
    |             |              17|<-------->|           |
    |             |                |          |           |
    |             | Update Session |          |           |
    |             |    Request     |          |           |
    |           18|<----via Ci-----|          |           |
    |             | Update Session |          |           |
    |             |    Response    |          |           |
    |           19|-----via Ci---->|          |           |
    |             |                |          |           |
                       Figure 23: WLAN Access

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:

IPv4 Case:

<Update_Request Message> ::= <Common Header>

                 <Basic Subscriber TLV>
                 <IPv4 Subscriber TLV>
                 <IPv4 Routing TLV>
                 [<Subscriber Policy TLV>]

<Update_Response Message> ::= <Common Header>

                <Update Response TLV>
                [<Subscriber CGN Port Range TLV>]

IPv6 Case:

<Update_Request Message> ::= <Common Header>

                 <Basic Subscriber TLV>
                 <IPv6 Subscriber TLV>
                 <IPv6 Routing TLV>
                 [<Subscriber Policy TLV>]

<Update_Response Message> ::= <Common Header>

                <Update Response TLV>

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:

IPv4 Case:

<Update_Request Message> ::= <Common Header>

                 <Basic Subscriber TLV>
                 <IPv4 Subscriber TLV>
                 <IPv4 Routing TLV>
                 [<Subscriber Policy TLV>]

<Update_Response Message> ::= <Common Header>

                <Update Response TLV>
                [<Subscriber CGN Port Range TLV>]

IPv6 Case:

<Update_Request Message> ::= <Common Header>

                 <Basic Subscriber TLV>
                 <IPv6 Subscriber TLV>
                 <IPv6 Routing TLV>
                 [<Subscriber Policy TLV>]

<Update_Response Message> ::= <Common Header>

                <Update Response TLV>

L2TP

L2TP LAC Access

    RG         UP(LAC)      CP(LAC)     AAA        LNS
    |    PPPoE   |    PPPoE     |        |          |
    |  Discovery |   Discovery  |        |          |
   1|<---------->|<---via Si--->|        |          |
    |            |              |        |          |
    |  PPP LCP   |   PPP LCP    |        |          |
   2|<---------->|<---via Si--->|        |          |
    |            |              |   AAA  |          |
    |PPP PAP/CHAP| PPP PAP/CHAP | Req/Rep|          |
   3|<---------->|<---via Si--->|<------>|          |
    |            |              |        |          |
    |  PPP IPCP  |  PPP IPCP    |        |          |
   4|<---------->|<---via Si--->|        |          |
    |            |              |        |          |
    |            | L2TP Tunnel  |        |          |
    |            | Negotiation  |        |          |
    |            |   SCCRQ/     |        |          |
    |            |   SCCRP/     |        |          |
    |            |   SCCCN      |        |          |
    |           5|<---via Si--->|        |          |
    |            | /\                               |
    |            | || Forward                       |
    |            | \/                               |
    |            |<-----------via Routing---------->|
    |            |                                  |
    |            | L2TP Session |        |          |
    |            | Negotiation  |        |          |
    |            |    ICRQ/     |        |          |
    |            |    ICRP/     |        |          |
    |            |    ICCN      |        |          |
    |           6|<---via Si--->|        |          |
    |            | /\                               |
    |            | || Forward                       |
    |            | \/                               |
    |            |<-----------via Routing---------->|
    |            |                                  |
    |            |    Create    |         |         |
    |            |  Subscriber  |         |         |
    |            |  Session Req |         |         |
    |           7|<---via Ci----|         |         |
    |            |    Create    |         |         |
    |            |  Subscriber  |         |         |
    |            |  Session Rep |         |         |
    |           8|----via Ci--->|         |         |
    |            |              |         |         |
    |                                               |
    |         PAP/CHAP (Triggered by LNS)           |
   9|<-----------------via Routing----------------->|
    |                                               |
                     Figure 24: L2TP LAC Access

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:

<Update_Request Message> ::= <Common Header>

                 <Basic Subscriber TLV>
                 <L2TP-LAC Subscriber TLV>
                 <L2TP-LAC Tunnel TLV>

<Update_Response Message> ::= <Common Header>

                <Update Response TLV>

L2TP LNS IPv4 Access

    RG          LAC            UP(LNS)  AAA      CP(LNS)
    |    PPPoE   |              |        |          |
    |  Discovery |              |        |          |
   1|<---------->|              |        |          |
    |            |              |        |          |
    |  PPP LCP   |              |        |          |
   2|<---------->|                       |          |
    |            |          AAA          |          |
    |PPP PAP/CHAP|        Req/Rep        |          |
   3|<---------->|<--------------------->|          |
    |            |                                  |
    |            | L2TP Tunnel  |     L2TP Tunnel   |
    |            | Negotiation  |     Negotiation   |
    |            |   SCCRQ/     |       SCCRQ/      |
    |            |   SCCRP/     |       SCCRP/      |
    |            |   SCCCN      |       SCCCN       |
    |           4|<------------>|<------via Si----->|
    |            |              |                   |
    |            | L2TP Session |     L2TP Session  |
    |            | Negotiation  |     Negotiation   |
    |            |    ICRQ/     |        ICRQ/      |
    |            |    ICRP/     |        ICRP/      |
    |            |    ICCN      |        ICCN       |
    |           5|<------------>|<------via Si----->|
    |            |              |                   |
    |            |              | Create Subscriber |
    |            |              | Session Request   |
    |            |             6|<-----via Ci-------|
    |            |              | Create Subscriber |
    |            |              | Session Response  |
    |            |             7|------via Ci------>|
    |                                               |
    |          PAP/CHAP (Triggered by LNS)          |
   8|<--------------------------------------------->|
    |                                               |
    |            |              |        |    AAA   |
    |            |              |        |  Req/Rep |
    |            |              |       9|<-------->|
    |            |              |                   |
    |                                               |
    |                   PPP IPCP                    |
  10|<--------------------------------------------->|
    |                                               |
    |            |              | Update Subscriber |
    |            |              | Session Request   |
    |            |            11|<-----via Ci-------|
    |            |              | Update Subscriber |
    |            |              | Session Response  |
    |            |            12|------via Ci------>|
    |            |              |                   |
                  Figure 25: L2TP LNS IPv4 Access

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:

<Update_Request Message> ::= <Common Header>

                 <L2TP-LNS Subscriber TLV>
                 <Basic Subscriber TLV>
                 <PPP Subscriber TLV>
                 <IPv4 Subscriber TLV>
                 <IPv4 Routing TLV>
                 <L2TP-LNS Tunnel TLV>
                 [<Subscriber Policy TLV>]

<Update_Response Message> ::= <Common Header>

                <Update Response TLV>
                [<Subscriber CGN Port Range TLV>]

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:

<Update_Request Message> ::= <Common Header>

                 <L2TP-LNS Subscriber TLV>
                 <Basic Subscriber TLV>
                 <PPP Subscriber TLV>
                 <IPv4 Subscriber TLV>
                 <IPv4 Routing TLV>
                 <L2TP-LNS Tunnel TLV>
                 [<Subscriber Policy TLV>]

<Update_Response Message> ::= <Common Header>

                <Update Response TLV>
                [<Subscriber CGN Port Range TLV>]

L2TP LNS IPv6 Access

    RG          LAC          UP(LNS)    AAA      CP(LNS)
    |    PPPoE   |              |        |          |
    |  Discovery |              |        |          |
   1|<---------->|              |        |          |
    |            |              |        |          |
    |  PPP LCP   |              |        |          |
   2|<---------->|                       |          |
    |            |          AAA          |          |
    |PPP PAP/CHAP|        Req/Rep        |          |
   3|<---------->|<--------------------->|          |
    |            |                                  |
    |            | L2TP Tunnel  |     L2TP Tunnel   |
    |            | Negotiation  |     Negotiation   |
    |            |   SCCRQ/     |       SCCRQ/      |
    |            |   SCCRP/     |       SCCRP/      |
    |            |   SCCCN      |       SCCCN       |
    |           4|<------------>|<------via Si----->|
    |            |              |                   |
    |            | L2TP Session |     L2TP Session  |
    |            | Negotiation  |     Negotiation   |
    |            |    ICRQ/     |        ICRQ/      |
    |            |    ICRP/     |        ICRP/      |
    |            |    ICCN      |        ICCN       |
    |           5|<------------>|<------via Si----->|
    |            |              |                   |
    |            |              | Create Subscriber |
    |            |              | Session Request   |
    |            |             6|<-----via Ci-------|
    |            |              | Create Subscriber |
    |            |              | Session Response  |
    |            |             7|------via Ci------>|
    |                                               |
    |          PAP/CHAP (Triggered by LNS)          |
   8|<--------------------------------------------->|
    |                                               |
    |            |              |        |    AAA   |
    |            |              |        |  Req/Rep |
    |            |              |       9|<-------->|
    |            |              |        |          |
    |                                               |
    |                   PPP IP6CP                   |
  10|<--------------------------------------------->|
    |                                               |
    |            |              | Update Subscriber |
    |            |              | Session Request   |
    |            |            11|<-----via Ci-------|
    |            |              | Update Subscriber |
    |            |              | Session Response  |
    |            |            12|------via Ci------>|
    |                           |                   |
    |       ND Negotiation      |   ND Negotiation  |
  13|<------------------------->|<-----via Si------>|
    |                           |                   |
    |            |              | Update Subscriber |
    |            |              | Session Request   |
    |            |            14|<-----via Ci-------|
    |            |              | Update Subscriber |
    |            |              | Session Response  |
    |            |            15|------via Ci------>|
    |            |              |                   |
                  Figure 26: L2TP LNS IPv6 Access

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:

<Update_Request Message> ::= <Common Header>

                 <L2TP-LNS Subscriber TLV>
                 <Basic Subscriber TLV>
                 <PPP Subscriber TLV>
                 <IPv6 Subscriber TLV>
                 <IPv6 Routing TLV>
                 <L2TP-LNS Tunnel TLV>
                 [<Subscriber Policy TLV>]

<Update_Response Message> ::= <Common Header>

                <Update Response TLV>

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:

<Update_Request Message> ::= <Common Header>

                 <L2TP-LNS Subscriber TLV>
                 <Basic Subscriber TLV>
                 <PPP Subscriber TLV>
                 <IPv6 Subscriber TLV>
                 <IPv6 Routing TLV>
                 <L2TP-LNS Tunnel TLV>
                 [<Subscriber Policy TLV>]

<Update_Response Message> ::= <Common Header>

                <Update Response TLV>

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:

<Update_Request Message> ::= <Common Header>

                 <L2TP-LAC Subscriber TLV>
                 <Basic Subscriber TLV>
                 <PPP Subscriber TLV>
                 <IPv6 Subscriber TLV>
                 <IPv6 Routing TLV>
                 <L2TP-LNS Tunnel TLV>
                 [<Subscriber Policy TLV>]

<Update_Response Message> ::= <Common Header>

                <Update Response TLV>

CGN (Carrier Grade NAT)

      RG              UP                       CP             AAA
      |               |  Public Address Block  |               |
      |               |   Allocation Request   |               |
      |              1|<--------via Ci-------->|               |
      |               |  Public Address Block  |               |
      |               |   Allocation Reply     |               |
      |              2|---------via Ci-------->|               |
      |   Subscriber  |                        |               |
      | Access Request|        Subscriber      |               |
     3|-------------->|      Access Request    |               |
      |              4|----------via Si------->|               |
      |               |                        |      AAA      |
      |               |       Subscriber       |    Req/Rep    |
      |  Subscriber   |      Access Reply     5|<------------->|
      | Access Reply 6|<---------via Si--------|               |
     7|<--------------|                        |               |
      |               |  Create Subscriber     |               |
      |               |   Session Request      |               |
      |              8|<--------via Ci---------|               |
      |               |                        |               |
      |               |  Create Subscriber     |               |
      |               |   Session Response     |               |
      |               | (with NAT information) |               |
      |              9|---------via Ci-------->|               |
      |               |                        |   Accounting  |
      |               |                        |  with source  |
      |               |                        |   information |
      |               |                      10|<------------->|
      |               |                        |  Public IP +  |
      |               |                        |  Port Range   |
      |               |                        |  to Private IP|
      |               |                        |  Mapping      |
      |               |                        |               |
                       Figure 27: CGN Access

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:

<Addr_Allocation_Req Message> ::= <Common Header>

                 <Address Allocation Request TLV>

<Addr_Allocation_Ack Message> ::= <Common Header>

                <Address Allocation Response TLV>

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.

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.

L3 Leased Line Access

Web Authentication

    RG            UP              CP         AAA      Web Server
    | User traffic|                |          |           |
   1|------------>|                |          |           |
    |             | User traffic   |          |           |
    |            2|-----via Si---->|    AAA   |           |
    |             |                |  Req/Rep |           |
    |             |               3|<-------->|           |
    |             | Create Session |          |           |
    |             |    Request     |          |           |
    |            4|<----via Ci-----|          |           |
    |             | Create Session |          |           |
    |             |    Response    |          |           |
    |            5|----via Ci----->|          |           |
    |             |                |          |           |
    | HTTP traffic|                |          |           |
   6|------------>|                |          |           |
    |             |                |          |           |
    | Redirect to |                |          |           |
    |   Web URL   |                |          |           |
   7|<------------|                |          |           |
    |             |                |          |           |
    |                                                     |
   8|-----------------Redirected to Web Server----------->|
    |                                                     |
   9|<----------------Push HTTP Log-in Page---------------|
    |                                                     |
  10|-----------------User Authentication---------------->|
    |                                                     |
    |             |                |  Portal Interchange  |
    |             |              11|<-------------------->|
    |             |                |                      |
    |             |                |   AAA    |           |
    |             |                |  Req/Rep |           |
    |             |              12|<-------->|           |
    |             |                |          |           |
    |             | Update Session |          |           |
    |             |    Request     |          |           |
    |           13|<----via Ci-----|          |           |
    |             | Update Session |          |           |
    |             |    Response    |          |           |
    |           14|----via Ci----->|          |           |
    |             |                |          |           |
     Figure 28: Web Authentication-Based L3 Leased Line Access

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:

IPv4 Case:

<Update_Request Message> ::= <Common Header>

                 <Basic Subscriber TLV>
                 <IPv4 Subscriber TLV>
                 <IPv4 Routing TLV>
                 [<Subscriber Policy TLV>]

<Update_Response Message> ::= <Common Header>

                <Update Response TLV>
                [<Subscriber CGN Port Range TLV>]

IPv6 Case:

<Update_Request Message> ::= <Common Header>

                 <Basic Subscriber TLV>
                 <IPv6 Subscriber TLV>
                 <IPv6 Routing TLV>
                 [<Subscriber Policy TLV>]

<Update_Response Message> ::= <Common Header>

                <Update Response TLV>

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:

IPv4 Case:

<Update_Request Message> ::= <Common Header>

                 <Basic Subscriber TLV>
                 <IPv4 Subscriber TLV>
                 <IPv4 Routing TLV>
                 [<Subscriber Policy TLV>]

<Update_Response Message> ::= <Common Header>

                <Update Response TLV>
                [<Subscriber CGN Port Range TLV>]

IPv6 Case:

<Update_Request Message> ::= <Common Header>

                 <Basic Subscriber TLV>
                 <IPv6 Subscriber TLV>
                 <IPv6 Routing TLV>
                 [<Subscriber Policy TLV>]

<Update_Response Message> ::= <Common Header>

                <Update Response TLV>

User Traffic Trigger

    RG            UP              CP         AAA
    |             |   L3 access    |          |
    |             |  control list  |          |
    |            1|<----via Ci-----|          |
    |    User     |                |          |
    |   traffic   |                |          |
   2|------------>|                |          |
    |             |  User traffic  |          |
    |            3|-----via Si---->|          |
    |             |                |   AAA    |
    |             |                |  Req/Rep |
    |             |               4|<-------->|
    |             |                |          |
    |             | Create Session |          |
    |             |    Request     |          |
    |            5|<----via Ci-----|          |
    |             | Create Session |          |
    |             |    Response    |          |
    |            6|----via Ci----->|          |
    |             |                |          |
      Figure 29: User Traffic Triggered L3 Leased Line Access

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:

IPv4 Case:

<Update_Request Message> ::= <Common Header>

                 <Basic Subscriber TLV>
                 <IPv4 Subscriber TLV>
                 <IPv4 Routing TLV>
                 [<Subscriber Policy TLV>]

<Update_Response Message> ::= <Common Header>

                <Update Response TLV>
                [<Subscriber CGN Port Range TLV>]

IPv6 Case:

<Update_Request Message> ::= <Common Header>

                 <Basic Subscriber TLV>
                 <IPv6 Subscriber TLV>
                 <IPv6 Routing TLV>
                 [<Subscriber Policy TLV>]

<Update_Response Message> ::= <Common Header>

                <Update Response TLV>

Multicast Service Access

          RG            UP              CP         AAA
          | User Access |  User Access   |   AAA    |
          |   Request   |    Request     |  Req/Rep |
         1|<----------->|<----via Si---->|<-------->|
          |             |                |          |
          |             | Create Session |          |
          |             |    Request     |          |
          |            2|<----via Ci---->|          |
          |             |                |          |
          |             | Create Session |          |
          |             |    Response    |          |
          |            3|----via Ci----->|          |
          |             |                |          |
          |  Multicast  |                |          |
          | negotiation |                |          |
         4|<----------->|                |          |
          |             |                |          |
                    Figure 30: Multicast Access

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:

IPv4 Case, there will be a Multicast-ProfileV4 sub-TLV present in the Subscriber Policy TLV:

<Update_Request Message> ::= <Common Header>

              <Basic Subscriber TLV>
              <IPv4 Subscriber TLV>
              <IPv4 Routing TLV>
              <Subscriber Policy TLV>

<Update_Response Message> ::= <Common Header>

             <Update Response TLV>
             [<Subscriber CGN Port Range TLV>]

IPv6 Case, there will be a Multicast-ProfileV6 sub-TLV present in the Subscriber Policy TLV:

<Update_Request Message> ::= <Common Header>

              <Basic Subscriber TLV>
              <IPv6 Subscriber TLV>
              <IPv6 Routing TLV>
              <Subscriber Policy TLV>

<Update_Response Message> ::= <Common Header>

             <Update Response TLV>

S-CUSP Message Formats

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 MUST trigger an Error message (see Section 6.7) or a Response message with an Error Information TLV (see Section 7.6).

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.

This section specifies the format of the common S-CUSP message header and lists the defined messages.

Network byte order is used for all multi-byte fields.

Common Message Header

   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         |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
              Figure 31: S-CUSP Message Common Header

Ver (4 bits): 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.

Resv (4 bits): Reserved. MUST be sent as zero and ignored on

  receipt.

Message-Type (8 bits): The set of message types specified in this

  document is listed in Section 8.1.

Message-Length (16 bits): Total length of the S-CUSP message

  including the common header, expressed in number of bytes as an
  unsigned integer.

Transaction-ID (16 bits): This field is used to identify requests.

  It is echoed back in any corresponding ACK/Response/Error message.
  It is RECOMMENDED 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 MUST NOT use for any purpose except to echo back in a
  corresponding response and, optionally, for logging.

Control Messages

This document defines the following control messages:

  +------+-----------------+------------------------------------+
  | Type | Name            | Notes and TLVs that can be carried |
  +======+=================+====================================+
  | 1    | Hello           | Hello TLV, Keepalive TLV           |
  +------+-----------------+------------------------------------+
  | 2    | Keepalive       | A common header with the Keepalive |
  |      |                 | message type                       |
  +------+-----------------+------------------------------------+
  | 3    | Sync_Request    | Synchronization request            |
  +------+-----------------+------------------------------------+
  | 4    | Sync_Begin      | Synchronization starts             |
  +------+-----------------+------------------------------------+
  | 5    | Sync_Data       | Synchronization data: TLVs         |
  |      |                 | specified in Section 7             |
  +------+-----------------+------------------------------------+
  | 6    | Sync_End        | End synchronization                |
  +------+-----------------+------------------------------------+
  | 7    | Update_Request  | TLVs specified in Sections 7.6-7.9 |
  +------+-----------------+------------------------------------+
  | 8    | Update_Response | TLVs specified in Sections 7.6-7.9 |
  +------+-----------------+------------------------------------+
                     Table 2: Control Messages

Hello Message

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 Section 4.1.1.

The format of the Hello message is as follows:

<Hello Message> ::= <Common Header>

                    <Hello TLV>
                    <Keepalive TLV>
                    [<Error Information TLV>]

The return code and negotiation result will be carried in the Error Information TLV. They are listed as follows:

0: Success. Version negotiation success.

1: Failure. Malformed message received.

2: TLV-Unknown. One or more of the TLVs was not understood.

1001: Version-Mismatch. The version negotiation fails. The S-CUSP

  session establishment phase fails.

1002: Keepalive Error. The keepalive negotiation fails. The S-CUSP

  session establishment phase fails.

1003: Timer Expires. The establishment timer expired. Session

  establishment phase fails.

Keepalive Message

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 Section 4.1.2.

The format of the Keepalive message is as follows:

<Keepalive Message> ::= <Common Header>

Sync_Request Message

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.

The format of the Sync_Request message is as follows:

<Sync_Request Message> ::= <Common Header>

A Sync_Request message may result in a Sync_Begin message from its peer. The Sync_Begin message is defined in Section 6.2.4.

Sync_Begin Message

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.

The format of the Sync_Begin message is as follows:

<Sync_Begin Message> ::= <Common Header>

                       <Error Information TLV>

The return codes are carried in the Error Information TLV. The codes are listed below:

0: Success. Be ready to synchronize.

1: Failure. Malformed message received.

2: TLV-Unknown. One or more of the TLVs was not understood.

2001: Synch-NoReady. The data to be synchronized is not ready.

2002: Synch-Unsupport. The data synchronization is not supported.

Sync_Data Message

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.

There are two scenarios:

  • Synchronization from UP to CP: Synchronize the resource data to
  CP.
        <Sync_Data Message> ::= <Common Header>
                                [<Interface Status TLV>]
                                [<Board Status TLV>]
  • Synchronization from CP to UP: Synchronize all subscriber sessions
  to the UP.  The Subscriber TLVs carried are those appearing in
  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
  Section 5 to see more details.
        <Sync_Data Message> ::= <Common Header>
                             [<IPv4 Routing TLV>]
                             [<IPv6 Routing TLV>]
                             [<Subscriber TLVs>]

Sync_End Message

The Sync_End message is used to indicate the end of a synchronization process. The format of a Sync_End message is as follows:

<Sync_End Message> ::= <Common Header>

                       <Error Information TLV>

The return/error codes are listed as follows:

0: Success. Synchronization finished.

1: Failure. Malformed message received.

2: TLV-Unknown. One or more of the TLVs was not understood.

Update_Request Message

The Update_Request message is a multipurpose message; it can be used to create, update, and delete subscriber sessions on a UP.

For session operations, the specific operation is controlled by the Oper field of the carried TLVs. As defined in Section 7.1, the Oper field can be set to either Update or Delete when a TLV is carried in an Update_Request message.

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.

The format of the Update_Request message is as follows:

<Update_Request Message> ::= <Common Header>

                       [<IPv4 Routing TLV>]
                       [<IPv6 Routing TLV>]
                       [<Subscriber TLVs>]

Where the Subscriber TLVs are those appearing in Section 7.9. Each Update_Request message will result in an Update_Response message, which is defined in Section 6.2.8.

Update_Response Message

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:

<Update_Response Message> ::= <Common Header>

                       [<Subscriber CGN Port Range TLV>]
                       <Error Information TLV>

The return/error codes are carried in the Error Information TLV. They are listed as follows:

0: Success.

1: Failure. Malformed message received.

2: TLV-Unknown. One or more of the TLVs was not understood.

3001: Pool-Mismatch. The corresponding address pool cannot be

  found.

3002: Pool-Full. The address pool is fully allocated, and no

  address segment is available.

3003: Subnet-Mismatch. The address pool subnet cannot be found.

3004: Subnet-Conflict. Subnets in the address pool have been

  classified into other clients.

4001: Update-Fail-No-Res. The forwarding table fails to be delivered

  because the forwarding resources are insufficient.

4002: QoS-Update-Success. The QoS policy takes effect.

4003: QoS-Update-Sq-Fail. Failed to process the queue in the QoS

  policy.

4004: QoS-Update-CAR-Fail. Processing of the CAR in the QoS policy

  fails.

4005: Statistic-Fail-No-Res. Statistics processing failed due to

  insufficient statistics resources.

Event Message

The Event message is used to report subscriber session traffic statistics and detection information. The format of the Event message is as follows:

<Event Message> ::= <Common Header>

                       [<Subscriber Traffic Statistics Report TLV>]
                       [<Subscriber Detection Result Report TLV>]

Report Message

The Report message is used to report board and interface status on a UP. The format of the Report message is as follows:

<Report Message> ::= <Common Header>

                       [<Board Status TLVs>]
                       [<Interface Status TLVs>]

CGN Messages

This document defines the following resource allocation messages:

   +------+---------------------+-----------------------------+
   | Type | Message Name        | TLV that is carried         |
   +======+=====================+=============================+
   | 200  | Addr_Allocation_Req | Address Allocation Request  |
   +------+---------------------+-----------------------------+
   | 201  | Addr_Allocation_Ack | Address Allocation Response |
   +------+---------------------+-----------------------------+
   | 202  | Addr_Renew_Req      | Address Renewal Request     |
   +------+---------------------+-----------------------------+
   | 203  | Addr_Renew_Ack      | Address Renewal Response    |
   +------+---------------------+-----------------------------+
   | 204  | Addr_Release_Req    | Address Release Request     |
   +------+---------------------+-----------------------------+
   | 205  | Addr_Release_Ack    | Address Release Response    |
   +------+---------------------+-----------------------------+
              Table 3: Resource Allocation Messages

Addr_Allocation_Req Message

The Addr_Allocation_Req message is used to request CGN address allocation. The format of the Addr_Allocation_Req message is as follows:

<Addr_Allocation_Req Message> ::= <Common Header>

                       <Address Allocation Request TLV>

Addr_Allocation_Ack Message

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:

<Addr_Allocation_Ack Message> ::= <Common Header>

                       <Address Allocation Response TLV>

Addr_Renew_Req Message

The Addr_Renew_Req message is used to request address renewal. The format of the Addr_Renew_Req message is as follows:

<Addr_Renew_Req Message> ::= <Common Header>

                       <Address Renewal Request TLV>

Addr_Renew_Ack Message

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:

<Addr_Renew_Ack Message> ::= <Common Header>

                       <Address Renewal Response TLV>

Addr_Release_Req Message

The Addr_Release_Req message is used to request address release. The format of the Addr_Release_Req message is as follows:

<Addr_Release_Req Message> ::= <Common Header>

                       <Address Release Request TLV>

Addr_Release_Ack Message

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:

<Addr_Release_Ack Message> ::= <Common Header>

                       <Address Release Response TLV>

Vendor Message

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.

The format of the Vendor message is as follows:

<Vendor Message> ::= <Common Header>

                    <Vendor TLV>
                    [<any other TLVs as specified by the vendor>]

Error Message

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 MUST return an Error message to the sender.

The format of the Error message is as below:

<Error Message> ::= <Common Header>

                   <Error Information TLV>

S-CUSP TLVs and Sub-TLVs

This section specifies the following:

  • The format of the TLVs that appear in S-CUSP messages,
  • The format of the sub-TLVs that appear within the values of some
  TLVs, and
  • The format of some basic data fields that appear within TLVs or
  sub-TLVs.

See Section 8 for a list of all defined TLVs and sub-TLVs.

Common TLV Header

S-CUSP messages consist of the common header specified in Section 6.1 followed by TLVs formatted as specified in this section.

   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                             ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                    Figure 32: Common TLV Header

Oper (4 bits): For Message-Types that specify an operation on a data

  set, the Oper field is interpreted as Update, Delete, or Reserved
  as specified in Section 8.3.  For all other Message-Types, the
  Oper field MUST be sent as zero and ignored on receipt.

TLV-Type (12 bits): The type of a TLV. TLV-Type specifies the

  interpretation and format of the Value field of the TLV.  See
  Section 8.2.

TLV-Length (2 bytes): The length of the Value portion of the TLV in

  bytes as an unsigned integer.

Value (variable length): 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 Section 7.2) and sub-TLVs
  (see Section 7.3).

Basic Data Fields

This section specifies the binary format of several standard basic data fields that are used within other data structures in this specification.

STRING: 0 to 255 octets. Will be encoded as a sub-TLV (see

  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 RFC20.

MAC-Addr: 6 octets. Ethernet MAC address RFC7042.

IPv4-Address: 8 octets. 4 octets of the IPv4 address value followed

  by a 4-octet address mask in the format XXX.XXX.XXX.XXX.

IPv6-Address: 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.

VLAN ID: 2 octets. As follows [802.1Q]:

         0                   1
         0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        | PRI |D|      VLAN-ID          |
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  PRI:  Priority.  Default value 7.
  D:  Drop Eligibility Indicator (DEI).  Default value 0.
  VLAN-ID:  Unsigned integer in the range 1-4094. (0 and 4095 are
     not valid VLAN IDs [802.1Q].)

Sub-TLV Format and Sub-TLVs

In some cases, the Value portion of a TLV, as specified in Section 7.1, can contain one or more sub-TLVs formatted as follows:

   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                                  |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
                     Figure 33: Sub-TLV Header

Type (2 bytes): 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 Section 8.4.

Length (2 bytes): The length of the Value portion of the sub-TLV in

  bytes as an unsigned integer.

Value (variable length): This is the Value portion of the sub-TLV

  whose size is given by Length.

The sub-TLVs currently specified are defined in the following subsections.

Name Sub-TLVs

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.

+------+---------------------+------------------------------------+
| Type | Sub-TLV Name        | Meaning                            |
+======+=====================+====================================+
| 1    | VRF-Name            | The name of a VRF                  |
+------+---------------------+------------------------------------+
| 2    | Ingress-QoS-Profile | The name of an ingress QoS profile |
+------+---------------------+------------------------------------+
| 3    | Egress-QoS-Profile  | The name of an egress QoS profile  |
+------+---------------------+------------------------------------+
| 4    | User-ACL-Policy     | The name of an ACL policy          |
+------+---------------------+------------------------------------+
| 5    | Multicast-ProfileV4 | The name of an IPv4 multicast      |
|      |                     | profile                            |
+------+---------------------+------------------------------------+
| 6    | Multicast-ProfileV6 | The name of an IPv6 multicast      |
|      |                     | profile                            |
+------+---------------------+------------------------------------+
| 9    | NAT-Instance        | The name of a NAT instance         |
+------+---------------------+------------------------------------+
| 10   | Pool-Name           | The name of an address pool        |
+------+---------------------+------------------------------------+
                       Table 4: Name Sub-TLVs

Ingress-CAR Sub-TLV

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 Figure 34.

   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)                        |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                   Figure 34: Ingress-CAR Sub-TLV

Where:

  CIR (4 bytes):  Guaranteed rate in bits/second.
  PIR (4 bytes):  Burst rate in bits/second.
  CBS (4 bytes):  The token bucket in bytes.
  PBS (4 bytes):  Burst token bucket in bytes.

These fields are unsigned integers. More details about CIR, PIR, CBS, and PBS can be found in RFC2698.

Egress-CAR Sub-TLV

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.

   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)                        |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                   Figure 35: Egress-CAR Sub-TLV

Where:

  CIR (4 bytes):  Guaranteed rate in bits/second.
  PIR (4 bytes):  Burst rate in bits/second.
  CBS (4 bytes):  The token bucket in bytes.
  PBS (4 bytes):  Burst token bucket in bytes.

These fields are unsigned integers. More details about CIR, PIR, CBS, and PBS can be found in RFC2698.

If-Desc Sub-TLV

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.

The sub-TLV type is 11. The sub-TLV length is 12 octets. The format depends on the If-Type (Section 8.6). The format of the value part is as follows:

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)
                 Figure 36: If-Desc Sub-TLV Formats

Where:

  If-Type:  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 Section 8.6.
  Chassis (8 bits):  Identifies the chassis that the interface
     belongs to.
  Slot (16 bits):  Identifies the slot that the interface belongs
     to.
  Sub-Slot (16 bits):  Identifies the sub-slot the interface belongs
     to.
  Port Number (16 bits):  An identifier of a physical port/interface
     (e.g., If-Type: 1-5).  It is locally significant within the
     slot/sub-slot.
  Sub-Port Number (32 bits):  An identifier of the sub-port.
     Locally significant within its "parent" port (physical or
     virtual).
  Logic-ID (32 bits):  An identifier of a virtual interface (e.g.,
     If-Type: 6-7).

IPv6 Address List Sub-TLV

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.

The format of the value part of the IPv6 Address List sub-TLV is as follows:

   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                           ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                Figure 37: IPv6 Address List Sub-TLV

Where:

  IPv6 Address (IPv6-Address):  Each IP Address is of type IP-
     Address and carries an IPv6 address and length.

Vendor Sub-TLV

The Vendor sub-TLV is intended to be used inside the Value portion of the Vendor TLV (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.

The value part of the Vendor sub-TLV is formatted as follows:

   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)              ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                     Figure 38: Vendor Sub-TLV

Where:

  Sub-TLV type:  13.
  Sub-TLV length:  Variable.
  Vendor-ID (4 bytes):  Vendor ID as defined in RADIUS RFC2865.
  Sub-Type (2 bytes):  Used by the vendor to distinguish multiple
     different sub-TLVs.
  Sub-Type-Version (2 bytes):  Used by the vendor to distinguish
     different versions of a vendor-defined sub-TLV Sub-Type.
  Value:  As specified by the vendor.

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 RECOMMENDED 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 SHOULD increase the value it is using in the Sub-Type-Version field.

Hello TLV

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:

   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                         |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                        Figure 39: Hello TLV

Where:

  TLV type:  100.
  TLV length:  12 octets.
  VerSupported:  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 MUST 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.
  Vendor-ID:  4 bytes in length.  Vendor ID, as defined in RADIUS
     RFC2865.
  Capabilities:  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 MUST be checked before
     any other TLVs in the Hello because capabilities defined in the
     future might extend existing TLVs or permit new TLVs.

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.

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.

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.

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 MUST NOT use a capability unless both advertise support.

Keepalive TLV

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:

   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           |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                      Figure 40: Keepalive TLV

Where:

  TLV type:  102.
  TLV length:  4 octets.
  Keepalive (8 bits):  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 RECOMMENDED value for
     the Keepalive frequency is 30 seconds.
  DeadTimer (8 bits in length):  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 SHOULD be set to 0 and MUST be ignored
     if the Keepalive is set to 0.  A RECOMMENDED value for the
     DeadTimer is 4 times the value of the Keepalive.
  Reserved:  The Reserved bits MUST be sent as zero and ignored on
     receipt.

Error Information TLV

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:

   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                          |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                  Figure 41: Error Information TLV

Where:

  TLV type:  101.
  TLV length:  8 octets.
  Message-Type (1 byte):  This parameter is the message type of the
     message containing an error.
  Reserved (1 byte):  MUST be sent as zero and ignored on receipt.
  TLV-Type (2 bytes):  Indicates which TLV caused the error.
  Error Code:  4 bytes in length.  Indicate the specific Error Code
     (see Section 8.5).

BAS Function TLV

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.

The format of the BAS Function TLV value part is as follows:

   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)                   |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                    Figure 42: BAS Function TLV

Where:

  TLV type:  1.
  TLV length:  Variable.
  If-Index:  4 bytes in length, a unique identifier of an interface
     of a BNG.
  Access-Mode:  1 byte in length.  It indicates the access mode of
     the interface.  The defined values are listed in Section 8.7.
  Auth-Method4:  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
     Section 8.8.  Other bits are reserved and MUST be sent as zero
     and ignored on receipt.
  Auth-Method6:  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
     Section 8.8.  Other bits are reserved and MUST be sent as zero
     and ignored on receipt.
  Sub-TLVs:  The IF-Desc sub-TLV can be carried.
     If-Desc sub-TLV:  Carries the interface information.
  Flags:  The Flags field is defined as follows:
   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|
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                     Figure 43: Interface Flags

Where:

  F (IPv4 Trigger) bit:  Indicates whether IPv4 packets can trigger
     a subscriber to go online.
     1:  Enabled.
     0:  Disabled.
  S (IPv6 Trigger) bit:  Indicates whether IPv6 packets can trigger
     a subscriber to go online.
     1:  Enabled.
     0:  Disabled.
  A (ARP Trigger) bit:  Indicates whether ARP packets can trigger a
     subscriber to go online.
     1:  Enabled.
     0:  Disabled.
  N (ND Trigger) bit:  Indicates whether ND packets can trigger a
     subscriber to go online.
     1:  Enabled.
     0:  Disabled.
  I (IPoE-Flow-Check):  Used for UP detection.
     1:  Enable traffic detection.
     0:  Disable traffic detection.
  P (PPP-Flow-Check) bit:  Used for UP detection.
     1:  Enable traffic detection.
     0:  Disable traffic detection.
  X (ARP-Proxy) bit:  Indicates whether ARP proxy is enabled on the
     interface.
     1:  The interface is enabled with ARP proxy and can process ARP
        requests across different network ports and VLANs.
     0:  The ARP proxy is not enabled on the interface and only the
        ARP requests of the same network port and VLAN are
        processed.
  Y (ND-Proxy) bit:  Indicates whether ND proxy is enabled on the
     interface.
     1:  The interface is enabled with ND proxy and can process ND
        requests across different network ports and VLANs.
     0:  The ND proxy is not enabled on the interface and only the
        ND requests of the same network port and VLAN are processed.
  MBZ:  Reserved bits that MUST be sent as zero and ignored on
     receipt.

Routing TLVs

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

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.

IPv4 Routing TLV

The IPv4 Routing TLV is used to carry information related to IPv4 network routing.

The format of the TLV value part is as below:

   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)                 ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                    Figure 44: IPv4 Routing TLV

Where:

  TLV type:  7.
  TLV length:  Variable.
  User-ID:  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.
  Dest-Address (IPv4-Address type):  Identifies the destination
     address.
  Next-Hop (IPv4-Address type):  Identifies the next-hop address.
  Out-If-Index (4 bytes):  Indicates the interface index.
  Cost (4 bytes):  The cost value of the route.
  Tag (4 bytes):  The tag value of the route.
  Route-Type (2 bytes):  The value of this field indicates the route
     type.  The values defined in this document are listed in
     Section 8.9.
  Advertise-Flag:  1 bit shown as "A" in the figure above
     (Figure 44).  Indicates whether the UP should advertise the
     route.  The following flag values are defined:
     0:  Not advertised.
     1:  Advertised.
  Sub-TLVs:  The VRF-Name and/or If-Desc sub-TLVs can be carried.
     VRF-Name sub-TLV:  Indicates which VRF the route belongs to.
     If-Desc sub-TLV:  Carries the interface information.
  Reserved:  The Reserved field MUST be sent as zero and ignored on
     receipt.

IPv6 Routing TLV

The IPv6 Routing TLV is used to carry IPv6 network routing information.

The format of the value part of this TLV is as follows:

   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)                  ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                    Figure 45: IPv6 Routing TLV

Where:

  TLV type:  8.
  TLV length:  Variable.
  User-ID:  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.
  IPv6 Dest-Address (IPv6-Address type):  Identifies the destination
     address.
  IPv6 Next-Hop (IPv6-Address type):  Identifies the next-hop
     address.
  Out-If-Index (4 bytes):  Indicates the interface index.
  Cost (4 bytes):  This is the cost value of the route.
  Tag (4 bytes):  The tag value of the route.
  Route-Type (2 bytes):  The value of this field indicates the route
     type.  The values defined in this document are listed in
     Section 8.9.
  Advertise-Flag:  1 bit shown as "A" in the figure above
     (Figure 45).  Indicates whether the UP should advertise the
     route.  The following flags are defined:
     0:  Not advertised.
     1:  Advertised.
  Sub-TLVs:  The If-Desc and VRF-Name sub-TLVs can be carried.
     VRF-Name sub-TLV:  Indicates the VRF to which the subscriber
        belongs.
     If-Desc sub-TLV:  Carries the interface information.
  Reserved:  The Reserved field MUST be sent as zero and ignored on
     receipt.

Subscriber TLVs

The Subscriber TLVs are defined for a CP to send the basic information about a user to a UP.

Basic Subscriber TLV

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.

The format of the Basic Subscriber TLV value part is as follows:

   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)                ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                  Figure 46: Basic Subscriber TLV

Where:

  TLV type:  2.
  TLV length:  Variable.
  User-ID (4 bytes):  The identifier of a subscriber.
  Session-ID (4 bytes):  Session ID of a PPPoE subscriber.  The
     value zero identifies a non-PPPoE subscriber.
  User-MAC (MAC-Addr type):  The MAC address of a subscriber.
  Oper-ID (1 byte):  Indicates the ID of an operation performed by a
     user.  This field is carried in the response from the UP.
  Reserved (1 byte):  MUST be sent as zero and ignored on receipt.
  Access-Type (1 byte):  Indicates the type of subscriber access.
     Values defined in this document are listed in Section 8.10.
  Sub-Access-Type (1 byte):  Indicates whether PPP termination or
     PPP relay is used.
     0:  Reserved.
     1:  PPP Relay (for LAC).
     2:  PPP termination (for LNS).
  Account-Type (1 byte):  Indicates whether traffic statistics are
     collected independently.
     0:  Collects statistics on IPv4 and IPv6 traffic of terminals
        independently.
     1:  Collects statistics on IPv4 and IPv6 traffic of terminals.
  Address Family (1 byte):  The type of IP address.
     1:  IPv4.
     2:  IPv6.
     3:  Dual stack.
  C-VID (VLAN-ID):  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.
  P-VID (VLAN-ID):  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.
  Detect-Times (2 bytes):  Number of detection timeout times.  The
     value 0 indicates that no detection is performed.
  Detect-Interval (2 bytes):  Detection interval in seconds.
  If-Index (4 bytes):  Interface index.
  Sub-TLVs:  The VRF-Name sub-TLV and If-Desc sub-TLV can be
     carried.
     VRF-Name sub-TLV:  Indicates the VRF to which the subscriber
        belongs.
     If-Desc sub-TLV:  Carries the interface information.
  Reserved:  The Reserved field MUST be sent as zero and ignored on
     receipt.

PPP Subscriber TLV

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.

The format of the TLV value part is as follows:

   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                    |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                   Figure 47: PPP Subscriber TLV

Where:

  TLV type:  3.
  TLV length:  12 octets.
  User-ID (4 bytes):  The identifier of a subscriber.
  MSS-Value (2 bytes):  Indicates the MSS value (in bytes).
  MSS-Enable (M) (1 bit):  Indicates whether the MSS is enabled.
     0:  Disabled.
     1:  Enabled.
  MRU (2 bytes):  PPPoE local MRU (in bytes).
  Magic-Number (4 bytes):  Local magic number in PPP negotiation
     packets.
  Peer-Magic-Number (4 bytes):  Remote peer magic number.
  Reserved:  The Reserved fields MUST be sent as zero and ignored on
     receipt.

IPv4 Subscriber TLV

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.

The format of the TLV value part is as follows:

   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                     ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                   Figure 48: IPv4 Subscriber TLV

Where:

  TLV type:  4.
  TLV length:  Variable.
  User-ID (4 bytes):  The identifier of a subscriber.
  User-IPv4 (IPv4-Address):  The IPv4 address of the subscriber.
  Gateway-IPv4 (IPv4-Address):  The gateway address of the
     subscriber.
  Portal-Force (P) (1 bit):  Push advertisement.
     0:  Off.
     1:  On.
  Web-Force (W) (1 bit):  Push IPv4 Web.
     0:  Off.
     1:  On.
  Echo-Enable (E) (1 bit):  UP returns ARP Req or PPP Echo.
     0:  Off.
     1:  On.
  IPv4-URPF (U) (1 bit):  User Unicast Reverse Path Forwarding
     (URPF) flag.
     0:  Off.
     1:  On.
  MTU (2 bytes):  MTU value.  The default value is 1500.
  VRF-Name Sub-TLV:  Indicates the subscriber belongs to which VRF.
  Reserved:  The Reserved field MUST be sent as zero and ignored on
     receipt.

IPv6 Subscriber TLV

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.

The format of the TLV value part is as follows:

   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)                ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                   Figure 49: IPv6 Subscriber TLV

Where:

  TLV type:  5.
  TLV length:  Variable.
  User-ID (4 bytes):  The identifier of a subscriber.
  User PD-Addresses (IPv6 Address List):  Carries a list of Prefix
     Delegation (PD) addresses of the subscriber.
  User ND-Addresses (IPv6 Address List):  Carries a list of Neighbor
     Discovery (ND) addresses of the subscriber.
  User Link-Local-Address (IPv6-Address):  The link-local address of
     the subscriber.
  IPv6 Interface ID (8 bytes):  The identifier of an IPv6 interface.
  Portal-Force 1 bit (P):  Push advertisement.
     0:  Off.
     1:  On.
  Web-Force 1 bit (W):  Push IPv6 Web.
     0:  Off.
     1:  On.
  Echo-Enable 1 bit (E):  The UP returns ARP Req or PPP Echo.
     0:  Off.
     1:  On.
  IPv6-URPF 1 bit (U):  User Reverse Path Forwarding (URPF) flag.
     0:  Off.
     1:  On.
  MTU (2 bytes):  The MTU value.  The default value is 1500.
  VRF-Name Sub-TLV:  Indicates the VRF to which the subscriber
     belongs.
  Reserved:  The Reserved field MUST be sent as zero and ignored on
     receipt.

IPv4 Static Subscriber Detect TLV

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.

The format of the TLV value part is as follows:

   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)                     ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
               Figure 50: IPv4 Static Subscriber TLV

Where:

  TLV type:  9.
  TLV length:  Variable.
  If-Index (4 bytes):  The interface index of the interface from
     which the subscriber will dial-up.
  C-VID (VLAN-ID):  Indicates the inner VLAN ID.  The value 0
     indicates that the VLAN ID is invalid.  A valid value is
     1-4094.
  P-VID (VLAN-ID):  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.
  User Address (IPv4-Addr):  The user's IPv4 address.
  Gateway Address (IPv4-Addr):  The gateway's IPv4 address.
  User-MAC (MAC-Addr type):  The MAC address of the subscriber.
  Sub-TLVs:  The VRF-Name and If-Desc sub-TLVs may be carried.
     VRF-Name sub-TLV:  Indicates the VRF to which the subscriber
        belongs.
     If-Desc sub-TLV:  Carries the interface information.
  Reserved:  The Reserved field MUST be sent as zero and ignored on
     receipt.

IPv6 Static Subscriber Detect TLV

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.

The format of the TLV value part is as follows:

   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)                     ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            Figure 51: IPv6 Static Subscriber Detect TLV

Where:

  TLV type:  10.
  TLV length:  Variable.
  If-Index (4 bytes):  The interface index of the interface from
     which the subscriber will dial-up.
  C-VID (VLAN-ID):  Indicates the inner VLAN ID.  The value 0
     indicates that the VLAN ID is invalid.  A valid value is
     1-4094.
  P-VID (VLAN-ID):  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.
  User Address (IPv6-Address type):  The subscriber's IPv6 address.
  Gateway Address (IPv6-Address type):  The gateway's IPv6 Address.
  User-MAC (MAC-Addr type):  The MAC address of the subscriber.
  Sub-TLVs:  VRF-Name and If-Desc sub-TLVs may be carried
     VRF-Name sub-TLV:  Indicates the VRF to which the subscriber
        belongs.
     If-Desc sub-TLV:  Carries the interface information.
  Reserved:  The Reserved field MUST be sent as zero and ignored on
     receipt.

L2TP-LAC Subscriber TLV

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.

The format of the TLV value part is as follows:

   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         |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                 Figure 52: L2TP-LAC Subscriber TLV

Where:

  TLV type:  11.
  TLV length:  12 octets.
  User-ID (4 bytes):  The identifier of a user/subscriber.
  Local-Tunnel-ID (2 bytes):  The local ID of the L2TP tunnel.
  Local-Session-ID (2 bytes):  The local session ID with the L2TP
     tunnel.
  Remote-Tunnel-ID (2 bytes):  The identifier of the L2TP tunnel at
     the remote endpoint.
  Remote-Session-ID (2 bytes):  The session ID of the L2TP tunnel at
     the remote endpoint.

L2TP-LNS Subscriber TLV

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.

The format of the TLV value part is as follows:

   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         |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                 Figure 53: L2TP-LNS Subscriber TLV

Where:

  TLV type:  12.
  TLV length:  12 octets.
  User-ID (4 bytes):  The identifier of a user/subscriber.
  Local-Tunnel-ID (2 bytes):  The local ID of the L2TP tunnel.
  Local-Session-ID (2 bytes):  The local session ID with the L2TP
     tunnel.
  Remote-Tunnel-ID (2 bytes):  The identifier of the L2TP tunnel at
     the remote endpoint.
  Remote-Session-ID (2 bytes):  The session ID of the L2TP tunnel at
     the remote endpoint.

L2TP-LAC Tunnel TLV

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.

The format of the TLV value part is as follows:

   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                     ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                   Figure 54: L2TP-LAC Tunnel TLV

Where:

  TLV type:  13.
  TLV length:  Variable.
  Local-Tunnel-ID (2 bytes):  The local ID of the L2TP tunnel.
  Remote-Tunnel-ID (2 bytes):  The remote ID of the L2TP tunnel.
  Source-Port (2 bytes):  The source UDP port number of an L2TP
     subscriber.
  Dest-Port (2 bytes):  The destination UDP port number of an L2TP
     subscriber.
  Source-IP (IPv4/v6):  The source IP address of the tunnel.
  Dest-IP (IPv4/v6):  The destination IP address of the tunnel.
  VRF-Name Sub-TLV:  The VRF name to which the L2TP subscriber
     tunnel belongs.

7.9.10. L2TP-LNS Tunnel TLV

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.

The format of the TLV value part is as follows:

   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                        ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                   Figure 55: L2TP-LNS Tunnel TLV

Where:

  TLV type:  14.
  TLV length:  Variable.
  Local-Tunnel-ID (2 bytes):  The local ID of the L2TP tunnel.
  Remote-Tunnel-ID (2 bytes):  The remote ID of the L2TP tunnel.
  Source-Port (2 bytes):  The source UDP port number of an L2TP
     subscriber.
  Dest-Port (2 bytes):  The destination UDP port number of an L2TP
     subscriber.
  Source-IP (IPv4/v6):  The source IP address of the tunnel.
  Dest-IP (IPv4/v6):  The destination IP address of the tunnel.
  VRF-Name Sub-TLV:  The VRF name to which the L2TP subscriber
     tunnel belongs.

7.9.11. Update Response TLV

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.

The format of the value part of the Update Response TLV is as follows:

    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                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                   Figure 56: Update Response TLV

Where:

  TLV type:  302.
  TLV length:  12.
  User-ID (4 bytes):  A unique identifier of a user/subscriber.
  User-Trans-ID (1 byte):  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.
  Oper-Code (1 byte):  Operation code.
     1:  Update.
     2:  Delete.
  Oper-Result (1 byte):  Operation Result.
     0:  Success.
     Others:  Failure.
  Error-Code (4 bytes):  Operation failure cause code.  For details,
     see Section 8.5.
  Reserved:  The Reserved field MUST be sent as zero and ignored on
     receipt.

7.9.12. Subscriber Policy TLV

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.

The format of the TLV value part is as follows:

   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                             ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                  Figure 57: Subscriber Policy TLV

Where:

  TLV type:  6.
  TLV length:  Variable.
  User-ID (4 bytes):  The identifier of a user/subscriber.
  Ingress-Priority (1 byte):  Indicates the upstream priority.  The
     value range is 0~7.
  Egress-Priority (1 byte):  Indicates the downstream priority.  The
     value range is 0~7.
  Sub-TLVs:  The sub-TLVs that are present can occur in any order.
     Ingress-CAR sub-TLV:  Upstream CAR.
     Egress-CAR sub-TLV:  Downstream CAR.
     Ingress-QoS-Profile sub-TLV:  Indicates the name of the QoS-
        Profile that is the profile in the upstream direction.
     Egress-QoS-Profile sub-TLV:  Indicates the name of the QoS-
        Profile that is the profile in the downstream direction.
     User-ACL-Policy sub-TLV:  All ACL user policies, including
        v4ACLIN, v4ACLOUT, v6ACLIN, v6ACLOUT, v4WEBACL, v6WEBACL,
        v4SpecialACL, and v6SpecialACL.
     Multicast-Profile4 sub-TLV:  IPv4 multicast policy name.
     Multicast-Profile6 sub-TLV:  IPv6 multicast policy name.
     NAT-Instance sub-TLV:  Indicates the instance ID of a NAT user.
  Reserved:  The Reserved field MUST be sent as zero and ignored on
     receipt.

7.9.13. Subscriber CGN Port Range TLV

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.

The format of the value part of this TLV is as follows:

   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                        |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
              Figure 58: Subscriber CGN Port Range TLV

Where:

  TLV type:  15.
  TLV length:  12 octets.
  User-ID (4 bytes):  The identifier of a user/subscriber.
  NAT-Port-Start (2 bytes):  The start port number.
  NAT-Port-End (2 bytes):  The end port number.
  NAT-Address (4 bytes):  The NAT public network address.

7.10. Device Status TLVs

The TLVs in this section are for reporting interface and board-level information from the UP to the CP.

7.10.1. Interface Status TLV

The Interface Status TLV is used to carry the status information of an interface on a UP. It is carried in a Report message.

The format of the value part of this TLV is as follows:

   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)                  |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                  Figure 59: Interface Status TLV

Where:

  TLV type:  200.
  TLV length:  Variable.
  If-Index (4 bytes):  Indicates the interface index.
  MAC-Address (MAC-Addr type):  Interface MAC address.
  Phy-State (1 byte):  Physical status of the interface.
     0:  Down.
     1:  Up.
  MTU (4 bytes):  Interface MTU value.
  Sub-TLVs:  The If-Desc and VRF-Name sub-TLVs can be carried.
  Reserved:  The Reserved field MUST be sent as zero and ignored on
     receipt.

7.10.2. Board Status TLV

The Board Status TLV is used to carry the status information of a board on an UP. It is carried in a Report message.

The format of the value part of the Board Status TLV is as follows:

   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            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                    Figure 60: Board Status TLV

Where:

  TLV type:  201.
  TLV length:  8 octets.
  Chassis (1 byte):  The chassis number of the board.
  Slot (16 bits):  The slot number of the board.
  Sub-Slot (16 bits):  The sub-slot number of the board.
  Board-Type (1 byte):  The type of board used.
     1:  CGN Service Process Unit (SPU) board.
     2:  Line Process Unit (LPU) board.
  Board-State (1 byte):  Indicates whether there are issues with the
     board.
     0:  Normal.
     1:  Abnormal.
  Reserved:  The Reserved field MUST be sent as zero and ignored on
     receipt.

7.11. CGN TLVs

7.11.1. Address Allocation Request TLV

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.

The format of the value part of this TLV is as follows:

   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                    ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
             Figure 61: Address Allocation Request TLV

Where:

  TLV type:  400.
  TLV length:  Variable.
  Pool-Name sub-TLV:  Indicates from which address pool to allocate
     address.

7.11.2. Address Allocation Response TLV

The Address Allocation Response TLV is used to return the address allocation result; it is carried in the Addr_Allocation_Ack message.

The value part of the Address Allocation Response TLV is formatted as follows:

   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                      ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
             Figure 62: Address Allocation Response TLV

Where:

  TLV type:  401.
  TLV length:  Variable.
  Lease Time (4 bytes):  Duration of address lease in seconds.
  Client-IP (IPv4-Address type):  The allocated IPv4 address and
     mask.
  Error-Code (4 bytes):  Indicates success or an error.
     0:  Success.
     1:  Failure.
     3001:  Pool-Mismatch.  The corresponding address pool cannot be
        found.
     3002:  Pool-Full.  The address pool is fully allocated, and no
        address segment is available.
  Pool-Name sub-TLV:  Indicates from which address pool the address
     is allocated.

7.11.3. Address Renewal Request TLV

The Address Renewal Request TLV is used to request address renewal from the CP. It is carried in the Addr_Renew_Req message.

The format of this TLV value is as follows:

   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                         ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
               Figure 63: Address Renewal Request TLV

Where:

  TLV type:  402.
  TLV length:  Variable.
  Client-IP (IPv4-Address type):  The IPv4 address and mask to be
     renewed.
  Pool-Name sub-TLV:  Indicates from which address pool to renew the
     address.

7.11.4. Address Renewal Response TLV

The Address Renewal Response TLV is used to return the address renewal result. It is carried in the Addr_Renew_Ack message.

The format of this TLV value is as follows:

   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                         ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
              Figure 64: Address Renewal Response TLV

Where:

  TLV type:  403.
  TLV length:  Variable.
  Client-IP (IPv4-Address type):  The renewed IPv4 address and mask.
  Error-Code (4 bytes):  Indicates success or an error:
     0:  Success.
     1:  Failure.
     3001:  Pool-Mismatch.  The corresponding address pool cannot be
        found.
     3002:  Pool-Full.  The address pool is fully allocated, and no
        address segment is available.
     3003:  Subnet-Mismatch.  The address pool subnet cannot be
        found.
     3004:  Subnet-Conflict.  Subnets in the address pool have been
        assigned to other clients.
  Pool-Name sub-TLV:  Indicates from which address pool to renew the
     address.

7.11.5. Address Release Request TLV

The Address Release Request TLV is used to release an IPv4 address. It is carried in the Addr_Release_Req message.

The value part of this TLV is formatted as follows:

   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                         ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
               Figure 65: Address Release Request TLV

Where:

  TLV type:  404.
  TLV length:  Variable.
  Client-IP (IPv4-Address type):  The IPv4 address and mask to be
     released.
  Pool-Name sub-TLV:  Indicates from which address pool to release
     the address.

7.11.6. Address Release Response TLV

The Address Release Response TLV is used to return the address release result. It is carried in the Addr_Release_Ack message.

The format of the value part of this TLV is as follows:

   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                         ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
              Figure 66: Address Release Response TLV

Where:

  TLV type:  405.
  TLV length:  Variable.
  Client-IP (IPv4-Address type):  The released IPv4 address and
     mask.
  Error-Code (4 bytes):  Indicates success or an error.
     0:  Success.  Address release success.
     1:  Failure.  Address release failed.
     3001:  Pool-Mismatch.  The corresponding address pool cannot be
        found.
     3003:  Subnet-Mismatch.  The address cannot be found.
     3004:  Subnet-Conflict.  The address has been allocated to
        another subscriber.
  Pool-Name sub-TLV:  Indicates from which address pool to release
     the address.

7.12. Event TLVs

7.12.1. Subscriber Traffic Statistics TLV

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:

   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)                 |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            Figure 67: Subscriber Traffic Statistics TLV

Where:

  TLV type:  300.
  TLV length:  72 octets.
  User-ID (4 bytes):  The subscriber identifier.
  Statistics-Type (4 bytes):  Traffic type.  It can be one of the
     following options:
     0:  IPv4 traffic.
     1:  IPv6 traffic.
     2:  Dual-stack traffic.
  Ingress Packets (8 bytes):  The number of the packets in the
     upstream direction.
  Ingress Bytes (8 bytes):  The bytes of the upstream traffic.
  Ingress Loss Packets (8 bytes):  The number of the lost packets in
     the upstream direction.
  Ingress Loss Bytes (8 bytes):  The bytes of the lost upstream
     packets.
  Egress Packets (8 bytes):  The number of the packets in the
     downstream direction.
  Egress Bytes (8 bytes):  The bytes of the downstream traffic.
  Egress Loss Packets (8 bytes):  The number of the lost packets in
     the downstream direction.
  Egress Loss Bytes (8 bytes):  The bytes of the lost downstream
     packets.

7.12.2. Subscriber Detection Result TLV

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).

The format of this TLV value part is as follows:

   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             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
             Figure 68: Subscriber Detection Result TLV

Where:

  TLV type:  301.
  TLV length:  8 octets.
  User-ID (4 bytes):  The subscriber identifier.
  Detect-Type (1 byte):  Type of traffic detected.
     0:  IPv4 detection.
     1:  IPv6 detection.
     2:  PPP detection.
  Detect-Result (1 byte):  Indicates whether the detection was
     successful.
     0:  Indicates that the detection is successful.
     1:  Detection failure.  The UP needs to report only when the
        detection fails.
  Reserved:  The Reserved field MUST be sent as zero and ignored on
     receipt.

7.13. Vendor TLV

The Vendor TLV occurs as the first TLV in the Vendor message (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.

The value part of the Vendor TLV is formatted as follows:

   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)                      ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                       Figure 69: Vendor TLV

Where:

  TLV type:  1024.
  TLV length:  Variable.
  Vendor-ID (4 bytes):  Vendor ID as defined in RADIUS RFC2865.
  Sub-Type (2 bytes):  Used by the vendor to distinguish multiple
     different vendor messages.
  Sub-Type-Version (2 bytes):  Used by the vendor to distinguish
     different versions of a vendor-defined message Sub-Type.
  Sub-TLVs (variable):  Sub-TLVs as specified by the vendor.

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 RECOMMENDED 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 SHOULD increase the value it is using in the Sub-Type-Version field.

Tables of S-CUSP Codepoints

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.

Message Types

   +---------+---------------------+--------------------------+
   | Type    | Name                | Section of This Document |
   +=========+=====================+==========================+
   | 0       | Reserved            |                          |
   +---------+---------------------+--------------------------+
   | 1       | Hello               | 6.2.1                    |
   +---------+---------------------+--------------------------+
   | 2       | Keepalive           | 6.2.2                    |
   +---------+---------------------+--------------------------+
   | 3       | Sync_Request        | 6.2.3                    |
   +---------+---------------------+--------------------------+
   | 4       | Sync_Begin          | 6.2.4                    |
   +---------+---------------------+--------------------------+
   | 5       | Sync_Data           | 6.2.5                    |
   +---------+---------------------+--------------------------+
   | 6       | Sync_End            | 6.2.6                    |
   +---------+---------------------+--------------------------+
   | 7       | Update_Request      | 6.2.7                    |
   +---------+---------------------+--------------------------+
   | 8       | Update_Response     | 6.2.8                    |
   +---------+---------------------+--------------------------+
   | 9       | Report              | 6.4                      |
   +---------+---------------------+--------------------------+
   | 10      | Event               | 6.3                      |
   +---------+---------------------+--------------------------+
   | 11      | Vendor              | 6.6                      |
   +---------+---------------------+--------------------------+
   | 12      | Error               | 6.7                      |
   +---------+---------------------+--------------------------+
   | 13-199  | Unassigned          |                          |
   +---------+---------------------+--------------------------+
   | 200     | Addr_Allocation_Req | 6.5.1                    |
   +---------+---------------------+--------------------------+
   | 201     | Addr_Allocation_Ack | 6.5.2                    |
   +---------+---------------------+--------------------------+
   | 202     | Addr_Renew_Req      | 6.5.3                    |
   +---------+---------------------+--------------------------+
   | 203     | Addr_Renew_Ack      | 6.5.4                    |
   +---------+---------------------+--------------------------+
   | 204     | Addr_Release_Req    | 6.5.5                    |
   +---------+---------------------+--------------------------+
   | 205     | Addr_Release_Ack    | 6.5.6                    |
   +---------+---------------------+--------------------------+
   | 206-254 | Unassigned          |                          |
   +---------+---------------------+--------------------------+
   | 255     | Reserved            |                          |
   +---------+---------------------+--------------------------+
                      Table 5: Message Types

TLV Types

  +-----------+-------------+-----------------------------------+
  | Type      | Name        | Usage Description                 |
  +===========+=============+===================================+
  | 0         | Reserved    | -                                 |
  +-----------+-------------+-----------------------------------+
  | 1         | BAS         | Carries the BNG access functions  |
  |           | Function    | to be enabled or disabled on      |
  |           |             | specified interfaces.             |
  +-----------+-------------+-----------------------------------+
  | 2         | Basic       | Carries the basic information     |
  |           | Subscriber  | about a BNG subscriber.           |
  +-----------+-------------+-----------------------------------+
  | 3         | PPP         | Carries the PPP information about |
  |           | Subscriber  | a BNG subscriber.                 |
  +-----------+-------------+-----------------------------------+
  | 4         | IPv4        | Carries the IPv4 address of a BNG |
  |           | Subscriber  | subscriber.                       |
  +-----------+-------------+-----------------------------------+
  | 5         | IPv6        | Carries the IPv6 address of a BNG |
  |           | Subscriber  | subscriber.                       |
  +-----------+-------------+-----------------------------------+
  | 6         | Subscriber  | Carries the policy information    |
  |           | Policy      | applied to a BNG subscriber.      |
  +-----------+-------------+-----------------------------------+
  | 7         | IPv4        | Carries the IPv4 network routing  |
  |           | Routing     | information.                      |
  +-----------+-------------+-----------------------------------+
  | 8         | IPv6        | Carries the IPv6 network routing  |
  |           | Routing     | information.                      |
  +-----------+-------------+-----------------------------------+
  | 9         | IPv4 Static | Carries the IPv4 static           |
  |           | Subscriber  | subscriber detect information.    |
  |           | Detect      |                                   |
  +-----------+-------------+-----------------------------------+
  | 10        | IPv6 Static | Carries the IPv6 static           |
  |           | Subscriber  | subscriber detect information.    |
  |           | Detect      |                                   |
  +-----------+-------------+-----------------------------------+
  | 11        | L2TP-LAC    | Carries the L2TP LAC subscriber   |
  |           | Subscriber  | information.                      |
  +-----------+-------------+-----------------------------------+
  | 12        | L2TP-LNS    | Carries the L2TP LNS subscriber   |
  |           | Subscriber  | information.                      |
  +-----------+-------------+-----------------------------------+
  | 13        | L2TP-LAC    | Carries the L2TP LAC tunnel       |
  |           | Tunnel      | subscriber information.           |
  +-----------+-------------+-----------------------------------+
  | 14        | L2TP-LNS    | Carries the L2TP LNS tunnel       |
  |           | Tunnel      | subscriber information.           |
  +-----------+-------------+-----------------------------------+
  | 15        | Subscriber  | Carries the public IPv4 address   |
  |           | CGN Port    | and related port range of a BNG   |
  |           | Range       | subscriber.                       |
  +-----------+-------------+-----------------------------------+
  | 16-99     | Unassigned  | -                                 |
  +-----------+-------------+-----------------------------------+
  | 100       | Hello       | Used for version and Keepalive    |
  |           |             | timers negotiation.               |
  +-----------+-------------+-----------------------------------+
  | 101       | Error       | Carried in the Ack of the control |
  |           | Information | message.  Carries the processing  |
  |           |             | result, success, or error.        |
  +-----------+-------------+-----------------------------------+
  | 102       | Keepalive   | Carried in the Hello message for  |
  |           |             | Keepalive timers negotiation.     |
  +-----------+-------------+-----------------------------------+
  | 103-199   | Unassigned  | -                                 |
  +-----------+-------------+-----------------------------------+
  | 200       | Interface   | Interfaces status reported by the |
  |           | Status      | UP including physical interfaces, |
  |           |             | sub-interfaces, trunk interfaces, |
  |           |             | and tunnel interfaces.            |
  +-----------+-------------+-----------------------------------+
  | 201       | Board       | Board information reported by the |
  |           | Status      | UP including the board type and   |
  |           |             | in-position status.               |
  +-----------+-------------+-----------------------------------+
  | 202-299   | Unassigned  | -                                 |
  +-----------+-------------+-----------------------------------+
  | 300       | Subscriber  | User traffic statistics.          |
  |           | Traffic     |                                   |
  |           | Statistics  |                                   |
  +-----------+-------------+-----------------------------------+
  | 301       | Subscriber  | User detection information.       |
  |           | Detection   |                                   |
  |           | Result      |                                   |
  +-----------+-------------+-----------------------------------+
  | 302       | Update      | The processing result of a        |
  |           | Response    | subscriber session update.        |
  +-----------+-------------+-----------------------------------+
  | 303-299   | Unassigned  | -                                 |
  +-----------+-------------+-----------------------------------+
  | 400       | Address     | Request address allocation.       |
  |           | Allocation  |                                   |
  |           | Request     |                                   |
  +-----------+-------------+-----------------------------------+
  | 401       | Address     | Address allocation response.      |
  |           | Allocation  |                                   |
  |           | Response    |                                   |
  +-----------+-------------+-----------------------------------+
  | 402       | Address     | Request for address lease         |
  |           | Renewal     | renewal.                          |
  |           | Request     |                                   |
  +-----------+-------------+-----------------------------------+
  | 403       | Address     | Response to a request for         |
  |           | Renewal     | extending an IP address lease.    |
  |           | Response    |                                   |
  +-----------+-------------+-----------------------------------+
  | 404       | Address     | Request to release the address.   |
  |           | Release     |                                   |
  |           | Request     |                                   |
  +-----------+-------------+-----------------------------------+
  | 405       | Address     | Ack of a message releasing an IP  |
  |           | Release     | address.                          |
  |           | Response    |                                   |
  +-----------+-------------+-----------------------------------+
  | 406-1023  | Unassigned  | -                                 |
  +-----------+-------------+-----------------------------------+
  | 1024      | Vendor      | As implemented by the vendor.     |
  +-----------+-------------+-----------------------------------+
  | 1039-4095 | Unassigned  | -                                 |
  +-----------+-------------+-----------------------------------+
                         Table 6: TLV Types

TLV Operation Codes

TLV operation codes appear in the Oper field in the header of some TLVs. See Section 7.1.

                       +------+------------+
                       | Code | Operation  |
                       +======+============+
                       | 0    | Reserved   |
                       +------+------------+
                       | 1    | Update     |
                       +------+------------+
                       | 2    | Delete     |
                       +------+------------+
                       | 3-15 | Unassigned |
                       +------+------------+
                       Table 7: TLV Operation
                               Codes

Sub-TLV Types

See Section 7.3.

   +----------+---------------------+--------------------------+
   | Type     | Name                | Section of This Document |
   +==========+=====================+==========================+
   | 0        | Reserved            |                          |
   +----------+---------------------+--------------------------+
   | 1        | VRF Name            | 7.3.1                    |
   +----------+---------------------+--------------------------+
   | 2        | Ingress-QoS-Profile | 7.3.1                    |
   +----------+---------------------+--------------------------+
   | 3        | Egress-QoS-Profile  | 7.3.1                    |
   +----------+---------------------+--------------------------+
   | 4        | User-ACL-Policy     | 7.3.1                    |
   +----------+---------------------+--------------------------+
   | 5        | Multicast-ProfileV4 | 7.3.1                    |
   +----------+---------------------+--------------------------+
   | 6        | Multicast-ProfileV6 | 7.3.1                    |
   +----------+---------------------+--------------------------+
   | 7        | Ingress-CAR         | 7.3.2                    |
   +----------+---------------------+--------------------------+
   | 8        | Egress-CAR          | 7.3.3                    |
   +----------+---------------------+--------------------------+
   | 9        | NAT-Instance        | 7.3.1                    |
   +----------+---------------------+--------------------------+
   | 10       | Pool-Name           | 7.3.1                    |
   +----------+---------------------+--------------------------+
   | 11       | If-Desc             | 7.3.4                    |
   +----------+---------------------+--------------------------+
   | 12       | IPv6-Address List   | 7.3.5                    |
   +----------+---------------------+--------------------------+
   | 13       | Vendor              | 7.3.6                    |
   +----------+---------------------+--------------------------+
   | 12-64534 | Unassigned          |                          |
   +----------+---------------------+--------------------------+
   | 65535    | Reserved            |                          |
   +----------+---------------------+--------------------------+
                       Table 8: Sub-TLV Types

Error Codes

+-----------------+-----------------------+-------------------------+ | Value | Name | Remarks | +=================+=======================+=========================+ | 0 | Success | Success | +-----------------+-----------------------+-------------------------+ | 1 | Failure | Malformed message | | | | received. | +-----------------+-----------------------+-------------------------+ | 2 | TLV-Unknown | One or more of the | | | | TLVs was not | | | | understood. | +-----------------+-----------------------+-------------------------+ | 3 | TLV-Length | The TLV length is | | | | abnormal. | +-----------------+-----------------------+-------------------------+ | 4-999 | Unassigned | Unassigned basic | | | | error codes. | +-----------------+-----------------------+-------------------------+ | 1000 | Reserved | | +-----------------+-----------------------+-------------------------+ | 1001 | Version-Mismatch | The version | | | | negotiation fails. | | | | Terminate. The | | | | subsequent service | | | | processes | | | | corresponding to the | | | | UP are suspended. | +-----------------+-----------------------+-------------------------+ | 1002 | Keepalive Error | The keepalive | | | | negotiation fails. | +-----------------+-----------------------+-------------------------+ | 1003 | Timer Expires | The establishment | | | | timer expired. | +-----------------+-----------------------+-------------------------+ | 1004-1999 | Unassigned | Unassigned error | | | | codes for version | | | | negotiation. | +-----------------+-----------------------+-------------------------+ | 2000 | Reserved | | +-----------------+-----------------------+-------------------------+ | 2001 | Synch-NoReady | The data to be | | | | smoothed is not | | | | ready. | +-----------------+-----------------------+-------------------------+ | 2002 | Synch-Unsupport | The request for | | | | smooth data is not | | | | supported. | +-----------------+-----------------------+-------------------------+ | 2003-2999 | Unassigned | Unassigned data | | | | synchronization | | | | error codes. | +-----------------+-----------------------+-------------------------+ | 3000 | Reserved | | +-----------------+-----------------------+-------------------------+ | 3001 | Pool-Mismatch | The corresponding | | | | address pool cannot | | | | be found. | +-----------------+-----------------------+-------------------------+ | 3002 | Pool-Full | The address pool is | | | | fully allocated, and | | | | no address segment | | | | is available. | +-----------------+-----------------------+-------------------------+ | 3003 | Subnet-Mismatch | The address pool | | | | subnet cannot be | | | | found. | +-----------------+-----------------------+-------------------------+ | 3004 | Subnet-Conflict | Subnets in the | | | | address pool have | | | | been classified into | | | | other clients. | +-----------------+-----------------------+-------------------------+ | 3005-3999 | Unassigned | Unassigned error | | | | codes for address | | | | allocation. | +-----------------+-----------------------+-------------------------+ | 4000 | Reserved | | +-----------------+-----------------------+-------------------------+ | 4001 | Update-Fail-No-Res | The forwarding table | | | | fails to be | | | | delivered because | | | | the forwarding | | | | resources are | | | | insufficient. | +-----------------+-----------------------+-------------------------+ | 4002 | QoS-Update-Success | The QoS policy takes | | | | effect. | +-----------------+-----------------------+-------------------------+ | 4003 | QoS-Update-Sq-Fail | Failed to process | | | | the queue in the QoS | | | | policy. | +-----------------+-----------------------+-------------------------+ | 4004 | QoS-Update-CAR-Fail | Processing of the | | | | CAR in the QoS | | | | policy fails. | +-----------------+-----------------------+-------------------------+ | 4005 | Statistic-Fail-No-Res | Statistics | | | | processing failed | | | | due to insufficient | | | | statistics | | | | resources. | +-----------------+-----------------------+-------------------------+ | 4006-4999 | Unassigned | Unassigned | | | | forwarding table | | | | delivery error | | | | codes. | +-----------------+-----------------------+-------------------------+ | 5000-4294967295 | Reserved | | +-----------------+-----------------------+-------------------------+

                        Table 9: Error Codes

If-Type Values

Defined values of the If-Type field in the If-Desc sub-TLV (see Section 7.3.4) are as follows:

                  +-------+--------------------+
                  | Value | Meaning            |
                  +=======+====================+
                  | 0     | Reserved           |
                  +-------+--------------------+
                  | 1     | Fast Ethernet (FE) |
                  +-------+--------------------+
                  | 2     | GE                 |
                  +-------+--------------------+
                  | 3     | 10GE               |
                  +-------+--------------------+
                  | 4     | 100GE              |
                  +-------+--------------------+
                  | 5     | Eth-Trunk          |
                  +-------+--------------------+
                  | 6     | Tunnel             |
                  +-------+--------------------+
                  | 7     | VE                 |
                  +-------+--------------------+
                  | 8-254 | Unassigned         |
                  +-------+--------------------+
                  | 255   | Reserved           |
                  +-------+--------------------+
                     Table 10: If-Type Values

Access-Mode Values

Defined values of the Access-Mode field in the BAS Function TLV (see Section 7.7) are as follows:

                  +-------+---------------------+
                  | Value | Meaning             |
                  +=======+=====================+
                  | 0     | Layer 2 subscriber  |
                  +-------+---------------------+
                  | 1     | Layer 3 subscriber  |
                  +-------+---------------------+
                  | 2     | Layer 2 leased line |
                  +-------+---------------------+
                  | 3     | Layer 3 leased line |
                  +-------+---------------------+
                  | 4-254 | Unassigned          |
                  +-------+---------------------+
                  | 255   | Reserved            |
                  +-------+---------------------+
                    Table 11: Access-Mode Values

Access Method Bits

Defined values of the Auth-Method4 and Auth-Method6 fields in the BAS Function TLV (see Section 7.7) are defined as bit fields as follows:

                +------+-------------------------+
                | Bit  | Meaning                 |
                +======+=========================+
                | 0x01 | PPPoE authentication    |
                +------+-------------------------+
                | 0x02 | DOT1X authentication    |
                +------+-------------------------+
                | 0x04 | Web authentication      |
                +------+-------------------------+
                | 0x08 | Web fast authentication |
                +------+-------------------------+
                | 0x10 | Binding authentication  |
                +------+-------------------------+
                | 0x20 | Reserved                |
                +------+-------------------------+
                | 0x40 | Reserved                |
                +------+-------------------------+
                | 0x80 | Reserved                |
                +------+-------------------------+
                  Table 12: Auth-Method4 Values
                +------+-------------------------+
                | Bit  | Meaning                 |
                +======+=========================+
                | 0x01 | PPPoE authentication    |
                +------+-------------------------+
                | 0x02 | DOT1X authentication    |
                +------+-------------------------+
                | 0x04 | Web authentication      |
                +------+-------------------------+
                | 0x08 | Web fast authentication |
                +------+-------------------------+
                | 0x10 | Binding authentication  |
                +------+-------------------------+
                | 0x20 | Reserved                |
                +------+-------------------------+
                | 0x40 | Reserved                |
                +------+-------------------------+
                | 0x80 | Reserved                |
                +------+-------------------------+
                  Table 13: Auth-Method6 Values

Route-Type Values

Values of the Route-Type field in the IPv4 and IPv6 Routing TLVs (see Sections 7.8.1 and 7.8.2) defined in this document are as follows:

           +---------+---------------------------------+
           | Value   | Meaning                         |
           +=========+=================================+
           | 0       | User host route                 |
           +---------+---------------------------------+
           | 1       | Radius authorization FrameRoute |
           +---------+---------------------------------+
           | 2       | Network segment route           |
           +---------+---------------------------------+
           | 3       | Gateway route                   |
           +---------+---------------------------------+
           | 4       | Radius authorized IP route      |
           +---------+---------------------------------+
           | 5       | L2TP LNS side user route        |
           +---------+---------------------------------+
           | 6-65534 | Unassigned                      |
           +---------+---------------------------------+
           | 65535   | Reserved                        |
           +---------+---------------------------------+
                    Table 14: Route-Type Values

8.10. Access-Type Values

Values of the Access-Type field in the Basic Subscriber TLV (see Section 7.9.1) defined in this document are as follows:

+--------+---------------------------------------------------------+ | Value | Meaning | +========+=========================================================+ | 0 | Reserved | +--------+---------------------------------------------------------+ | 1 | PPP access (PPP RFC1661) | +--------+---------------------------------------------------------+ | 2 | PPP over Ethernet over ATM access (PPPoEoA) | +--------+---------------------------------------------------------+ | 3 | PPP over ATM access (PPPoA RFC3336) | +--------+---------------------------------------------------------+ | 4 | PPP over Ethernet access (PPPoE RFC2516) | +--------+---------------------------------------------------------+ | 5 | PPPoE over VLAN access (PPPoEoVLAN RFC2516) | +--------+---------------------------------------------------------+ | 6 | PPP over LNS access (PPPoLNS) | +--------+---------------------------------------------------------+ | 7 | IP over Ethernet DHCP access (IPoE_DHCP) | +--------+---------------------------------------------------------+ | 8 | IP over Ethernet EAP authentication access (IPoE_EAP) | +--------+---------------------------------------------------------+ | 9 | IP over Ethernet Layer 3 access (IPoE_L3) | +--------+---------------------------------------------------------+ | 10 | IP over Ethernet Layer 2 Static access (IPoE_L2_STATIC) | +--------+---------------------------------------------------------+ | 11 | Layer 2 Leased Line access (L2_Leased_Line) | +--------+---------------------------------------------------------+ | 12 | Layer 2 VPN Leased Line access (L2VPN_Leased_Line) | +--------+---------------------------------------------------------+ | 13 | Layer 3 Leased Line access (L3_Leased_Line) | +--------+---------------------------------------------------------+ | 14 | Layer 2 Leased line Sub-User access | | | (L2_Leased_Line_SUB_USER) | +--------+---------------------------------------------------------+ | 15 | L2TP LAC tunnel access (L2TP_LAC) | +--------+---------------------------------------------------------+ | 16 | L2TP LNS tunnel access (L2TP_LNS) | +--------+---------------------------------------------------------+ | 17-254 | Unassigned | +--------+---------------------------------------------------------+ | 255 | Reserved | +--------+---------------------------------------------------------+

                   Table 15: Access-Type Values

IANA Considerations

This document has no IANA actions.

10. Security Considerations

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.

Thus, appropriate protections MUST 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 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.

S-CUSP messages do not provide security. Thus, if these messages are exchanged in an environment where security is a concern, that security MUST be provided by another protocol such as TLS 1.3 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.

11. References

11.1. Normative References

RFC20 Cerf, V., "ASCII format for network interchange", STD 80,

          RFC 20, DOI 10.17487/RFC0020, October 1969,
          <https://www.rfc-editor.org/info/rfc20>.

RFC793 Postel, J., "Transmission Control Protocol", STD 7,

          RFC 793, DOI 10.17487/RFC0793, September 1981,
          <https://www.rfc-editor.org/info/rfc793>.

RFC2119 Bradner, S., "Key words for use in RFCs to Indicate

          Requirement Levels", BCP 14, RFC 2119,
          DOI 10.17487/RFC2119, March 1997,
          <https://www.rfc-editor.org/info/rfc2119>.

RFC2661 Townsley, W., Valencia, A., Rubens, A., Pall, G., Zorn,

          G., and B. Palter, "Layer Two Tunneling Protocol "L2TP"",
          RFC 2661, DOI 10.17487/RFC2661, August 1999,
          <https://www.rfc-editor.org/info/rfc2661>.

RFC2865 Rigney, C., Willens, S., Rubens, A., and W. Simpson,

          "Remote Authentication Dial In User Service (RADIUS)",
          RFC 2865, DOI 10.17487/RFC2865, June 2000,
          <https://www.rfc-editor.org/info/rfc2865>.

RFC6241 Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,

          and A. Bierman, Ed., "Network Configuration Protocol
          (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
          <https://www.rfc-editor.org/info/rfc6241>.

RFC8174 Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC

          2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
          May 2017, <https://www.rfc-editor.org/info/rfc8174>.

11.2. Informative References

[802.1Q] IEEE, "IEEE Standard for Local and metropolitan area

          networks--Bridges and Bridged Networks", IEEE 802.1Q-2018,
          DOI 10.1109/IEEESTD.2018.8403927, July 2018,
          <https://doi.org/10.1109/IEEESTD.2018.8403927>.

RFC1661 Simpson, W., Ed., "The Point-to-Point Protocol (PPP)",

          STD 51, RFC 1661, DOI 10.17487/RFC1661, July 1994,
          <https://www.rfc-editor.org/info/rfc1661>.

RFC2131 Droms, R., "Dynamic Host Configuration Protocol",

          RFC 2131, DOI 10.17487/RFC2131, March 1997,
          <https://www.rfc-editor.org/info/rfc2131>.

RFC2516 Mamakos, L., Lidl, K., Evarts, J., Carrel, D., Simone, D.,

          and R. Wheeler, "A Method for Transmitting PPP Over
          Ethernet (PPPoE)", RFC 2516, DOI 10.17487/RFC2516,
          February 1999, <https://www.rfc-editor.org/info/rfc2516>.

RFC2698 Heinanen, J. and R. Guerin, "A Two Rate Three Color

          Marker", RFC 2698, DOI 10.17487/RFC2698, September 1999,
          <https://www.rfc-editor.org/info/rfc2698>.

RFC3022 Srisuresh, P. and K. Egevang, "Traditional IP Network

          Address Translator (Traditional NAT)", RFC 3022,
          DOI 10.17487/RFC3022, January 2001,
          <https://www.rfc-editor.org/info/rfc3022>.

RFC3336 Thompson, B., Koren, T., and B. Buffam, "PPP Over

          Asynchronous Transfer Mode Adaptation Layer 2 (AAL2)",
          RFC 3336, DOI 10.17487/RFC3336, December 2002,
          <https://www.rfc-editor.org/info/rfc3336>.

RFC5511 Farrel, A., "Routing Backus-Naur Form (RBNF): A Syntax

          Used to Form Encoding Rules in Various Routing Protocol
          Specifications", RFC 5511, DOI 10.17487/RFC5511, April
          2009, <https://www.rfc-editor.org/info/rfc5511>.

RFC7042 Eastlake 3rd, D. and J. Abley, "IANA Considerations and

          IETF Protocol and Documentation Usage for IEEE 802
          Parameters", BCP 141, RFC 7042, DOI 10.17487/RFC7042,
          October 2013, <https://www.rfc-editor.org/info/rfc7042>.

RFC7348 Mahalingam, M., Dutt, D., Duda, K., Agarwal, P., Kreeger,

          L., Sridhar, T., Bursell, M., and C. Wright, "Virtual
          eXtensible Local Area Network (VXLAN): A Framework for
          Overlaying Virtualized Layer 2 Networks over Layer 3
          Networks", RFC 7348, DOI 10.17487/RFC7348, August 2014,
          <https://www.rfc-editor.org/info/rfc7348>.

RFC8446 Rescorla, E., "The Transport Layer Security (TLS) Protocol

          Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
          <https://www.rfc-editor.org/info/rfc8446>.

[TR-384] Broadband Forum, "Cloud Central Office Reference

          Architectural Framework", BBF TR-384, January 2018.

[WT-459] Broadband Forum, "Control and User Plane Separation for a

          Disaggregated BNG", BBF WT-459, 2019.

Acknowledgements

The helpful comments and suggestions from the following individuals are hereby acknowledged:

  • Loa Andersson
  • Greg Mirsky

Contributors

Zhenqiang Li China Mobile 32 Xuanwumen West Ave Xicheng District Beijing 100053 China

Email: [email protected]

Mach(Guoyi) Chen Huawei Technologies Huawei Bldg., No. 156 Beiqing Road Beijing 100095 China

Email: [email protected]

Zhouyi Yu Huawei Technologies

Email: [email protected]

Chengguang Niu Huawei Technologies

Email: [email protected]

Zitao Wang Huawei Technologies

Email: [email protected]

Jun Song Huawei Technologies

Email: [email protected]

Dan Meng H3C Technologies No. 1 Lixing Center No. 8 Guangxun South Street Chaoyang District Beijing 100102 China

Email: [email protected]

Hanlei Liu H3C Technologies No. 1 Lixing Center No. 8 Guangxun South Street Chaoyang District Beijing 100102 China

Email: [email protected]

Victor Lopez Telefonica Spain

Email: [email protected]

Authors' Addresses

Shujun Hu China Mobile 32 Xuanwumen West Ave Xicheng District Beijing 100053 China

Email: [email protected]

Donald Eastlake 3rd Futurewei Technologies 2386 Panoramic Circle Apopka, FL 32703 United States of America

Phone: +1-508-333-2270 Email: [email protected]

Fengwei Qin China Mobile 32 Xuanwumen West Ave Xicheng District Beijing 100053 China

Email: [email protected]

Tee Mong Chua Singapore Telecommunications Limited 31 Exeter Road, #05-04 Comcentre Podium Block SINGAPORE 239732 Singapore

Email: [email protected]

Daniel Huang ZTE

Email: [email protected]