<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- Some of the more generally applicable PIs that most I-Ds might want to use -->
<!-- Try to enforce the ID-nits conventions and DTD validity -->
<?rfc strict="yes" ?>
<!-- Items used when reviewing the document -->
<?rfc comments="no" ?>
<!-- Controls display of <cref> elements -->
<?rfc inline="no" ?>
<!-- When no, put comments at end in comments section,
                                 otherwise, put inline -->
<?rfc editing="no" ?>
<!-- When yes, insert editing marks: editing marks consist of a
                                 string such as <29> printed in the blank line at the
                                 beginning of each paragraph of text. -->
<!-- Create Table of Contents (ToC) and set some options for it.
         Note the ToC may be omitted for very short documents,but idnits insists on a ToC
         if the document has more than 15 pages. -->
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<!-- If "yes" eliminates blank lines before main section entries. -->
<?rfc tocdepth="3"?>
<!-- Sets the number of levels of sections/subsections... in ToC -->
<!-- Choose the options for the references.
         Some like symbolic tags in the references (and citations) and others prefer
         numbers. The RFC Editor always uses symbolic tags.
         The tags used are the anchor attributes of the references. -->
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<!-- If "yes", causes the references to be sorted in order of tags.
                                 This doesn't have any effect unless symrefs is "yes" also. -->
<!-- These two save paper: Just setting compact to "yes" makes savings by not starting each
         main section on a new page but does not omit the blank lines between list items.
         If subcompact is also "yes" the blank lines between list items are also omitted. -->
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<!-- end of list of popular I-D processing instructions -->
<!-- end of list of processing instructions -->
<rfc category="std" docName="draft-geisler-optical-device-discovery-00" ipr="trust200902">
  <front>
    <title>Optical Device Discovery</title>

    <author fullname="Sarah Geisler" initials="S.G." surname="Geisler">
      <organization>Google</organization>

      <address>
        <postal>
          <street/>

          <city>Kirkland</city>

          <code>98033</code>

          <region>Washington</region>

          <country>USA</country>
        </postal>

        <email>sgeisler@google.com</email>
      </address>
    </author>

   <author fullname="Fred Baker" initials="F.J." surname="Baker">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street/>

          <city>Santa Barbara</city>

          <code>93117</code>

          <region>California</region>

          <country>USA</country>
        </postal>

        <email>fred@cisco.com</email>
      </address>
    </author>

    <date/>

    <area>Internet Engineering Task Force</area>

    <workgroup/>

    <abstract>
      <t>This document introduces a method for Optical device discovery, by
      introducing a new multicast group for frames to be captured by optical nodes.</t>
    </abstract>

    <!--
		<note title="Foreword">
		</note>
		-->

    <!--
      <?rfc needLines="10" ?>
      <texttable anchor="table_example" title="A Very Simple Table">
      <preamble>Tables use ttcol to define column headers and widths.
      Every cell then has a &quot;c&quot; element for its content.</preamble>
          <ttcol align="center">ttcol #1</ttcol>
                                    <ttcol align="center">ttcol #2</ttcol>
                      <c>c #1</c>		<c>c #2</c>
                      <c>c #3</c>		<c>c #4</c>
                      <c>c #5</c>		<c>c #6</c>
      <postamble>which is a very simple example.</postamble>
      </texttable>
    -->
  </front>

  <middle>
    <!--
      <t>There are multiple list styles: "symbols", "letters", "numbers",
"hanging", "format", etc.</t>
      <t>
	<list style="symbols">
	    <t>First bullet</t>
	    <t>Second bullet</t>
	</list>
     </t>
-->

    <!--
