Network Working Group                                              Z. Li
Internet-Draft                                                     Z. Hu
Intended status: Standards Track                                D. Cheng
Expires: April 22, September 6, 2018                           Huawei Technologies
                                                        October 19, 2017
                                                           K. Talaulikar
                                                               P. Psenak
                                                           Cisco Systems
                                                           March 5, 2018

                       OSPFv3 Extensions for SRv6
                draft-li-ospf-ospfv3-srv6-extensions-00
                draft-li-ospf-ospfv3-srv6-extensions-01

Abstract

   Segment Routing (SR) allows for a flexible definition of end-to-end
   paths by encoding paths as sequences of topological sub-paths, called
   "segments".  Segment routing architecture (refer to
   [I-D.ietf-spring-segment-routing]) can be implemented over a MPLS
   data plane, an IPv4
   MPLS data plane, plane as well as an IPv6 data plane.
   [I-D.filsfils-spring-srv6-network-programming] introduces the network
   programming concept in IPv6 data plane using segment routing
   technology, called SRv6, and it also defines some basic functions.
   The SRv6 functions can be advertised by routing protocols including
   OSPFv3, IS-IS and BGP-LS.  This draft proposes some describes
   the IS-IS extensions to
   OSPFv3 ([RFC5340]) required to support SRv6. Segment Routing over an IPv6
   data plane.

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].

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 https://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 April 22, September 6, 2018.

