<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY rfc2865 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2865.xml">
<!ENTITY __reference.RFC.2869__g60i1uxb SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2869.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc toc="yes"?>
<?rfc compact="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc strict="yes" ?>
<?rfc linkmailto="yes" ?>
<rfc category="std" docName="draft-maglione-sfc-nsh-radius-00"
     ipr="trust200902" updates="">
  <front>
    <title abbrev="Radius attributes for SPI">RADIUS Attributes for
    NSH</title>

    <author fullname="Roberta Maglione" initials="R." surname="Maglione">
      <organization abbrev="">Cisco Systems</organization>

      <address>
        <postal>
          <street>Via Torri Bianche 8</street>

          <city>Vimercate</city>

          <country>Italy</country>
        </postal>

        <phone/>

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

    <author fullname="Guillermo Trueba" initials="G." surname="Trueba">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street>Avenida Cortes Valencianas 58</street>

          <city>Valencia</city>

          <code>46015</code>

          <country>Spain</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>gtrueba@cisco.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Carlos Pignataro" initials="C." surname="Pignataro">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street>7200 Kit Creek Road</street>

          <city>Research Triangle Park</city>

          <region>NC</region>

          <code>27709</code>

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

        <phone/>

        <facsimile/>

        <email>cpignata@cisco.com</email>

        <uri/>
      </address>
    </author>

    <date month="October" year="2016"/>

    <area>Internet</area>

    <workgroup>sfc</workgroup>

    <abstract>
      <t>Network Service Header (NSH) protocol defines the Service Function
      Chaining (SFC) encapsulation required to support the Service Function
      Chaining (SFC) Architecture. One of the components of the Network
      Service Header (NSH) protocol is the Service Path Identifier (SPI),
      which identifies a service path, another important element of the NSH
      protocol is the Service Index (SI), which provides location within the
      Service Path.</t>

      <t>When Service Providers would like to deliver customized services
      offers requiring Service Functions Chains, a different service chain may
      be required for each subscriber or group of subscribers. In order to
      simplify the service provisioning in this scenario, it would be useful
      to be able to associate the Service Path Identifier (SPI), identifying
      the service chain, and the appropriate Service Index (SI), identifying
      the location in the service path, with the customer profile.</t>

      <t>In some Broadband networks, the customer profile information may be
      stored in Authentication, Authorization, and Accounting (AAA) servers.
      This document specifies two new Remote Authentication Dial-In User
      Service (RADIUS) attributes to carry the Service Path Identifier (SPI)
      and the Service Index (SI).</t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <t>Network Service Header (NSH) protocol <xref
      target="I-D.ietf-sfc-nsh"/> defines the Service Function Chaining (SFC)
      encapsulation required to support the Service Function Chaining (SFC)
      Architecture <xref target="RFC7665"/>. One of the components of the
      Network Service Header (NSH) protocol is the Service Path Identifier
      (SPI), which identifies a service path, another important element of the
      NSH protocol is the Service Index (SI), which provides location within
      the Service Path.</t>

      <t>When Service Providers would like to deliver customized services
      offers requiring Service Functions Chains, a different service chain may
      be required for each subscriber or group of subscribers. In order to
      simplify the service provisioning in this scenario, it would be useful
      to be able to associate the Service Path Identifier (SPI), identifying
      the service chain, and the appropriate Service Index (SI) identifying
      the location in the service path, with the customer profile.</t>

      <t>In some Broadband networks, the customer profile information may be
      stored in Authentication, Authorization, and Accounting (AAA) servers.
      This document specifies two new Remote Authentication Dial-In User
      Service (RADIUS) attributes to carry the Service Path Identifier (SPI)
      and the Service Index (SI).</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"/>.</t>
      </section>
    </section>

    <section anchor="term" title="Terminology ">
      <t><list style="hanging">
          <t hangText="NSH">Network Service Header</t>

          <t hangText="SFC">Service Function Chaining</t>

          <t hangText="SFF">Service Function Forwarder</t>

          <t hangText="SPI">Service Path Identifier</t>

          <t hangText="SI">Service Index</t>
        </list></t>
    </section>

    <section title="Architectural Model">
      <t><xref target="arch"/> illustrates the network reference model for a
      Broadband access scenario where a NAS, acting as RADIUS Client, performs
      both the Service Classification and Service Forwarder Function.</t>

      <t>The Service Functions which make up the Service Chaining are part of
      the SP network and they are not depicted in <xref target="arch"/></t>

      <figure anchor="arch" title="Network Reference Model">
        <artwork><![CDATA[                                              +-----+            
                                              | AAA |
                                              |     |       ,--------.
                                              +--+--+      /          \
                                                 ^        |  Internet  |
                                                 .        |   Access   |
                                      RADIUS     .       / \          /
                                                 .      /   '--------'
                                                 .     /
                                                 v    /      ,------.         
                        +------+             +---+---+      /        \        
         +------+       |      |             |  NAS  |     /          \    
         |  RG/ +-------|  AN  +-----+-------+  SCF  |----(    SP      )
         | host |       |      |             |  SFF  |     \ Network  /      
         +------+       +------+ (Ethernet)  +-------+      \        /        
             .                                   .           ?------?          
             .     PPPoE or IPoE Session         .                                                                                                              
             . <-------------------------------> .              
 
]]></artwork>
      </figure>

      <t>Here there is a brief description of the Authentication/Authorization
      process between the NAS and the AAA Server.</t>

      <t>The NAS initially sends a RADIUS Access-Request message to the RADIUS
      server, requesting authentication. Once the RADIUS server receives the
      request, it validates the sending client, and if the request is
      approved, the AAA server replies with an Access-Accept message including
      a list of attribute-value pairs that describe the parameters to be used
      for this session. This list MAY also contain the NSH Service Path
      Identifier (NSH-SPI) and the NSH Service Index (NSH-SI) attributes used
      to identify a specific service path and the location in the service
      path.</t>

      <t>The NSH SPI attribute returned by AAA Server in the Access-Accept is
      used by the NAS to insert the traffic of the subscriber in the correct
      service path. A classification rule, to be associated with the SPI, can
      also be sent by the AAA Server as part of the list of attribute-value
      pairs.</t>
    </section>

    <section title="RADIUS Attributes">
      <t>This section defines the NSH Service Path Identifier (SPI) and the
      NSH Service Index (SI) attributes that are used in the above-mentioned
      scenario. The attributes design follows <xref target="RFC6158"/> and
      refers to <xref target="RFC6929"/>.</t>

      <section title="NSH Service Path Identifier  ">
        <t>The NSH Service Path Identifier (NSH-SPI) RADIUS attribute contains
        the value which identifies a specific service path to be associated to
        a subscriber.</t>

        <t>When the NAS receives from the AAA Server the NSH-SPI attribute,
        the NAS MUST use the value contained in this attribute to populate the
        Service Path Identifier (SPI) field in the NSH Service Path header
        defined in <xref target="I-D.ietf-sfc-nsh"/>.</t>

        <t>If the NAS is pre-configured with a default NSH SPI value, this
        value MAY be inserted in the attribute. The RADIUS server MAY ignore
        the hint sent by the NAS, and it MAY assign a different NSH SPI.</t>

        <t>If the NAS includes the NSH-SPI attribute, but the AAA server does
        not recognize it, this attribute MUST be ignored by the AAA server. If
        the NAS does not receive the NSH-SPI attribute in the Access-Accept
        message, it MAY fall back to a pre-configured default NSH SPI, if any.
        If the NAS does not have any pre-configured NSH SPI, the traffic
        generated by that specific subscriber does not have to be sent across
        any service chain.</t>

        <t>If the NAS is pre-provisioned with a default NSH SPI and the
        NSH-SPI received in the Access-Accept message is different from the
        configured default, then the NSH-SPI received in the Access-Accept
        message MUST be used for the session.</t>

        <t>If an implementation includes Change-of-Authorization (CoA)
        messages <xref target="RFC5176"/>, they could be used to modify the
        current specified SPI. When the NAS receives a CoA Request message
        containing the NSH-SPI attribute, the NAS MUST use the received NSH
        SPI value to re-configure the the Service Path Identifier (SPI) field
        in the NSH Service Path header. This allows the network administrator
        to modify the forwarding of the traffic of a specific subscriber. By
        changing the SPI value the service path used for the subscriber is
        modified, thus the traffic of the selected subscriber is sent across a
        different service chain.</t>

        <t>The NSH-SPI RADIUS attribute MUST NOT appear more than once in a
        message.</t>

        <t>A summary of the NSH-SPI RADIUS attribute format is shown below.
        The fields are transmitted from left to right.</t>

        <figure anchor="Fig-SPI" title="NSH-SPI RADIUS Attribute">
          <preamble/>

          <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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |    Length     |             Value
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     Value (cont)  |
   +-+-+-+-+-+-+-+-+]]></artwork>

          <postamble/>
        </figure>

        <t><list style="hanging">
            <t hangText="Type">TBD - NSH-SPI</t>

            <t hangText="Length">5</t>

            <t hangText="Value">The field is 3 octets, containing a 24-bit
            unsigned integer Service Path Identifier. The NAS acting as
            classifier MUST copy this value into the SPI field of the NSH
            Service Path Header.</t>
          </list></t>
      </section>

      <section title="NSH Service Index ">
        <t>The NSH Service Index (NSH-SI) RADIUS attribute contains the value
        which identifies the location in the service path. According to <xref
        target="I-D.ietf-sfc-nsh"/> , the initial SI value SHOULD default to
        255.</t>

        <t>When the NAS receives from the AAA Server the NSH-SI attribute, the
        NAS MUST use the value contained in this attribute to populate the
        Service Index (SI) field in the NSH Service Path header defined in
        <xref target="I-D.ietf-sfc-nsh"/>.</t>

        <t>If the NAS is pre-configured with a default NSH SI value, this
        value MAY be inserted in the attribute. The RADIUS server MAY ignore
        the hint sent by the NAS, and it MAY assign a different NSH SI.</t>

        <t>If the NAS includes the NSH-SI attribute, but the AAA server does
        not recognize it, this attribute MUST be ignored by the AAA server. If
        the NAS does not receive the NSH-SI attribute in the Access-Accept
        message, but it receives the NSH-SPI attribute, it MAY fall back to a
        pre-configured default NSH SI, if any. If the NAS receives the NSH-SPI
        attribute, but it does not receives the NSH-SI attribute from the AAA
        Server and the NAS does not have any pre-configured SI, the traffic
        generated by that specific subscriber MUST be dropped as this is an
        error condition.</t>

        <t>If the NAS is pre-provisioned with a default NSH SI and the NSH-SI
        received in the Access-Accept message is different from the configured
        default, then the NSH-SI received in the Access-Accept message MUST be
        used for the session.</t>

        <t>If an implementation includes Change-of-Authorization (CoA)
        messages <xref target="RFC5176"/>, they could be used to modify the
        current specified NSH SI. When the NAS receives a CoA Request message
        containing the NSH-SI attribute, the NAS MUST use the received NSH SI
        value to re-configure the the Service Index (SI) field in the NSH
        Service Path header.</t>

        <t>The NSH-SI RADIUS attribute MUST NOT appear more than once in a
        message.</t>

        <t>A summary of the NSH-SI RADIUS attribute format is shown below. The
        fields are transmitted from left to right.</t>

        <figure anchor="SI" title="NSH-SI RADIUS Attribute">
          <preamble/>

          <artwork><![CDATA[    0                   1                   2                  
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |    Length     |    Value      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>

          <postamble/>
        </figure>

        <t><list style="hanging">
            <t hangText="Type">TBD - NSH-SI</t>

            <t hangText="Length">3</t>

            <t hangText="Value">The field is 1 octet, containing a 8-bit
            unsigned integer Service Index. The NAS acting as classifier MUST
            copy this value into the SI field of the NSH Service Path
            Header.</t>
          </list></t>
      </section>
    </section>

    <section title="Table of Attributes">
      <t>The following tables provide a guide to which attributes may be found
      in which kinds of packets, and in what quantity.<figure>
          <preamble/>

          <artwork><![CDATA[ Access- Access- Access-  Challenge Accounting #   Attribute
   Request Accept  Reject             Request
   0-1     0-1     0        0         0-1        TBD NSH-SPI
   0-1     0-1     0        0         0-1        TBD NSH-SI

   CoA-Request CoA-ACK CoA-NACK #   Attribute
   0-1         0       0        TBD NSH-SPI
   0-1         0       0        TBD NSH-SI
]]></artwork>

          <postamble/>
        </figure></t>

      <t>The following table defines the meaning of the above table
      entries.</t>

      <t><list style="hanging">
          <t hangText="0">This attribute MUST NOT be present in the
          packet.</t>

          <t hangText="0+">Zero or more instances of this attribute MAY be
          present in the packet.</t>

          <t hangText="0-1">0-1 Zero or one instance of this attribute MAY be
          present in the packet.</t>
        </list></t>

      <t/>
    </section>

    <section title="Diameter Considerations">
      <t>These attributes are usable within either RADIUS or Diameter <xref
      target="RFC6733"/>. Since the attributes defined in this document have
      been allocated from the standard RADIUS type space, no special handling
      is required by Diameter entities.</t>
    </section>

    <!-- term -->

    <!-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -->

    <section anchor="contr" title="Acknowledgements">
      <t>The authors would like to thank Jim Guichard for his valuable
      comments and inputs to this document.</t>
    </section>

    <section anchor="seccons" title="IANA Considerations">
      <t>Per this document, IANA has assigned one new RADIUS Attribute Type in
      the "Radius Types" registry (currently located at
      http://www.iana.org/assignments/radius-types) for the following
      attribute:</t>

      <t>NSH-SPI TBD</t>

      <t>NSH-SI TBD</t>
    </section>

    <section anchor="IANA" title="Security Considerations">
      <t>This document has no additional security considerations beyond those
      already identified in <xref target="RFC2865"/> for the RADIUS protocol
      and in <xref target="RFC5176"/> for CoA messages.</t>

      <t>The security considerations for NSH protocol are described in section
      9 of <xref target="I-D.ietf-sfc-nsh"/></t>
    </section>
  </middle>

  <back>
    <references title="Informative References">
      <?rfc include='reference.RFC.7665'?>

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

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

      <?rfc include='reference.RFC.6733'?>

      <?rfc include='reference.RFC.2865'?>

      <?rfc include='reference.RFC.6158'?>

      <?rfc include='reference.RFC.6929'?>

      <?rfc include='reference.I-D.ietf-sfc-nsh'?>
    </references>
  </back>
</rfc>