<figure anchor="reference" title="Figure">
<artwork align="center">
<![CDATA[
	ASCII artwork goes here...
]]>
</artwork>
</figure>
-->

    <section anchor="intro" title="Introduction">
      <t>The <xref target="IEEE802.1AB"> specification</xref> describes
       for link layer discovery of devices. Whilst this addresses
      discovery of other link layer and network layer devices in the same
      subnet, optical devices do not have the capability to capture these
      messages on the client ports to which routers connect. Whilst SDN seeks
      to allow easy of inventory collection and connectivity discovery, a
      method of discovery can make this information available to
      higher software layers. </t>

      <t>The interaction between optical, link and network layer devices
      has seen many solutions with IPoDWDM and Generalized MPLS (GMPLS). These
      solutions have attempted a single control plane for all devices through
      the use of MPLS or routing protocols. However these solutions have
      proven troublesome for operators in multi vendor environments, and
      assume the presence of IP and MPLS in the network connecting to the
      optical nodes.</t>

      <t><xref target="RFC4957">RFC4957</xref> identifies the challenge when network 
      attachments change. Optical network operators have similar challenges.
      There is no view innate to Optical Network Management Systems that allows 
      detection of devices.</t>

      <t>Some vendors have opted for  LLDP snooping to be a solution to this problem.
      However organizations that wish to have a 'plug and play' approach to 
      optical networking without dedicated operational teams for optical systems 
      may wish this information to be available from link and network layer systems.</t>      <t>A standalone protocol also gives room for extensions for the optical domain to       use the discovery protocol to alert link and network layer systems of conditions in the      optical domain, that may affect traffic on the link and network layer, making fault correlation      operationally easier between the two domains.</t>

      <t>This proposal seeks discovery between two domains to make information
      to higher SDN abstraction layers easier. It does not propose a unified
      control plane, but discovery between devices operating at the link layer
      that are connected to optical transport through the use of mutual discovery.</t>

      <t>In figure 1, the routers with  configured would see device
      information of the other according to  specifications, but Add/Drop
      ROADM A has no way to tell what is connected to the client side ports.
      The Network Network Management system has no visibility of which optical 
      device it is connected to, or which wavelength it sits on the optical network.
      This gives operators a very limited view of the network and does not give any 
      view to higher layer software abstractions. In networks where the optical network 
      and IP network are owned by the same provider, discovery of the entire
      network is useful for operators who must troubleshoot the network end to
      end, as well as keep track of current connectivity and inventory.</t>

<figure anchor="network" title="DWDM is transparent to Link layer discovery">
<artwork align="center">
<![CDATA[
+------------+           +---------+           +---------+           +------------+
|            |           |         |           |         |           |            |
|  Router A  |           |         |           |         |           | Router B   |
|            | +-------->|  DWDM   +-----------+  DWDM   | +-------->|            |
|            |           |ADD/DROP |           |ADD/DROP |           |            |
+------------+           |         |           |         |           +------------+
                         |         |           |         |
                         +---------+           +---------+
]]>
</artwork>
</figure>

      <t>This proposal seeks mutual discovery between two domains to make information
      to higher SDN abstraction layers easier. It does not propose a unified
      control plane, but discovery between devices operating at the link layer
      that are connected to optical transport through the use of. There are two
      proposals, one that requires packet injection from optical devices, and      
      one that does not assume this functionality and assumes an out of band
      communication method via the Data Communication Network (DCN).</t>


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

    <section anchor="discovery" title="Optical Device Discovery - Direct Injection">
      <t>This solution requires an optical device to be able to inject a frame directly
      into the optical control plane. One way to achieve this is to insert a link layer
      system before the signals pass through the Digital Signal Processor (DSP) and
      out to the colored line side WDM ports.</t>

      <t>Routers and optical devices listen to an 'all optical nodes' link layer
      multicast group, and receive frames from routers from the attached
      router, with a destination MAC address the multicast MAC, every
      interval. This mechanism will allow discovery of routers attached to
      optical devices, and vice versa.</t>

      <t>Optical and Routers vendors can introduce configuration to: <list style="symbols">
          <t>Turn off this functionality on a per port basis</t>

          <t>Turn off globally</t>
        </list></t>
    </section>
    <section anchor="discoveryoob" title="Optical Device Discovery - Out of Band">
      <t>This solution does not require direct injection but assumes that the
      router management IP address is fully routed through the management network,
      such that it is reachable by the optical node.</t>

      <t>The router sends an optical discovery frame, which the optical node
      snoops. It sends a reply frame to the management IP address included in      the management IP address TLV, through the management network. The router      discovers the optical node through an out of band mechanism.</t>

      <t>The currently configurations options should exist: <list style="symbols">
          <t>The router can set the management IP TLV field in  to its own
          management IP address (this is the default)</t>

          <t>The router can set the management IP TLV field in  to a
          single IP address other than its own.</t>

          <t>The router can set the management IP TLV fields in  to
          multiple IP addresses, including its own and others.</t>
        </list></t>

      <t>Setting the IP TLV field to an IP address of a centralized management
      server means the optical nodes will send their connectivity information
      to a centralized system, which may interpret this information to build a
      view of the topology.</t>
    </section>
    <section anchor="tlvs" title="TLVs Introduced">
      <t>The optical device should send the following TLVs:<list style="symbols">
          <t>Platform type, chassis type</t>

          <t>Hostname</t>
          <t>Port Name</t>          <t>Port Type</t>
          <t>Time to live</t>
          <t>Capability, eg: DWDM, SONET., Router, Switch</t>

          <t>Wavelength client port maps to</t>

          <t>Link aggregation information</t>
          <t>IP Management Address, one or multiple</t>
          <t>Alarms or Conditions (line or client side) affecting that port</t>           <t>Performance monitoring of that port, eg: sent/received CRC          errors in the optical discovery internal</t>
         </list></t>      <t>The router will send similar TLVs to the TLVs used in the current LLDP standard.</t>

