CCAMP                                                   C. Margaria, Ed.
Internet-Draft                                    Nokia Siemens Networks
Intended status: Standards Track                           G. Martinelli
Expires: August 11, 28, 2013                                           Cisco
                                                                S. Balls
                                                               B. Wright
                                                              Metaswitch
                                                       February 07, 24, 2013

                          LSP Attribute in ERO
                  draft-ietf-ccamp-lsp-attribute-ro-00
                  draft-ietf-ccamp-lsp-attribute-ro-01

Abstract

   LSP attributes can be specified or recorded for whole path, but they
   cannot be targeted to a specific hop.  This document proposes
   alternative ways to extend the semantic for RSVP ERO object to target
   LSP attributes to a specific hop.

Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on August 11, 28, 2013.

Copyright Notice

   Copyright (c) 2013 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
     1.1.  Contributing Authors . . . . . . . . . . . . . . . . . . .  3
     1.2.  Requirements Language  . . . . . . . . . . . . . . . . . .  3
   2.  Requirements . . . . . . . . . . . . . . . . . . . . . . . . .  4
   3.  Solutions  . . . . . . . . .  ERO LSP Attribute Subobject  . . . . . . . . . . . . . . . . .  5
     3.1.  Non solution . . . . . . . . . . . . . . . . . . . . . . .  5
     3.2.  Extended  ERO Object  . . . . . . . . . . . . . LSP_ATTRIBUTE subobject  . . . . . .  5
       3.2.1.  Semantic of the Extended ERO object . . . . . . . . .  5
       3.2.2.
     3.2.  Procedures . . . . . . . . . . . . . . . . . . . . . .  5
       3.2.3.  Subobjects . . . . . . . . . . . . . . . . . . . . . .  6
       3.2.4.  Processing . . . . . . . . . . . . . . . . . . . . . .  9
   4.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 11  7
   5.  Security Considerations  . . . . . . . . . . . . . . . . . . . 12  8
   6.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 13  9
   7.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 14 10
     7.1.  Normative References . . . . . . . . . . . . . . . . . . . 14 10
     7.2.  Informative References . . . . . . . . . . . . . . . . . . 14 10
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 15 12

1.  Introduction

   Generalized MPLS (GMPLS) Traffic Engineering (TE) Label Switched
   Paths (LSPs) can be route-constrained by making use of the Explicit
   Route (ERO) object and related sub-objects as defined in [RFC3209],
   [RFC3473], [RFC3477], [RFC4873], [RFC4874], [RFC5520] and [RFC5553].
   This
   Those route constraints are extended by a number of documents,
   including element defined in [RFC6163],
   [I-D.ietf-ccamp-wson-signaling],
   [I-D.dong-ccamp-rsvp-te-mpls-tp-li-lb] or
   [I-D.ali-ccamp-rc-objective-function-metric-bound].

   RSVP already supports generic extension of LSP attributes in
   [RFC5420].  In order to support current and future ERO constraint
   extensions this document proposes mechanisms defines a mechanism to target LSP attributes
   at a specific hop.  This document presents several solutions for
   discussion, final document will contains only one document after WG
   consensus.

1.1.  Contributing Authors

1.2.  Requirements Language

   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 RFC 2119 [RFC2119].

2.  Requirements

   The requirement is to provide a generic mechanism to carry
   information related to specific nodes when signaling an LSP.  This
   document does not restrict what that information can be used for.
   LSP attribute defined [RFC5420] should be expressed in ERO and SERO
   objects.

3.  Solutions

3.1.  Non solution

   A solution using a specific  ERO LSP Attribute Subobject

   The ERO LSP Attributes subobject may be carried in the ERO or SERO
   object if they are present.  The subobject is not used because uses the subobject length is limited to 8 bit, versus 16 bit for LSP
   ATTRIBUTES.  This does not allow to put LSP ATTRIBUTE subobjects in standard format
   of an ERO subobjects.

3.2.  Extended subobject.

