<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
	  <!ENTITY RFC4382 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4382.xml">
	  <!ENTITY I-D.li-reg-purge SYSTEM
		   "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.li-reg-purge.xml"> 
	  ]>

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt'?>
<?rfc strict="yes"?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="info" ipr="trust200811" docName="draft-huang-nvo3-vxlan-extension-for-vbras-00">

 <front>

  <!-- The abbreviated title is used in the page header- it is only
       necessary if the full title is longer than 39 characters -->
  <title abbrev="vxlan-extension-for-vbras-00">
  VxLAN Extension Requirement for Signaling Exchange Between Control and User Plane of vBras
  </title>

  <author initials="L" role="editor" surname="Huang" fullname="Lu Huang">
    <organization>China Mobile</organization>
    <address>
      <postal>
        <street>32 Xuanwumen West Ave, Xicheng District</street>
        <city>Beijing</city>
        <code>100053</code>
        <country>China</country>
      </postal>
      <email>hlisname@yahoo.com</email>
    </address>
  </author>
  
    <author initials="S" surname="Hu" fullname="Shujun Hu">
    <organization>China Mobile</organization>
    <address>
      <postal>
        <street>32 Xuanwumen West Ave, Xicheng District</street>
        <city>Beijing</city>
        <code>100053</code>
        <country>China</country>
      </postal>
      <email>13488683482@139.com</email>
    </address>
  </author>

  <date month="March" year="2017"></date>
  <!-- If the month and year are both specified and are the current ones,
       xml2rfc will fill in the current day for you. If only the current
       year is specified, xml2rfc will fill in the current day and month
       for you. If the year is not the current one, it is necessary to
       specify at least a month (xml2rfc assumes day="1" if not specified
       for the purpose of calculating the expiry date).  With drafts it is
       normally sufficient to specify just the year. -->

  <!-- Meta-data Declarations -->

  <area>Routing Area</area>
  <workgroup>NVO3</workgroup>

  <abstract>

    <t>
<!-- TODO: needs to be extended -->
This document briefly describes the architecture of control plane and user plane separated BRAS and the VxLAN extension requirement for Signaling Exchange between control plane and user plane. It also describes some possible solutions.
    </t>

  </abstract>

 </front>

 <middle>

  <!-- BEGIN 1. Introduction -->
  <section title="Introduction">

    <t>
For migration of vBRAS, one way is separating the control and user plane of traditional BRAS. Control plane is deployed in centrolized cloud DC and user plane is fulfilled by high performance hardware device, e.g. router, switch, etc. VxLAN is used to transfer some of signaling packets between CP and user UP. For carrying information of access user VxLAN need to be extended or combined with other protocols/mechanisms.
   </t>

  </section>
  <!-- END 1. Introduction -->

<!-- BEGIN 2. Terminology -->
  <section title="Terminology">

    <t>
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" 
in this document are to be interpreted as described 
in <xref target="RFC2119" />.
    </t>
   </section>
  <!-- END 2. Terminology -->  

  <!-- BEGIN 3. Requirement-->
  <section title="Requirement">

    <t>
The architecture of C/U separated BRAS is shown as the following figure.
    </t>

<figure anchor="vbras-architecture" align="center" title="Architecture of C/U separated vBRAS">
<artwork>

                +----------------------------------+
                |                                  |
                |              BRAS-CP             |
                |                                  |
                +--+--------------+--------------+-+
                   |              |              |
         Signaling |   Management | Configuration|
         Interface |   Interface  |    Interface |
             |     |       |      |        |     |
           VxLAN   |    OpenFlow  |      NETCONF |
                   |              |              |
                +--+--------------+--------------+-+
                |                                  |
                |              BRAS-UP             |
                |                                  |
                +-----------------+----------------+
                                  |
                                  |
                         +--------+--------+
                         |                 |
                         | Access Network  |
                         |                 |
                         +--------+--------+
                                  |
                             +----+----+
                             |         |
                             |   User  |
                             |         |
                             +---------+

</artwork>
</figure>

    <t>
In this architecture, control plane (CP) is responsible for user access authentication and setting forwarding entries of user plane if authentication is successful. User plane (UP) need to relay PPPoE/IPoE signaling packets between users and CP and forward PPPoE/IPoE data packets to Internet based on the forwarding entries set by CP. CP should do some basic configurations on UP, e.g. service configuration.
    </t>

    <t>
There are three interfaces between CP and UP. Configuration interface is used by CP to carry out basic configurations of user plane through NETCONF. Management interface is used for seting forwarding entries of user plane through OpenFlow. Signaling interface is used to transfering PPPoE/IPoE signaling packets between user plane and control plane. VxLAN is chosen for signaling interface since it's a relatively mature technology and can carry L2 packets through L3 network. For user access authentication, CP need to know which port of UP the user is connected to for the authentication of access location because a specfic user is only permitted on specific port. Usually the following information is necessary: device ID, slot ID, subcard ID and port ID, which need about 16 to 32 bits totally. The access port information should be carried in VxLAN packets encapsulated by UP. So an entension on VxLAN or some other mechanism is necessary for this requirement.
    </t>
    
  </section>
  
  <!-- END 3. Requirement-->

  <!-- BEGIN 4. Analysis on solutions -->
  <section title="Analysis on solutions">

  <!-- BEGIN 4.1.  -->
  <section title="VxLAN header solution">

    <t>