Copyright Notice

   Copyright (c) 2017 2018 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
   (https://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  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  OSPFv3 Extensions for SRv6  . . . . . . . . . . . . . . . . .   4   3
     2.1.  SRv6-Capabilities Sub-TLV TLV . . . . . . . . . . . . . . . .   4 . .   3
       2.1.1.  Maximum SL Sub-Sub-TLV Sub-TLV  . . . . . . . . . . . . . . . . .   5
       2.1.2.  Maximum End Pop SRH Sub-Sub-TLV Sub-TLV . . . . . . . . . . .   6 . .   5
       2.1.3.  Maximum T.Insert SRH Sub-Sub-TLV Sub-TLV  . . . . . . . . . .   7 . .   6
       2.1.4.  Maximum T.Encap SRH Sub-Sub-TLV Sub-TLV . . . . . . . . . . .   7 . .   6
       2.1.5.  Maximum End D SRH Sub-Sub-TLV Sub-TLV . . . . . . . . . . . .   8
     2.2.  SRv6 Function Descriptor . .   7
     2.2.  SRv6 Node SID TLV . . . . . . . . . . . . . .   9
     2.3.  SRv6 Function Code Points . . . . . .   8
     2.3.  SRv6 SIDs Associated with Adjacencies . . . . . . . . . .  10
     2.4.
       2.3.1.  SRv6 SID TLV  . . . . . . . . . . . Link Attribute Sub-TLV . . . . . . . . . . .  11
     2.5.
       2.3.2.  SRv6 Neighbor SID TLV . LAN Link Attribute Sub-TLV . . . . . . . . .  12
   3.  Security Considerations . . . . . . . .  12
       2.5.1.  Point to Popint SRv6 Adj-SID Sub-TLV . . . . . . . .  13
       2.5.2.  LAN SRv6 Adj-SID sub-TLV . . .  14
   4.  IANA Considerations . . . . . . . . . . .  14
   3.  Security Considerations . . . . . . . . . .  14
     4.1.  OSPF Parameters . . . . . . . . .  15
   4.  IANA Considerations . . . . . . . . . . . .  14
     4.2.  OSPFv3 Parameters . . . . . . . . .  15
     4.1.  OSPFv3 Extensions for SRv6 Support . . . . . . . . . . .  15  14
   5.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  16  15
   6.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  16  15
     6.1.  Normative References  . . . . . . . . . . . . . . . . . .  16  15
     6.2.  Informative References  . . . . . . . . . . . . . . . . .  17  16
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  17  16

1.  Introduction

   This document proposes some extensions to OSPFv3 in order to support
   SRv6 as defined in [I-D.filsfils-spring-srv6-network-programming],
   and they are as follows:

   1.  SRv6-Capabilities Sub-TLV: Refer to Section 2.1.  This Sub-TLV is
       used to announce the capability of an OSPFv3 router for SRv6
       support with

   Segment Routing (SR) architecture [I-D.ietf-spring-segment-routing]
   specifies how a list of parameters.  This Sub-TLV, if used, is
       included in OSPFv3 Router Information LSA TLV LSA([RFC7770]).

   2.  Maximum SL Sub-Sub-TLV: Refer to Section 2.1.1.  This Sub-Sub-TLV
       carries the maximum value of the "SL" field in the SRH
       ([I-D.ietf-6man-segment-routing-header]) of node can steer a received packet
       before applying the function associated with a SID.  It may through an ordered list of
   instructions, called segments.  These segments are identified through
   Segment Identifiers (SIDs).

   Segment Routing can be
       included in instantiated on the SRv6-Capabilities Sub-TLV.

   3.  Maximum End Pop SRH Sub-Sub-TLV: Refer to Section 2.1.2.  This
       Sub-Sub-TLV carries IPv6 data plane through
   the maximum number use of the SIDs Segment Routing Header (SRH) defined in

   [I-D.ietf-6man-segment-routing-header].  SRv6 refers to this SR
   instantiation on the top SRH IPv6 dataplane.  The network programming
   paradigm for SRv6 is specified in an SRH stack to
   [I-D.filsfils-spring-srv6-network-programming] which the router describes
   several well-known functions that can apply "PSP" or "USP"
       flavors (refer to
       [I-D.filsfils-spring-srv6-network-programming]).  It may be
       included in the SRv6-Capabilities Sub-TLV.

   4.  Maximum T.Insert SRH Sub-Sub-TLV: Refer bound to Section 2.1.3. SRv6 SIDs.

   This
       Sub-Sub-TLV carries the maximum number of the SIDs that can be
       inserted as part of the "T.insert" behavior (refer document proposes extensions to
       [I-D.filsfils-spring-srv6-network-programming]).  It may be
       included OSPFv3 in the SRv6-Capabilities Sub-TLV.

   5.  Maximum T.Encap SRH Sub-Sub-TLV: Refer order to Section 2.1.4.  This
       Sub-Sub-TLV carries the maximum number of the SIDs that can be
       inserted support SRv6
   as part of the "T.Encap" behavior (refer to
       [I-D.filsfils-spring-srv6-network-programming]).  It may be
       included defined in [I-D.filsfils-spring-srv6-network-programming] by
   signaling the SRv6-Capabilities Sub-TLV.

   6.  Maximum End D SRH Sub-Sub-TLV: Refer to Section 2.1.5.  This Sub-
       Sub-TLV carries the maximum number SRv6 capabilities of the SIDs in an SRH when
       applying "End.DX6" node and "End.DT6" function (refer to
       [I-D.filsfils-spring-srv6-network-programming]).  It may be
       included in the SRv6-Capabilities Sub-TLV.

   7.  SRv6 SID TLV: Refer to Section 2.4.  This TLV is used to
       advertise one or more SIDs along with their associated SRv6
       functions.  These SRv6 certain functions
   (e.g.  END, END.X, etc.) that are well-known and defined in
       [I-D.filsfils-spring-srv6-network-programming], but may also be
       others defined in instantiated on the future.  This TLV is SRv6 capable
   router.

   At a top-level TLV and is
       included in high level, the extensions to OSPFv3 Router Information LSA([RFC7770]).

   8. comprise of a SRv6 Point-to-Point Adj-SID Sub-TLV: Refer to Section 2.5.1.
       This Sub-TLV is used
   Capabilities TLV to advertise one or more SIDs on an OSPFv3
       point-to-point adjacency for the support of SRv6 along with their
       associated functions.  These for SRv6 functions are well-known and
       defined in [I-D.filsfils-spring-srv6-network-programming], but
       may also be others defined in features supported
   by the future.  This Sub-TLV is router.  Also included are extensions in Router-Link TLV as defined in
       [I-D.ietf-ospf-ospfv3-lsa-extend].

   9.  SRv6 LAN SRv6 Adj-SID Sub-TLV: Refer to Section 2.5.2.  This Sub-
       TLV is used to advertise one or more SIDs on an OSPFv3 LAN
       adjacency for the support form of SRv6 along with their associated
       functions.  These SRv6 functions are well-known TLVs and defined in
       [I-D.filsfils-spring-srv6-network-programming], but may also be
       others defined in
   sub-TLVs for advertising the future.  This Sub-TLV is included in
       Router-Link TLV as defined in [I-D.ietf-ospf-ospfv3-lsa-extend].

   For consistency in IGP's behavior, ideas are borrowed from
   [I-D.bashandy-isis-srv6-extensions] including SRv6 SIDs corresponding the to functions
   supported
   related to the node (e.g.  END) and data format. those related to the adjacencies
   (e.g.  END.X) for the SRv6 enabled OSPFv3 router.

2.  OSPFv3 Extensions for SRv6

2.1.  SRv6-Capabilities Sub-TLV TLV

   When apply Segment Routing to (SR) is instantiated using the IPv6 data plane, plane
   (SRv6), the list of segments is stored in expressed using the segment routing header, referred to
   header (SRH) as "SRH", which is defined in [I-D.ietf-6man-segment-routing-header].

   A router that supports SRv6 MUST be able to process the segment
   routing header SRH as
   described in [I-D.ietf-6man-segment-routing-header], as well as apply
   function behaviors and flavors as described in
   [I-D.filsfils-spring-srv6-network-programming].  In either case,
   there exists a limit to which the  A SRv6 enabled
   router can perform according may have different capabilities and limits when it comes to its
   own ability that
   SRH processing and this needs to be advertised to other routers in
   the same
   SR SRv6 domain.

   The OSPFv3-SRv6-Capbilities Sub-TLV SRv6 Capabilities TLV is designed for an OSPFv3 router to make announcement
   advertise its SRv6 support along with its related capabilities for
   SRv6 functionality.  This is a new optional top level TLV of OSPFv3
   Router Information LSA TLV LSA ([RFC7770]) which MUST be advertised
   by a SRv6 enabled router.

   This TLV SHOULD be advertised only once in the OSPFv3 Router
   Information LSA.  When multiple SRv6 domain about its ability Capabilities TLVs are received
   from a given router, the receiver MUST use the first occurrence of
   the TLV in the
   context OSPFV3 Router Information Opaque LSA.  If the SRv6
   Capabilities TLV appears in multiple OSPFv3 Router Information Opaque
   LSAs that have different flooding scopes, the TLV in the OSPFv3
   Router Information Opaque LSA with the area-scoped flooding scope
   MUST be used.  If the SRv6 Capabilities TLV appears in multiple
   OSPFv3 Router Information Opaque LSAs that have the same flooding
   scope, the TLV in the OSPFv3 Router Information Opaque LSA with the
   numerically smallest Instance ID MUST be used and subsequent
   instances of the TLV MUST be ignored.

   The OSPFv3 Router Information Opaque LSA can be advertised at any of
   the defined opaque flooding scopes (link, area, or Autonomous System
   (AS)).  For the purpose of SRv6 support. Capabilities TLV advertisement, area-
   scoped flooding is REQUIRED.

   The format of OSPFv3-SRv6-Capabilities Sub-TLV TLV is shown in Figure 1. below

     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               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |             Flags             |            Reserved           |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |     Sub-Sub-TLVs ....   Sub-TLVs...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Where:

   o  Type: 16 bit field.  TBD

   o  Length: 16 bit field.  Length of Capability TLV + length of Sub-
      TLVs

   o  Reserved : 16 bit field.  SHOULD be set to 0 and MUST be ignored
      by receiver.

   o  Flags: 16 bit field.  The following flags are defined:

             0                   1
             0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |E|
            |E|O|                           |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                 Figure 1

   Type (one octet)

      TBD-1

   Length (one octet)

      2 + length of sub-sub-TLVs

   Flags (16 bits)

      E-Flag:

      where:

      *  E-flag: If set, the then router is able to apply "T.Encap" operation.
         operation as specified in
         [I-D.filsfils-spring-srv6-network-programming]

      *  O-flag: If set, then router is capable of supporting SRH O-bit
         Flags, as specified in [I-D.ietf-6man-segment-routing-header].

   The following sections define the supported sub-TLVs.

2.1.1.  Maximum SL Sub-Sub-TLV Sub-TLV

   The Maximum Segments Left Sub-Sub-TLV Sub-TLV of the SRv6 Capabilities TLV
   specifies the maximum value of the "SL" field (refer to
   [I-D.ietf-6man-segment-routing-header]) in the SRH of a received
   packet before applying the function associated with a SID.

     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               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   Max SL      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                 Figure 2

   Type (one octet)
      TBD-2

   Length (one octet)
    +-+-+-+-+-+-+-+-+

   o  Type: 1

   Max SL (8 bits)

   o  Length: 4 (including padding to 32 bit aligned boundary for OSPF
      TLVs)

   o  SL Value Value: 1 octet

   o  An 8 bit unsigned integer.

   If the sub-sub-TLV sub-TLV is NOT advertised, not advertised by an SRv6 capable router, then the
   value is assumed MUST be considered to be 0.

2.1.2.  Maximum End Pop SRH Sub-Sub-TLV Sub-TLV

   The Maximum End Pop SRH Sub-Sub-TLV specifies the maximum number of
   SIDs in the top SRH in an SRH stack to which the router can apply
   "PSP" or USP" flavors([I-D.filsfils-spring-srv6-network-programming]
   ). flavors
   ([I-D.filsfils-spring-srv6-network-programming]).

     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               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |Max-End-Pop-SRH|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                 Figure 3

   Type (one octet)

      TBD-3

   Length (one octet)

      1
    +-+-+-+-+-+-+-+-+

   o  Type: 2

   o  Length: 4 (including padding to 32 bit aligned boundary for OSPF
      TLVs)

   o  Max-End-Pop-SRH (8 bits)

      Max End Pop SRH value Value Value: 1 octet

   o  An 8 bit unsigned integer.

   If the value is zero 0 or the sub-sub-TLV sub-TLV is NOT advertised, not advertised by an SRv6 capable
   router, then it is
   assumed MUST be considered that the router cannot apply PSP
   or USP flavors.