<figure anchor="framestructure" title="Optical Device Discovery frame structure">
<artwork align="center">
<![CDATA[
+------------+------------+------------+------------+------------+
|            |            |            |            |            |
|  Chassis   |  Hostname  |  Port ID   |  Port Type |  Optional  |
|   Type     |            |            |            |     TLV    |
|            |            |            |            |            |
+------------+------------+------------+------------+------------+

+------------+------------+
|            |            |
|    ...     |  Optional  |
|            |    TLV     |
|            |            |
+------------+------------+
]]>
</artwork>
</figure>
    </section>

    <section anchor="Future" title="Future Considerations">
      <t>In future, the discovery mechanism can be moved to a standalone protocol
      to allow for extensions. Such as:<list style="symbols">
          <t>Ability for optical nodes to alert a router when it hits a
          threshold PreFEC Bit Error Rate, or PostFEC bit errors, so           correlation of outages is simplified between the optical and          network domains.</t>

          <t>Ability for optical nodes to alert a router when the Optical
          Supervisory Channel (OSC) is down, suggesting a fiber cut.</t>

          <t>Ability for optical nodes to alert a router when it is receiving or
          transmitting Ethernet Cycle Redundancy Check (CRC) errors.</t>
        </list>
        This extensions allow operators to see possible line side causes locally
        on the router. This can lead to Administratively shutting down router ports
        that are affected due to line side issues, or failing over to more reliable
        links earlier than without this information.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>A revision of this document will require a link layer address reserved.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>In situations where long haul transport providers are leasing 10/100G
      circuits to clients, the proposed solution may cause issues on how
      providers would handle discovery of other networks.</t>

      <t>When the client does not want the provider network to discover
      connectivity, the client can configure port by port, or on a global
      basis to stop sending  optical discovery frames.</t>

      <t>When the provider network does not want the client IP network to
      discover its transport network, the optical equipment should have an
      option implemented by the vendor to configure specific NMS IP addresses
      that can query this information from the controllers.</t>

      <t>Basically, both sides must have the feature turned on to discover
      each other.</t>
    </section>

  </middle>

  <back>
    <!-- references split to informative and normative -->

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

      <reference anchor="IEEE802.1AB">
        <front>
          <title>Std 802.1AB-2005, "Standard for Local and metropolitan area
          networks - Station and Media Access Control Connectivity
          Discovery"</title>

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

          <date year="2005"/>
        </front>
      </reference>
    </references>

    <section anchor="log" title="Change Log">
      <t><list style="hanging">
          <t hangText="Initial Version:">July 2016</t>
        </list></t>
    </section>
  </back>
</rfc>