3.1.  ERO Object LSP_ATTRIBUTE subobject

   The logic of the EXTENDED_EXPLICIT_ROUTE follows length is variable and content MUST be the one of SERO.The
   class of same as for the EXTENDED_EXPLICIT_ROUTE
   LSP_ATTRIBUTE object is xxx (of the form
   11bbbbbb). with Attributes TLVs.  The EXTENDED_EXPLICIT_ROUTE object has size of the following
   format: Class = xxx, C_Type = 1 The EXTENDED_EXPLICIT_ROUTE ERO sub-
   object
   may be used if some node along limits the explicit route support this
   object.  The EXTENDED_EXPLICIT_ROUTE object is assigned a class value size of the form 11bbbbbb, so it LSP Attribute TLV to 250 bytes.  The
   typical size of currently defined and forthcoming LSP_ATTRIBUTE TLVs
   applicable to a specific hop (WSON_SIGNALING, OF and Metric) is forwarded by nodes not supporting it.

       0
   foreseen to exceed this limit.

   The ERO LSP attribute subobject is defined as follows:

      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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |L|    Type     |     Length    |    Reserved                 |R|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      //                        (Subobjects)                      Attributes TLVs                        //
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Subobjects The contents of an EXTENDED_EXPLICIT_ROUTE object are

   See [RFC3209] for a
   series description of variable- length data items called subobjects. L parameters.  The
   subobjects attributes TLV
   are encoded as defined in [RFC5420] section Section 3.2.3 below.

3.2.1.  Semantic of the Extended ERO object

   Extended ERO object is carried in Path messages and carries a list of
   hops extended with hop-specific information.  It is structured as a
   sequence of hop identifier subobjects (to indicate the hop who should
   process the subsequent attributes) and a series of hop attributes
   (which may be mandatory or optional) for the specified hop to
   process.

3.2.2.  Procedures

   If a Path message contains multiple EXTENDED_EXPLICIT_ROUTE objects,
   only the first object is meaningful.  Subsequent
   EXTENDED_EXPLICIT_ROUTE objects MAY be ignored and SHOULD NOT be
   propagated.  An EXTENDED_EXPLICIT_ROUTE SHOULD contain at least 2
   subobjects.  The first subobject MUST indicate a node or link that
   identifies a hop that should process the next subobject(s).  The
   address used to identify the hop SHOULD also be listed in the ERO or
   an SERO.  This ensures that the extended attribute is for a node or
   link along the LSP path.  The second subobject SHOULD contains an
   extended node or link information.  In this document this SHOULD be a
   LSP Attribute subobject.

3.2.3.  Subobjects

   The content of an EXTENDED_EXPLICIT_ROUTE are a series of variable
   length subobjects.  Each subobject has the following form

  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           | (Subobject contents)|
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--------//-----------+

   The 3.

   Type indicates the type of contents of the subobject.  Currently
   defined values are:

   1  Hop identifier subobject containing an ERO subobject:

         IPv4 prefix

         IPv6 prefix

         Unnumbered Interface ID

         Autonomous system number

         Path Key with 32-bit PCE ID

         Path Key with 128-bit PCE ID

      Per-hop attributes:

   XX LSP Attribute  x TBD by IANA.

   Length  The Length contains the total length of the subobject in
      bytes, including the Type and Length . fields.  The Length MUST be at least
   4, and
      always divisible by 4.

   Reserved  Reserved, must be set to 0 when the subobject is inserted
      in the ERO, MUST NOT be changed when a multiple of 4.

3.2.3.1.  Hop identifier

   The Hop identifier subobject contains exactly one ERO subobject
   identifying a hop.  The value of the subobject is a copy of the ERO
   subobject definition.  The format of the subobject is as follow:

      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                    |L| sub Type    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | Sub Length    | (Subobject contents)  ...                     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Type  0x01 Hop Identifier

   Length  The Length contains the total length of the subobject in
      bytes, including the Type and Length fields.

   Sub type  The ERO subobject type, the same as the ERO subobject type.
      the ERO type defined are :

      1  IPv4 prefix

      2  IPv6 prefix

      3  Reserved

      4  Unnumbered Interface ID

      32 Autonomous system number

      33 Reserved

      37 Reserved

      64 Path Key with 32-bit PCE ID

      65 Path Key with 128-bit PCE ID

   Sub length  The ERO subobject type, the same as the ERO subobject
      length.  It its unchanged compared to the ERO subobject
      definition.

   Subobject contents  The ERO subobject content, it its unchanged
      compared to the ERO subobject definition.

3.2.3.2.  Hop LSP Attribute

   The LSP attribute subobject contains information targeted at the hop
   identified by the preceding hop identifier subobject.

      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           | Reserved      |R|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      //                      Attributes TLVs                        //
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The attributes TLV are encoded as defined in [RFC5420] section 3.

   Type  x TBD by IANA.

   Length  The Length contains the total length of the subobject in
      bytes, including the Type and Length fields.  The Length MUST be
      always divisible by 4.

   Reserved  Reserved, must be set to 0 when the subobject is inserted
      in the ERO, MUST NOT be changed when a node process the ERO and
      must be ignored on the node addressed by the preceding ERO
      subobjects

   R  This bit reflects the LSP_REQUIRED_ATTRIBUTE and LSP_ATTRIBUTE
      semantic.  When set indicates required LSP attributes to be
      processed by the node, when cleared the LSP attributes are not
      required as described in Section 3.2.3.3.

