Skip to main content

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

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft whose latest revision state is "Replaced".
Authors Zhenbin Li , Zhibo Hu, Dean Cheng
Last updated 2017-10-19
Replaced by draft-li-lsr-ospfv3-srv6-extensions
RFC stream (None)
Formats
Additional resources
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-li-ospf-ospfv3-srv6-extensions-00
Network Working Group                                              Z. Li
Internet-Draft                                                     Z. Hu
Intended status: Standards Track                                D. Cheng
Expires: April 22, 2018                              Huawei Technologies
                                                        October 19, 2017

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

Abstract

   Segment routing architecture (refer to
   [I-D.ietf-spring-segment-routing]) can be implemented over a MPLS
   data plane, an IPv4 data 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 extensions to
   OSPFv3 ([RFC5340]) required to support SRv6.

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, 2018.

Li, et al.               Expires April 22, 2018                 [Page 1]
Internet-Draft         OSPFv3 Extensions for SRV6           October 2017

Copyright Notice

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

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

Li, et al.               Expires April 22, 2018                 [Page 2]
Internet-Draft         OSPFv3 Extensions for SRV6           October 2017

       support with 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 a received packet
       before applying the function associated with a SID.  It may be
       included in the SRv6-Capabilities Sub-TLV.

   3.  Maximum End Pop SRH Sub-Sub-TLV: Refer to Section 2.1.2.  This
       Sub-Sub-TLV carries the maximum number of the SIDs in the top SRH
       in an SRH stack to which the router 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 to Section 2.1.3.  This
       Sub-Sub-TLV carries the maximum number of the SIDs that can be
       inserted as part of the "T.insert" behavior (refer to
       [I-D.filsfils-spring-srv6-network-programming]).  It may be
       included in the SRv6-Capabilities Sub-TLV.

   5.  Maximum T.Encap SRH Sub-Sub-TLV: Refer to Section 2.1.4.  This
       Sub-Sub-TLV carries the maximum number of the SIDs that can be
       inserted as part of the "T.Encap" behavior (refer to
       [I-D.filsfils-spring-srv6-network-programming]).  It may be
       included in 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 of the SIDs in an SRH when
       applying "End.DX6" 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 functions are well-known and defined in
       [I-D.filsfils-spring-srv6-network-programming], but may also be
       others defined in the future.  This TLV is a top-level TLV and is
       included in OSPFv3 Router Information LSA([RFC7770]).

   8.  SRv6 Point-to-Point Adj-SID Sub-TLV: Refer to Section 2.5.1.
       This Sub-TLV is used to advertise one or more SIDs on an OSPFv3
       point-to-point adjacency for the support of SRv6 along with their
       associated functions.  These SRv6 functions are well-known and
       defined in [I-D.filsfils-spring-srv6-network-programming], but
       may also be others defined in the future.  This Sub-TLV is

Li, et al.               Expires April 22, 2018                 [Page 3]
Internet-Draft         OSPFv3 Extensions for SRV6           October 2017

       included 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 of SRv6 along with their associated
       functions.  These SRv6 functions are well-known and defined in
       [I-D.filsfils-spring-srv6-network-programming], but may also be
       others defined in 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 functions
   supported and data format.

2.  OSPFv3 Extensions for SRv6

2.1.  SRv6-Capabilities Sub-TLV

   When apply Segment Routing to IPv6 data plane, the list of segments
   is stored in segment routing header, referred to 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 as described in
   [I-D.ietf-6man-segment-routing-header], as well as apply behaviors
   and flavors as described in
   [I-D.filsfils-spring-srv6-network-programming].  In either case,
   there exists a limit to which the router can perform according to its
   own ability that needs to be advertised to other routers in the same
   SR domain.

   The OSPFv3-SRv6-Capbilities Sub-TLV is designed for an OSPFv3 router
   to make announcement in the SRv6 domain about its ability in the
   context of SRv6 support.

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

Li, et al.               Expires April 22, 2018                 [Page 4]
Internet-Draft         OSPFv3 Extensions for SRV6           October 2017

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

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

                                 Figure 1

   Type (one octet)

      TBD-1

   Length (one octet)

      2 + length of sub-sub-TLVs

   Flags (16 bits)

      E-Flag: If set, the router is able to apply "T.Encap" operation.

2.1.1.  Maximum SL Sub-Sub-TLV

   The Maximum Segments Left Sub-Sub-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
    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    |    Max SL     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                 Figure 2

   Type (one octet)

Li, et al.               Expires April 22, 2018                 [Page 5]
Internet-Draft         OSPFv3 Extensions for SRV6           October 2017

      TBD-2

   Length (one octet)

      1

   Max SL (8 bits)

      SL Value

   If the sub-sub-TLV is NOT advertised, the value is assumed to be 0.

