idnits 2.17.1 draft-acee-lsr-ospfv3-sr-yang-01.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 doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (February 5, 2020) is 1541 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Unused Reference: 'RFC8022' is defined on line 1202, but no explicit reference was found in the text == Unused Reference: 'RFC8349' is defined on line 1210, but no explicit reference was found in the text ** Obsolete normative reference: RFC 5246 (Obsoleted by RFC 8446) ** Obsolete normative reference: RFC 6536 (Obsoleted by RFC 8341) ** Obsolete normative reference: RFC 8022 (Obsoleted by RFC 8349) == Outdated reference: A later version (-30) exists of draft-ietf-ospf-sr-yang-10 Summary: 3 errors (**), 0 flaws (~~), 5 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Internet A. Lindem 3 Internet-Draft Cisco Systems 4 Intended status: Informational Y. Qu 5 Expires: August 8, 2020 Futurewei 6 February 5, 2020 8 YANG Data Model for OSPFv3 Segment Routing 9 draft-acee-lsr-ospfv3-sr-yang-01 11 Abstract 13 This document defines a YANG data module augmenting the IETF OSPF 14 Segment Routing (SR) YANG model to support OSPFv3 extensions for SR. 15 It can be used to configure and manage OSPFv3 Segment Routing in MPLS 16 dataplane. 18 Status of This Memo 20 This Internet-Draft is submitted in full conformance with the 21 provisions of BCP 78 and BCP 79. 23 Internet-Drafts are working documents of the Internet Engineering 24 Task Force (IETF). Note that other groups may also distribute 25 working documents as Internet-Drafts. The list of current Internet- 26 Drafts is at https://datatracker.ietf.org/drafts/current/. 28 Internet-Drafts are draft documents valid for a maximum of six months 29 and may be updated, replaced, or obsoleted by other documents at any 30 time. It is inappropriate to use Internet-Drafts as reference 31 material or to cite them other than as "work in progress." 33 This Internet-Draft will expire on August 8, 2020. 35 Copyright Notice 37 Copyright (c) 2020 IETF Trust and the persons identified as the 38 document authors. All rights reserved. 40 This document is subject to BCP 78 and the IETF Trust's Legal 41 Provisions Relating to IETF Documents 42 (https://trustee.ietf.org/license-info) in effect on the date of 43 publication of this document. Please review these documents 44 carefully, as they describe your rights and restrictions with respect 45 to this document. Code Components extracted from this document must 46 include Simplified BSD License text as described in Section 4.e of 47 the Trust Legal Provisions and are provided without warranty as 48 described in the Simplified BSD License. 50 Table of Contents 52 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2 53 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2 54 2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . . . 2 55 3. OSPFv3 Extensions for Segment Routing . . . . . . . . . . . . 2 56 4. Security Considerations . . . . . . . . . . . . . . . . . . . 24 57 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24 58 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 25 59 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 25 60 7.1. Normative References . . . . . . . . . . . . . . . . . . 25 61 7.2. Informative References . . . . . . . . . . . . . . . . . 26 62 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26 64 1. Overview 66 YANG [RFC6020] [RFC7950] is a data definition language used to define 67 the contents of a conceptual data store that allows networked devices 68 to be managed using NETCONF [RFC6241]. YANG is proving relevant 69 beyond its initial confines, as bindings to other interfaces (e.g., 70 ReST) and encodings other than XML (e.g., JSON) are being defined. 71 Furthermore, YANG data models can be used as the basis for 72 implementation of other interfaces, such as CLI and programmatic 73 APIs. 75 This document defines a YANG data module augmenting the IETF OSPF SR 76 YANG model [I-D.ietf-ospf-sr-yang], and can be used to configure and 77 manage OSPFv3 extensions for Segment Routing [RFC8666]. 79 The augmentation defined in this document requires support for both 80 the OSPF SR model and the OSPF base model[I-D.ietf-ospf-yang]. 82 1.1. Requirements Language 84 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 85 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 86 document are to be interpreted as described in [RFC2119]. 88 2. Tree Diagrams 90 This document uses the graphical representation of data models 91 defined in [RFC8340]. 93 3. OSPFv3 Extensions for Segment Routing 95 This document defines a YANG module for OSPFv3 extensions for Segment 96 Routing [RFC8666]. It is an augmentation of the OSPF SR base model. 98 module: ietf-ospfv3-sr 99 augment /rt:routing/rt:control-plane-protocols 100 /rt:control-plane-protocol/ospf:ospf/ospf:database 101 /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa 102 /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body 103 /ospf:router-information: 104 +--ro sr-algorithm-tlv 105 | +--ro sr-algorithm* uint8 106 +--ro sid-range-tlvs 107 | +--ro sid-range-tlv* 108 | +--ro range-size? uint24 109 | +--ro sid-sub-tlv 110 | +--ro sid? uint32 111 +--ro local-block-tlvs 112 | +--ro local-block-tlv* 113 | +--ro range-size? uint24 114 | +--ro sid-sub-tlv 115 | +--ro sid? uint32 116 +--ro srms-preference-tlv 117 +--ro preference? uint8 118 augment /rt:routing/rt:control-plane-protocols 119 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 120 /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas 121 /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 122 /ospf:body/ospf:router-information: 123 +--ro sr-algorithm-tlv 124 | +--ro sr-algorithm* uint8 125 +--ro sid-range-tlvs 126 | +--ro sid-range-tlv* 127 | +--ro range-size? uint24 128 | +--ro sid-sub-tlv 129 | +--ro sid? uint32 130 +--ro local-block-tlvs 131 | +--ro local-block-tlv* 132 | +--ro range-size? uint24 133 | +--ro sid-sub-tlv 134 | +--ro sid? uint32 135 +--ro srms-preference-tlv 136 +--ro preference? uint8 137 augment /rt:routing/rt:control-plane-protocols 138 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 139 /ospf:interfaces/ospf:interface/ospf:database 140 /ospf:link-scope-lsa-type/ospf:link-scope-lsas 141 /ospf:link-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 142 /ospf:body/ospf:router-information: 143 +--ro sr-algorithm-tlv 144 | +--ro sr-algorithm* uint8 145 +--ro sid-range-tlvs 146 | +--ro sid-range-tlv* 147 | +--ro range-size? uint24 148 | +--ro sid-sub-tlv 149 | +--ro sid? uint32 150 +--ro local-block-tlvs 151 | +--ro local-block-tlv* 152 | +--ro range-size? uint24 153 | +--ro sid-sub-tlv 154 | +--ro sid? uint32 155 +--ro srms-preference-tlv 156 +--ro preference? uint8 157 augment /rt:routing/rt:control-plane-protocols 158 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 159 /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas 160 /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 161 /ospf:body/ospfv3-e-lsa:e-intra-area-prefix: 162 +--ro ospfv3-extended-prefix-range-tlvs 163 +--ro extended-prefix-range-tlv* 164 +--ro prefix-length? uint8 165 +--ro af? uint8 166 +--ro range-size? uint16 167 +--ro prefix? inet:ip-prefix 168 +--ro perfix-sid-sub-tlvs 169 | +--ro prefix-sid-sub-tlv* 170 | +--ro ospfv3-prefix-sid-flags 171 | | +--ro bits* identityref 172 | +--ro algorithm? uint8 173 | +--ro sid? uint32 174 +--ro unknown-tlvs 175 +--ro unknown-tlv* 176 +--ro type? uint16 177 +--ro length? uint16 178 +--ro value? yang:hex-string 179 augment /rt:routing/rt:control-plane-protocols 180 /rt:control-plane-protocol/ospf:ospf/ospf:database 181 /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa 182 /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body 183 /ospfv3-e-lsa:e-intra-area-prefix: 184 +--ro ospfv3-extended-prefix-range-tlvs 185 +--ro extended-prefix-range-tlv* 186 +--ro prefix-length? uint8 187 +--ro af? uint8 188 +--ro range-size? uint16 189 +--ro prefix? inet:ip-prefix 190 +--ro perfix-sid-sub-tlvs 191 | +--ro prefix-sid-sub-tlv* 192 | +--ro ospfv3-prefix-sid-flags 193 | | +--ro bits* identityref 194 | +--ro algorithm? uint8 195 | +--ro sid? uint32 196 +--ro unknown-tlvs 197 +--ro unknown-tlv* 198 +--ro type? uint16 199 +--ro length? uint16 200 +--ro value? yang:hex-string 201 augment /rt:routing/rt:control-plane-protocols 202 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 203 /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas 204 /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 205 /ospf:body/ospfv3-e-lsa:e-inter-area-prefix: 206 +--ro ospfv3-extended-prefix-range-tlvs 207 +--ro extended-prefix-range-tlv* 208 +--ro prefix-length? uint8 209 +--ro af? uint8 210 +--ro range-size? uint16 211 +--ro prefix? inet:ip-prefix 212 +--ro perfix-sid-sub-tlvs 213 | +--ro prefix-sid-sub-tlv* 214 | +--ro ospfv3-prefix-sid-flags 215 | | +--ro bits* identityref 216 | +--ro algorithm? uint8 217 | +--ro sid? uint32 218 +--ro unknown-tlvs 219 +--ro unknown-tlv* 220 +--ro type? uint16 221 +--ro length? uint16 222 +--ro value? yang:hex-string 223 augment /rt:routing/rt:control-plane-protocols 224 /rt:control-plane-protocol/ospf:ospf/ospf:database 225 /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa 226 /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body 227 /ospfv3-e-lsa:e-inter-area-prefix: 228 +--ro ospfv3-extended-prefix-range-tlvs 229 +--ro extended-prefix-range-tlv* 230 +--ro prefix-length? uint8 231 +--ro af? uint8 232 +--ro range-size? uint16 233 +--ro prefix? inet:ip-prefix 234 +--ro perfix-sid-sub-tlvs 235 | +--ro prefix-sid-sub-tlv* 236 | +--ro ospfv3-prefix-sid-flags 237 | | +--ro bits* identityref 238 | +--ro algorithm? uint8 239 | +--ro sid? uint32 240 +--ro unknown-tlvs 241 +--ro unknown-tlv* 242 +--ro type? uint16 243 +--ro length? uint16 244 +--ro value? yang:hex-string 245 augment /rt:routing/rt:control-plane-protocols 246 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 247 /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas 248 /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 249 /ospf:body/ospfv3-e-lsa:e-as-external: 250 +--ro ospfv3-extended-prefix-range-tlvs 251 +--ro extended-prefix-range-tlv* 252 +--ro prefix-length? uint8 253 +--ro af? uint8 254 +--ro range-size? uint16 255 +--ro prefix? inet:ip-prefix 256 +--ro perfix-sid-sub-tlvs 257 | +--ro prefix-sid-sub-tlv* 258 | +--ro ospfv3-prefix-sid-flags 259 | | +--ro bits* identityref 260 | +--ro algorithm? uint8 261 | +--ro sid? uint32 262 +--ro unknown-tlvs 263 +--ro unknown-tlv* 264 +--ro type? uint16 265 +--ro length? uint16 266 +--ro value? yang:hex-string 267 augment /rt:routing/rt:control-plane-protocols 268 /rt:control-plane-protocol/ospf:ospf/ospf:database 269 /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa 270 /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body 271 /ospfv3-e-lsa:e-as-external: 272 +--ro ospfv3-extended-prefix-range-tlvs 273 +--ro extended-prefix-range-tlv* 274 +--ro prefix-length? uint8 275 +--ro af? uint8 276 +--ro range-size? uint16 277 +--ro prefix? inet:ip-prefix 278 +--ro perfix-sid-sub-tlvs 279 | +--ro prefix-sid-sub-tlv* 280 | +--ro ospfv3-prefix-sid-flags 281 | | +--ro bits* identityref 282 | +--ro algorithm? uint8 283 | +--ro sid? uint32 284 +--ro unknown-tlvs 285 +--ro unknown-tlv* 286 +--ro type? uint16 287 +--ro length? uint16 288 +--ro value? yang:hex-string 289 augment /rt:routing/rt:control-plane-protocols 290 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 291 /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas 292 /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 293 /ospf:body/ospfv3-e-lsa:e-nssa: 294 +--ro ospfv3-extended-prefix-range-tlvs 295 +--ro extended-prefix-range-tlv* 296 +--ro prefix-length? uint8 297 +--ro af? uint8 298 +--ro range-size? uint16 299 +--ro prefix? inet:ip-prefix 300 +--ro perfix-sid-sub-tlvs 301 | +--ro prefix-sid-sub-tlv* 302 | +--ro ospfv3-prefix-sid-flags 303 | | +--ro bits* identityref 304 | +--ro algorithm? uint8 305 | +--ro sid? uint32 306 +--ro unknown-tlvs 307 +--ro unknown-tlv* 308 +--ro type? uint16 309 +--ro length? uint16 310 +--ro value? yang:hex-string 311 augment /rt:routing/rt:control-plane-protocols 312 /rt:control-plane-protocol/ospf:ospf/ospf:database 313 /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa 314 /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body 315 /ospfv3-e-lsa:e-nssa: 316 +--ro ospfv3-extended-prefix-range-tlvs 317 +--ro extended-prefix-range-tlv* 318 +--ro prefix-length? uint8 319 +--ro af? uint8 320 +--ro range-size? uint16 321 +--ro prefix? inet:ip-prefix 322 +--ro perfix-sid-sub-tlvs 323 | +--ro prefix-sid-sub-tlv* 324 | +--ro ospfv3-prefix-sid-flags 325 | | +--ro bits* identityref 326 | +--ro algorithm? uint8 327 | +--ro sid? uint32 328 +--ro unknown-tlvs 329 +--ro unknown-tlv* 330 +--ro type? uint16 331 +--ro length? uint16 332 +--ro value? yang:hex-string 333 augment /rt:routing/rt:control-plane-protocols 334 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 335 /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas 336 /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 337 /ospf:body/ospfv3-e-lsa:e-link/ospfv3-e-lsa:e-link-tlvs 338 /ospfv3-e-lsa:intra-prefix-tlv: 339 +--ro perfix-sid-sub-tlvs 340 +--ro prefix-sid-sub-tlv* 341 +--ro ospfv3-prefix-sid-flags 342 | +--ro bits* identityref 343 +--ro algorithm? uint8 344 +--ro sid? uint32 345 augment /rt:routing/rt:control-plane-protocols 346 /rt:control-plane-protocol/ospf:ospf/ospf:database 347 /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa 348 /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body 349 /ospfv3-e-lsa:e-link/ospfv3-e-lsa:e-link-tlvs 350 /ospfv3-e-lsa:intra-prefix-tlv: 351 +--ro perfix-sid-sub-tlvs 352 +--ro prefix-sid-sub-tlv* 353 +--ro ospfv3-prefix-sid-flags 354 | +--ro bits* identityref 355 +--ro algorithm? uint8 356 +--ro sid? uint32 357 augment /rt:routing/rt:control-plane-protocols 358 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 359 /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas 360 /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 361 /ospf:body/ospfv3-e-lsa:e-intra-area-prefix 362 /ospfv3-e-lsa:e-intra-prefix-tlvs 363 /ospfv3-e-lsa:intra-prefix-tlv: 364 +--ro perfix-sid-sub-tlvs 365 +--ro prefix-sid-sub-tlv* 366 +--ro ospfv3-prefix-sid-flags 367 | +--ro bits* identityref 368 +--ro algorithm? uint8 369 +--ro sid? uint32 370 augment /rt:routing/rt:control-plane-protocols 371 /rt:control-plane-protocol/ospf:ospf/ospf:database 372 /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa 373 /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body 374 /ospfv3-e-lsa:e-intra-area-prefix 375 /ospfv3-e-lsa:e-intra-prefix-tlvs 376 /ospfv3-e-lsa:intra-prefix-tlv: 377 +--ro perfix-sid-sub-tlvs 378 +--ro prefix-sid-sub-tlv* 379 +--ro ospfv3-prefix-sid-flags 380 | +--ro bits* identityref 381 +--ro algorithm? uint8 382 +--ro sid? uint32 383 augment /rt:routing/rt:control-plane-protocols 384 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 385 /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas 386 /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 387 /ospf:body/ospfv3-e-lsa:e-inter-area-prefix 388 /ospfv3-e-lsa:e-inter-prefix-tlvs 389 /ospfv3-e-lsa:inter-prefix-tlv: 390 +--ro perfix-sid-sub-tlvs 391 +--ro prefix-sid-sub-tlv* 392 +--ro ospfv3-prefix-sid-flags 393 | +--ro bits* identityref 394 +--ro algorithm? uint8 395 +--ro sid? uint32 396 augment /rt:routing/rt:control-plane-protocols 397 /rt:control-plane-protocol/ospf:ospf/ospf:database 398 /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa 399 /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body 400 /ospfv3-e-lsa:e-inter-area-prefix 401 /ospfv3-e-lsa:e-inter-prefix-tlvs 402 /ospfv3-e-lsa:inter-prefix-tlv: 403 +--ro perfix-sid-sub-tlvs 404 +--ro prefix-sid-sub-tlv* 405 +--ro ospfv3-prefix-sid-flags 406 | +--ro bits* identityref 407 +--ro algorithm? uint8 408 +--ro sid? uint32 409 augment /rt:routing/rt:control-plane-protocols 410 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 411 /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas 412 /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 413 /ospf:body/ospfv3-e-lsa:e-as-external 414 /ospfv3-e-lsa:e-external-tlvs 415 /ospfv3-e-lsa:external-prefix-tlv: 416 +--ro perfix-sid-sub-tlvs 417 +--ro prefix-sid-sub-tlv* 418 +--ro ospfv3-prefix-sid-flags 419 | +--ro bits* identityref 420 +--ro algorithm? uint8 421 +--ro sid? uint32 422 augment /rt:routing/rt:control-plane-protocols 423 /rt:control-plane-protocol/ospf:ospf/ospf:database 424 /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa 425 /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body 426 /ospfv3-e-lsa:e-as-external/ospfv3-e-lsa:e-external-tlvs 427 /ospfv3-e-lsa:external-prefix-tlv: 428 +--ro perfix-sid-sub-tlvs 429 +--ro prefix-sid-sub-tlv* 430 +--ro ospfv3-prefix-sid-flags 431 | +--ro bits* identityref 432 +--ro algorithm? uint8 433 +--ro sid? uint32 435 augment /rt:routing/rt:control-plane-protocols 436 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 437 /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas 438 /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 439 /ospf:body/ospfv3-e-lsa:e-nssa/ospfv3-e-lsa:e-external-tlvs 440 /ospfv3-e-lsa:external-prefix-tlv: 441 +--ro perfix-sid-sub-tlvs 442 +--ro prefix-sid-sub-tlv* 443 +--ro ospfv3-prefix-sid-flags 444 | +--ro bits* identityref 445 +--ro algorithm? uint8 446 +--ro sid? uint32 447 augment /rt:routing/rt:control-plane-protocols 448 /rt:control-plane-protocol/ospf:ospf/ospf:database 449 /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa 450 /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body 451 /ospfv3-e-lsa:e-nssa/ospfv3-e-lsa:e-external-tlvs 452 /ospfv3-e-lsa:external-prefix-tlv: 453 +--ro perfix-sid-sub-tlvs 454 +--ro prefix-sid-sub-tlv* 455 +--ro ospfv3-prefix-sid-flags 456 | +--ro bits* identityref 457 +--ro algorithm? uint8 458 +--ro sid? uint32 459 augment /rt:routing/rt:control-plane-protocols 460 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 461 /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas 462 /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 463 /ospf:body/ospfv3-e-lsa:e-router/ospfv3-e-lsa:e-router-tlvs 464 /ospfv3-e-lsa:link-tlv: 465 +--ro adj-sid-sub-tlvs 466 | +--ro adj-sid-sub-tlv* 467 | +--ro adj-sid-flags 468 | | +--ro bits* identityref 469 | +--ro weight? uint8 470 | +--ro sid? uint32 471 +--ro lan-adj-sid-sub-tlvs 472 +--ro lan-adj-sid-sub-tlv* 473 +--ro lan-adj-sid-flags 474 | +--ro bits* identityref 475 +--ro weight? uint8 476 +--ro neighbor-router-id? yang:dotted-quad 477 +--ro sid? uint32 478 augment /rt:routing/rt:control-plane-protocols 479 /rt:control-plane-protocol/ospf:ospf/ospf:database 480 /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa 481 /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body 482 /ospfv3-e-lsa:e-router/ospfv3-e-lsa:e-router-tlvs 483 /ospfv3-e-lsa:link-tlv: 484 +--ro adj-sid-sub-tlvs 485 | +--ro adj-sid-sub-tlv* 486 | +--ro adj-sid-flags 487 | | +--ro bits* identityref 488 | +--ro weight? uint8 489 | +--ro sid? uint32 490 +--ro lan-adj-sid-sub-tlvs 491 +--ro lan-adj-sid-sub-tlv* 492 +--ro lan-adj-sid-flags 493 | +--ro bits* identityref 494 +--ro weight? uint8 495 +--ro neighbor-router-id? yang:dotted-quad 496 +--ro sid? uint32 498 file "ietf-ospfv3-sr@2020-02-05.yang" 499 module ietf-ospfv3-sr { 500 namespace "urn:ietf:params:xml:ns:yang:ietf-ospfv3-sr"; 502 prefix ospfv3-sr; 504 import ietf-inet-types { 505 prefix "inet"; 506 } 508 import ietf-yang-types { 509 prefix "yang"; 510 } 512 import ietf-routing { 513 prefix "rt"; 514 } 516 import ietf-ospf { 517 prefix "ospf"; 518 } 520 import ietf-ospfv3-extended-lsa { 521 prefix "ospfv3-e-lsa"; 522 } 524 import ietf-ospf-sr { 525 prefix "ospf-sr"; 526 } 528 organization 529 "IETF LSR - Link State Routing Working Group"; 531 contact 532 "WG Web: 533 WG List: 535 Author: Yingzhen Qu 536 537 Author: Acee Lindem 538 "; 540 description 541 "This YANG module defines the operational state for OSPFv3 542 Segment Routing, which is common across all of the vendor 543 implementations. It is intended that the module will be 544 extended by vendors to define vendor-specific OSPFv3 545 Segment Routing configuration and operational parameters 546 and policies. 548 Copyright (c) 2020 IETF Trust and the persons identified as 549 authors of the code. All rights reserved. 551 Redistribution and use in source and binary forms, with or 552 without modification, is permitted pursuant to, and subject 553 to the license terms contained in, the Simplified BSD License 554 set forth in Section 4.c of the IETF Trust's Legal Provisions 555 Relating to IETF Documents 556 (http://trustee.ietf.org/license-info). 558 This version of this YANG module is part of RFC XXXX; 559 see the RFC itself for full legal notices."; 561 reference "RFC XXXX"; 563 revision 2020-02-05 { 564 description 565 ""; 566 reference 567 "RFC XXXX: A YANG Data Model for OSPF Segment Routing."; 568 } 570 /* groupings */ 571 grouping ospfv3-prefix-sid-sub-tlvs { 572 description "Prefix Segment ID (SID) sub-TLVs."; 573 container perfix-sid-sub-tlvs{ 574 description "Prefix SID sub-TLV."; 575 list prefix-sid-sub-tlv { 576 description "Prefix SID sub-TLV."; 577 container ospfv3-prefix-sid-flags { 578 leaf-list bits { 579 type identityref { 580 base ospf-sr:prefix-sid-bit; 581 } 582 description 583 "Prefix SID Sub-TLV flag bits list."; 584 } 585 description "Segment Identifier (SID) Flags."; 586 } 587 leaf algorithm { 588 type uint8; 589 description 590 "The algorithm associated with the prefix-SID."; 591 } 592 leaf sid { 593 type uint32; 594 description "An index or label."; 595 } 596 } 597 } 598 } 600 grouping ospfv3-extended-prefix-range-tlvs { 601 description "Extended prefix range TLV grouping."; 603 container ospfv3-extended-prefix-range-tlvs { 604 description "The list of range of prefixes."; 605 list extended-prefix-range-tlv { //type=2? 606 description "The range of prefixes."; 607 leaf prefix-length { 608 type uint8; 609 description "Length of prefix in bits."; 610 } 611 leaf af { 612 type uint8; 613 description "Address family for the prefix."; 614 } 615 leaf range-size { 616 type uint16; 617 description "The number of prefixes covered by the 618 advertisement."; 619 } 620 leaf prefix { 621 type inet:ip-prefix; 622 description "Address prefix."; 623 } 624 uses ospfv3-prefix-sid-sub-tlvs; 625 uses ospf:unknown-tlvs; 626 } 628 } 629 } 631 grouping ospfv3-adj-sid-sub-tlvs { 632 description "Adjacency SID sub TLV grouping."; 633 container adj-sid-sub-tlvs { 634 description "Adjacency SID optional sub-TLVs."; 635 list adj-sid-sub-tlv { 636 description "List of Adjacency SID sub-TLVs."; 637 container adj-sid-flags { 638 leaf-list bits { 639 type identityref { 640 base ospf-sr:adj-sid-bit; 641 } 642 description "Adj sid sub-tlv flags list."; 643 } 644 description "Adj-sid sub-tlv flags."; 645 } 646 leaf weight { 647 type uint8; 648 description "Weight used for load-balancing."; 649 } 650 leaf sid { 651 type uint32; 652 description "Segment Identifier (SID) index/label."; 653 } 654 } 655 } 656 } 658 grouping ospfv3-lan-adj-sid-sub-tlvs { 659 description "LAN adj-sid sub TLV grouping."; 660 container lan-adj-sid-sub-tlvs { 661 description "LAN Adjacency SID optional sub-TLVs."; 662 list lan-adj-sid-sub-tlv { 663 description "List of LAN adjacency SID sub-TLVs."; 664 container lan-adj-sid-flags { 665 leaf-list bits { 666 type identityref { 667 base ospf-sr:adj-sid-bit; 668 } 669 description "LAN adj sid sub-tlv flags list."; 670 } 671 description "LAN adj-sid sub-tlv flags."; 672 } 673 leaf weight { 674 type uint8; 675 description "Weight used for load-balancing."; 677 } 678 leaf neighbor-router-id { 679 type yang:dotted-quad; 680 description "Neighbor router ID."; 681 } 682 leaf sid { 683 type uint32; 684 description "Segment Identifier (SID) index/label."; 685 } 686 } 687 } 688 } 690 /* Database */ 691 /* Segment Routing Capabilities */ 692 augment "/rt:routing/" 693 + "rt:control-plane-protocols/rt:control-plane-protocol/" 694 + "ospf:ospf/ospf:database/" 695 + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" 696 + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" 697 + "ospf:ospfv3/ospf:body/ospf:router-information" { 698 when "../../../../../../../../" 699 + "rt:type = 'ospf:ospfv3'" { 700 description 701 "This augmentation is only valid for OSPFv3."; 702 } 703 description 704 "SR specific TLVs for OSPFv3 Router Information 705 opaque LSA."; 706 uses ospf-sr:sr-algorithm-tlv; 707 uses ospf-sr:sid-range-tlvs; 708 uses ospf-sr:local-block-tlvs; 709 uses ospf-sr:srms-preference-tlv; 710 } 712 augment "/rt:routing/" 713 + "rt:control-plane-protocols/rt:control-plane-protocol/" 714 + "ospf:ospf/ospf:areas/" 715 + "ospf:area/ospf:database/" 716 + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" 717 + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" 718 + "ospf:ospfv3/ospf:body/ospf:router-information" { 719 when "../../../../../../../../../../" 720 + "rt:type = 'ospf:ospfv3'" { 721 description 722 "This augmentation is only valid for OSPFv3."; 723 } 724 description 725 "SR specific TLVs for OSPFv3 Router Information LSA."; 727 uses ospf-sr:sr-algorithm-tlv; 728 uses ospf-sr:sid-range-tlvs; 729 uses ospf-sr:local-block-tlvs; 730 uses ospf-sr:srms-preference-tlv; 731 } 733 augment "/rt:routing/" 734 + "rt:control-plane-protocols/rt:control-plane-protocol/" 735 + "ospf:ospf/ospf:areas/ospf:area/" 736 + "ospf:interfaces/ospf:interface/ospf:database/" 737 + "ospf:link-scope-lsa-type/ospf:link-scope-lsas/" 738 + "ospf:link-scope-lsa/ospf:version/ospf:ospfv3/" 739 + "ospf:ospfv3/ospf:body/ospf:router-information" { 740 when "../../../../../../../../../../../../" 741 + "rt:type = 'ospf:ospfv3'" { 742 description 743 "This augmentation is only valid for OSPFv3."; 744 } 746 description 747 "SR specific TLVs for OSPFv3 Router Information LSA."; 749 uses ospf-sr:sr-algorithm-tlv; 750 uses ospf-sr:sid-range-tlvs; 751 uses ospf-sr:local-block-tlvs; 752 uses ospf-sr:srms-preference-tlv; 753 } 755 /* OSPFv3 Extended Prefix Range TLV */ 756 augment "/rt:routing/" 757 + "rt:control-plane-protocols/rt:control-plane-protocol/" 758 + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" 759 + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" 760 + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" 761 + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-intra-area-prefix" { 762 when "../../../../../../../../../../" 763 + "rt:type = 'ospf:ospfv3'" { 764 description 765 "This augmentation is only valid for OSPFv3 766 E-Router LSAs"; 767 } 768 uses ospfv3-extended-prefix-range-tlvs; 769 description 770 "OSPFv3 Area-Scoped E-Intra-Area-Prefix LSA."; 771 } 772 augment "/rt:routing/" 773 + "rt:control-plane-protocols/rt:control-plane-protocol/" 774 + "ospf:ospf/ospf:database/" 775 + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" 776 + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" 777 + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-intra-area-prefix" { 778 when "'ospf:../../../../../../../../../" 779 + "rt:type' = 'ospf:ospfv3'" { 780 description 781 "This augmentation is only valid for OSPFv3."; 782 } 783 uses ospfv3-extended-prefix-range-tlvs; 784 description 785 "OSPFv3 AS-Scoped E-Intra-Area-Prefix LSA."; 786 } 788 augment "/rt:routing/" 789 + "rt:control-plane-protocols/rt:control-plane-protocol/" 790 + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" 791 + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" 792 + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" 793 + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-inter-area-prefix" { 794 when "../../../../../../../../../../" 795 + "rt:type = 'ospf:ospfv3'" { 796 description 797 "This augmentation is only valid for OSPFv3 798 E-Router LSAs"; 799 } 800 uses ospfv3-extended-prefix-range-tlvs; 801 description 802 "OSPFv3 Area-Scoped E-Inter-Area-Prefix LSA."; 803 } 805 augment "/rt:routing/" 806 + "rt:control-plane-protocols/rt:control-plane-protocol/" 807 + "ospf:ospf/ospf:database/" 808 + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" 809 + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" 810 + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-inter-area-prefix" { 811 when "'ospf:../../../../../../../../../" 812 + "rt:type' = 'ospf:ospfv3'" { 813 description 814 "This augmentation is only valid for OSPFv3."; 815 } 816 uses ospfv3-extended-prefix-range-tlvs; 817 description 818 "OSPFv3 AS-Scoped E-Inter-Area-Prefix LSA."; 819 } 820 augment "/rt:routing/" 821 + "rt:control-plane-protocols/rt:control-plane-protocol/" 822 + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" 823 + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" 824 + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" 825 + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-as-external" { 826 when "../../../../../../../../../../" 827 + "rt:type = 'ospf:ospfv3'" { 828 description 829 "This augmentation is only valid for OSPFv3 830 E-Router LSAs"; 831 } 832 uses ospfv3-extended-prefix-range-tlvs; 833 description 834 "OSPFv3 Area-Scoped E-AS-External LSA."; 835 } 837 augment "/rt:routing/" 838 + "rt:control-plane-protocols/rt:control-plane-protocol/" 839 + "ospf:ospf/ospf:database/" 840 + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" 841 + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" 842 + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-as-external" { 843 when "'ospf:../../../../../../../../../" 844 + "rt:type' = 'ospf:ospfv3'" { 845 description 846 "This augmentation is only valid for OSPFv3."; 847 } 848 uses ospfv3-extended-prefix-range-tlvs; 849 description 850 "OSPFv3 AS-Scoped E-AS-External LSA."; 851 } 853 augment "/rt:routing/" 854 + "rt:control-plane-protocols/rt:control-plane-protocol/" 855 + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" 856 + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" 857 + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" 858 + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-nssa" { 859 when "../../../../../../../../../../" 860 + "rt:type = 'ospf:ospfv3'" { 861 description 862 "This augmentation is only valid for OSPFv3 863 E-Router LSAs"; 864 } 865 uses ospfv3-extended-prefix-range-tlvs; 866 description 867 "OSPFv3 Area-Scoped E-NSSA LSA."; 869 } 871 augment "/rt:routing/" 872 + "rt:control-plane-protocols/rt:control-plane-protocol/" 873 + "ospf:ospf/ospf:database/" 874 + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" 875 + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" 876 + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-nssa" { 877 when "'ospf:../../../../../../../../../" 878 + "rt:type' = 'ospf:ospfv3'" { 879 description 880 "This augmentation is only valid for OSPFv3."; 881 } 882 uses ospfv3-extended-prefix-range-tlvs; 883 description 884 "OSPFv3 AS-Scoped E-NSSA LSA."; 885 } 887 /* Prefix SID Sub-TLV in Intra-Area Prefix TLV */ 888 augment "/rt:routing/" 889 + "rt:control-plane-protocols/rt:control-plane-protocol/" 890 + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" 891 + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" 892 + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" 893 + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-link/" 894 + "ospfv3-e-lsa:e-link-tlvs/ospfv3-e-lsa:intra-prefix-tlv" { 895 when "../../../../../../../../../../../../" 896 + "rt:type = 'ospf:ospfv3'" { 897 description 898 "This augmentation is only valid for OSPFv3 899 E-Router LSAs"; 900 } 901 uses ospfv3-prefix-sid-sub-tlvs; 902 description 903 "OSPFv3 Area-Scoped Intra-Area Prefix TLV."; 904 } 906 augment "/rt:routing/" 907 + "rt:control-plane-protocols/rt:control-plane-protocol/" 908 + "ospf:ospf/ospf:database/" 909 + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" 910 + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" 911 + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-link/" 912 + "ospfv3-e-lsa:e-link-tlvs/ospfv3-e-lsa:intra-prefix-tlv" { 913 when "'ospf:../../../../../../../../../" 914 + "rt:type' = 'ospf:ospfv3'" { 915 description 916 "This augmentation is only valid for OSPFv3."; 918 } 919 uses ospfv3-prefix-sid-sub-tlvs; 920 description 921 "OSPFv3 AS-Scoped Intra-Area Prefix TLV."; 922 } 924 augment "/rt:routing/" 925 + "rt:control-plane-protocols/rt:control-plane-protocol/" 926 + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" 927 + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" 928 + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" 929 + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-intra-area-prefix/" 930 + "ospfv3-e-lsa:e-intra-prefix-tlvs/ospfv3-e-lsa:intra-prefix-tlv" { 931 when "../../../../../../../../../../../../" 932 + "rt:type = 'ospf:ospfv3'" { 933 description 934 "This augmentation is only valid for OSPFv3 935 E-Router LSAs"; 936 } 937 uses ospfv3-prefix-sid-sub-tlvs; 938 description 939 "OSPFv3 Area-Scoped Intra-Area Prefix TLV."; 940 } 942 augment "/rt:routing/" 943 + "rt:control-plane-protocols/rt:control-plane-protocol/" 944 + "ospf:ospf/ospf:database/" 945 + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" 946 + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" 947 + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-intra-area-prefix/" 948 + "ospfv3-e-lsa:e-intra-prefix-tlvs/ospfv3-e-lsa:intra-prefix-tlv" { 949 when "'ospf:../../../../../../../../../" 950 + "rt:type' = 'ospf:ospfv3'" { 951 description 952 "This augmentation is only valid for OSPFv3."; 953 } 954 uses ospfv3-prefix-sid-sub-tlvs; 955 description 956 "OSPFv3 AS-Scoped Intra-Area Prefix TLV."; 957 } 959 /* Prefix SID Sub-TLV in Inter-Area Prefix TLV */ 960 augment "/rt:routing/" 961 + "rt:control-plane-protocols/rt:control-plane-protocol/" 962 + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" 963 + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" 964 + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" 965 + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-inter-area-prefix/" 966 + "ospfv3-e-lsa:e-inter-prefix-tlvs/ospfv3-e-lsa:inter-prefix-tlv" { 967 when "../../../../../../../../../../../../" 968 + "rt:type = 'ospf:ospfv3'" { 969 description 970 "This augmentation is only valid for OSPFv3 971 E-Router LSAs"; 972 } 973 uses ospfv3-prefix-sid-sub-tlvs; 974 description 975 "OSPFv3 Area-Scoped Inter-Area Prefix TLV."; 976 } 978 augment "/rt:routing/" 979 + "rt:control-plane-protocols/rt:control-plane-protocol/" 980 + "ospf:ospf/ospf:database/" 981 + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" 982 + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" 983 + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-inter-area-prefix/" 984 + "ospfv3-e-lsa:e-inter-prefix-tlvs/ospfv3-e-lsa:inter-prefix-tlv" { 985 when "'ospf:../../../../../../../../../" 986 + "rt:type' = 'ospf:ospfv3'" { 987 description 988 "This augmentation is only valid for OSPFv3."; 989 } 990 uses ospfv3-prefix-sid-sub-tlvs; 991 description 992 "OSPFv3 AS-Scoped Inter-Area Prefix TLV."; 993 } 995 /* Prefix SID Sub-TLV in External Prefix TLV */ 996 augment "/rt:routing/" 997 + "rt:control-plane-protocols/rt:control-plane-protocol/" 998 + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" 999 + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" 1000 + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" 1001 + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-as-external/" 1002 + "ospfv3-e-lsa:e-external-tlvs/ospfv3-e-lsa:external-prefix-tlv" { 1003 when "../../../../../../../../../../../../" 1004 + "rt:type = 'ospf:ospfv3'" { 1005 description 1006 "This augmentation is only valid for OSPFv3 1007 E-Router LSAs"; 1008 } 1009 uses ospfv3-prefix-sid-sub-tlvs; 1010 description 1011 "OSPFv3 Area-Scoped External Prefix TLV."; 1012 } 1013 augment "/rt:routing/" 1014 + "rt:control-plane-protocols/rt:control-plane-protocol/" 1015 + "ospf:ospf/ospf:database/" 1016 + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" 1017 + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" 1018 + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-as-external/" 1019 + "ospfv3-e-lsa:e-external-tlvs/ospfv3-e-lsa:external-prefix-tlv" { 1020 when "'ospf:../../../../../../../../../" 1021 + "rt:type' = 'ospf:ospfv3'" { 1022 description 1023 "This augmentation is only valid for OSPFv3."; 1024 } 1025 uses ospfv3-prefix-sid-sub-tlvs; 1026 description 1027 "OSPFv3 AS-Scoped External Prefix TLV."; 1028 } 1030 augment "/rt:routing/" 1031 + "rt:control-plane-protocols/rt:control-plane-protocol/" 1032 + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" 1033 + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" 1034 + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" 1035 + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-nssa/" 1036 + "ospfv3-e-lsa:e-external-tlvs/ospfv3-e-lsa:external-prefix-tlv" { 1037 when "../../../../../../../../../../../../" 1038 + "rt:type = 'ospf:ospfv3'" { 1039 description 1040 "This augmentation is only valid for OSPFv3 1041 E-Router LSAs"; 1042 } 1043 uses ospfv3-prefix-sid-sub-tlvs; 1044 description 1045 "OSPFv3 Area-Scoped External Prefix TLV."; 1046 } 1048 augment "/rt:routing/" 1049 + "rt:control-plane-protocols/rt:control-plane-protocol/" 1050 + "ospf:ospf/ospf:database/" 1051 + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" 1052 + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" 1053 + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-nssa/" 1054 + "ospfv3-e-lsa:e-external-tlvs/ospfv3-e-lsa:external-prefix-tlv" { 1055 when "'ospf:../../../../../../../../../" 1056 + "rt:type' = 'ospf:ospfv3'" { 1057 description 1058 "This augmentation is only valid for OSPFv3."; 1059 } 1060 uses ospfv3-prefix-sid-sub-tlvs; 1061 description 1062 "OSPFv3 AS-Scoped External Prefix TLV."; 1063 } 1065 /* Adj-SID sub-TLV */ 1066 augment "/rt:routing/" 1067 + "rt:control-plane-protocols/rt:control-plane-protocol/" 1068 + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" 1069 + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" 1070 + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" 1071 + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-router/" 1072 + "ospfv3-e-lsa:e-router-tlvs/ospfv3-e-lsa:link-tlv" { 1073 when "../../../../../../../../../../../../" 1074 + "rt:type = 'ospf:ospfv3'" { 1075 description 1076 "This augmentation is only valid for OSPFv3 1077 E-Router LSAs"; 1078 } 1079 uses ospfv3-adj-sid-sub-tlvs; 1080 uses ospfv3-lan-adj-sid-sub-tlvs; 1081 description 1082 "OSPFv3 Area-Scoped Adj-SID Sub-TLV."; 1083 } 1085 augment "/rt:routing/" 1086 + "rt:control-plane-protocols/rt:control-plane-protocol/" 1087 + "ospf:ospf/ospf:database/" 1088 + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" 1089 + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" 1090 + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-router/" 1091 + "ospfv3-e-lsa:e-router-tlvs/ospfv3-e-lsa:link-tlv" { 1092 when "'ospf:../../../../../../../../../" 1093 + "rt:type' = 'ospf:ospfv3'" { 1094 description 1095 "This augmentation is only valid for OSPFv3."; 1096 } 1097 uses ospfv3-adj-sid-sub-tlvs; 1098 uses ospfv3-lan-adj-sid-sub-tlvs; 1099 description 1100 "OSPFv3 AS-Scoped Adj-SID Sub-TLV."; 1101 } 1103 } 1104 1105 4. Security Considerations 1107 The YANG modules specified in this document define a schema for data 1108 that is designed to be accessed via network management protocols such 1109 as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer 1110 is the secure transport layer, and the mandatory-to-implement secure 1111 transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer 1112 is HTTPS, and the mandatory-to-implement secure transport is TLS 1113 [RFC5246]. 1115 The NETCONF access control model [RFC6536] provides the means to 1116 restrict access for particular NETCONF or RESTCONF users to a pre- 1117 configured subset of all available NETCONF or RESTCONF protocol 1118 operations and content. 1120 There are a number of data nodes defined in the modules that are 1121 writable/creatable/deletable (i.e., config true, which is the 1122 default). These data nodes may be considered sensitive or vulnerable 1123 in some network environments. Write operations (e.g., edit-config) 1124 to these data nodes without proper protection can have a negative 1125 effect on network operations. 1127 Some of the readable data nodes in the modules may be considered 1128 sensitive or vulnerable in some network environments. It is thus 1129 important to control read access (e.g., via get, get-config, or 1130 notification) to these data nodes. The exposure of the Link State 1131 Database (LSDB) will expose the detailed topology of the network. 1132 This may be undesirable since both due to the fact that exposure may 1133 facilitate other attacks. Additionally, network operators may 1134 consider their topologies to be sensitive confidential data. 1136 5. IANA Considerations 1138 This document registers URIs in the IETF XML registry [RFC3688]. 1139 Following the format in [RFC3688], the following registrations is 1140 requested to be made: 1142 URI: urn:ietf:params:xml:ns:yang:ietf-ospfv3-sr 1143 Registrant Contact: The IESG. 1144 XML: N/A, the requested URI is an XML namespace. 1146 This document registers the YANG modules in the YANG Module Names 1147 registry [RFC6020]. 1149 name: ietf-ospfv3-sr 1150 namespace: urn:ietf:params:xml:ns:yang:ietf-ospfv3-sr 1151 prefix: ospfv3-sr 1152 reference: RFC XXXX 1154 6. Acknowledgements 1156 This document was produced using Marshall Rose's xml2rfc tool. 1158 The YANG model was developed using the suite of YANG tools written 1159 and maintained by numerous authors. 1161 7. References 1163 7.1. Normative References 1165 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1166 Requirement Levels", BCP 14, RFC 2119, 1167 DOI 10.17487/RFC2119, March 1997, 1168 . 1170 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 1171 DOI 10.17487/RFC3688, January 2004, 1172 . 1174 [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security 1175 (TLS) Protocol Version 1.2", RFC 5246, 1176 DOI 10.17487/RFC5246, August 2008, 1177 . 1179 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 1180 the Network Configuration Protocol (NETCONF)", RFC 6020, 1181 DOI 10.17487/RFC6020, October 2010, 1182 . 1184 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 1185 and A. Bierman, Ed., "Network Configuration Protocol 1186 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 1187 . 1189 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 1190 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 1191 . 1193 [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration 1194 Protocol (NETCONF) Access Control Model", RFC 6536, 1195 DOI 10.17487/RFC6536, March 2012, 1196 . 1198 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 1199 RFC 7950, DOI 10.17487/RFC7950, August 2016, 1200 . 1202 [RFC8022] Lhotka, L. and A. Lindem, "A YANG Data Model for Routing 1203 Management", RFC 8022, DOI 10.17487/RFC8022, November 1204 2016, . 1206 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 1207 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 1208 . 1210 [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for 1211 Routing Management (NMDA Version)", RFC 8349, 1212 DOI 10.17487/RFC8349, March 2018, 1213 . 1215 [RFC8666] Psenak, P., Ed. and S. Previdi, Ed., "OSPFv3 Extensions 1216 for Segment Routing", RFC 8666, DOI 10.17487/RFC8666, 1217 December 2019, . 1219 7.2. Informative References 1221 [I-D.ietf-ospf-sr-yang] 1222 Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, 1223 "YANG Data Model for OSPF SR (Segment Routing) Protocol", 1224 draft-ietf-ospf-sr-yang-10 (work in progress), August 1225 2019. 1227 [I-D.ietf-ospf-yang] 1228 Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, 1229 "YANG Data Model for OSPF Protocol", draft-ietf-ospf- 1230 yang-29 (work in progress), October 2019. 1232 [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", 1233 BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, 1234 . 1236 Authors' Addresses 1238 Acee Lindem 1239 Cisco Systems 1240 301 Midenhall Way 1241 Cary, NC 27513 1243 EMail: acee@cisco.com 1244 Yingzhen Qu 1245 Futurewei 1246 2330 Central Expressway 1247 Santa Clara, CA 95050 1248 USA 1250 EMail: yingzhen.qu@futurewei.com