3.2.3.3.  Processing

   Following [RFC3209] and [RFC3473] the Extended ERO is managed as a
   list where each hop information starts with a subobject identifying
   an abstract node or link.  The LSP attribute subobject must be
   appended after the hop identifier subobject (which follows the
   formatting of node process the objects defined in [RFC3209], [RFC3473], [RFC3477],
   [RFC4873], [RFC4874], [RFC5520] ERO and [RFC5553].  Several LSP attribute
   subobject MAY
      must be present for each hop identification object.

   When the R bit is set a node MUST examine the attribute TLV present
   in the subobject following the rules described in [RFC5420] section
   5.2.  When ignored on the R bit is not set a node MUST examine the attribute TLV
   present in the subobject following addressed by the rules described in [RFC5420]
   section 4.2.  If more than one preceding ERO LSP attribute subobject having the
      subobjects.

   R  This bit set is present, reflects the first one MUST be processed LSP_REQUIRED_ATTRIBUTE and the others
   SHOULD be ignored.  If more than one ERO LSP_ATTRIBUTE
      semantic.  When set indicates required LSP attribute subject having
   the R bit cleared is present for the same hop identification object,
   then the first one MUST attributes to be
      processed and the others SHOULD be
   ignored.

3.2.4.  Processing

   A node receiving a Path message containing an EXTENDED_EXPLICIT_ROUTE
   object must determine if the extended hop information is applicable
   for this node.  The node performs the following steps:

   1.  The node receiving the RSVP message MUST first evaluate if the
       ERO object is present.  If the ERO object is not present it has
       received the message in error and SHOULD return a pathError
       message.

   2.  Second the node MUST read by the first subobject.  If node, when cleared the node is LSP attributes are not part of the abstract node
      required as described by the first subobject,
       the processing stops. in Section 3.2.

   Attributes TLVs  as defined in [RFC5420] section 3.  If there is no second subobject this indicates the end of the
       extended ERO.  The extended ERO SHOULD be removed from the Path
       message.  A new extended ERO MAY be added to the Path message.

   4.  Next the node evaluates the second subobject.

       A.  If the subobject identified an abstract node

3.2.  Procedures

   As described in [RFC3209] and [RFC3473] the node ERO is
           also part of the abstract node, then the node deletes the
           first subobject and continue processing managed as a list
   where each hop information starts with step 3.

       B.  If the a subobject identified identifying an
   abstract node and or link.  The LSP attribute subobject must be appended
   after the existing subobjects defined in [RFC3209], [RFC3473],
   [RFC3477], [RFC4873], [RFC4874], [RFC5520] and [RFC5553].  Several
   LSP attribute subobject MAY be present, for each hop.

   If a node is processing an LSP attribute subobject and does not part
   support handling of the abstract node, then the extended subobject it will behave as described in
   [RFC3209] when an unrecognized ERO subobject is
           invalid and the encountered.  This
   node SHOULD will return a PathErr with error code "Routing Error" and error
   value "Bad EXTENDED_EXPLICIT_ROUTE EXPLICIT_ROUTE object" with the EXTENDED_EXPLICIT_ROUTE EXPLICIT_ROUTE object
   included, truncated (on the left) to the offending unrecognized
           subobject

       C.  If
   subobject.

   When the subobject R bit is an LSP Attribute subobject it processes
           it according to set a node MUST examine the attribute TLV present
   in the rules for that subobject and removes it
           from following the extended ERO.  If rules described in [RFC5420] section
   5.2.  When the extended ERO does R bit is not contain
           further subject it SHOULD be removed from the Path message.
           A new extended ERO MAY be added to the Path message.

   If set a node finds a hop identification object which matches MUST examine the local
   router handling of attribute TLV
   present in the subobject it will behave as following the rules described in

   [RFC3209] when [RFC5420]
   section 4.2.

   A node processing an unrecognized LSP attribute subobject with an LSP_ATTRIBUTE
   TLV longer than the ERO subobject is encountered.  This
   node will SHOULD return a PathErr with error
   code "Routing Error" and error value "Bad EXTENDED_EXPLICIT_ROUTE EXPLICIT_ROUTE object" with
   the
   EXTENDED_EXPLICIT_ROUTE EXPLICIT_ROUTE object included, truncated (on the left) to the
   offending unrecognized malformed subobject.  The processing of the LSP_ATTRIBUTE
   TLVs should be described in the documents defining them.

4.  IANA Considerations

   TBD once a final approach has been chosen.

5.  Security Considerations

   None.

6.  Acknowledgments

   The authors would like to thanks Lou Berger for his directions and
   Attila Takacs for inspiring this
   [I-D.kern-ccamp-rsvpte-hop-attributes].  The authors also thanks Dirk
   Schroetter for his contribution to the initial versions of the
   documents (version -00 up to -02).

7.  References

7.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC3209]  Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V.,
              and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP
              Tunnels", RFC 3209, December 2001.

   [RFC3473]  Berger, L., "Generalized Multi-Protocol Label Switching
              (GMPLS) Signaling Resource ReserVation Protocol-Traffic
              Engineering (RSVP-TE) Extensions", RFC 3473, January 2003.

   [RFC3477]  Kompella, K. and Y. Rekhter, "Signalling Unnumbered Links
              in Resource ReSerVation Protocol - Traffic Engineering
              (RSVP-TE)", RFC 3477, January 2003.

   [RFC4873]  Berger, L., Bryskin, I., Papadimitriou, D., and A. Farrel,
              "GMPLS Segment Recovery", RFC 4873, May 2007.

   [RFC4874]  Lee, CY., Farrel, A., and S. De Cnodder, "Exclude Routes -
              Extension to Resource ReserVation Protocol-Traffic
              Engineering (RSVP-TE)", RFC 4874, April 2007.

   [RFC5420]  Farrel, A., Papadimitriou, D., Vasseur, JP., and A.
              Ayyangarps, "Encoding of Attributes for MPLS LSP
              Establishment Using Resource Reservation Protocol Traffic
              Engineering (RSVP-TE)", RFC 5420, February 2009.

   [RFC5520]  Bradford, R., Vasseur, JP., and A. Farrel, "Preserving
              Topology Confidentiality in Inter-Domain Path Computation
              Using a Path-Key-Based Mechanism", RFC 5520, April 2009.

   [RFC5553]  Farrel, A., Bradford, R., and JP. Vasseur, "Resource
              Reservation Protocol (RSVP) Extensions for Path Key
              Support", RFC 5553, May 2009.