2.1.3.  Maximum T.Insert SRH Sub-Sub-TLV Sub-TLV

   The Maximum T.Insert SRH Sub-Sub-TLV specifies the maximum number of
   SIDs that can be inserted as part of the "T.insert"
   behavior([I-D.filsfils-spring-srv6-network-programming]).

     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               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Max-T.Insert  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                 Figure
    +-+-+-+-+-+-+-+-+

   o  Type: 3

   o  Length: 4

   Type (one octet)

      TBD-4

   Length (one octet)

      1

   Max-T.Insert (8 bits) (including padding to 32 bit aligned boundary for OSPF
      TLVs)

   o  Max-T.Insert Value Value: 1 octet

   o  An 8 bit unsigned integer.

   If the value is zero 0 or the sub-sub-TLV sub-TLV is omitted, not advertised by an SRv6 capable
   router, then it MUST be considered that the router
   is assumed does not to support
   any variation of the "T.insert" behavior.

2.1.4.  Maximum T.Encap SRH Sub-Sub-TLV Sub-TLV

   The Maximum T.Encap SRH Sub-Sub-TLV specifies the maximum number of
   SIDs that can be included as part of the "T.Encap"
   behavior([I-D.filsfils-spring-srv6-network-programming]). behavior
   ([I-D.filsfils-spring-srv6-network-programming]).

     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               |   Max-T.Encap
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                 Figure 5

   Type (one octet)
      TBD-5

   Length (one octet)

      1  Max-T.Encap (8 bits)  |
    +-+-+-+-+-+-+-+-+

   o  Type: 4

   o  Length: 4 (including padding to 32 bit aligned boundary for OSPF
      TLVs)

   o  Max-T.Encap Value Value: 1 octet

   o  An 8 bit unsigned integer.

   If this value is zero 0 or the Sub-Sub-TLV sub-TLV is omitted not advertised by an SRv6
   capable router and the "E" flag is set in the associated SRv6
   Capabilities Sub-TLV, sub-TLV, then it is
   assumed MUST be considered that the router can
   apply T.Encap by encapsulating the incoming packet in another IPv6
   header without SRH the same way
   IPinIP as IP-in-IP encapsulation is
   performed.  If the "E" flag is clear, then this Sub-Sub-TLV sub-TLV SHOULD NOT be transmitted
   advertised and MUST be ignored on
   reception. receipt.

