idnits 2.17.1 draft-peng-lsr-flex-algo-l2bundles-04.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (October 15, 2020) is 1290 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Outdated reference: A later version (-26) exists of draft-ietf-lsr-flex-algo-12 Summary: 0 errors (**), 0 flaws (~~), 2 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 L P. Shaofu 3 Internet-Draft C. Ran 4 Intended status: Standards Track ZTE Corporation 5 Expires: April 18, 2021 G. Mirsky 6 ZTE Corp. 7 October 15, 2020 9 IGP Flexible Algorithm with L2bundles 10 draft-peng-lsr-flex-algo-l2bundles-04 12 Abstract 14 IGP Flex Algorithm proposes a solution that allows IGPs themselves to 15 compute constraint based paths over the network, and it also 16 specifies a way of using Segment Routing (SR) Prefix-SIDs and SRv6 17 locators to steer packets along the constraint-based paths. This 18 document describes how to create Flex-algo plane with L2bundles 19 scenario. 21 Status of This Memo 23 This Internet-Draft is submitted in full conformance with the 24 provisions of BCP 78 and BCP 79. 26 Internet-Drafts are working documents of the Internet Engineering 27 Task Force (IETF). Note that other groups may also distribute 28 working documents as Internet-Drafts. The list of current Internet- 29 Drafts is at https://datatracker.ietf.org/drafts/current/. 31 Internet-Drafts are draft documents valid for a maximum of six months 32 and may be updated, replaced, or obsoleted by other documents at any 33 time. It is inappropriate to use Internet-Drafts as reference 34 material or to cite them other than as "work in progress." 36 This Internet-Draft will expire on April 18, 2021. 38 Copyright Notice 40 Copyright (c) 2020 IETF Trust and the persons identified as the 41 document authors. All rights reserved. 43 This document is subject to BCP 78 and the IETF Trust's Legal 44 Provisions Relating to IETF Documents 45 (https://trustee.ietf.org/license-info) in effect on the date of 46 publication of this document. Please review these documents 47 carefully, as they describe your rights and restrictions with respect 48 to this document. Code Components extracted from this document must 49 include Simplified BSD License text as described in Section 4.e of 50 the Trust Legal Provisions and are provided without warranty as 51 described in the Simplified BSD License. 53 Table of Contents 55 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 56 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3 57 3. Color set on L2 Bundle Member . . . . . . . . . . . . . . . . 3 58 4. Flex-algo plane with L2 link resource . . . . . . . . . . . . 3 59 4.1. Best-effort . . . . . . . . . . . . . . . . . . . . . . . 3 60 4.2. Traffic Engineering . . . . . . . . . . . . . . . . . . . 4 61 5. Flex-algo L2bundles Use-cases . . . . . . . . . . . . . . . . 5 62 5.1. Flex-algo L2bundles Examples . . . . . . . . . . . . . . 5 63 6. IGP L2 Bundle Member Extensions . . . . . . . . . . . . . . . 6 64 6.1. ISIS L2 Bundle Member EAG advertisement . . . . . . . . . 6 65 6.2. OSPF L2 Bundle Member EAG advertisement . . . . . . . . . 6 66 6.3. FAD Flags Extensions . . . . . . . . . . . . . . . . . . 6 67 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 68 8. Security Considerations . . . . . . . . . . . . . . . . . . . 7 69 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 7 70 10. Normative References . . . . . . . . . . . . . . . . . . . . 7 71 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8 73 1. Introduction 75 IGP Flex Algorithm [I-D.ietf-lsr-flex-algo] proposes a solution that 76 allows IGPs themselves to compute constraint based paths over the 77 network, and it also specifies a way of using Segment Routing 78 [RFC8402] Prefix-SIDs and SRv6 locators to steer packets along the 79 constraint-based paths. It specifies a set of extensions to ISIS, 80 OSPFv2 and OSPFv3 that enable a router to send TLVs that identify (a) 81 calculation-type, (b) specify a metric-type, and (c )describe a set 82 of constraints on the topology, that are to be used to compute the 83 best paths along the constrained topology. A given combination of 84 calculation-type, metric-type, and constraints is known as an FAD 85 (Flexible Algorithm Definition). 87 [RFC8668] and [I-D.ketant-lsr-ospf-l2bundles] introduces the ability 88 for IS-IS and OSPF respectively to advertise the link attributes of 89 Layer 2 (L2) Bundle Members. Especially, the link attribute 90 "Administrative Group" and "Extended Administrative Group" could be 91 individual to each L2 Bundle Member for purpose of Flex-algo plane 92 construction, where multiple Flex-algo planes share the same Layer 3 93 parent interface and each Flex-algo plane has dedicated L2 Bundle 94 Member. 96 This document describes how to create Flex-algo plane with L2bundles 97 scenario. 99 2. Requirements Language 101 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 102 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 103 "OPTIONAL" in this document are to be interpreted as described in BCP 104 14 [RFC2119] [RFC8174] when, and only when, they appear in all 105 capitals, as shown here. 107 3. Color set on L2 Bundle Member 109 Traffic Engineering affinity (also termed as Color) is often to be 110 set on the Layer 3 interface and be flooded by IGP-TE. However, when 111 the Layer 3 interface is a Layer 2 interface bundle, operators can 112 config individual color for each L2 Bundle Member. So that IGP link- 113 state database will contain the TE affinity attribute of L2 Bundle 114 Member, as well as Layer 3 parrent interface. 116 Note that Layer 3 interface can join to IGP instance explicitly, but 117 L2 Bundle Member not. 119 The TE affinity of the Layer 3 parrent interface can be a combined 120 value of all L2 Bundle Members. For example, if the Layer 3 parrent 121 interface contains three L2 Bundle Members, each with color "RED", 122 "GREEN", "BLUE" respectively, the Layer 3 parrent interface will have 123 color "RED|GREEN|BLUE". 125 4. Flex-algo plane with L2 link resource 127 4.1. Best-effort 129 [I-D.ietf-lsr-flex-algo] defines the color-based link resource 130 selection rules in FAD to construct the expected Flex-algo plane. 131 Each node in the Flex-algo plane will maintain the best path to other 132 destination nodes. In the case of L2bundles scenario, each node need 133 check the outgoing Layer 2 bundle interface, to see which L2 Bundle 134 Member does exactly belong to the Flex-algo plane. 136 For the node who originate the l2-bundle interface, the forwarding 137 information of the FIB entry with outgoing Layer 2 bundle interface 138 will exactly select the L2 Bundle Member that belongs to the Flex- 139 algo plane to forward packets. 141 For example, three Flex-algo plane share the same Layer 3 parrent 142 interface including three L2 Bundle Members each with color "RED", 143 "GREEN", "BLUE" respectively, and each Flex-algo plane with link 144 selection rule "Include-Any RED", "Include-Any GREEN", "Include-Any 145 BLUE" respectively, Flex-algo SHOULD NOT simply select the Layer 3 146 parrent interface for all Flex-algo plane, but need continue to 147 select individual L2 Bundle Member for each specific Flex-algo plane. 148 As a reslut, the FIB entry within Flex-algo RED plane will exactly 149 choose the L2 Bundle Members with color "RED" to forward packets, the 150 FIB entry within Flex-algo GREEN plane will exactly choose the L2 151 Bundle Members with color "GREEN" to forward packets, and the FIB 152 entry within Flex-algo BLUE plane will exactly choose the L2 Bundle 153 Members with color "BLUE" to forward packets. 155 The above processing is a local optimization for each node who 156 originate l2-bundle interface. 158 In addition, for a remote node which received l2-bundle advertisement 159 originated from other nodes, if that l2-bundle is in the flex-algo 160 based path to a destination node, it must confirm which L2 Bundle 161 Member belongs to the flex-algo plane and check that L2 Bundle Member 162 really meets the constraints defined in the related FAD. This 163 processing is necessary when Flex-algo is used to optimize SID stack 164 depth for an SR-TE policy, e.g, the SR-TE policy defines TE affinity 165 to select individual L2 Bundle Member and the SID list may contain 166 Adjacency-SID for a specific L2 Bundle Member as described in 167 [RFC8668] and [I-D.ketant-lsr-ospf-l2bundles]. Thus the flex-algo 168 based path must be consistent with the original path of the optimized 169 SR-TE policy, i.e, within the flex-algo plane when each node 170 determine its next-hop towards a destination, the determination must 171 be based on the above confirmation and check of L2 Bundle Members. 173 4.2. Traffic Engineering 175 A segment list contains SIDs advertised specifically for the given 176 algorithm is possible, such as an inter-domain path contains multiple 177 Flex-algo domains, a TI-LFA backup path within the Flex-algo plane, 178 or an optimized TE path avoiding congested link within the Flex-algo 179 plane. When the headend or controller compute these SR-TE paths 180 within the specific flex-algo plane, in addition to the algorithm 181 based Prefix-SID towards the loose node, an Adjacency-SID can also be 182 used to strictly steer the packets along the expected L3 link. 183 However, if the L3 link is a l2-bundle interface, it is necessary to 184 see which L2 Bundle Member exactly belongs to the specific Flex-algo 185 plane and use the Adjacency-SID for that member. 187 [RFC8668] and [I-D.ketant-lsr-ospf-l2bundles] have defined Adjacency- 188 SID for each L2 Bundle Member, that can be used to isolate flows 189 among multiple Flex-algo planes, when these Flex-algo planes share 190 the same Layer 3 parrent interface. A specific Adjacency-SID for a 191 specific L2 Bundle Member can be contained in the SID list of the SR 192 path within the flex-algo plane and steer the packets to that member. 194 5. Flex-algo L2bundles Use-cases 196 In some operator's networks, a large number of bundled links are 197 deployed to improve the bandwidth. However, for a specific l2bundle, 198 each member has different capabilities, such as different delay, 199 bandwidth, AG/EAG, etc. When the path of an SR policy needs to go 200 through an Layer 2 interface bundle, operators want to choose the 201 individual member link to meet business requirements. Different SR 202 policy may choose different member links, according to different set 203 of constraints. 205 When Flex algorithm is enabled in the above networks, even all flex- 206 algo planes share all Layer 2 interface bundles, i.e, all FA planes 207 have the same structure, an important requirement to Flex-algo is 208 that the constraint based computation of Flex-algo must consider how 209 to select member links to meet service's criterias. In addition, 210 different flex-algo planes can also have different structures, with 211 different set of nodes and links, to meet more strict business 212 requirements. 214 The extended behavior of flex-algo introduced in this document can 215 meet the above requirement, and exactly it is independent with the 216 structure of flex-algo plane. 218 5.1. Flex-algo L2bundles Examples 220 Let's describe the requirement with the following example. 222 S======A=====B======C=====D 223 \ / 224 \___________E__________/ 226 Figure 1: Flex-algo L2bundles Example 228 An SR policy from headend S to endpoint D is created, with color 229 template {min delay}. Suppose the macthed link is the upper member 230 link of l2bundles interface between S-A, A-B, B-C, C-D. All of them 231 have delay 10ms. So that the computed segment list would be . 235 Suppose the delay of the lower member link of l2bundles interface 236 between S-A, A-B, B-C, C-D are all 100ms. That means the delay of 237 the bundles L3 interface between S-A, A-B, B-C, C-D are all 100ms 238 (i.e, subject to the member who have the largest delay). Also 239 suppose the delay of the L3 link between S-E, E-D are all 50ms. 241 If flex-algo (eg, algorithm 128) is enabled in the above network to 242 optimize the stack depth of the above SR polcy, the related FAD would 243 also be {min delay}. However, if all nodes in the network only see L3 244 interface resouce, then at node S the computed result to destination 245 D would be next-hop E, and at node E the computed result to 246 destination D would be next-hop D. Obviously, after stack 247 optimization the flex-algo path S-E-D is not consistent with the 248 original path (S-A-B-C-D) of SR policy. 250 Thus it will be benefit for flex-algo to see L2 member link during 251 CSPF computation. And, each node in the network, instead of only 252 headend, must perform the same behavior to check L2 member link 253 resouce, otherwise there may be a loop. 255 6. IGP L2 Bundle Member Extensions 257 6.1. ISIS L2 Bundle Member EAG advertisement 259 [RFC8668] defined TLV-25 for ISIS to advertise the link attributes of 260 L2 Bundle Members, and mentioned that the traditional "Administrative 261 group (color) Sub-TLV" and "Extended Administrative Group Sub-TLV" 262 may appear in TLV-25 and MAY be shared by multiple L2 Bundle Members. 263 If we want to advertise unique EAG values for each bundle member, we 264 can use multiple L2 Bundle Attribute Descriptors with each specify a 265 single bundle member. So it is sufficient to construct Flex-algo 266 plane to select L2 link resource. 268 6.2. OSPF L2 Bundle Member EAG advertisement 270 [I-D.ketant-lsr-ospf-l2bundles] defined "L2 Bundle Member Attributes 271 sub-TLV" for OSPF/OSPFv3 to advertise the link attributes of L2 272 Bundle Members, and mentioned that the traditional "Administrative 273 group (color) Sub-TLV" and "Extended Administrative Group Sub-TLV" 274 are applicable in "L2 Bundle Member Attributes sub-TLV". Because 275 there is "L2 Bundle Member Attributes sub-TLV" per L2 Bundle Member, 276 it is also sufficient to construct Flex-algo plane to select L2 link 277 resource. 279 6.3. FAD Flags Extensions 281 A new flag (L-flag) is introduced to both ISIS Flexible Algorithm 282 Definition Flags Sub-TLV and OSPF Flexible Algorithm Definition Flags 283 Sub-TLV (defined in [I-D.ietf-lsr-flex-algo]), to let each node to 284 check L2 member link resouce of interface bundle during flex- 285 algorithm path calculation. 287 0 1 2 3 4 5 6 7... 288 +-+-+-+-+-+-+-+-+... 289 |M|L| | ... 290 +-+-+-+-+-+-+-+-+... 292 Figure 2 294 where: 296 L-flag: introduced by this document. When set, the traffic 297 engineering resouce or attributes of L2 member link of interface 298 bundle MUST be checked and used during flex-algorithm path 299 calculation. 301 7. IANA Considerations 303 This document need not define new sub-TLV to IGP for Flex-algo 304 combined with l2bundles. 306 8. Security Considerations 308 There are no new security issues introduced by the extensions in this 309 document. 311 9. Acknowledgements 313 TBD 315 10. Normative References 317 [I-D.ietf-lsr-flex-algo] 318 Psenak, P., Hegde, S., Filsfils, C., Talaulikar, K., and 319 A. Gulko, "IGP Flexible Algorithm", draft-ietf-lsr-flex- 320 algo-12 (work in progress), October 2020. 322 [I-D.ketant-lsr-ospf-l2bundles] 323 Talaulikar, K. and P. Psenak, "Advertising L2 Bundle 324 Member Link Attributes in OSPF", draft-ketant-lsr-ospf- 325 l2bundles-02 (work in progress), June 2020. 327 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 328 Requirement Levels", BCP 14, RFC 2119, 329 DOI 10.17487/RFC2119, March 1997, 330 . 332 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 333 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 334 May 2017, . 336 [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., 337 Decraene, B., Litkowski, S., and R. Shakir, "Segment 338 Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, 339 July 2018, . 341 [RFC8668] Ginsberg, L., Ed., Bashandy, A., Filsfils, C., Nanduri, 342 M., and E. Aries, "Advertising Layer 2 Bundle Member Link 343 Attributes in IS-IS", RFC 8668, DOI 10.17487/RFC8668, 344 December 2019, . 346 Authors' Addresses 348 Peng Shaofu 349 ZTE Corporation 350 No.68 Zijinghua Road, Yuhuatai District 351 Nanjing 352 China 354 Email: peng.shaofu@zte.com.cn 356 Chen Ran 357 ZTE Corporation 358 No.50 Software Avenue, Yuhuatai District 359 Nanjing 360 China 362 Email: chen.ran@zte.com.cn 364 Greg Mirsky 365 ZTE Corp. 367 Email: gregimirsky@gmail.com