--- 1/draft-ietf-idr-ls-trill-03.txt 2018-04-15 10:13:13.079013682 -0700 +++ 2/draft-ietf-idr-ls-trill-04.txt 2018-04-15 10:13:13.107014353 -0700 @@ -1,34 +1,31 @@ INTERNET-DRAFT D. Eastlake Intended status: Proposed Standard W. Hao +Updates: 7752 Y. Li Huawei - S. Hares - Hickory Hill Consulting S. Gupta IP Infusion M. Durrani - Cisco - Y. Li - Huawei -Expires: April 2, 2018 October 3, 2017 + Equinix +Expires: October 14, 2018 April 15, 2018 Distribution of TRILL Link-State using BGP - + Abstract This draft describes a TRILL link state and MAC address reachability information distribution mechanism using a BGP LS extension. External components such as an SDN Controller can use the information for topology visibility, troubleshooting, network automation, and the - like. + like. This document updates RFC 7752. Status of This Memo This Internet-Draft is submitted to IETF in full conformance with the provisions of BCP 78 and BCP 79. Distribution of this document is unlimited. Comments should be sent to the authors or the IDR working group mailing list: idr@ietf.org. Internet-Drafts are working documents of the Internet Engineering @@ -47,40 +44,39 @@ http://www.ietf.org/shadow.html. INTERNET-DRAFT BGP LS For TRILL Table of Contents 1. Introduction............................................3 2. Conventions used in this document.......................5 3. Carrying TRILL Link-State Information in BGP............6 - 3.1 Node Descriptors.......................................7 - 3.1.1 IGP Router-ID........................................8 - 3.2 MAC Address Descriptors................................8 - 3.2.1 MAC-Reachability TLV.................................9 - 3.3 The BGP-LS Attribute...................................9 - 3.3.1 Node Attribute TLVs..................................9 - 3.3.1.1 Node Flag Bits TLV................................10 - 3.3.1.2 Opaque Node Attribute TLV.........................10 - 3.3.2. Link Attribute TLVs................................11 - - 4. Operational Considerations.............................12 + 3.1 Node Descriptors.......................................6 + 3.1.1 IGP Router-ID........................................7 + 3.2 MAC Address Descriptors................................7 + 3.2.1 MAC-Reachability TLV.................................8 + 3.3 The BGP-LS Attributes..................................8 + 3.3.1 Node Attribute TLVs..................................8 + 3.3.1.1 Node Flag Bits TLV.................................9 + 3.3.1.2 Opaque Node Attribute TLV..........................9 + 3.3.2. Link Attribute TLVs.................................9 - 5. Security Considerations................................13 - 6. IANA Considerations....................................13 + 4. Operational Considerations.............................10 + 5. Security Considerations................................11 + 6. IANA Considerations....................................11 - Normative References......................................14 - Informative References....................................14 - Acknowledgments...........................................15 + Normative References......................................12 + Informative References....................................13 - Authors' Addresses........................................16 + Acknowledgments...........................................13 + Authors' Addresses........................................14 INTERNET-DRAFT BGP LS For TRILL 1. Introduction BGP has been extended to distribute IGP link-state and traffic engineering information to some external components [RFC7752], such as the PCE and ALTO servers. The information can be used by these external components to compute a MPLS-TE path across IGP areas, visualize and abstract network topology, and the like. @@ -88,23 +84,23 @@ TRILL (Transparent Interconnection of Lots of Links) protocol [RFC6325] provides a solution for least cost transparent routing in multi-hop networks with arbitrary topologies and link technologies, using [IS-IS] [RFC7176] link-state routing and a hop count. TRILL switches are sometimes called RBridges (Routing Bridges). The TRILL protocol has been deployed in many data center networks. Data center automation is a vital step to increase the speed and agility of business. An SDN controller as an external component normally can be used to provide centralized control and automation - for the data center network. Making a holistic view of whole network - topology available to the SDN controller is an important part for - data center network automation and troubleshooting. + for the data center network. Providing a holistic view of whole + network topology to the SDN controller is an important part of data + center network automation and troubleshooting. +-------------+ | SDN | --------| Controller |-------- | +-------------+ | | | + + + + + +-----------+ + | | +--------+ |IP Network | +--------+ @@ -129,101 +125,78 @@ INTERNET-DRAFT BGP LS For TRILL BGP LS also can be used for MAC address reachability information synchronization across multiple TRILL domains. The transported MAC reachability information and the like is for telemetry purposes and for use by SDN controller(s) where the coordination or protocol between the SDN controllers is out of scope. This document describes the detailed BGP LS extension mechanisms for TRILL link state and MAC address reachability information - distribution. + distribution. This document updated [RFC7752] by creating a new IANA + registry for BGP-LS Node Descriptor Flag Bits. INTERNET-DRAFT BGP LS For TRILL 2. Conventions used in this document 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 [RFC2119]. BGP - Border Gateway Protocol BGP-LS - BGP Link-State Data label - VLAN or FGL (Fine Grained Label [RFC7172]) + IGP - Interior Gateway Protocol + IS - Intermediate System (for this document, all relevant intermediate systems are RBridges) + LS - Link State + NLRI - Network Layer Reachability Information SDN - Software Defined Networking RBridge - A device implementing the TRILL protocol - TRILL - Transparent Interconnection of Lots of Links + TRILL - Transparent Interconnection of Lots of Links [RFC6325] + [RFC7176] INTERNET-DRAFT BGP LS For TRILL 3. Carrying TRILL Link-State Information in BGP - In [RFC7752], four NLRI types are defined as follows: Node NLRI, Link - NLRI, IPv4 Topology Prefix NLRI and IPv6 Topology Prefix NLRI. For - TRILL link-state distribution, the Node NLRI and Link NLRI are - extended to carry layer 3 gateway role and link MTU information. - TRILL specific attributes are carried using opaque Node Attribute - TLVs, such as nickname, distribution tree number and identifiers, - interested VLANs/Fine Grained Label, and multicast group address, - etc. - - To differentiate TRILL protocol from layer 3 IGP protocol, a new - TRILL Protocol-ID is defined. - - +-------------+----------------------------------+ - | Protocol-ID | NLRI information source protocol | - +-------------+----------------------------------+ - | 1 | IS-IS Level 1 | - | 2 | IS-IS Level 2 | - | 3 | OSPFv2 | - | 4 | Direct | - | 5 | Static configuration | - | 6 | OSPFv3 | - | TBD | TRILL | - +-------------+----------------------------------+ + In [RFC7752], several BGP-LS NLRI types are defined. For TRILL link- + state distribution, the Node NLRI and Link NLRI are extended to carry + layer 3 gateway role and link MTU information. TRILL specific + attributes are carried using opaque Node Attribute TLVs. Examples of + such attributes are nickname, distribution tree number and + identifiers, interested VLANs/Fine Grained Label, and multicast group + address, etc. - Table 1: Protocol Identifiers + To differentiate the TRILL protocol from layer 3 IGP protocols, a new + TRILL Protocol-ID = TBD1 is specified. ESADI (End Station Address Distribution Information) protocol [RFC7357] is a per data label control plane MAC learning solution. MAC address reachability information is carried in ESADI packets. Compared with data plane MAC learning solution, ESADI protocol has security and fast update advantage that are pointed out in [RFC7357]. For an RBridge that is announcing participation in ESADI, the RBridge can distribute MAC address reachability information to external - components using BGP. A new NLRI type of "MAC Reachability NLRI" is - requested for the MAC address reachability distribution. - -INTERNET-DRAFT BGP LS For TRILL - - +------+---------------------------+ - | Type | NLRI Type | - +------+---------------------------+ - | 1 | Node NLRI | - | 2 | Link NLRI | - | 3 | IPv4 Topology Prefix NLRI | - | 4 | IPv6 Topology Prefix NLRI | - | TBD | MAC Reachability NLRI | - +------+---------------------------+ - - Table 2: NLRI Types + components using BGP. A new "MAC Reachability NLRI" NLRI type TBD2 is + used for the MAC address reachability distribution. The MAC Reachability NLRI uses the format as shown in the following Figure. 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 +-+-+-+-+-+-+-+-+ | Protocol-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identifier | @@ -234,24 +207,25 @@ // MAC Address Descriptors (variable) // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 2: The MAC Reachability NLRI format 3.1 Node Descriptors The Node Descriptor Sub-TLV types include Autonomous System and BGP- LS Identifier, IS-IS Area-ID and IGP Router-ID. TRILL uses a fixed zero Area Address as specified in [RFC6325], Section 4.2.3. This is - encoded in a 4-byte Area Address TLV (TLV #1) as follows: INTERNET-DRAFT BGP LS For TRILL + encoded in a 4-byte Area Address TLV (TLV #1) as follows: + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0x01, Area Address Type | (1 byte) +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0x02, Length of Value | (1 byte) +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0x01, Length of Address | (1 byte) +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0x00, zero Area Address | (1 byte) +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ @@ -268,28 +242,28 @@ (Designated RBridge) that created it, the DRB is similar to the "Designated Intermediate System" (DIS) corresponding to a LAN. 3.2 MAC Address Descriptors The "MAC Address Descriptor" field is a set of Type/Length/Value (TLV) triplets. "MAC Address Descriptor" TLVs uniquely identify an MAC address reachable by a Node. The following attributes TLVs are defined: - +--------------+-----------------------+----------+-----------------+ + +--------------+---------------------+----------+-----------------+ | TLV Code | Description | Length | Value defined | | Point | | | in: | - +--------------+-----------------------+----------+-----------------+ + +--------------+---------------------+----------+-----------------+ | 1 | MAC-Reachability | variable | section 3.2.1 | - +--------------+-----------------------+----------+-----------------+ + +--------------+---------------------+----------+-----------------+ - Table 3: MAC Address Descriptor TLVs + Table 1: MAC Address Descriptor TLVs INTERNET-DRAFT BGP LS For TRILL 3.2.1 MAC-Reachability TLV +-+-+-+-+-+-+-+-+ | Type= MAC-RI | (1 byte) +-+-+-+-+-+-+-+-+ | Length | (1 byte) +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...+-+-+-+-+-+-+-+ @@ -309,180 +283,158 @@ The bits of 'V' and 'F' are used to identify Data Label type and are defined as follows: +----------+-------------------------+ | Bit | Description | +----------+-------------------------+ | 'V' | VLAN | | 'F' | Fine Grained Label | +----------+-------------------------+ - Table 4: Data Label Type Bits Definitions + Table 2: Data Label Type Bits Definitions Notes: If BGP LS is used for NVO3 network MAC address distribution - between external SDN Controller and NVE, Data Label can be used to + between an external SDN Controller and NVE, Data Label can be used to represent 24 bits VN ID. -3.3 The BGP-LS Attribute +3.3 The BGP-LS Attributes 3.3.1 Node Attribute TLVs INTERNET-DRAFT BGP LS For TRILL 3.3.1.1 Node Flag Bits TLV - A new Node Flag bit is added 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 - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Type | Length | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - |O|T|E|B|G| Reserved | - +-+-+-+-+-+-+-+-+-+-+-+ - - Figure 5: Node Flag Bits TLV format - - The new bit and remaining reserved bits are defined as follows: - - +----------+----------------------------+-----------+ - | Bit | Description | Reference | - +----------+----------------------------+-----------+ - | 'G' | Layer 3 Gateway Bit | [RFC7176] | - | Reserved | Reserved for future use | | - +----------+----------------------------+-----------+ - - Table 5: Node Flag Bits Definitions + A new Node Flag bit TBD4 is added to the Node Flag Bits TLV. This + flag indicates that the node is a distributed Layer 3 gateway + [RFC7956]. 3.3.1.2 Opaque Node Attribute TLV The Opaque Node Attribute TLV is used as the envelope to - transparently carry TRILL specific information. In [RFC7176], there - are the following Sub-TLVs in the Router Capability and MT- - Capability TLVs and the Group Address (GADDR) TLV that need to be - carried. Future possible TRILL TLVs/Sub-TLVs extension also can be - carried using the Opaque Node Attribute TLV. - -INTERNET-DRAFT BGP LS For TRILL - - Descriptions IS-IS TLV/Sub-TLV - ------------------------------------ - TRILL-VER 22/13 - NICKNAME 22/6 - TREES 22/7 - TREE-RT-IDs 22/8 - TREE-USE-IDs 22/9 - INT-VLAN 22/10 - VLAN-GROUP 22/14 - INT-LABEL 22/15 - RBCHANNELS 22/16 - AFFINITY 22/17 - LABEL-GROUP 22/18 - GMAC-ADDR 142/1 - GIP-ADDR 142/2 - GIPV6-ADDR 142/3 - GLMAC-ADDR 142/4 - GLIP-ADDR 142/5 - GLIPV6-ADDR 142/6 - - Table 6: TRILL TLVs/Sub-TLVs + transparently carry TRILL specific information. In most cases, this + information is encoded as sub-TLVs within the IS-IS Router Capability + and MT-Capability TLVs or as the Group Address (GADDR) TLV. Many of + these are specified in [RFC7176] but additional sub-TLVs have been + specified and may be specified in the future that also can be carried + using the Opaque Node Attribute TLV. 3.3.2. Link Attribute TLVs Link attribute TLVs are TLVs that may be encoded in the BGP-LS attribute with a link NLRI. Besides the TLVs that has been defined in [RFC7752] section 3.3.2 Table 9, the following 'Link Attribute' TLV is provided for TRILL. - +-----------+----------------+--------------+------------------+ + +----------+--------------+------------+-----------------------+ | TLV Code | Description | IS-IS TLV | Defined in: | | Point | | /Sub-TLV | | - +-----------+----------------+--------------+------------------+ - | TBD | Link MTU | 22/28 | [RFC7176]/2.4 | - +-----------+----------------+--------------+------------------+ + +----------+--------------+------------+-----------------------+ + | TBD3 | Link MTU | 22/28 | [RFC7176] Section 2.4 | + +----------+--------------+------------+-----------------------+ Table 7: Link Attribute TLVs INTERNET-DRAFT BGP LS For TRILL 4. Operational Considerations - This document does not require any MIB or Yang model to configure + This document does not require any MIB or YANG model to configure operational parameters. - Any implementation of the protocol in this specification (i.e. that - distributes TRILL Link-State information using BGP), MUST do the - malformed attribute checks below, and if it detects a malformed - attribute, it should use the 'Attribute Discard' action per [I- - D.ietf.idr-error-handling] section 2. + Any implementation of this specification (i.e. that distributes TRILL + Link-State information using BGP), MUST do the malformed attribute + checks below, and if it detects a malformed attribute, it should use + the 'Attribute Discard' action per [I-D.ietf.idr-error-handling] + section 2. An implementation MUST perform the following expanded BGP-LS syntactic check for determining if the message is malformed: o Does the sum of all TLVs found in the BGP LS attribute correspond to the BGP LS path attribute length ? o Does the sum of all TLVs found in the BGP MP_REACH_NLRI attribute correspond to the BGP MP_REACH_NLRI length ? o Does the sum of all TLVs found in the BGP MP_UNREACH_NLRI attribute correspond to the BGP MP_UNREACH_NLRI length ? o Does the sum of all TLVs found in a Node-, Link, prefix (IPv4 or IPv6) NLRI attribute correspond to the Node-, Link- or Prefix Descriptors 'Total NLRI Length' field ? - o Does any fixed length TLV correspond to the TLV Length field in + o Does every fixed length TLV correspond to the TLV Length field in this document ? o Does the sum of MAC reachability TLVs equal the length of the field? In addition, the following checks need to be made for the fields specific to the BGP LS for TRILL: PROTOCOL ID is TRILL - NLRI types are valid per Table 2 + NLRI types are valid MAC Reachability NLRI has correct format including: o Identifier (64 bits), o local node descriptor with AREA address TLV has the form found in Figure 2 - opaque TLV support the range of ISIS-TLV/SUB-TLV shown in Table - 3, and link TLVs support the range in Figure 8. - INTERNET-DRAFT BGP LS For TRILL 5. Security Considerations Procedures and protocol extensions defined in this document do not affect the BGP security model. See [RFC6952] for details. 6. IANA Considerations For all of the following assignments, [this document] is the reference. - IANA is requested to assign one Protocol-ID for "TRILL" from the BGP- - LS registry of Protocol-IDs. + IANA is requested to assign one Protocol-ID TBD1 for "TRILL" from the + BGP-LS registry of Protocol-IDs. - IANA is requested to assign one NLRI Type for "MAC Reachability" from - the BGP-LS registry of NLRI Types. + IANA is requested to assign one NLRI Type TBD2 for "MAC Reachability" + from the BGP-LS registry of NLRI Types. - IANA is requested to assign one Node Flag bit for "Layer 3 Gateway" - from the BGP-LS registry of BGP-LS Attribute TLVs. + IANA is requested to assign one new TLV type TBD3 for "Link MTU" from + the BGP-LS registry of BGP-LS Attribute TLVs. - IANA is requested to assign one new TLV type for "Link MTU" from the - BGP-LS registry of BGP-LS Attribute TLVs. + IANA is requested to create a registry for BGP-LS Node Descriptor + Flag Bits and to assign one Node Flag bit TBF4 [bit 6 suggested] for + "Layer 3 Gateway". This new registry is to be added to the IANA + Border Gateway Protocol - Link State (BGP-LS) Parameters web page as + follows: + + Name: BGP-LS Node Descriptor Flag Bits + Registration Procedure: Expert Review + Reference: [RFC7752] + Note: These bits are in the payload of the Node Flag Bits TLV. + The bit array is variable length so the maximum bit value + assignable is very large; however, length of the TLV grows + linearly with the highest numbered flag bit used and there + may be practical limits on the length of the TLV. + + Bit Letter Description Reference + ---- ------ -------------- ------------ + 0 O Overload Bit [ISO10589] + 1 T Attached Bit [ISO10589] + 2 E External Bit [RFC2328] + 3 B ABR Bit [RFC2328] + 4 R Router Bit [RFC5340] + 5 V V6 Bit [RFC5340] + 6 G L3 Gateway Bit [this document][RFC7956] + 7-up - Unassigned INTERNET-DRAFT BGP LS For TRILL Normative References [I-D.ietf.idr-error-handling] - Enke, C., John, S., Pradosh, M., Keyur,P., "Revised Error Handling for BGP UPDATE Messages", draft-ietf-idr-error-handling-19(work in progress), April 2015. [IS-IS] - International Organization for Standardization, @@ -491,21 +443,22 @@ System intra-domain routeing information exchange protocol for use in conjunction with the protocol for providing the connectionless-mode network service (ISO 8473)", ISO/IEC 10589:2002, Second Edition, November 2002. [RFC2119] - Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC6325] - Perlman, R., Eastlake 3rd, D., Dutt, D., Gai, S.,and A. Ghanwani, "Routing Bridges (RBridges): Base Protocol - Specification", RFC 6325, July 2011. + Specification", RFC 6325, DOI 10.17487/RFC6325, July 2011, + . [RFC7172] - Eastlake 3rd, D., Zhang, M., Agarwal, P., Perlman, R., and D. Dutt, "Transparent Interconnection of Lots of Links (TRILL): Fine-Grained Labeling", RFC 7172, DOI 10.17487/RFC7172, May 2014, . [RFC7176] - Eastlake, D., Senevirathne, T., Ghanwani, A., Dutt, D., Banerjee, A.," Transparent Interconnection of Lots of Links (TRILL) Use of IS-IS", May 2014. @@ -515,39 +468,54 @@ End Station Address Distribution Information (ESADI) Protocol", RFC 7357, September 2014, . [RFC7752] - Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and S. Ray, "North-Bound Distribution of Link-State and Traffic Engineering (TE) Information Using BGP", RFC 7752, DOI 10.17487/RFC7752, March 2016, . + [RFC7956] - Hao, W., Li, Y., Qu, A., Durrani, M., and P. Sivamurugan, + "Transparent Interconnection of Lots of Links (TRILL) + Distributed Layer 3 Gateway", RFC 7956, DOI 10.17487/RFC7956, + September 2016, . + +INTERNET-DRAFT BGP LS For TRILL + Informative References + [ISO10589] - SO, "Intermediate System to Intermediate System intra- + domain routeing information exchange protocol for use in + conjunction with the protocol for providing the connectionless- + mode network service (ISO 8473)", International Standard + 10589:2002, Second Edition, 2002. + + [RFC2328] - Moy, J., "OSPF Version 2", STD 54, RFC 2328, DOI + 10.17487/RFC2328, April 1998, . + + [RFC5340] - Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF + for IPv6", RFC 5340, DOI 10.17487/RFC5340, July 2008, + . + [RFC6952] - Jethanandani, M., Patel, K., and L. Zheng, "Analysis of BGP, LDP, PCEP, and MSDP Issues According to the Keying and Authentication for Routing Protocols (KARP) Design Guide", RFC - -INTERNET-DRAFT BGP LS For TRILL - 6952, DOI 10.17487/RFC6952, May 2013, Acknowledgments - Authors like to thank Ross Callon, Andrew Qu, Jie Dong, Mingui Zhang, - Qin Wu, Shunwan Zhuang, Zitao Wang, Lili Wang for their valuable - inputs. - - The document was prepared in raw nroff. All macros used were defined - within the source file. + Authors thank Susan Hares, John Scudder, Ross Callon, Andrew Qu, Jie + Dong, Mingui Zhang, Qin Wu, Shunwan Zhuang, Zitao Wang, Lili Wang for + their valuable inputs. INTERNET-DRAFT BGP LS For TRILL Authors' Addresses Weiguo Hao Huawei Technologies 101 Software Avenue, Nanjing 210012 China @@ -556,50 +524,43 @@ Email: haoweiguo@huawei.com Donald E. Eastlake Huawei Technologies 155 Beaver Street Milford, MA 01757 USA Phone: +1-508-333-2270 Email: d3e3e3@gmail.com - Susan K. Hares - Hickory Hill Consulting - 7453 Hickory Hill - Saline, MI 48176 USA + Yizhou Li + Huawei Technologies + 101 Software Avenue, + Nanjing 210012, China - Email: shares@ndzh.com + Phone: +86-25-56625375 + Email: liyizhou@huawei.com Sujay Gupta IP Infusion Email: sujay.gupta@ipinfusion.com Muhammad Durrani - Cisco - Phone: +1-408-527-6921 - Email: mdurrani@cisco.com - - Yizhou Li - Huawei Technologies - 101 Software Avenue, - Nanjing 210012, China + Equinix - Phone: +86-25-56625375 - Email: liyizhou@huawei.com + Email: mdurrani@equinix.com INTERNET-DRAFT BGP LS For TRILL Copyright, Disclaimer, and Additional IPR Provisions - Copyright (c) 2017 IETF Trust and the persons identified as the + Copyright (c) 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 (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as