2.1.5.  Maximum End D SRH Sub-Sub-TLV Sub-TLV

   The Maximum End D SRH sub-sub-TLV specifies the maximum number of
   SIDs in an SRH when applying "End.DX6" and "End.DT6" functions.

     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               |   Max End D
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                 Figure 6

   Type (one octet)

      TBD-6

   Length (one octet)

      1

   Max End D (8 bits)   Max-End-D   |
    +-+-+-+-+-+-+-+-+

   o  Type: 5

   o  Length: 4 (including padding to 32 bit aligned boundary for OSPF
      TLVs)

   o  Max End D Value Value: 1 octet

   o  An 8 bit unsigned integer.

   If this value is zero or the sub-sub-TLV sub-TLV is omitted, not advertised by an SRv6
   capable router, then it is
   assumed MUST be considered that the router cannot
   apply "End.DX6" or "End.DT6" functions if the extension header right
   underneath the outer IPv6 header is an SRH.

2.2.  SRv6 Function Descriptor

   The SRv6 Node SID TLV (defined in Section 2.4), P2P

   An OSPFv3 SRv6 SID Sub-TLV
   (defined enabled router may have multiple SRv6 SIDs
   instantiated in Section 2.5.1), its "My Local SID Table" (refer
   [I-D.filsfils-spring-srv6-network-programming]).  OSPFv3 needs to
   advertise the SRv6 SIDs associated with the node and LAN its functions
   (e.g.  END, END.T, etc.) as specified in
   [I-D.filsfils-spring-srv6-network-programming] so that other routers
   in the area learn the SRv6 SIDs that can be used to program SRv6
   paths through this node.

   SRv6 Node SID Sub-TLV (defined in
   Section 2.5.2), MUST include TLV is a new optional top-level TLV of OSPFv3 Router
   Information LSA ([RFC7770]) and is used to advertise the SRv6 SIDs
   belonging to the node along with their associated functions.  Every
   SRv6 enabled OSPFv3 router SHOULD advertise at least one SRv6 SID
   associated with END function Descriptor.

   When included for its node as specified in
   [I-D.filsfils-spring-srv6-network-programming].

   The router MAY advertise multiple instances of the SRv6 Node SID TLV, TLV
   in its OSPFv3 Router Information LSA - one for each of the descriptor SRv6 SIDs
   to be advertised.  It is encoded as RECOMMENDED that the TLVs are ordered by
   increasing values of the SRv6 SIDs within a
   Sub-TLV. single instance of the
   OSPFv3 Router LSA.  When included in multiple instances of the OSPFv3 Router
   Information LSA are necessary to accomodate a P2P/LAN large number of SRv6 SID sub-TLV, the descriptor
   SIDs, it is encoded as a Sub-Sub-TLV.

   The SRv6-function Descriptor encodes the function (and its flavors)
   bound to RECOMMENDED that the SRv6 Node SID advertised in TLVs are ordered by
   increasing values of the SRv6 dodmain
   ([I-D.filsfils-spring-srv6-network-programming]).

   The format SIDs across increasing instance numbers
   of the OSPFv3 Router Information LSA.

   When multiple SRv6 Function Descriptor is shown in Figure 7.

   0                   1
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
   +-+-|-+-+-+-+-+-+
   |     Type      |
   +-+-+-+-+-+-+-+-+
   |     Length    |
   +-+-+-+-+-+-+-+-+
   |     Flags     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Function (2 octets)      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                 Figure 7

   Type (one octet)

      TBD-7

   Length (one octet)

      3

   Flags

      This document defines two flags to specify the flavor(s)
      ([I-D.filsfils-spring-srv6-network-programming]) associated with Node SID TLVs are received from a given router for
   the same SRv6 function specified in SID value, the "Function" field:

          0 1 2 3 4 5 6 7
         +-+-|-+-+-+-+-+-+
         |P|U| Reserved  |
         +-+-+-+-+-+-+-+-+

                                 Figure 8

   P bit

      If set, then receiver MUST use the PSP flavor
      ([I-D.filsfils-spring-srv6-network-programming]) is associated
      with first occurrence
   of the function encoded TLV in the "function" field.

   U bit OSPFV3 Router Information Opaque LSA.  If set, then the USP flavor
      ([I-D.filsfils-spring-srv6-network-programming]) is associated
      with SRv6
   Node SID TLV for the function encoded same SRv6 SID value appears in multiple OSPFv3
   Router Information Opaque LSAs that have different flooding scopes,
   the "function" field.

   Reserved

      Reserved Bits SHOULD be transmitted as 0 and MUST be ignored on
      receipt.

   The second two octets encode the function.  Function code points are
   defined TLV in Section 2.3.

