Subject: [OSPF] Advertising Tunnelling Capability in OSPF

From: "Acee Lindem (acee)" <[email-masked]>
Date: Fri, 12 May 2017 22:37:01 +0000

Hello OSPF Tunneling Capability Authors,

As we reach the end of a successful WG last call, I’d like to remind you again that the guideline for authors is 5.  While I’m not a supporter of this low limit (ADs copied), for this particular draft, I don’t think it makes sense for me to fight for more authors since it is a relatively draft and is not the result of the merger of multiple drafts or multiple implementations.  One has to chose their battles and I have far too many choices ;^)

Also, see some suggested editorial changes below. Note that many of the suggested changes are related to consistency for “Sub-TLV” or “sub-TLV”. I prefer “Sub-TLV” as I believe it reads better.

Thanks,
Acee

*** draft-ietf-ospf-encapsulation-cap-02.txt.orig 2017-05-12 12:04:29.000000000 -0400
--- draft-ietf-ospf-encapsulation-cap-02.txt 2017-05-12 16:04:25.000000000 -0400
***************
*** 22,31 ****

  Abstract

!    Some networks use tunnels for a variety of reasons.  A large variety
     of tunnel types are defined and the ingress needs to select a type of
     tunnel which is supported by the egress.  This document defines how
!    to advertise egress tunnel capabilities in OSPF Router Information.

  Requirements Language

--- 22,32 ----

  Abstract

!    Networks use tunnels for a variety of reasons.  A large variety
     of tunnel types are defined and the ingress needs to select a type of
     tunnel which is supported by the egress.  This document defines how
!    to advertise egress tunnel capabilities in OSPF Router Information
!    Link State Advertisements (LSAs).

  Requirements Language

***************
*** 80,89 ****
     3.  Advertising Encapsulation Capability  . . . . . . . . . . . .   3
     4.  Tunnel Encapsulation Type . . . . . . . . . . . . . . . . . .   3
     5.  Tunnel Encapsulation Attribute  . . . . . . . . . . . . . . .   5
!      5.1.  Tunnel Parameters sub-TLV . . . . . . . . . . . . . . . .   5
!      5.2.  Encapsulated Protocol sub-TLV . . . . . . . . . . . . . .   6
!      5.3.  End Point sub-TLV . . . . . . . . . . . . . . . . . . . .   6
!      5.4.  Color sub-TLV . . . . . . . . . . . . . . . . . . . . . .   6
     6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   6
       6.1.  OSPF Router Information . . . . . . . . . . . . . . . . .   6
       6.2.  IGP Tunnel Encapsulation Types Registry . . . . . . . . .   6
--- 81,90 ----
     3.  Advertising Encapsulation Capability  . . . . . . . . . . . .   3
     4.  Tunnel Encapsulation Type . . . . . . . . . . . . . . . . . .   3
     5.  Tunnel Encapsulation Attribute  . . . . . . . . . . . . . . .   5
!      5.1.  Tunnel Parameters Sub-TLV . . . . . . . . . . . . . . . .   5
!      5.2.  Encapsulated Protocol Sub-TLV . . . . . . . . . . . . . .   6
!      5.3.  End Point Sub-TLV . . . . . . . . . . . . . . . . . . . .   6
!      5.4.  Color Sub-TLV . . . . . . . . . . . . . . . . . . . . . .   6
     6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   6
       6.1.  OSPF Router Information . . . . . . . . . . . . . . . . .   6
       6.2.  IGP Tunnel Encapsulation Types Registry . . . . . . . . .   6
***************
*** 97,108 ****

  1.  Introduction

!    Some networks use tunnels for a variety of reasons, such as:

     o  Partial deployment of MPLS-SPRING as described in
        [I-D.xu-mpls-unified-source-routing-instruction], where IP tunnels
!       are used between MPLS-SPRING-enabled routers so as to traverse
!       non- MPLS routers.

     o  Partial deployment of MPLS-BIER as described in Section 6.9 of
        [I-D.ietf-bier-architecture], where IP tunnels are used between
--- 98,109 ----

  1.  Introduction

!    Networks use tunnels for a variety of reasons, such as:

     o  Partial deployment of MPLS-SPRING as described in
        [I-D.xu-mpls-unified-source-routing-instruction], where IP tunnels
!       are used between MPLS-SPRING-enabled routers to traverse
!       non-MPLS routers.

     o  Partial deployment of MPLS-BIER as described in Section 6.9 of
        [I-D.ietf-bier-architecture], where IP tunnels are used between
***************
*** 114,134 ****
  Internet-Draft                                                April 2017

