idr                                                             Z. Zhang
Internet-Draft                                                 S. Sangli
Intended status: Standards Track                                 J. Haas
Expires: 23 October 2021                                Juniper Networks
                                                           21 April 2021


                          Bitmask Route Target
                draft-zzhang-idr-bitmask-route-target-01

Abstract

   This document specifies a new type of Route Target called Bitmask
   Route Target as a BGP Community Container.  The key element of a
   Bitmask Route Target is a Bitmask.  Two Bitmask Route Targets are
   considered equivalent for the purpose of controlling route
   propagation (via Route Target Constraints) and importation if the
   result of logical "AND" operation of the Bitmask of the two is non-
   zero.

Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

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 23 October 2021.







Zhang, et al.            Expires 23 October 2021                [Page 1]


Internet-Draft            bitmask-route-target                April 2021


Copyright Notice

   Copyright (c) 2021 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.  Specification . . . . . . . . . . . . . . . . . . . . . . . .   3
     2.1.  Matching Semantics  . . . . . . . . . . . . . . . . . . .   3
   3.  Error Handling  . . . . . . . . . . . . . . . . . . . . . . .   4
   4.  Security Considerations . . . . . . . . . . . . . . . . . . .   4
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   5
   6.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   6
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   6
     7.1.  Normative References  . . . . . . . . . . . . . . . . . .   6
     7.2.  Informative References  . . . . . . . . . . . . . . . . .   7
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   7

1.  Introduction

   The importation and propagation of BGP routes can be controlled using
   Route Targets [RFC4364] and Constrained Route Target Distribution
   (RT-C) [RFC4684].  RT-C relies on matching a Route Target prefix.
   The typical matching use case is the full 8-octet encoding of the
   Route Target Extended Community.

   For some applications, it's desirable to have a Route Target with the
   semantic of a bit-string.  For such situations and it may be
   desirable to match such bit-string Route Targets that have specific
   bits set.  This document defines a new type of Route Target for that
   purpose.

   An example use case of this Bitmask Route Target is documented in
   [I-D.zzhang-teas-network-slicing-with-flex-te].

   The use of Bitmask Route Target with Constrained Route Target
   Distribution is specified separately in
   [I-D.zzhang-idr-bgp-rt-constrains-extension].



Zhang, et al.            Expires 23 October 2021                [Page 2]


Internet-Draft            bitmask-route-target                April 2021


2.  Specification

   The Bitmask Route Target is a Transitive BGP Community Container of
   type TBD1 [I-D.ietf-idr-wide-bgp-communities].

   The semantics of Global Administrator and Local Administor are
   identical to those in [RFC4360].

   The container's contents is a series of Bitmask Route Targets.  Each
   Bitmask Route Target includes a 1-octet Global Administrator (GA)
   Type, a 1-octet GA Sub-Type, 1-octet GA Length, a variable length GA,
   a 4-octet Local Administrator (LA), a 1-octet Bitmask Length in
   number of octets, and a variable length Bitmask.

        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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |  GA Type        |  GA Sub-Type  |  GA Length    |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |  Global Administrator (variable length)                       ~
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |  Local Administrator                                          |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |  Bitmask Length |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       ~                   Bitmask (variable length)                   ~
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The following GA Types and corresponding lengths are defined in this
   document:

      1: AS Number, 4-octets

      2: IPv4 Address, 4-octets

      3: IPv6 Address, 16-octets

   The follow GA Sub-Types are defined in this document:

      2: Route-Target

2.1.  Matching Semantics

   A Bitmask Route Target, A, is considered to match Bitmask Route
   Target, B, for the purpose of controlling propagation and importation
   of a route with an attached Bitmask Route Target B if the following
   conditions are met:




Zhang, et al.            Expires 23 October 2021                [Page 3]