2.3.  SRv6 Function Code Points

   This section defines the code points for supported functions
   associated OSPFv3 Router Information Opaque LSA with the area-
   scoped flooding scope MUST be used.  If the SRv6 SIDs.  Refer
   [I-D.filsfils-spring-srv6-network-programming] Node SID TLV for SRv6 functions.

   0:

      Reserved.

   1:

      End Function.

   2:

      End.X Function.

   3:

      End.DX6 Function.

   4:

      End.DT6 Function.

2.4. the
   same SRv6 SID value appears in multiple OSPFv3 Router Information
   Opaque LSAs that have the same flooding scope, the TLV

   A new top level TLV is introduced in the OSPFv3 to advertise one or more
   SRv6 Segment Identifiers (SIDs)
   Router Information Opaque LSA with the numerically smallest Instance
   ID MUST be used and each SID is associated one or
   more SRv6 functions.  [I-D.filsfils-spring-srv6-network-programming]
   defined some basic functions.  This document defines code points for
   some subsequent instances of the basic SRv6 functions in Section 2.3.  SRv6 functions may
   also TLV MUST be ignored.

   The OSPFv3 Router Information Opaque LSA can be advertised at any of
   the defined in other documents opaque flooding scopes (link, area, or locally configured. Autonomous System
   (AS)).  For the purpose of SRv6 Node SID TLV advertisement, area-
   scoped flooding is REQUIRED.

   The format of OSPFv3 SRv6 Node SID TLV is shown in Figure 9. below

     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    | Function-Flags|           Function Code       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   Reserved                    |  SID Flags    |   SID-Size  SID-size     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   SID (variable) (variable - 32 bit aligned) ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Sub-Sub-TLV-Len|    Sub-Sub-TLVs
    |    Sub-TLVs (variable) . . .
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Figure 9

   Type (one octet)

      TBD-8

   Length (one octet)

      Variable

   One or more 1: SRv6 SID entries, each Node TLV

   Where:

      Type: 16 bit field.  TBD

      Length: 16 bit field.  The total length of the value portion of
      the TLV.

      Reserved : 8 bit field.  Should be set to 0 and MUST be ignored on
      receipt.

      Function Flags: 8 bit field which has define the following format:

   Flags (One octet)

      The following flags associated with
      the function.  No flags are defined: currently defined and SHOULD be set to
      0 and MUST be ignored on receipt.

      Function Code: 16 bit field.  The function code point for this
      SRv6 SID as defined in
      [I-D.filsfils-spring-srv6-network-programming].

      Reserved : 16 bit field.  Should be set to 0 and MUST be ignored
      on receipt.

      SID Flags: 8 bit field which define the flags associated with the
      SID
          0 1 2 3 4 5 6 7
         +-+-|-+-+-+-+-+-+
         |D|  Reserved   |
         +-+-+-+-+-+-+-+-+

                                 Figure 10 2

      *  D bit: bit (0x1) : When the SID is leaked from OSPFv3 backbone area
         to other areas, the D bit MUST be set.  Otherwise, this bit
         MUST be clear.  SIDs with the D bit set MUST NOT be leaked to
         OSPFv3 backbone area from others.  This is to prevent looping.

   Reserved:

      The remaining bits

      *  Other flags are reserved for future use.  They not defined and SHOULD be set to zero on transmission 0 and MUST be
         ignored on reception.

   SID-Size (one octet) receipt.

      SID Size : 8 bit field.  Number of bits in the SID field.

      SID (1-16 octet) : 1-16 octets.  This field encodes the advertised SRv6 SID.
      The "SID-Size" "SID-size" field can have the value in the range of values 1-128 and indicates the
      number of bits in the SID.  The SRv6 SID is encoded in the minimal
      number of octets 32-bit aligned space for the given number of bits.

   Sub-Sub-TLV-Length(one octet)

      Number of octets used by sub-TLVs.

   Sub-Sub-TLVs (Variable)

      One or more functions associated with the advertised SID is
      specified by

      Sub-TLVs : currently none defined.  Used to advertise sub-TLVs
      that provide additional attributes for the SRv6-Function Descriptor Sub-TLV specified in
      Section 2.2.

2.5. given SRv6 Neighbor SID TLV SID.