!       MPLS-BIER-capable routers so as to traverse non MPLS-BIER
        [I-D.ietf-bier-mpls-encapsulation] routers.

!    o  Partial deployment of IPv6 (resp.  IPv4) in IPv4 (resp.  IPv6)
        networks as described in [RFC5565], where IPvx tunnels are used
        between IPvx-enabled routers so as to traverse non-IPvx routers.

!    o  Remote Loop Free Alternate repair tunnels as described in
        [RFC7490], where tunnels are used between the Point of Local
        Repair and the selected PQ node.

     The ingress needs to select a type of tunnel which is supported by
     the egress.  This document describes how to use OSPF Router
!    Information to advertise the egress tunnelling capabilities of nodes.
!    In this document, OSPF means both OSPFv2 and OSPFv3.

  2.  Terminology

--- 115,136 ----
  Internet-Draft                                                April 2017

!       MPLS-BIER-capable routers to traverse non-MPLS-BIER
        [I-D.ietf-bier-mpls-encapsulation] routers.

!    o  Partial deployment of IPv6 in IPv4 networks or IPv6 in IPv4
        networks as described in [RFC5565], where IPvx tunnels are used
        between IPvx-enabled routers so as to traverse non-IPvx routers.

!    o  Remote Loop-Free Alternate (rLFA) repair tunnels as described in
        [RFC7490], where tunnels are used between the Point of Local
        Repair and the selected PQ node.

     The ingress needs to select a type of tunnel which is supported by
     the egress.  This document describes how to use OSPF Router
!    Information Link State Advertisements (LSAs) to advertise the egress
!    tunneling capabilities of OSPF routers.  In this document, OSPF refers
!    to both OSPFv2 and OSPFv3.

  2.  Terminology

***************
*** 136,157 ****

  3.  Advertising Encapsulation Capability

!    Routers advertises their supported encapsulation type(s) by
     advertising a new TLV of the OSPF Router Information (RI) Opaque LSA
!    [RFC7770], referred to as Encapsulation Capability TLV.  This TLV is
     applicable to both OSPFv2 and OSPFv3.  The Encapsulation Capability
     TLV SHOULD NOT appear more than once within a given OSPF Router
     Information (RI) Opaque LSA.  The scope of the advertisement depends
     on the application but it is recommended that it SHOULD be domain-
     wide.  The Type code of the Encapsulation Capability TLV is TBD1, the
     Length value is variable, and the Value field contains one or more
!    Tunnel Encapsulation Type sub-TLVs.  Each Encapsulation Type sub-TLVs
     indicates a particular encapsulation format that the advertising
     router supports.

  4.  Tunnel Encapsulation Type

!    The Tunnel Encapsulation Type sub-TLV is structured 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
--- 138,159 ----

  3.  Advertising Encapsulation Capability

!    Routers advertise their supported encapsulation type(s) by
     advertising a new TLV of the OSPF Router Information (RI) Opaque LSA
!    [RFC7770], referred to as the Encapsulation Capability TLV.  This TLV is
     applicable to both OSPFv2 and OSPFv3.  The Encapsulation Capability
     TLV SHOULD NOT appear more than once within a given OSPF Router
     Information (RI) Opaque LSA.  The scope of the advertisement depends
     on the application but it is recommended that it SHOULD be domain-
     wide.  The Type code of the Encapsulation Capability TLV is TBD1, the
     Length value is variable, and the Value field contains one or more
!    Tunnel Encapsulation Type Sub-TLVs.  Each Encapsulation Type Sub-TLV
     indicates a particular encapsulation format that the advertising
     router supports.

  4.  Tunnel Encapsulation Type

!    The Tunnel Encapsulation Type Sub-TLV is structured 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
***************
*** 159,165 ****
         |    Tunnel Type (2 Octets)     |        Length (2 Octets)      |
         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
         |                                                               |
!        |                             Value                             |
         |                                                               |
         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

--- 161,169 ----
         |    Tunnel Type (2 Octets)     |        Length (2 Octets)      |
         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
         |                                                               |
!                                        o
!                                     Sub-TLVs
!                                        o
         |                                                               |
         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

***************
*** 170,176 ****
  Internet-Draft                                                April 2017

!       Tunnel Type (2 octets): identifies the type of tunneling
        technology being signaled.  This document defines the following
        types:

--- 174,180 ----
  Internet-Draft                                                April 2017

!       Tunnel Type (2 octets): Identifies the type of tunneling
        technology being signaled.  This document defines the following
        types:

***************
*** 182,194 ****

        4.   IPsec in Tunnel-mode [RFC5566] : Type code=4;