Internet-Draft            bitmask-route-target                April 2021


   *  The GA Type, GA Sub-Type, GA Length, GA, and LA fields in A and B
      match.

   *  Either:

      -  The Bitmask Length of A is 0.  In other words, "match all".

      -  The result of the logical "AND" operation of the Bitmask field
         in A and B is not 0.  When A and B have different Bitmask
         Lengths, the shorter Route Target's Bitmask is considered to be
         padded with zeroes for match purposes vs. the longer one.

3.  Error Handling

   A Bitmask Route Target MUST NOT be originated with a RESERVED GA
   Type.  Implementations receiving BGP Routes with a RESERVED Bitmask
   Route Target MUST check its syntactic correctness and MAY silently
   discard it.

   A Bitmask Route Target SHOULD NOT be originated with a Bitmask Length
   of 0.

   A Bitmask Route Target is considered malformed if:

   *  The length of the Bitmask Route Target is less than the minimum
      length of 8: 1-octet GA Type, 1-octet GA Sub-Type, 1-octet GA
      Length, 0-length GA, 4-octet LA, 0-octet Bitmask.

   *  The Bitmask Route Target GA Type is known by the implementation
      and the GA Length is incorrect vs. the registered GA Type.

   *  The total computed length of the Bitmask Route Targets in a BGP
      Community Container is not identical to the BGP Community
      Container Length.  Each Bitmask Route Target's computed length is:
      1-octet GA Type, 1-octet GA Length field, N-octet GA Length value,
      4-octet LA field, 1-octet Bitmask Length, N-octet Bitmask Length
      value.

   BGP Updates containing malformed Bitmask Route Targets should use the
   Treat-as-withdraw behavior for the routes in the Update according to
   [RFC7606].

4.  Security Considerations

   This document does not change security aspects as discussed in
   [RFC4364] and [I-D.ietf-idr-wide-bgp-communities].





Zhang, et al.            Expires 23 October 2021                [Page 4]


Internet-Draft            bitmask-route-target                April 2021


5.  IANA Considerations

   This document requests IANA to assign a BGP Community Container Type
   for the Bitmask Route Target from the "BGP Community Container Types"
   registry for TBD1.

   This document requests IANA to setup a "Bitmask Route Target Global
   Administrator Type Registry".  The initial allocation and policy for
   this registry is:

    +==========+========================+================+===========+
    | GA Type  | GA Type Name           | GA Type Length | Reference |
    |          |                        | (octets)       |           |
    +==========+========================+================+===========+
    | 0        | RESERVED               | UNSPECIFIED    | This      |
    |          |                        |                | document  |
    +----------+------------------------+----------------+-----------+
    | 1        | AS Number              | 4              | This      |
    |          |                        |                | document  |
    +----------+------------------------+----------------+-----------+
    | 2        | IPv4 Address           | 4              | This      |
    |          |                        |                | document  |
    +----------+------------------------+----------------+-----------+
    | 3        | IPv6 Address           | 16             | This      |
    |          |                        |                | document  |
    +----------+------------------------+----------------+-----------+
    | 4..127   | Available,             | TBD            | -         |
    |          | Specification Required |                |           |
    +----------+------------------------+----------------+-----------+
    | 128..254 | Available, First Come, | TBD            | -         |
    |          | First Served           |                |           |
    +----------+------------------------+----------------+-----------+
    | 255      | RESERVED               | UNSPECIFIED    | This      |
    |          |                        |                | document  |
    +----------+------------------------+----------------+-----------+

              Table 1: Bitmask Route Target GA-Type Registry

   This document requests IANA to setup a "Bitmask Route Target Global
   Administrator Sub-Type Registry".  The initial allocation and policy
   for this registry is:










Zhang, et al.            Expires 23 October 2021                [Page 5]