2.3.  SRv6 SIDs Associated with Adjacencies

   The advertising of some SRv6 functions must be associated with a
   particular neighbor.  As described are defined in
   [I-D.ietf-spring-segment-routing], there
   [I-D.filsfils-spring-srv6-network-programming] include certain
   functions which are two types specific to links or adjacencies.  The most basic
   of SR
   adjacencies, one this which is on point-to-point critical for link and another state routing protocols like
   OSPFv3 is the END.X function that is an instruction to forward to a
   specific neighbor on a
   broadcast/mulcast LAN.  This section defines OSPFv3 extensions in
   order to advertise specific link.  These END.X SRv6 SIDs and their associated functions are
   instantiated by SRv6 enabled OSPFv3 router for these
   two cases.

   A single all its adjacencies
   and installed in the local node's "My Local SID Table".  These SRv6 Adj-SID may associate
   SIDs along with one others that are defined in
   [I-D.filsfils-spring-srv6-network-programming] which are specific to
   links or more SRv6 functions. adjacencies need to be advertised by OSPFv3 so that this
   information is available with all routers in the domain to influence
   the packet path via these specific functions over the specified
   adjacencies.

   The advertising of SRv6 SIDs and their functions that are specific to
   a particular neighbor are done via two different optional sub-TLVs of
   the Router-Link TLV as defined in
   [I-D.filsfils-spring-srv6-network-programming], other documents, [I-D.ietf-ospf-ospfv3-lsa-extend]
   as follows:

   o  SRv6 SID Link Attribute Sub-TLV: for OSPFv3 adjacency over point-
      to-point or
   locally configured.

   This document specifies how point-to-multipoint links and the adjacecny to advertise End.X the
      Designated Router (DR) over broadcast and End.DX6 defined in
   [I-D.filsfils-spring-srv6-network-programming] using non-broadcast-multi-
      access (NBMA) links.

   o  SRv6 SID LAN Link Attribute Sub-TLV: for OSPFv3
   extersons.

2.5.1.  Point adjacency on
      broadcast and NBMA links to Popint SRv6 Adj-SID Sub-TLV the Backup DR and DR-Other neighbors.
      This Sub-TLV is used sub-TLV includes the OSPFv3 router-id of the neighbor and
      thus allows for multiple instances of this TLV for each neighbor
      to advertise be explicitly advertised under the Router-Link TLV for the same
      link.

   Every SRv6 enabled OSPFv3 router SHOULD instantiate at least one or
   END.X function with a unique SRv6 SID corresponding to each of its
   neighbor.  A router MAY instantiate more than one SRv6 SIDs associated
   with End.X SID for the
   END.X function for a single neighbor.  The same SRv6 SID MAY be
   advertised for the END.X function corresponding to more than one
   neighbor.  Thus multiple instances of the SRv6 SID Link Attribute and End.DX6
   SRv6 functions over SID LAN Link Attribute sub-TLVs MAY be advertised within the
   Router Link TLV for a point-to-point
   adjacency. single link.

2.3.1.  SRv6 SID Link Attribute Sub-TLV

   The format of the "P2P SRv6 Adj-SID" SID Link Attribute Sub-TLV is shown in Figure 11. below

     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    | Function-Flags|           Function Code       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   Reserved                    |  SID Flags    |   SID-Size  SID-size     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   SID (variable) (variable - 32 bit aligned) ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Sub-Sub-TLV-Len|      Sub-Sub-TLVs
    |    Sub-TLVs (variable) . . .
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                 Figure 11
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Where:

      Type (one octet)

      TBD-9

   Length (one octet)

      Variable

   One or more SID entries, each is TBD

      Length: 16 bit field.  The total length of the value portion of
      the TLV.

      Reserved : 8 bit field.  Should be set to 0 and MUST be ignored on
      receipt.

      Function Flags: 8 bit field which has define the following format:

   Flags (One octet) flags associated with
      the function.  No flags are currently defined in and SHOULD be set to
      0 and MUST be ignored on receipt.

      Function Code: 16 bit field.  The function code point for this document.

   SID-Size (one octet)
      SRv6 SID as defined in
      [I-D.filsfils-spring-srv6-network-programming].

      Reserved : 16 bit field.  Should be set to 0 and MUST be ignored
      on receipt.

      SID Flags: 8 bit field which define the flags associated with the
      SID.  No flags are currently defined and SHOULD be set to 0 and
      MUST be ignored on receipt.

      SID-size: Number of bits in the SID field.

   SID (1-16 octet)

      SID: 1-16 octets.  This field encodes the advertised SRv6 SID.
      The "SID-Size" "SID-size" field can have the value in the range of values 1-128 and indicates the
      number of bits in the SID.  The SRv6 SID is encoded in the minimal
      number of octets 32-bit aligned space for the given number of bits.

   Sub-Sub-TLV-Length(one octet)

      Number of octets used by Sub-TLVs.

   Sub-Sub-TLVs (Variable)

      One or more functions associated with the advertised SID is
      specified by the SRv6 Function Descriptor Sub-TLV specified in
      Section 2.2.  If the SRv6 Function Descriptor is encoded in the
      SRv6 P2P SID sub-TLV,

      Sub-TLVs : currently none defined.  Used to advertise sub-TLVs
      that provide additional attributes for the encoded given SRv6 SID function MUST include
      only the code points of END.X SID.

