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