Internet-Draft            bitmask-route-target                April 2021


   +=============+=====================================+===============+
   | GA Sub-Type | GA Sub-Type Name                    | Reference     |
   +=============+=====================================+===============+
   | 0           | RESERVED                            | This document |
   +-------------+-------------------------------------+---------------+
   | 1           | Available, Specification Required   | -             |
   +-------------+-------------------------------------+---------------+
   | 2           | Route-Target                        | This document |
   +-------------+-------------------------------------+---------------+
   | 3..127      | Available, Specification Required   | -             |
   +-------------+-------------------------------------+---------------+
   | 128..254    | Available, First Come, First        | -             |
   |             | Served                              |               |
   +-------------+-------------------------------------+---------------+
   | 255         | RESERVED                            | This document |
   +-------------+-------------------------------------+---------------+

             Table 2: Bitmask Route Target GA-Sub-Type Registry

6.  Acknowledgements

   The authors thank John Scudder for his comments and suggestions.

7.  References

7.1.  Normative References

   [I-D.ietf-idr-wide-bgp-communities]
              Raszuk, R., Haas, J., Lange, A., Decraene, B., Amante, S.,
              and P. Jakma, "BGP Community Container Attribute", Work in
              Progress, Internet-Draft, draft-ietf-idr-wide-bgp-
              communities-05, 2 July 2018, <http://www.ietf.org/
              internet-drafts/draft-ietf-idr-wide-bgp-communities-
              05.txt>.

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

   [RFC7606]  Chen, E., Ed., Scudder, J., Ed., Mohapatra, P., and K.
              Patel, "Revised Error Handling for BGP UPDATE Messages",
              RFC 7606, DOI 10.17487/RFC7606, August 2015,
              <https://www.rfc-editor.org/info/rfc7606>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.



Zhang, et al.            Expires 23 October 2021                [Page 6]


Internet-Draft            bitmask-route-target                April 2021


7.2.  Informative References

   [I-D.zzhang-idr-bgp-rt-constrains-extension]
              Zhang, Z. and J. Haas, "Generic Route Constraint
              Distribution Mechanism for BGP", Work in Progress,
              Internet-Draft, draft-zzhang-idr-bgp-rt-constrains-
              extension-01, 11 January 2021, <http://www.ietf.org/
              internet-drafts/draft-zzhang-idr-bgp-rt-constrains-
              extension-01.txt>.

   [I-D.zzhang-teas-network-slicing-with-flex-te]
              Zhang, Z., Hegde, S., and A. Gulko, "Network Slicing with
              Flexible Traffic Engineering", Work in Progress, Internet-
              Draft, draft-zzhang-teas-network-slicing-with-flex-te-00,
              13 July 2020, <http://www.ietf.org/internet-drafts/draft-
              zzhang-teas-network-slicing-with-flex-te-00.txt>.

   [RFC4360]  Sangli, S., Tappan, D., and Y. Rekhter, "BGP Extended
              Communities Attribute", RFC 4360, DOI 10.17487/RFC4360,
              February 2006, <https://www.rfc-editor.org/info/rfc4360>.

   [RFC4364]  Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private
              Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February
              2006, <https://www.rfc-editor.org/info/rfc4364>.

   [RFC4684]  Marques, P., Bonica, R., Fang, L., Martini, L., Raszuk,
              R., Patel, K., and J. Guichard, "Constrained Route
              Distribution for Border Gateway Protocol/MultiProtocol
              Label Switching (BGP/MPLS) Internet Protocol (IP) Virtual
              Private Networks (VPNs)", RFC 4684, DOI 10.17487/RFC4684,
              November 2006, <https://www.rfc-editor.org/info/rfc4684>.

Authors' Addresses

   Zhaohui Zhang
   Juniper Networks

   Email: zzhang@juniper.net


   Srihari Sangli
   Juniper Networks

   Email: ssangli@juniper.net







Zhang, et al.            Expires 23 October 2021                [Page 7]


Internet-Draft            bitmask-route-target                April 2021


   Jeffrey Haas
   Juniper Networks

   Email: jhaas@juniper.net















































Zhang, et al.            Expires 23 October 2021                [Page 8]