2.3.2.  SRv6 SID functions that require the
      specification of a neighbor to be correctly applied.

2.5.2. LAN SRv6 Adj-SID sub-TLV

   This Link Attribute Sub-TLV is used to advertise one or more SRv6 SIDs associated
   with End.X and End.DX6 SRv6 functions over a LAN adjacency.

   The format of the "LAN SRv6 Adj-SID" SID LAN Link Attribute Sub-TLV is as shown in Figure 12.
   below
     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    | Function-Flags|           Function Code       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   Reserved                    |  SID Flags    |   SID-Size  SID-size     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   SID (variable) (variable - 32 bit aligned) ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Sub-Sub-TLV-Len|      Sub-Sub-TLVs
    |    OSPFv3 Router-ID of neighbor                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Sub-TLVs (variable) . . .
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                 Figure 12

   Type (one octet)

      TBD-10

   Length (one octet)
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Where

   o  Type: TBD

   o  Length: 16 bit value.  Variable

   One or more SID entries, each of

   o  Reserved : 8 bit field.  Should be set to 0 and MUST be ignored on
      receipt.

   o  Function Flags: 8 bit field which has define the following format:

   Flags (One octet) flags associated with
      the function.  No flags are currently defined in and SHOULD be set to
      0 and MUST be ignored on receipt.

   o  Function Code: 16 bit field.  The function code point for this document.

   SID-Size (one octet)
      SRv6 SID as defined in
      [I-D.filsfils-spring-srv6-network-programming].

   o  Reserved : 16 bit field.  Should be set to 0 and MUST be ignored
      on receipt.

   o  SID Flags: 8 bit field which define the flags associated with the
      SID.  No flags are currently defined and SHOULD be set to 0 and
      MUST be ignored on receipt.

   o  SID Size : 8 bit field.  Number of bits in the SID field.

   o  SID (1-16 octet) : 1-16 octets.  This field encodes the advertised SRv6 SID.
      The "SID-Size" "SID-size" field can have the value in the range of values 1-128 and indicates the
      number of bits in the SID.  The SRv6 SID is encoded in the minimal
      number of octets 32-bit aligned space for the given number of bits.

   Sub-Sub-TLV-Length(one octet)

      Number of

   o  Neighbor ID : 4 octets used by sub-TLVs.

   Sub-Sub-TLVs (Variable)

      One or more functions associated with of OSPFv3 Router-id of the advertised SID is
      specified by neighbor

   o  Sub-TLVs : currently none defined.  Used to advertise sub-TLVs
      that provide additional attributes for the SRv6-Function Descriptor Sub-TLV specified given SRv6 SID.

3.  Security Considerations

   Existing security extensions as described in
      Section 2.2.  If the [RFC5340] and
   [I-D.ietf-ospf-ospfv3-lsa-extend] apply to these SRv6 Function Descriptor extensions.
   While OSPFv3 is encoded under a single administrative domain, there can be
   deployments where potential attackers have access to one or more
   networks in the
      SRv6 P2P SID Sub-TLV, the encoded SRv6 SID function OSPFv3 routing domain.  In these deployments,
   stronger authentication mechanisms such as those specified in
   [RFC4552] SHOULD be used.

   Implementations MUST include
      only the code points of SRv6 SID functions assure that require the
      specification of malformed TLV and Sub-TLV defined in
   this document are detected and do not provide a neighbor vulnerability for
   attackers to crash the OSPFv3 router or routing process.  Reception
   of malformed TLV or Sub-TLV SHOULD be correctly applied.

3.  Security Considerations

   This document does not introduce any security issue. counted and/or logged for
   further analysis.  Logging of malformed TLVs and Sub-TLVs SHOULD be
   rate-limited to prevent a Denial of Service (DoS) attack (distributed
   or otherwise) from overloading the OSPFv3 control plane.

4.  IANA Considerations

   This document proposes specifies updates to multiple OSPFv3 related IANA considerations
   registries as described in the
   following sections. follows.

4.1.  OSPFv3 Extensions for SRv6 Support  OSPF Parameters

   This document proposes the following new code points in the OSPF
   Router Information (RI) TLVs registry for OSPFv3 Extensions in order
   to support SRv6:

   1.  Type TBD: SRv6-Capabilities Sub-TLV (Type TBD-1): TLV: Refer to Section 2.1.

   2.   Maximum SL Sub-Sub-TLV (Type TBD-2): Refer to Section 2.1.1.

   3.   Maximum End Pop SRH Sub-Sub-TLV (Type TBD-3): Refer to
        Section 2.1.2.

   4.   Maximum T.Insert SRH Sub-Sub-TLV (Type TBD-4): Refer to
        Section 2.1.3.

   5.   Maximum T.Encap SRH Sub-Sub-TLV (Type TBD-5): Refer to
        Section 2.1.4.

   6.   Maximum End D SRH Sub-Sub-TLV (Type TBD-6): Refer to
        Section 2.1.5.

   7.   SRv6 Function Descriptor (Type TBD-7): Refer to Section 2.2.

   8.  Type TBD: SRv6 Node SID TLV (Type TBD-8): : Refer to Section 2.4.

   9. 2.2.

