<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-bryant-mpls-rfc6374-over-udp-00"
     ipr="trust200902" updates="">
  <front>
    <title abbrev="RFC6374 over UDP">RFC6374 over UDP</title>

    <author fullname="Stewart Bryant" initials="S" surname="Bryant">
      <organization>Cisco Systems</organization>

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

    <author fullname="George Swallow" initials="G" surname="Swallow">
      <organization>Cisco Systems</organization>

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

    <author fullname="Siva Sivabalan" initials="S" surname="Sivabalan">
      <organization>Cisco Systems</organization>

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

    <date year="2015" />

    <area>Routing</area>

    <workgroup>MPLS</workgroup>

    <keyword>OAM</keyword>

    <keyword></keyword>

    <keyword>Internet-Draft</keyword>

    <abstract>
      <t>In draft-bryant-mpls-synonymous-flow-labels the concept of MPLS
      synonymous flow labels (SFL) was introduced and it was shown how they
      could be used to support RFC6374 loss measurements. In
      draft-bryant-mpls-sfl-control the request, lifetime management and
      withdrawal of SFLs was described. In this memo we show how these two
      protocols can be run over UDP to support the operation of RFC6374 in
      systems that do not support the Generic Associated Channel Label (GAL)
      (RFC5586).</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>In draft-bryant-mpls-synonymous-flow-labels the concept of MPLS
      synonymous flow labels (SFL) was introduced and it was shown how they
      could be used to support RFC6374 loss measurements. In
      draft-bryant-mpls-sfl-control the request, lifetime management and
      withdrawal of SFLs was described. In this memo we show how these two
      protocols can be run over UDP to support the operation of RFC6374 in
      systems that do not support the Generic Associated Channel Label (GAL)
      <xref target="RFC5586"></xref>.</t>

      <t>The approach is to run an Associated Channel Header directly over UDP
      using the ACH UDP port supplemented by addressing information carried in
      the ACH payload. This memo explains how the extension of RFC6374 as
      described in draft-bryant-mpls-synonymous-flow-labels and
      draft-bryant-mpls-sfl-control provide the necessary information to
      provide mapping between the RFC6374 packet carried over UDP and the MPLS
      construct being monitored, even when the RFC6374 protocol exchange is
      entirely out of band relative to the Label Switched Path (LSP), Virtual
      Private Network (VPN) or Pseudowire (PW) being instrumented.</t>

      <t>The key to this is the decoupling between the RFC6374 message and the
      data plane provided through the use of synonymous flow labels (SFL) as
      described in draft-bryant-mpls-synonymous-flow-labels.</t>

      <t>Nothing in this memo prevents the use of the ACH UDP port for other
      types of Associated Channels, but the precise method of doing so is
      outside the scope of this text.</t>
    </section>

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

    <section title="Protocol Stack">
      <t>The protocol stack is shown in <xref target="PS"></xref>. It consists
      of three components, the UDP header, the ACH and either an RFC6374
      message or an SFL Control message.</t>

      <figure anchor="PS" title="RFC6374 over UDP Protocol Stack">
        <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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |    Source  Port               |       Destination Port        |  UDP
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |    Length                     |       Checksum                |  UDP
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |0 0 0 1|Version|   Reserved    |         Channel Type          |  ACH
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                                               |
  |        RFC6374 or SFL Control Payload with SFL TLVs           .
  .                                                               .
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ]]></artwork>
      </figure>

      <t></t>

      <section title="Querier to Responder">
        <t>The following is rather laboured, but it is necessary to
        demonstrate that all of the required mapping information is
        carried.</t>

        <t>Consider the direction Querier to Responder for RFC6374 Messages.
        The following explains the identifier mapping.</t>

        <t><list style="numbers">
            <t>Destination IP address (carried in the outer IP header (not
            shown)). This is used to identify the targeted RFC6374 Responder
            to the IP network.</t>

            <t>Source IP address (carried in the outer IP header (not shown)).
            This is used to identify the originating RFC6374 Querier to the
            RFC6374 Responder in order for it to construct the return IP
            packet.</t>

            <t>UDP Source Port used by the RFC6374 Responder to direct
            responses to the correct Query process on the RFC6374 Querier.</t>

            <t>UDP Destination Port is used by RFC6374 Querier to direct the
            message to the correct process on the RFC6374 Responder.</t>

            <t>IP and UDP source and destination information are reversed in
            the usual way in the ACH Response messages from Responder back to
            Querier.</t>

            <t>The RFC6374 Session Identifier used by both Querier and
            Responder to discriminate between multiple RFC6374 sessions
            running concurrently between the two nodes.</t>

            <t>The SFL from the SFL TLV in the RFC6374 messages is used to
            identify the MPLS label that is being instrumented.</t>

            <t>The SFL Control Protocol Session identifier used by both
            Querier and Responder to discriminate between multiple RFC6374
            sessions running concurrently between the two nodes and used to
            bind the SFL control protocol session to the RFC6374 session.</t>
          </list></t>

        <t>Note that a node running the SFL control protocol allocates a
        unique SFL in response to each SFL request, and thus there is no
        ambiguity as to which session between which source-destination pair a
        particular label belongs.</t>

        <t>Also note that there is no restriction on the use of the same SFL
        by many nodes since it always known which node allocated it by
        reference to items 1..8 in the list above.</t>
      </section>
    </section>

    <section title="Manageability Considerations">
      <t>This may be provided in a future version of this document.</t>
    </section>

    <section anchor="SEC" title="Security Considerations">
      <t>Great care needs to be taken to ensure that the UDP packets defined
      in this document do not enter the network from unauthorised sources.
      This can be achieved by careful address management and the use of
      appropriate access control at the network's IP entry points.</t>
    </section>

    <section title="IANA Considerations">
      <t>IANA is requested to allocate a UDP port from the user port
      range:</t>

      <t><list style="hanging">
          <t hangText="Service Name:">ACH over UDP</t>

          <t hangText="Port Number:">TBD</t>

          <t hangText="Descriptiopn">Transport of Associated Channel Headers
          over UDP</t>

          <t hangText="Reference">This memo</t>
        </list></t>
    </section>

    <section title="Acknowledgements">
      <t>TBD</t>
    </section>
  </middle>

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

      <?rfc include='reference.RFC.5586'?>
    </references>
  </back>
</rfc>