!       5.   IP in IP tunnel with IPsec Transport Mode [RFC5566] : Type
             code=5;

        6.   MPLS-in-IP tunnel with IPsec Transport Mode [RFC5566] : Type
             code=6;

!       7.   IP in IP [RFC2003] [RFC4213]: Type code=7;

        8.   VXLAN [RFC7348] : Type code=8;

--- 186,198 ----

        4.   IPsec in Tunnel-mode [RFC5566] : Type code=4;

!       5.   IP-in-IP tunnel with IPsec Transport Mode [RFC5566] : Type
             code=5;

        6.   MPLS-in-IP tunnel with IPsec Transport Mode [RFC5566] : Type
             code=6;

!       7.   IP-in-IP [RFC2003] [RFC4213]: Type code=7;

        8.   VXLAN [RFC7348] : Type code=8;

***************
*** 210,219 ****

        Unknown types are to be ignored and skipped upon receipt.

!       Length (2 octets): unsigned integer indicating the total number of
!       octets of the value field.

!       Value (variable): zero or more Tunnel Encapsulation Attribute sub-
        TLVs as defined in Section 5.

--- 214,223 ----

        Unknown types are to be ignored and skipped upon receipt.

!       Length (2 octets): Uunsigned 16-bity integer indicating the
!       total number of octets of the value field.

!       Value (variable): Zero or more Tunnel Encapsulation Attribute Sub-
        TLVs as defined in Section 5.

***************
*** 228,234 ****

  5.  Tunnel Encapsulation Attribute

!    The Tunnel Encapsulation Attribute sub-TLV is structured as as
     follows:

                             +-----------------------------------+
--- 232,238 ----

  5.  Tunnel Encapsulation Attribute

!    The Tunnel Encapsulation Attribute Sub-TLV is structured as as
     follows:

                             +-----------------------------------+
***************
*** 240,276 ****
                             |                                   |
                             +-----------------------------------+

!       Sub-TLV Type (1 octet): each sub-TLV type defines a certain
!       property about the tunnel TLV that contains this sub-TLV.  The
        following are the types defined in this document:

!       1.  Encapsulation Parameters: sub-TLV type = 1; (See Section 5.1)

!       2.  Encapsulated Protocol: sub-TLV type = 2; (See Section 5.2)

!       3.  End Point: sub-TLV type = 3; (See Section 5.3)

!       4.  Color: sub-TLV type = 4; (See Section 5.4)

!       Sub-TLV Length (1 octet): unsigned integer indicating the total
!       number of octets of the sub-TLV value field.

!       Sub-TLV Value (variable): encodings of the value field depend on
!       the sub-TLV type as enumerated above.  The following sub-sections
!       define the encoding in detail.

!    Any unknown sub-TLVs MUST be ignored and skipped.  However, if the
     TLV is understood, the entire TLV MUST NOT be ignored just because it
!    contains an unknown sub-TLV.

!    If a sub-TLV is erroneous, this specific Tunnel Encapsulation MUST be
!    ignored and skipped.  However, others Tunnel Encapsulations MUST be
     considered.

! 5.1.  Tunnel Parameters sub-TLV

!    This sub-TLV has its format defined in [RFC5512] under the name
!    Encapsulation sub-TLV.

--- 244,280 ----
                             |                                   |
                             +-----------------------------------+

!       Sub-TLV Type (1 octet): Each Sub-TLV type defines a certain
!       property of the tunnel TLV that contains this Sub-TLV.  The
        following are the types defined in this document:

!       1.  Encapsulation Parameters: Sub-TLV type = 1; (See Section 5.1)

!       2.  Encapsulated Protocol: Sub-TLV type = 2; (See Section 5.2)

!       3.  End Point: Sub-TLV type = 3; (See Section 5.3)

!       4.  Color: Sub-TLV type = 4; (See Section 5.4)

!       Sub-TLV Length (1 octet): Unsigned 8-bit integer indicating the
!       total number of octets of the Sub-TLV value field.

!       Sub-TLV Value (variable): Encodings of the value field depend on
!       the Sub-TLV type as enumerated above.  The following sub-sections
!       define the encodings in detail.

!    Any unknown Sub-TLVs MUST be ignored and skipped.  However, if the
     TLV is understood, the entire TLV MUST NOT be ignored just because it
!    contains an unknown Sub-TLV.

!    If a Sub-TLV is invalid, this specific Tunnel Encapsulation MUST be
!    ignored and skipped.  However, other Tunnel Encapsulations MUST be
     considered.

! 5.1.  Tunnel Parameters Sub-TLV