4.2.  OSPFv3 Parameters

   This document proposes the following new code points in the OSPFv3
   Extend-LSA Sub-TLV registry for OSPFv3 Extensions in order to support
   SRv6:

   1.  Type TBD: SRv6 Point-to-Point Adj-SID SID Link Attribute Sub-TLV (Type TBD-9): : Refer to
       Section 2.5.1.

   10. 2.3.1.

   2.  Type TBD: SRv6 SID LAN SRv6 Adj-SID Link Attribute Sub-TLV (Type TBD-10): : Refer to
       Section 2.5.2. 2.3.2.

5.  Acknowledgements

   TBD.

   TBD

6.  References

6.1.  Normative References

   [I-D.filsfils-spring-srv6-network-programming]
              Filsfils, C., Leddy, J., daniel.voyer@bell.ca, d.,
              daniel.bernier@bell.ca, d., Steinberg, D., Raszuk, R.,
              Matsushima, S., Lebrun, D., Decraene, B., Peirens, B.,
              Salsano, S., Naik, G., Elmalky, H., Jonnalagadda, P.,
              Sharif, M., Ayyangar, A., Mynam, S., Henderickx, W.,
              Bashandy, A., Raza, K., Dukes, D., Clad, F., and P.
              Camarillo, "SRv6 Network Programming", draft-filsfils-
              spring-srv6-network-programming-03 (work in progress),
              December 2017.

   [I-D.ietf-ospf-ospfv3-lsa-extend]
              Lindem, A., Roy, A., Goethals, D., Vallem, V., and F.
              Baker, "OSPFv3 LSA Extendibility", draft-ietf-ospf-ospfv3-
              lsa-extend-15
              lsa-extend-23 (work in progress), October 2017. January 2018.

   [I-D.ietf-spring-segment-routing]
              Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B.,
              Litkowski, S., and R. Shakir, "Segment Routing
              Architecture", draft-ietf-spring-segment-routing-15 (work
              in progress), January 2018.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC4552]  Gupta, M. and N. Melam, "Authentication/Confidentiality
              for OSPFv3", RFC 4552, DOI 10.17487/RFC4552, June 2006,
              <https://www.rfc-editor.org/info/rfc4552>.

   [RFC5340]  Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF
              for IPv6", RFC 5340, DOI 10.17487/RFC5340, July 2008,
              <https://www.rfc-editor.org/info/rfc5340>.

   [RFC7770]  Lindem, A., Ed., Shen, N., Vasseur, JP., Aggarwal, R., and
              S. Shaffer, "Extensions to OSPF for Advertising Optional
              Router Capabilities", RFC 7770, DOI 10.17487/RFC7770,
              February 2016, <https://www.rfc-editor.org/info/rfc7770>.

6.2.  Informative References

   [I-D.bashandy-isis-srv6-extensions]
              Ginsberg, L., Bashandy, A., Filsfils, C., and B. Decraene,
              "IS-IS Extensions to Support Routing over IPv6 Dataplane",
              draft-bashandy-isis-srv6-extensions-01 (work in progress),
              September 2017.

   [I-D.filsfils-spring-srv6-network-programming]
              Filsfils, C., Leddy, J., daniel.voyer@bell.ca, d.,
              daniel.bernier@bell.ca, d., Steinberg, D., Raszuk, R.,
              Matsushima, S., Lebrun, D., Decraene, B., Peirens, B.,
              Salsano, S., Naik, G., Elmalky, H., Jonnalagadda, P.,
              Sharif, M., Ayyangar, A., Mynam, S., Henderickx, W.,
              Bashandy, A., Raza, K., Dukes, D., Clad, F., and P.
              Camarillo, "SRv6 Network Programming", draft-filsfils-
              spring-srv6-network-programming-01 (work in progress),
              June 2017.

   [I-D.ietf-6man-segment-routing-header]
              Previdi, S., Filsfils, C., Raza, K., Dukes, D., Leddy, J.,
              Field, B., daniel.voyer@bell.ca, d.,
              daniel.bernier@bell.ca, d., Matsushima, S., Leung, I.,
              Linkova, J., Aries, E., Kosugi, T., Vyncke, E., Lebrun,
              D., Steinberg, D., and R. Raszuk, "IPv6 Segment Routing
              Header (SRH)", draft-ietf-6man-
              segment-routing-header-07 draft-ietf-6man-segment-routing-header-08
              (work in progress), July 2017.

   [I-D.ietf-spring-segment-routing]
              Filsfils, C., Previdi, S., Decraene, B., Litkowski, S.,
              and R. Shakir, "Segment Routing Architecture", draft-ietf-
              spring-segment-routing-12 (work in progress), June 2017. January 2018.

Authors' Addresses

   Zhenbin Li
   Huawei Technologies

   Email: lizhenbin@huawei.com

   Zhibo Hu
   Huawei Technologies

   Email: huzhibo@huawei.com

   Dean Cheng
   Huawei Technologies

   Email: dean.cheng@huawei.com

   Ketan Talaulikar
   Cisco Systems
   India

   Email: ketant@cisco.com

   Peter Psenak
   Cisco Systems
   Slovakia

   Email: ppsenak@cisco.com