In VxLAN header, two possible fields can carry the required information. 
    </t>
    
        <t>
One is VNI field in which 16 bits is used for carrying port information and 8 bits for the real VxLAN ID.  The advantage is no amendment on VxLAN header is required and most of current devices can work as UP based on standard VxLAN, e.g. routers, switches. The disadvantage is too many VxLAN tunnels must be built and it's hard for CP to build VxLAN tunnel with UP since it doesn't know VNI  before receiving VxLAN packets from UP.
    </t>

     <t>
Another is the reserved 32 bits in VxLAN header. The advantage is the VNI and port info could be arranged separately and no further field is introduce in. The disadvantage is the available reserved bits is limited and the usage of reserved bits might conflict with other draft. In addition, current devices need to upgrade to support this new field.
    </t>

     <t>
At last, maybe we can extended VxLAN header. For example, we can define a extension sign in current reverved bits and extend more fielded beyond current format of VxLAN. The advantagethe is VNI and port info could be arranged flexibly. The disadvantage is VxLAN header should be amended and current devices need to upgrade to support the amendment. The following figure is an example.
    </t>
    
<figure anchor="extension-example1" align="center" title="Example of extension of VxLAN header">
<artwork>

  Please view in a fixed-width font such as Courier.

    +------------+-----------+-----------+------------+
    |            |           |           |Extension   |
    |            |           |           |Sign        |
    |Flag        |Reserved   |VNI        |=           |
    |            |           |           |True        |
    +------------+-----------+-----------+------------+
    |            |           |                        |
    |Type=       |Length     |Port Information        |
    |PortInfo    |           |                        |
    |            |           |                        |
    +------------+-----------+------------------------+

</artwork>
</figure>

  </section>
  <!-- END 4.1 VxLAN header solution -->

  <!-- BEGIN 4.2.  -->
  <section title="Combination of VxLAN and NSH">

    <t>
As mentioned in <xref target="I-D.ietf-sfc-nsh">Network Service Header</xref> and <xref target="I-D.ietf-nvo3-vxlan-gpe">Generic Protocol Extension for VXLAN</xref>,  the field of "Context Headers" in NSH can be used for carrying the required information. The advantage is VNI and port info could be arranged flexibly. The disadvantage is that introducing NSH in is a little heavier than required and more functional requirements are put on UP device. Furthermore, VxLAN-GPE and NSH are still in draft status.
    </t>

  </section>
  <!-- END 4.2 Combination of VxLAN and NSH -->

  <!-- BEGIN 4.3.  -->
  <section title="Assign VNIs for every port">

    <t>
This method is also based on VNI. When UP is connected to CP, CP will assign different VNI for every port. Both CP and UP should keep a mapping table of VNI and port. Then CP can encapsulate PPPoE/IPoE signaling packets with a specific VNI based on receiving port. CP can get the port information through VNI and the mapping table. The advantage is no amendment on VxLAN header is required and most of current devices can work as UP based on standard VxLAN. The disadvantage is too many VxLAN tunnels must be built and extra complex mechanisms should be included in for VNI assignment and the storage of mapping table.
    </t>

  </section>
  <!-- END 4.3 Assign VNIs for every port -->

  <!-- BEGIN 4.4.  -->
  <section title="Summury of these soluitlons">

    <t>
By comparison of the above solutions, we prefer to extend VxLAN header to meet the requirement. Because it seems leverage the flexibility and complexity. So some kind of extension on VxLAN header need to be standardized.
    </t>

  </section>
  <!-- END 4.4 Summury of these solutions -->

  </section>
  <!-- END 4. Analysis on solutions -->

  <!-- BEGIN 5. Security Considerations -->
  <section anchor="sec:security_considerations" title="Security Considerations">

    <t>
      None.
    </t>

  </section>
  <!-- END 5. Security Considerations -->

  <!-- BEGIN 6. IANA Considerations -->
  <section anchor="sec:iana" title="IANA Considerations">

    <t>
      None.
    </t>

  </section>
  <!-- END 6. IANA Considerations -->

 </middle>

 <back>

  <references title="Normative References">

<?rfc include="reference.RFC.2119.xml"?>  	
<?rfc include="reference.RFC.7348.xml"?>
<?rfc include="reference.I-D.ietf-sfc-nsh"?>
<?rfc include="reference.I-D.ietf-nvo3-vxlan-gpe"?>

  </references>

 </back>

</rfc>