2.1.2.  Maximum End Pop SRH Sub-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]
   ).

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

                                 Figure 3

   Type (one octet)

      TBD-3

   Length (one octet)

      1

   Max-End-Pop-SRH (8 bits)

      Max End Pop SRH value Value

   If the value is zero or the sub-sub-TLV is NOT advertised, then it is
   assumed that the router cannot apply PSP or USP flavors.

Li, et al.               Expires April 22, 2018                 [Page 6]
Internet-Draft         OSPFv3 Extensions for SRV6           October 2017

2.1.3.  Maximum T.Insert SRH Sub-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
    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    |  Max-T.Insert |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                 Figure 4

   Type (one octet)

      TBD-4

   Length (one octet)

      1

   Max-T.Insert (8 bits)

      Max-T.Insert Value

   If the value is zero or the sub-sub-TLV is omitted, then the router
   is assumed not to support any variation of the "T.insert" behavior.

2.1.4.  Maximum T.Encap SRH Sub-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]).

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

                                 Figure 5

   Type (one octet)

Li, et al.               Expires April 22, 2018                 [Page 7]
Internet-Draft         OSPFv3 Extensions for SRV6           October 2017

      TBD-5

   Length (one octet)

      1

   Max-T.Encap (8 bits)

      Max-T.Encap Value

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

2.1.5.  Maximum End D SRH Sub-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
    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    |   Max End D   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                 Figure 6

   Type (one octet)

      TBD-6

   Length (one octet)

      1

   Max End D (8 bits)

      Max End D Value

   If this value is zero or the sub-sub-TLV is omitted, then it is
   assumed that the router cannot apply "End.DX6" or "End.DT6" functions

Li, et al.               Expires April 22, 2018                 [Page 8]
Internet-Draft         OSPFv3 Extensions for SRV6           October 2017

   if the extension header right underneath the outer IPv6 header is an
   SRH.

2.2.  SRv6 Function Descriptor

   The SRv6 SID TLV (defined in Section 2.4), P2P SRv6 SID Sub-TLV
   (defined in Section 2.5.1), and LAN SRv6 SID Sub-TLV (defined in
   Section 2.5.2), MUST include one SRv6 function Descriptor.

   When included in the SRv6 SID TLV, the descriptor is encoded as a
   Sub-TLV.  When included in a P2P/LAN SRv6 SID sub-TLV, the descriptor
   is encoded as a Sub-Sub-TLV.

   The SRv6-function Descriptor encodes the function (and its flavors)
   bound to the SRv6 SID advertised in the SRv6 dodmain
   ([I-D.filsfils-spring-srv6-network-programming]).

   The format of OSPFv3 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
      the SRv6 function specified in the "Function" field:

Li, et al.               Expires April 22, 2018                 [Page 9]
Internet-Draft         OSPFv3 Extensions for SRV6           October 2017

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

                                 Figure 8

   P bit

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

   U bit

      If set, then the USP flavor
      ([I-D.filsfils-spring-srv6-network-programming]) is associated
      with the function encoded in 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 in Section 2.3.

2.3.  SRv6 Function Code Points

   This section defines the code points for supported functions
   associated with SRv6 SIDs.  Refer
   [I-D.filsfils-spring-srv6-network-programming] for SRv6 functions.

   0:

      Reserved.

   1:

      End Function.

   2:

      End.X Function.

   3:

Li, et al.               Expires April 22, 2018                [Page 10]
Internet-Draft         OSPFv3 Extensions for SRV6           October 2017

      End.DX6 Function.

   4:

      End.DT6 Function.

2.4.  SRv6 SID TLV

   A new top level TLV is introduced in OSPFv3 to advertise one or more
   SRv6 Segment Identifiers (SIDs) 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 of the basic SRv6 functions in Section 2.3.  SRv6 functions may
   also be defined in other documents or locally configured.

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

   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     |   SID-Size    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             SID (variable) ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Sub-Sub-TLV-Len|    Sub-Sub-TLVs (variable) . . .
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                 Figure 9

   Type (one octet)

      TBD-8

   Length (one octet)

      Variable

   One or more SID entries, each of which has the following format:

   Flags (One octet)

      The following flags are defined:

Li, et al.               Expires April 22, 2018                [Page 11]
Internet-Draft         OSPFv3 Extensions for SRV6           October 2017

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

                                 Figure 10

   D bit:

      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 are reserved for future use.  They SHOULD be
      set to zero on transmission and MUST be ignored on reception.

   SID-Size (one octet)

      Number of bits in the SID field.

   SID (1-16 octet)

      This field encodes the advertised SRv6 SID.  The "SID-Size" field
      can have the value in the range of 1-128 and indicates the number
      of bits in the SID.  The SRv6 SID is encoded in the minimal number
      of octets 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.

