<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
    which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
    There has to be one entity for each item to be referenced. 
    An alternate method (rfc include) is described in the references. -->

<!ENTITY I-D.hussain-ccamp-flexe-signaling-extensions SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.draft-hussain-ccamp-flexe-signaling-extensions-00.xml">
<!ENTITY I-D.du-ccamp-flexe-channel SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.draft-du-ccamp-flexe-channel-00.xml">
<!ENTITY I-D.wang-ccamp-flexe-signaling SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.draft-wang-ccamp-flexe-signaling-02.xml">

<!ENTITY RFC2119 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2205 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2205.xml">
<!ENTITY RFC2210 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2210.xml">
<!ENTITY RFC2629 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2629.xml">
<!ENTITY RFC3209 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3209.xml">
<!ENTITY RFC3471 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3471.xml">
<!ENTITY RFC3473 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3473.xml">
<!ENTITY RFC4328 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4328.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
    please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
    (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space 
    (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="info" docName="draft-huang-flexe-framework-00" ipr="trust200902">
  <!-- category values: std, bcp, info, exp, and historic
     ipr values: trust200902, noModificationTrust200902, noDerivativesTrust200902,
        or pre5378Trust200902
     you can add the attributes updates="NNNN" and obsoletes="NNNN" 
     they will automatically be output with "(if approved)" -->

  <!-- ***** FRONT MATTER ***** -->

  <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="FlexE Framework">Framework and Requirements for GMPLS-based Control of Flexible Ethernet Network</title>

    <!-- add 'role="editor"' below for the editors if appropriate -->

    <!-- Another author who claims to be an editor -->

    <author fullname="James Huang" initials="J." role="editor" surname="Huang">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street></street>

          <!-- Reorder these if your country does things differently -->

          <city>Shenzhen</city>

          <region></region>

          <code></code>

          <country>China</country>
        </postal>

        <phone></phone>

        <email>james.huang@huawei.com</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

    <author fullname="Qiwen Zhong" initials="Q." surname="Zhong">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street></street>

          <!-- Reorder these if your country does things differently -->

          <city>Shenzhen</city>

          <region></region>

          <code></code>

          <country>China</country>
        </postal>

        <phone></phone>

        <email>zhongqiwen@huawei.com</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

    <date year="2016"/>

    <!-- 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>General</area>

    <workgroup>Internet Engineering Task Force</workgroup>

    <!-- WG name at the upperleft corner of the doc,
         IETF is fine for individual submissions.  
      If this element is not present, the default is "Network Working Group",
         which is used by the RFC Editor as a nod to the history of the IETF. -->

    <keyword>template</keyword>

    <!-- Keywords will be incorporated into HTML output
         files in a meta tag but they have no effect on text or nroff
         output. If you submit your draft to the RFC Editor, the
         keywords will be used for the search engine. -->

    <abstract>
      <t>This memo provides some background information of Flexible Ethernet
        (FlexE), and explain some terminologies and use cases, further
        derives the requirements to the GMPLS based control plane.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">

      <section title="Requirements Language">
        <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">
            RFC 2119</xref>
          .
        </t>
      </section>
    </section>

    <section title="Concept and Terminology">
      <section title="Concept">
        <t>Ethernet starts from 10M, then evolves to 100M, 1000M, 10G, etc. As
          the line rate goes higher, it is more and more difficult for manufacturing 
          technology to support this 10-times-based evolution, and also it takes 
          more time to develop new standard. For example, IEEE started standardization
          work on 100G Ethernet in December, 2007, and actually the initial discussion 
          on this started about two year earlier, finished the first part of 100G 
          standard in 802.3ba in June, 2010. As of today, it is almost 10 years since 
          the beginning, the work on 100G for more models is still ongoing. 
          The work on 400G Ethernet started from March, 2013, and it is expected to 
          be finished by the end of 2017 which can covver a distance of 10km. It will 
          take some more years before the 400G module is commonly available at a reasonable 
          price in the market.  There is no consensus yet what is going to be the next 
          beyond, 800G or 1T.</t>

        <t>If operators want to use the next generation higher speed Ethernet
          interface, e.g. for Inter-DC connections where high speed interfaces
          are desired due to large traffic volume and rapid increase of traffic,
          they will need to wait for some years for the new interface modules
          . A possible mitigation is to use some bonding technology, such as 
          802.1AX link aggregation, but with the hash issue -- traffic may not 
          be evenly distributed over multiple links. FlexE is a good solution 
          for this problem, traffic is distributed over multiple physical links 
          by 64/66B blocks in a round-robin manner. This is one of the key reasons 
          that FlexE is invented.</t>

        <t>Besides bonding, FlexE also provides sub rate and channelization
          capability. In FlexE, a 100G physical link can be divided into 20
          slots, and each slot is 5G. A subset of these 20 slots can be
          grouped together and provide a virtual link with bandwidth of 5G*N. 
          FlexE also allows slots over multiple physical links be grouped together 
          and provide bandwidth which is not integral multiple of a physical link, 
          such as 150G bandwidth over two 100G physical links. This is called as 
          channelization.</t>
      </section>

      <section title="Terminology">
        <t>
          <list style="symbols">
            <t>FlexE Group<vspace blankLines="1"/>
              FlexE Group is a set of physical links which can be bonded
              together between two network devices. A FlexE group can have 
              minimally one, and up to 254 physical links. 
              <vspace blankLines="1"/>.The links may be between two adjacent network 
              devices, or be connected over transport network. If links are 
              connected by transport network, for the purpose of skew control,
              FlexE traffic over different physical links should traverse
              through same route in the transport network. In some cases, links
              between two adjacent network devices cannot be added into a same
              FlexE group due to some constraints, such as the links spread
              across multiple line cards where skew may be a problem. FlexE group 
              may be created automatically via signaling, which is not yet covered 
              by the FlexE specification. The maintenance of FlexE Group, add / remove 
              PHYs, may also be automated which requires further study.</t>

            <t>FlexE Group ID<vspace blankLines="1"/>
              There can be multiple FlexE groups in a network device. In order
              to distinguish these groups, a FlexE Group ID, 20bits in length in
              <xref target="FlexE1.0"/>, is assigned for each FlexE group. 
              FlexE Group ID is carried in the overhead over each
              physical link in the FlexE Group, and the two end points of a
              FlexE connection should be using a same FlexE Group Number in each
              direction. The assignment and auto negotiation of FlexE Group ID
              may be performed via signaling, which needs further study.</t>

            <t>FlexE Group Member PHY<vspace blankLines="1"/>
              Each Physical Link in the FlexE Group is a member PHY. The current
              FlexE specification <xref target="FlexE1.0"/> only supports bonding 
              of physical links of a same rate. In the future, FlexE may support 
              links with rates other than 100G, such as 400G which is being 
              standardized by IEEE.</t>


            <t>PHY Number<vspace blankLines="1"/>
              Each PHY in a FlexE group is assigned with a PHY number, and a PHY
              number will be carried in the FlexE overhead over each PHY. FlexE
              specification requires that each end of the FlexE Group should
              assigned a same PHY number to a PHY. The PHY Number will also be
              used for FlexE mux and demux, FlexE traffic will be distributed to
              FlexE slots which may span over multiple PHYs in a round robin
              manner, which means traffic is distributed to PHYs with PHY number
              in ascending sequence.</t>

            <t>FlexE Calendar<vspace blankLines="1"/>
              FlexE calendar is the representation of FlexE slot resource of a
              FlexE group. It is the combination of sub calendar of each
              physical link in a FlexE group.</t>

            <t>FlexE Sub Calendar<vspace blankLines="1"/>
              FlexE sub calendar is the representation of the 20 slots of a
              physical link. Each FlexE sub calendar is carried in the FlexE
              overhead over the corresponding physical link when communicating
              with the other end.</t>

            <t>FlexE Client<vspace blankLines="1"/>
              A FlexE client can be Ethernet packet flow, with the rates of 10G, 
              40G, 100G, and in the future 25G, 50G, 200G and 400G, according to
              section 7.2.2 of <xref target="FlexE1.0"/>. It can also be some type 
              of traffic other than Ethernet, CBR or VBR, such as fiber channel 
              traffic. If FlexE is intended for network virtualization and network 
              slicing in the future, or to support traffic with rates not listed 
              above, it is better to support any N*5G rate.</t>

            <t>FlexE Client Channel<vspace blankLines="1"/>
              The channel supporting a FlexE client between FlexE shim layer of 
              two nodes is a FlexE client channel. This channel can be a group 
              FlexE slots between two adjacent nodes; an OTN OCh, a WDM wavelength or
              a fiber in the FlexE unaware case; an ODUk or ODUflex; or the 
              combination of above, etc. The forwarding method used in the channel
              maybe L0, L1, L2 or above.</t>

            <t>FlexE Client ID<vspace blankLines="1"/>
              FlexE client ID is a 16bit integer, carried in the FlexE calendar
              in the overhead, representing the owner of a FlexE slot; each slot
              in use is related to a FlexE client ID. Receiver end of a FlexE
              group need to parse the FlexE calendar to find out which slots
              belongs to a FlexE client based on the mapping of FlexE client ID
              and slots, and then perform traffic mux.</t>

            <t>FlexE Shim<vspace blankLines="1"/>
              The FlexE shim is the layer maps or demaps FlexE client to or from
              a set FlexE slots over a FlexE group. According to <xref
                target="FlexE1.0"/>
              , the FlexE shim layer is within the 802.3 PCS layer, right below
              the 64/66B encode / decode module.</t>

          </list>
        </t>
      </section>
    </section>

    <section title="FlexE Related Network Use cases">
      <section title="Brief">
      <t>According to section 82, 83 of <xref target="IEEE802.3"/> and 
      <xref target="FlexE1.0"/>, Ethernet and FlexE layering is shown in the 
      figure below.</t>
        <figure align="center" title="Standard Ethernet and FlexE"
          anchor="Standard-Ethernet-and-FlexE">
          <artwork><![CDATA[
       +------------------+  
       |    L2 & Above    |  
       +------------------+
       |  RECONCILIATION  |
       +------------------+
               |  |  MII 
   +-------------------------+
   |          PCS            |
   | +---------------------+ |
   | |  64/66B En/Decode   | | / +------------------+
   | +---------------------+ |/  | Idle Add/Remove  |
   | |     FlexE  Shim     | |   +------------------+
   | +---------------------+ |\  |  FlexE Calendar  |
   | |     De/scramble     | | \ +------------------+
   | +---------------------+ |
   | |  AM Add / Remove    | |
   | | block Distribution  | |  /+------------------+
   | +---------------------+ | / |      PMA         |
   +-------------------------+/  +------------------+
   |          PMA            |   | RS-FEC(Optional) |
   +-------------------------+\  +------------------+
   |          PMD            | \ |      PMA         |
   +-------------------------+  \+------------------+
              |  |  MDI
     +--------------------+
     |       MEDIUM       |
     +--------------------+
              ]]></artwork>
        </figure>

      <t>There are three typical FlexE transport use cases as depicted in 
        <xref target="FlexE1.0"/>, and correspondingly there are several network 
        layering and mapping options.</t>
        <figure align="center" title="FlexE Transport Mappings"
          anchor="flexe-mappings">
          <artwork><![CDATA[
+-----------------+      +-----------------+       +-----------------+ 
| L2 & Above      |      | L2 & Above      |       | L2 & Above      |
+-----------------+      +-----------------+       +-----------------+
| PCS (Upper)     |      | PCS (Upper)     |       | PCS (Upper)     |
+-----------------+      +-----------------+       +-----------------+
| 64/66B          |      | 64/66B          |       | 64/66B          |
| Encode/Decode   |      | Encode/Decode   |       | Encode/Decode   |
+-----------------+      +-----------------+       +-----------------+
| Idle Add/Remove |      | Idle Add/Remove |               | |       
+-----------------+      +-----------------+               | |
| FlexE Calendar  |      | FlexE Calendar  |               | |
+-----------------+      +-----------------+               | |
| PCS (Lower)     |              | |                       | |
+-----------------+              | |                       | |
       | |                       | |                       | |
       | |                       | |                       | |
       | |                       | |                       | |
+-----------------+      +-----------------+       +-----------------+
|    OTN G.709    |      |    OTN G.709    |       |    OTN G.709    |
+-----------------+      +-----------------+       +-----------------+
   FlexE Unaware             FlexE Aware             Flex Termination 
              ]]></artwork>
        </figure>
      </section>

      <section title="FlexE Unaware Transport">
        <t>In this mode, the FlexE traffic will be treated as bit stream on
          physical link basis, rather than at FlexE group or FlexE client basis.
          FlexE encapsulation and signaling is transparent to the transport
          network, The transport network will not try to interpret the bit
          stream. If the transport network covers a very long distance, skew
          might be a problem for FlexE, a large skew value should be considered.</t>

        <t>If there are multiple physical links in a FlexE group, it may be 
        necessary to consider carrying the traffic of the various link along
        the same transport network path so as to mitigate skew issue.</t>

        <figure align="center" title="L1 Connectivity" anchor="L1-Connectivity">
          <artwork><![CDATA[
       +------------------+  
       |    L2 & Above    |  
       +------------------+
       |  RECONCILIATION  |
       +------------------+
               |  |  MII 
   +-------------------------+
   |          PCS            |
   | +---------------------+ |
   | |  64/66B En/Decode   | |
   | +---------------------+ |
   | |     FlexE  Shim     | |
   | +---------------------+ |
   | |     De/scramble     | |
   | +---------------------+ |
   | |  AM Add / Remove    | |
   | | block Distribution  | |          +-------------------------+
   | +---------------------+ |   L1     |    PCS Layer & Above    |
   +-------------------------+ <----->  +-------------------------+
   |          PMA            |                      | |                 
   +-------------------------+                      | |
   |          PMD            |                      | |
   +-------------------------+                      | |
              |  |  MDI                             | |
     +--------------------+             +-------------------------+
     |       MEDIUM       |             |         OTN G.709       |
     +--------------------+             +-------------------------+
              ]]></artwork>
        </figure>

        <t>According to section 17.7.5.1 and Annex E of <xref target="G.709"/>,
        the data stream at the interface between PCS and PMA should be carried
        over OTN, as shown in the above figure.</t>

        <t>There is an efficiency problem in this mode. Because the transport
          network will not be able to know which FlexE slots are in use and
          which are not, then the transport network will have to carry all the
          traffic in a FlexE group. For example, if a FlexE group consists of
          two 100G links, and the configured FlexE bandwidth is 150G: 100G over
          one link and 50G over the other. But the transport network has to
          carry the total 200G traffic, unable to remove the unused 50G slots.</t>
      </section>

      <section title="FlexE Aware Transport">
        <t>The transport network can understand the FlexE protocol, and will
          remove the unused slots before carrying FlexE traffic over the
          transport network. At the egress point of transport network, FlexE
          traffic will be mapped to the same number slots, while leaving some
          slots in the FlexE Group unused if necessary. This will save some
          bandwidth of the transport network. In this mode, the transport
          network interwork with FlexE below the FlexE layer, assuming FlexE is
          L1.5, most of the FlexE overhead will be transported over the
          transport network. The session management channel in the FlexE
          overhead will be terminated and replaced with idle control block, as
          specified in section 8.3 of <xref target="FlexE1.0"/>.</t>

        <t>The data stream to be transported is above L1 and below FlexE shim
          (L1.5), which is called as L1.25 data stream.</t>

        <figure align="center" title="L1.25 Connectivity"
          anchor="L1.25-Connectivity">
          <artwork><![CDATA[
       +------------------+  
       |    L2 & Above    |  
       +------------------+
       |  RECONCILIATION  |
       +------------------+
               |  |  MII 
   +-------------------------+            
   |          PCS            |            
   | +---------------------+ |            
   | |  64/66B En/Decode   | |            
   | +---------------------+ |            +---------------------+
   | |     FlexE  Shim     | |   L1.25    | FlexE Shim & Above  |
   | +---------------------+ | <------->  +---------------------+
   | |     De/scramble     | |                      | |
   | +---------------------+ |                      | |
   | |  AM Add / Remove    | |                      | |
   | | block Distribution  | |                      | |
   | +---------------------+ |                      | |      
   +-------------------------+                      | |
   |          PMA            |                      | |                 
   +-------------------------+                      | |
   |          PMD            |                      | |
   +-------------------------+                      | |
              |  |  MDI                             | |
     +--------------------+             +-------------------------+
     |       MEDIUM       |             |         OTN G.709       |
     +--------------------+             +-------------------------+
              ]]></artwork>
        </figure>

        <t>The FlexE traffic is interleaved before transporting, so there will
          be no skew issue; and OTN will use BGMP algorithm to map FlexE traffic 
          into ODUk or ODUflex, as specified in section 17.11 of <xref target="G.709"/>.</t>

        <t>[Note: The case when FlexE traffic is greater than the rate of a
          single link or a WMD wavelength is not yet considered by <xref target="G.709"/>
          for the time being.</t>

        <t>This mode is usually used for a point to point path, rather than a
          P2MP or MP2MP case. The traffic stream is the valid traffic of a whole
          FlexE group.</t>
      </section>

      <section title="FlexE Client Transport">
        <t>This is also called FlexE termination transport. The FlexE traffic
          over multiple slot will be aggregated into a 64/66B stream, and the
          FlexE overhead will be removed before FlexE traffic is carried over
          the transport network. At the egress of the transport network, FlexE
          overhead will be added when the traffic is converted back into FlexE
          mode.</t>

        <figure align="center" title="L1.5 Connectivity"
          anchor="L1.5-Connectivity">
          <artwork><![CDATA[
       +------------------+  
       |    L2 & Above    |  
       +------------------+
       |  RECONCILIATION  |
       +------------------+
               |  |  MII 
   +-------------------------+            
   |          PCS            |            
   | +---------------------+ |          +--------------------------+ 
   | |  64/66B En/Decode   | |   L1.5   | 64/66B En/Decode & Above |  
   | +---------------------+ | <------> +--------------------------+
   | |     FlexE  Shim     | |                      | |  
   | +---------------------+ |                      | |
   | |     De/scramble     | |                      | |
   | +---------------------+ |                      | |
   | |  AM Add / Remove    | |                      | |
   | | block Distribution  | |                      | |
   | +---------------------+ |                      | |      
   +-------------------------+                      | |
   |          PMA            |                      | |                 
   +-------------------------+                      | |
   |          PMD            |                      | |
   +-------------------------+                      | |
              |  |  MDI                             | |
     +--------------------+             +--------------------------+
     |       MEDIUM       |             |         OTN G.709        |
     +--------------------+             +--------------------------+
              ]]></artwork>
        </figure>

        <t>This mode does not have the skew issue because the FlexE overhead is
          removed and the concept of FlexE slots does not exist when the traffic
          is in the transport network, alignment between slot is not necessary.</t>

        <t>The traffic in a FlexE group can be divided into multiple flows in
          the transport network, each can be identified by FlexE client ID, or
          FlexE client ID plus FlexE group number. These different flows can be
          routed through different ODUk or ODUflex and consequently may traverse
          over different link path to different end station.</t>

          <t>As shown in <xref target="L1.5-Connectivity"/>, the FlexE overhead 
          is removed from the FlexE traffic and the same number of 64/66B idle 
          blocks are inserted at the IPG position between Ethernet frames when
          FlexE payload is Ethernet. It may be a different case if the FlexE 
          payload is not Ethernet. Then the traffic is in the form of 64/66B 
          block stream on a per FlexE client basis, and it is CBR stream. The 
          mapping of this CBR stream over OTN uses IMP algorithm as specified 
          in section 17.11 of <xref target="G.709"/>.</t>
      </section>

      <section title="FlexE Client Routing and Transport">
        <t>This is another type of FlexE termination transport, FlexE overhead 
        will be terminated and traffic will be converted into L2/L2.5/L3 packets 
        streams on a per FlexE client basis, which is VBR stream, rather than 
        64/66B blocks in the above case.</t>

        <t>This will enable some new application scenario, such as transport 
        network may be used to provide VPLS-like VPN service, or to support 
        network virtualization and network slicing. A FlexE client can be modeled 
        in a system as a virtual interface, a set of virtual interfaces can
        construct a L2 or L3 forwarding instance.</t>

        <figure align="center" title="L2-L2.5-L3 Connectivity Option1"
          anchor="L2-L2.5-L3-Connectivity-Option1">
          <artwork><![CDATA[
       +------------------+             +--------------------------+ 
       |    L2 & Above    |             |       L2 & Above         |
       +------------------+ <---------> +--------------------------+
       |  RECONCILIATION  |                         | |
       +------------------+                         | |
               |  |  MII                            | |
   +-------------------------+                      | |
   |          PCS            |                      | |
   | +---------------------+ |          +--------------------------+
   | |  64/66B En/Decode   | |          | 64/66B Encode / Decode   |
   | +---------------------+ |          +--------------------------+ 
   | |     FlexE  Shim     | |          |     Idle Add / Remove    |
   | +---------------------+ |          +--------------------------+ 
   | |     De/scramble     | |                      | |
   | +---------------------+ |                      | |
   | |  AM Add / Remove    | |                      | |
   | | block Distribution  | |                      | |
   | +---------------------+ |                      | |      
   +-------------------------+                      | |
   |          PMA            |                      | |                 
   +-------------------------+                      | |
   |          PMD            |                      | |
   +-------------------------+                      | |
              |  |  MDI                             | |
     +--------------------+             +--------------------------+
     |       MEDIUM       |             |         OTN G.709        |
     +--------------------+             +--------------------------+
              ]]></artwork>
        </figure>

        <figure align="center" title="L2-L2.5-L3 Connectivity Option2"
          anchor="L2-L2.5-L3-Connectivity-Option2">
          <artwork><![CDATA[
       +------------------+             +--------------------------+ 
       |    L2 & Above    |             |       L2 & Above         |
       +------------------+ <---------> +--------------------------+
       |  RECONCILIATION  |                         | |
       +------------------+                         | |
               |  |  MII                            | |
   +-------------------------+          +--------------------------+
   |          PCS            |          |          GFP-F           |
   | +---------------------+ |          +--------------------------+  
   | |  64/66B En/Decode   | |                      | |
   | +---------------------+ |                      | |
   | |     FlexE  Shim     | |                      | |  
   | +---------------------+ |                      | |
   | |     De/scramble     | |                      | |
   | +---------------------+ |                      | |
   | |  AM Add / Remove    | |                      | |
   | | block Distribution  | |                      | |
   | +---------------------+ |                      | |      
   +-------------------------+                      | |
   |          PMA            |                      | |                 
   +-------------------------+                      | |
   |          PMD            |                      | |
   +-------------------------+                      | |
              |  |  MDI                             | |
     +--------------------+             +--------------------------+
     |       MEDIUM       |             |         OTN G.709        |
     +--------------------+             +--------------------------+
              ]]></artwork>
        </figure>
        <t><xref target="G.709"/> provides two methods to map packet client
        signal into OPUk as specified in section 17.10 and 17.11 of <xref target="G.709"/>,
        firs map packet flow into GFP-F encapsulation then into OPUk or OPUflex, or map 
        packet flow into FlexE client signal in the form of 64/66B block, then into
        OPUflex using Idle Mapping Procedure (IMP) as specified in section 17.11 of 
        <xref target="G.709"/>.</t>
      </section>
    </section>

    <section title="GMPLS Extension Requirements">
      <section title="Generic">
        <t>The following parameters are applicable to FlexE Aware L1.25 Relay, FlexE
        Termination L1.5 Relay, and FlexE Termination L2/L2.5/L3 Relay.</t>

        <t>SENDER_TSPEC object: Class = 12 <xref target="RFC2205"/>, C-Type = TBD.</t>
        <t>FLOWSPEC object: Class = 9, <xref target="RFC2205"/>, C-Type = TBD.</t>

        <t>Traffic Parameters will be carried in the SENDER_TSPEC and FLOWSPEC object 
        in Path Message to specify the traffic characteristics of a flow.
        section 4.2 of <xref target="I-D.du-ccamp-flexe-channel"/> already provides a traffic 
        parameter definition.</t>
        
        <t>Switching Type</t>
        <figure>
          <artwork><![CDATA[
        Value       Type
        -----       ----
        TBD1        FlexE
              ]]></artwork>
        </figure>

        <t>Generalized Label Object is carried in Resv Message. <xref target="RFC3209"/>.
        Section 3.1 of <xref target="I-D.hussain-ccamp-flexe-signaling-extensions"/> proivdes 
        a label definition for FlexE which can support future links other than 100G and possible 
        new granularities, also provides support to heterogeneous links in a FlexE group.
        If a simplified version is desired, the one in section 3.2 of 
        <xref target="I-D.wang-ccamp-flexe-signaling"/> can be considered.</t>
      </section>

      <section title="FlexE Unaware Transport">
        <t>This is actually a traditional mode, listed here for the purpose
        of completeness only.</t>

        <t>[Note: to consider carrying traffic of multiple links in a FlexE group
        along a same transport network path? TBD]</t>

        <t>LSP Encoding Type, Switching Type, G-PID will be carried in the Generalized
        Label Request Object. <xref target="RFC3473"/>.</t>
        <t>LSP Encoding Type <xref target="RFC3471"/></t>
        <figure>
          <artwork><![CDATA[
        Value       Type
        -----       ----
          9         Fiber
              ]]></artwork>
        </figure>

        <t>Switching Type <xref target="RFC3471"/></t>
        <figure>
          <artwork><![CDATA[
        Value       Type
        -----       ----
        200         Fiber-Switch Capable    (FSC)
              ]]></artwork>
        </figure>

        <t>Generalized PID (G-PID)</t>
        <figure>
          <artwork><![CDATA[
        Value     G-PID Type                 LSP Encoding Type
        -----     ----------                 ------------------------
        TBD2      100GE PCS                  Fiber, G.709 OCh, Lambda
              ]]></artwork>
        </figure>
        <t>A new G-PID type is required, although this is not FlexE related.</t>

        <t></t>

        <t>Label Format <xref target="RFC3471"/> will be carried in the Generalized
        Label Object.</t>
        <figure align="center" title="Port Label Format (RFC3471)" 
          anchor="Port-Label-Format-RFC3471">
          <artwork><![CDATA[
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             Label                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
              ]]></artwork>
        </figure>

        <t>A new traffic parameter definition for FlexE unaware mode may not be necessary
        since the transport network is not supposed to know FlexE. A possible  option 
        is to reuse the traffic parameter definition in section 3.2.2 of <xref target="RFC2210"/>.</t>
      </section>

      <section title="FlexE Aware Transport">
        <t>LSP Encoding Type</t>
        <figure>
          <artwork><![CDATA[
        Value       Type
        -----       ----
        TBD3        FlexE Aware Group
              ]]></artwork>
        </figure>

        <t>Generalized PID (G-PID)</t>
        <figure>
          <artwork><![CDATA[
        Value     G-PID Type         LSP Encoding Type
        -----     --------------     ------------------
        TBD4      FlexE Aware        FlexE Aware Group
              ]]></artwork>
        </figure>
        <t>OTN will use BGMP algorithm to map the FlexE signal over transport network.</t>
      </section>

      <section title="FlexE Client Transport">
        <t>LSP Encoding Type</t>
        <figure>
          <artwork><![CDATA[
        Value       Type
        -----       ------------
        TBD5        FlexE Client
              ]]></artwork>
        </figure>


        <t>Generalized PID (G-PID)</t>
        <figure>
          <artwork><![CDATA[
        Value     G-PID Type           LSP Encoding Type
        -----     --------------       ------------------
        TBD6      FlexE Client         FlexE Client
              ]]></artwork>
        </figure>
      </section>

      <section title="FlexE Client Routing and Transport">
        <t>LSP Encoding Type for FlexE client (packet).</t>
        <figure>
          <artwork><![CDATA[
        Value       Type
        -----       -------------------
        TBD7        FlexE Client Packet
              ]]></artwork>
        </figure>        

        <t>Generalized PID (G-PID)</t>
        <figure>
          <artwork><![CDATA[
        Value     G-PID Type                 LSP Encoding Type
        -----     --------------------       -------------------
        TBD8      FlexE Client  Packet       FlexE Client Packet
              ]]></artwork>
        </figure>
      </section>
    </section>

    <section title="Routing Extension Requirements">
      <t>TBD.</t>
    </section>

    <section title="Signaling Extension Requirements">
      <t>TBD.</t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t></t>
    </section>

    <!-- Possibly a 'Contributors' section ... -->

    <section anchor="IANA" title="IANA Considerations">
     <t>SENDER_TSPEC object: Class = 12 <xref target="RFC2205"/>, C-Type = TBD.</t>
     <t>FLOWSPEC object: Class = 9 <xref target="RFC2205"/>, C-Type = TBD.</t>

      <t>LSP Encoding Type for FlexE aware group</t>
      <figure>
        <artwork><![CDATA[
      Value       Type
      -----       ----
       TBD        FlexE Aware Group
            ]]></artwork>
      </figure>

      <t>LSP Encoding Type for FlexE client (L1.5).</t>
      <figure>
        <artwork><![CDATA[
      Value       Type
      -----       ------------
       TBD        FlexE Client
            ]]></artwork>
      </figure>

      <t>LSP Encoding Type for FlexE client (packet).</t>
      <figure>
        <artwork><![CDATA[
      Value       Type
      -----       -------------------
       TBD        FlexE Client Packet
            ]]></artwork>
      </figure>


      <t>Switching Type for FlexE.</t>
      <figure>
        <artwork><![CDATA[
      Value       Type
      -----       ----
       TBD        FlexE
            ]]></artwork>
      </figure>

      <t>Generalized PID (G-PID) for 100GE PCS</t>
      <figure>
        <artwork><![CDATA[
      Value     G-PID Type                 LSP Encoding Type
      -----     ----------                 ------------------------
       TBD      100GE PCS                  Fiber, G.709 OCh, Lambda
            ]]></artwork>
      </figure>

      <t>Generalized PID (G-PID) for FlexE aware transport.</t>
      <figure>
        <artwork><![CDATA[
      Value     G-PID Type         LSP Encoding Type
      -----     --------------     ------------------
       TBD      FlexE Aware        FlexE Aware Group
            ]]></artwork>
      </figure>

      <t>Generalized PID (G-PID) for FlexE Client (L1.5).</t>
      <figure>
        <artwork><![CDATA[
      Value     G-PID Type           LSP Encoding Type
      -----     --------------       ------------------
       TBD      FlexE Client         FlexE Client
            ]]></artwork>
      </figure>


      <t>Generalized PID (G-PID) for FlexE client (packet).</t>

      <figure>
        <artwork><![CDATA[
      Value     G-PID Type                 LSP Encoding Type
      -----     --------------------       -------------------
       TBD      FlexE Client  Packet       FlexE Client Packet
            ]]></artwork>
      </figure>

    </section>

    <section anchor="Security" title="Security Considerations">
      <t>TBD.</t>
    </section>
  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>
    <!-- References split into informative and normative -->

    <!-- There are 2 ways to insert reference entries from the citation libraries:
     1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
     2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
        (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

     Both are cited textually in the same manner: by using xref elements.
     If you use the PI option, xml2rfc will, by default, try to find included files in the same
     directory as the including file. You can also define the XML_LIBRARY environment variable
     with a value containing a set of directories to search.  These can be either in the local
     filing system or remote ones accessed by http (http://domain/dir/... ).-->

    <references title="Normative References">
      <!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->
      &I-D.hussain-ccamp-flexe-signaling-extensions;
      &I-D.du-ccamp-flexe-channel;
      &I-D.wang-ccamp-flexe-signaling;

      &RFC2119;
      &RFC3471;
      &RFC3473;
      &RFC4328;

      <reference anchor="FlexE1.0">
        <front>
          <title>Flex Ethernet Implementation Agreement 1.0</title>

          <author>
            <organization>OIF</organization>
          </author>

          <date year="2016"/>
        </front>
      </reference>

      <reference anchor="G.709">
        <front>
          <title>Interfaces for the optical transport network</title>

          <author>
            <organization>ITU</organization>
          </author>

          <date year="2016"/>
        </front>
      </reference>

      <reference anchor="IEEE802.3">
        <front>
          <title>IEEE Standard for Ethernet</title>

          <author>
            <organization>IEEE</organization>
          </author>

          <date year="2015"/>
        </front>
      </reference>

    </references>

    <references title="Informative References">
      <!-- Here we use entities that we defined at the beginning. -->
      &RFC2205;
      &RFC2210;
      &RFC2629;
      &RFC3209;

    </references>

  </back>
</rfc>