7.2.  Informative References

   [I-D.ali-ccamp-rc-objective-function-metric-bound]
              Ali, Z., Swallow, G., Filsfils, C., Fang, L., Kumaki, K.,
              and R. Kunze, "Resource ReserVation Protocol-Traffic
              Engineering (RSVP-TE) extension for signaling Objective
              Function and Metric Bound",
              draft-ali-ccamp-rc-objective-function-metric-bound-02
              (work in progress), July 2012.

   [I-D.dong-ccamp-rsvp-te-mpls-tp-li-lb]
              Dong, J., Chen, M., and Z. Li, "GMPLS RSVP-TE Extensions
              for Lock Instruct and Loopback",
              draft-dong-ccamp-rsvp-te-mpls-tp-li-lb-05 (work in
              progress), December 2012.

   [I-D.ietf-ccamp-wson-signaling]
              Bernstein, G., Xu, S., Lee, Y., Martinelli, G., and H.
              Harai, "Signaling Extensions for Wavelength Switched
              Optical Networks", draft-ietf-ccamp-wson-signaling-05
              (work in progress), February 2013.

   [I-D.kern-ccamp-rsvpte-hop-attributes]
              Kern, A. and A. Takacs, "Encoding of Attributes of LSP
              intermediate hops using RSVP-TE",
              draft-kern-ccamp-rsvpte-hop-attributes-00 (work in
              progress), October 2009.

   [RFC6163]  Lee, Y., Bernstein, G., and W. Imajuku, "Framework for
              GMPLS and Path Computation Element (PCE) Control of
              Wavelength Switched Optical Networks (WSONs)", RFC 6163,
              April 2011.

Authors' Addresses

   Cyril Margaria (editor)
   Nokia Siemens Networks
   St Martin Strasse 76
   Munich,   81541
   Germany

   Phone: +49 89 5159 16934
   Email: cyril.margaria@nsn.com

   Giovanni Martinelli
   Cisco
   via Philips 12
   Monza  20900
   IT

   Phone: +39 039 209 2044
   Email: giomarti@cisco.com

   Steve Balls
   Metaswitch
   100 Church Street
   Enfield  EN2 6BQ
   UJ

   Phone: +44 208 366 1177
   Email: steve.balls@metaswitch.com

   Ben Wright
   Metaswitch
   100 Church Street
   Enfield  EN2 6BQ
   UJ

   Phone: +44 208 366 1177
   Email: Ben.Wright@metaswitch.com