2.5.  SRv6 Neighbor SID TLV

   The advertising of some SRv6 functions must be associated with a
   particular neighbor.  As described in
   [I-D.ietf-spring-segment-routing], there are two types of SR
   adjacencies, one is on point-to-point link and another is on a
   broadcast/mulcast LAN.  This section defines OSPFv3 extensions in

Li, et al.               Expires April 22, 2018                [Page 12]
Internet-Draft         OSPFv3 Extensions for SRV6           October 2017

   order to advertise SRv6 SIDs and their associated functions for these
   two cases.

   A single SRv6 Adj-SID may associate with one or more SRv6 functions.
   The SRv6 functions are defined in
   [I-D.filsfils-spring-srv6-network-programming], other documents, or
   locally configured.

   This document specifies how to advertise End.X and End.DX6 defined in
   [I-D.filsfils-spring-srv6-network-programming] using OSPFv3
   extersons.

2.5.1.  Point to Popint SRv6 Adj-SID Sub-TLV

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

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

   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     |   SID-Size    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             SID (variable) ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Sub-Sub-TLV-Len|      Sub-Sub-TLVs (variable) . . .
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                 Figure 11

   Type (one octet)

      TBD-9

   Length (one octet)

      Variable

   One or more SID entries, each of which has the following format:

   Flags (One octet)

      No flags defined in this document.

Li, et al.               Expires April 22, 2018                [Page 13]
Internet-Draft         OSPFv3 Extensions for SRV6           October 2017

   SID-Size (one octet)

      Number of bits in the SID field.

   SID (1-16 octet)

      This field encodes the advertised SRv6 SID.  The "SID-Size" field
      can have the value in the range of 1-128 and indicates the number
      of bits in the SID.  The SRv6 SID is encoded in the minimal number
      of octets 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, the encoded SRv6 SID function MUST include
      only the code points of SRv6 SID functions that require the
      specification of a neighbor to be correctly applied.

2.5.2.  LAN SRv6 Adj-SID sub-TLV

   This 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" Sub-TLV is shown in Figure 12.

   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     |   SID-Size    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             SID (variable) ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Sub-Sub-TLV-Len|      Sub-Sub-TLVs (variable) . . .
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                 Figure 12

   Type (one octet)

      TBD-10

Li, et al.               Expires April 22, 2018                [Page 14]
Internet-Draft         OSPFv3 Extensions for SRV6           October 2017

   Length (one octet)

      Variable

   One or more SID entries, each of which has the following format:

   Flags (One octet)

      No flags defined in this document.

   SID-Size (one octet)

      Number of bits in the SID field.

   SID (1-16 octet)

      This field encodes the advertised SRv6 SID.  The "SID-Size" field
      can have the value in the range of 1-128 and indicates the number
      of bits in the SID.  The SRv6 SID is encoded in the minimal number
      of octets 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, the encoded SRv6 SID function MUST include
      only the code points of SRv6 SID functions that require the
      specification of a neighbor to be correctly applied.

3.  Security Considerations

   This document does not introduce any security issue.

4.  IANA Considerations

   This document proposes IANA considerations as described in the
   following sections.

4.1.  OSPFv3 Extensions for SRv6 Support

   This document proposes the following OSPFv3 Extensions in order to
   support SRv6:

Li, et al.               Expires April 22, 2018                [Page 15]
Internet-Draft         OSPFv3 Extensions for SRV6           October 2017

   1.   SRv6-Capabilities Sub-TLV (Type TBD-1): 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.   SRv6 SID TLV (Type TBD-8): Refer to Section 2.4.

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

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

5.  Acknowledgements

   TBD.

6.  References

6.1.  Normative References

   [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 (work in progress), October 2017.

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

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

Li, et al.               Expires April 22, 2018                [Page 16]
Internet-Draft         OSPFv3 Extensions for SRV6           October 2017

   [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., 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 (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.

Authors' Addresses

   Zhenbin Li
   Huawei Technologies

   Email: lizhenbin@huawei.com

Li, et al.               Expires April 22, 2018                [Page 17]
Internet-Draft         OSPFv3 Extensions for SRV6           October 2017

   Zhibo Hu
   Huawei Technologies

   Email: huzhibo@huawei.com

   Dean Cheng
   Huawei Technologies

   Email: dean.cheng@huawei.com

Li, et al.               Expires April 22, 2018                [Page 18]