!    This Sub-TLV has its format defined in [RFC5512] under the name
!    Encapsulation Sub-TLV.

***************
*** 282,314 ****
  Internet-Draft                                                April 2017

! 5.2.  Encapsulated Protocol sub-TLV

!    This sub-TLV has its format defined in [RFC5512] under the name
     Protocol Type.

! 5.3.  End Point sub-TLV

     The value field carries the Network Address to be used as tunnel
     destination address.

!    If length is 4, the Address Family (AFI) is IPv4.

!    If length is 16, the Address Family (AFI) is IPv6.

! 5.4.  Color sub-TLV

!    The valued field is a 4 octets opaque unsigned integer.

     The color value is user defined and configured locally on the
!    routers.  It may be used by the service providers to define policies.

  6.  IANA Considerations

  6.1.  OSPF Router Information

     This document requests IANA to allocate a new code point from
!    registry OSPF Router Information (RI).

         Value   TLV Name                               Reference
         -----   ------------------------------------   -------------
--- 286,319 ----
  Internet-Draft                                                April 2017

! 5.2.  Encapsulated Protocol Sub-TLV

!    This Sub-TLV has its format defined in [RFC5512] under the name
     Protocol Type.

! 5.3.  End Point Sub-TLV

     The value field carries the Network Address to be used as tunnel
     destination address.

!    If length is 4, the tunnel endpoint is an IPv4 address.

!    If length is 16, the tunnel endpoint is an IPv6 address.

! 5.4.  Color Sub-TLV

!    The valued field is a 4-octet opaque unsigned integer.

     The color value is user defined and configured locally on the
!    advertising routers.  It may be used by service providers to define
!    policies.

  6.  IANA Considerations

  6.1.  OSPF Router Information

     This document requests IANA to allocate a new code point from
!    the OSPF Router Information (RI) registry.

         Value   TLV Name                               Reference
         -----   ------------------------------------   -------------
***************
*** 338,344 ****
  Internet-Draft                                                April 2017

!               Registry Name: IGP Tunnel Encapsulation Type.

     Value      Name                                         Reference
     -------    ------------------------------------------   -------------
--- 343,349 ----
  Internet-Draft                                                April 2017

!               Registry Name: IGP Tunnel Encapsulation Type

     Value      Name                                         Reference
     -------    ------------------------------------------   -------------
***************
*** 347,355 ****
           2    GRE                                          This document
           3    Transmit tunnel endpoint                     This document
           4    IPsec in Tunnel-mode                         This document
!          5    IP in IP tunnel with IPsec Transport Mode    This document
           6    MPLS-in-IP tunnel with IPsec Transport Mode  This document
!          7    IP in IP                                     This document
           8    VXLAN                                        This document
           9    NVGRE                                        This document
          10    MPLS                                         This document
--- 352,360 ----
           2    GRE                                          This document
           3    Transmit tunnel endpoint                     This document
           4    IPsec in Tunnel-mode                         This document
!          5    IP-in-IP tunnel with IPsec Transport Mode    This document
           6    MPLS-in-IP tunnel with IPsec Transport Mode  This document
!          7    IP-in-IP                                     This document
           8    VXLAN                                        This document
           9    NVGRE                                        This document
          10    MPLS                                         This document
***************
*** 372,378 ****
     Encapsulation Attribute Types" with the following registration
     procedure:

!               Registry Name: IGP Tunnel Encapsulation Attribute Types.

     Value      Name                                      Reference
     -------    ------------------------------------      -------------
--- 377,383 ----
     Encapsulation Attribute Types" with the following registration
     procedure:

!               Registry Name: IGP Tunnel Encapsulation Attribute Types

     Value      Name                                      Reference
     -------    ------------------------------------      -------------
***************
*** 401,410 ****

     Security considerations applicable to softwires can be found in the
     mesh framework [RFC5565].  In general, security issues of the tunnel
!    protocols signaled through this IGP capability extension are
     inherited.

!    If a third party is able to modify any of the information that is
     used to form encapsulation headers, to choose a tunnel type, or to
     choose a particular tunnel for a particular payload type, user data
     packets may end up getting misrouted, misdelivered, and/or dropped.
--- 406,415 ----

     Security considerations applicable to softwires can be found in the
     mesh framework [RFC5565].  In general, security issues of the tunnel
!    protocols signaled through this OSPF capability extension are
     inherited.

!    If a third-party is able to modify any of the information that is
     used to form encapsulation headers, to choose a tunnel type, or to
     choose a particular tunnel for a particular payload type, user data
     packets may end up getting misrouted, misdelivered, and/or dropped.