idnits 2.17.1 draft-acee-lsr-ospfv3-extended-lsa-yang-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 : ---------------------------------------------------------------------------- ** There are 12 instances of too long lines in the document, the longest one being 2 characters in excess of 72. 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 (July 7, 2019) is 1748 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- ** 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 (-29) exists of draft-ietf-ospf-yang-23 Summary: 4 errors (**), 0 flaws (~~), 3 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Internet A. Lindem 3 Internet-Draft S. Palani 4 Intended status: Informational Cisco Systems 5 Expires: January 8, 2020 Y. Qu 6 Futurewei 7 July 7, 2019 9 YANG Model for OSPFv3 Extended LSAs 10 draft-acee-lsr-ospfv3-extended-lsa-yang-04 12 Abstract 14 This document defines a YANG data model augmenting the IETF OSPF YANG 15 model to provide support for OSPFv3 Link State Advertisment (LSA) 16 Extensibility as defined in RFC 8362. OSPFv3 Extended LSAs provide 17 extensible TLV-based LSAs for the base LSA types defined in RFC 5340. 19 Status of This Memo 21 This Internet-Draft is submitted in full conformance with the 22 provisions of BCP 78 and BCP 79. 24 Internet-Drafts are working documents of the Internet Engineering 25 Task Force (IETF). Note that other groups may also distribute 26 working documents as Internet-Drafts. The list of current Internet- 27 Drafts is at https://datatracker.ietf.org/drafts/current/. 29 Internet-Drafts are draft documents valid for a maximum of six months 30 and may be updated, replaced, or obsoleted by other documents at any 31 time. It is inappropriate to use Internet-Drafts as reference 32 material or to cite them other than as "work in progress." 34 This Internet-Draft will expire on January 8, 2020. 36 Copyright Notice 38 Copyright (c) 2019 IETF Trust and the persons identified as the 39 document authors. All rights reserved. 41 This document is subject to BCP 78 and the IETF Trust's Legal 42 Provisions Relating to IETF Documents 43 (https://trustee.ietf.org/license-info) in effect on the date of 44 publication of this document. Please review these documents 45 carefully, as they describe your rights and restrictions with respect 46 to this document. Code Components extracted from this document must 47 include Simplified BSD License text as described in Section 4.e of 48 the Trust Legal Provisions and are provided without warranty as 49 described in the Simplified BSD License. 51 Table of Contents 53 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2 54 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2 55 2. OSPFv3 Extended LSAs . . . . . . . . . . . . . . . . . . . . 2 56 3. OSPFv3 Extended LSA Yang Module . . . . . . . . . . . . . . . 14 57 4. Security Considerations . . . . . . . . . . . . . . . . . . . 29 58 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29 59 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 30 60 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 30 61 7.1. Normative References . . . . . . . . . . . . . . . . . . 30 62 7.2. Informative References . . . . . . . . . . . . . . . . . 31 63 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 31 65 1. Overview 67 YANG [RFC6020] [RFC7950] is a data definition language used to define 68 the contents of a conceptual data store that allows networked devices 69 to be managed using NETCONF [RFC6241]. YANG is proving relevant 70 beyond its initial confines, as bindings to other interfaces (e.g., 71 ReST) and encodings other than XML (e.g., JSON) are being defined. 72 Furthermore, YANG data models can be used as the basis for 73 implementation of other interfaces, such as CLI and programmatic 74 APIs. 76 This document defines a YANG data model augmenting the IETF OSPF YANG 77 model [I-D.ietf-ospf-yang], which itself augments [RFC8349], to 78 provide support for configuration and operational state for OSPFv3 79 Extended LSAs as defined in [RFC8362]. 81 1.1. Requirements Language 83 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 84 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 85 document are to be interpreted as described in [RFC2119]. 87 2. OSPFv3 Extended LSAs 89 This document defines a model for the OSPFv3 Extended LSA feature. 90 It is an augmentation of the OSPF base model provided support for 91 OSPFv3 Link State Advertisement (LSA) Extensibility [RFC8362]. 92 OSPFv3 Extended LSAs provide extensible TLV-based LSAs for the base 93 LSA types defined in [RFC5340]. 95 The OSPFv3 Extended LSA YANG module requires support for the OSPF 96 base model[I-D.ietf-ospf-yang] which defines basic OSPF configuration 97 and state. The OSPF YANG model augments the ietf-routing YANG model 98 defined in [RFC8022]. The augmentations defined in the ietf-ospfv3- 99 extended-lsa YANG model will provide global configuration, area 100 configuration, and addition of OSPFv3 Extended LSAs to the Link State 101 Database (LSDB) operational state. 103 module: ietf-ospfv3-extended-lsa 104 augment /rt:routing/rt:control-plane-protocols 105 /rt:control-plane-protocol/ospf:ospf: 106 +--rw extended-lsa-support? boolean {extended-lsa-support}? 107 augment /rt:routing/rt:control-plane-protocols 108 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area: 109 +--rw extended-lsa-support? boolean {extended-lsa-support}? 110 augment /rt:routing/rt:control-plane-protocols 111 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 112 /ospf:interfaces/ospf:interface/ospf:database 113 /ospf:link-scope-lsa-type/ospf:link-scope-lsas 114 /ospf:link-scope-lsa/ospf:version/ospf:ospfv3 115 /ospf:ospfv3/ospf:body: 116 +--ro e-router 117 | +--ro flags? bits 118 | +--ro options bits 119 | +--ro e-router-tlvs* 120 | +--ro unknown-tlv 121 | | +--ro type? uint16 122 | | +--ro length? uint16 123 | | +--ro value? yang:hex-string 124 | +--ro link-tlv 125 | +--ro link-tlv-length? uint16 126 | +--ro interface-id? uint32 127 | +--ro neighbor-interface-id? uint32 128 | +--ro neighbor-router-id? rt-types:router-id 129 | +--ro type? uint8 130 | +--ro metric? uint16 131 | +--ro sub-tlvs* 132 | +--ro unknown-sub-tlv 133 | +--ro type? uint16 134 | +--ro length? uint16 135 | +--ro value? yang:hex-string 136 +--ro e-network 137 | +--ro options bits 138 | +--ro e-network-tlvs* 139 | +--ro unknown--tlv 140 | | +--ro type? uint16 141 | | +--ro length? uint16 142 | | +--ro value? yang:hex-string 143 | +--ro attached-router-tlv 144 | +--ro attached-router-tlv-length? uint16 145 | +--ro Adjacent-neighbor-router-id? rt-types:router-id 146 | +--ro sub-tlvs* 147 | +--ro unknown-sub-tlv 148 | +--ro type? uint16 149 | +--ro length? uint16 150 | +--ro value? yang:hex-string 151 +--ro e-inter-area-prefix 152 | +--ro e-inter-prefix-tlvs* 153 | +--ro unknown--tlv 154 | | +--ro type? uint16 155 | | +--ro length? uint16 156 | | +--ro value? yang:hex-string 157 | +--ro inter-prefix-tlv 158 | +--ro inter-prefix-tlv-length? uint16 159 | +--ro metric? rt-types:uint24 160 | +--ro prefix? inet:ip-prefix 161 | +--ro prefix-options? bits 162 | +--ro sub-tlvs* 163 | +--ro unknown-sub-tlv 164 | +--ro type? uint16 165 | +--ro length? uint16 166 | +--ro value? yang:hex-string 167 +--ro e-inter-area-router 168 | +--ro e-inter-router-tlvs* 169 | +--ro unknown-tlv 170 | | +--ro type? uint16 171 | | +--ro length? uint16 172 | | +--ro value? yang:hex-string 173 | +--ro inter-router-tlv 174 | +--ro inter-router-tlv-length? uint16 175 | +--ro flags? bits 176 | +--ro options bits 177 | +--ro metric? rt-types:uint24 178 | +--ro destination-router-id? rt-types:router-id 179 | +--ro sub-tlvs* 180 | +--ro unknown-sub-tlv 181 | +--ro type? uint16 182 | +--ro length? uint16 183 | +--ro value? yang:hex-string 184 +--ro e-as-external 185 | +--ro e-external-tlvs* 186 | +--ro unknown-tlv 187 | | +--ro type? uint16 188 | | +--ro length? uint16 189 | | +--ro value? yang:hex-string 190 | +--ro external-prefix-tlv 191 | +--ro external-prefix-tlv-length? uint16 192 | +--ro flags? bits 193 | +--ro metric? rt-types:uint24 194 | +--ro prefix? inet:ip-prefix 195 | +--ro prefix-options? bits 196 | +--ro sub-tlvs* 197 | +--ro unknown-sub-tlv 198 | | +--ro type? uint16 199 | | +--ro length? uint16 200 | | +--ro value? yang:hex-string 201 | +--ro ipv6-fwd-addr-sub-tlv 202 | | +--ro ipv6-fwd-addr-sub-tlv-length? uint16 203 | | +--ro forwarding-address? inet:ipv6-address 204 | +--ro ipv4-fwd-addr-sub-tlv 205 | | +--ro ipv4-fwd-addr-sub-tlv-length? uint16 206 | | +--ro forwarding-address? inet:ipv4-address 207 | +--ro route-tag-sub-tlv 208 | +--ro route-tag-sub-tlv-length? uint16 209 | +--ro route-tag? uint32 210 +--ro e-nssa 211 | +--ro e-external-tlvs* 212 | +--ro unknown-tlv 213 | | +--ro type? uint16 214 | | +--ro length? uint16 215 | | +--ro value? yang:hex-string 216 | +--ro external-prefix-tlv 217 | +--ro external-prefix-tlv-length? uint16 218 | +--ro flags? bits 219 | +--ro metric? rt-types:uint24 220 | +--ro prefix? inet:ip-prefix 221 | +--ro prefix-options? bits 222 | +--ro sub-tlvs* 223 | +--ro unknown-sub-tlv 224 | | +--ro type? uint16 225 | | +--ro length? uint16 226 | | +--ro value? yang:hex-string 227 | +--ro ipv6-fwd-addr-sub-tlv 228 | | +--ro ipv6-fwd-addr-sub-tlv-length? uint16 229 | | +--ro forwarding-address? inet:ipv6-address 230 | +--ro ipv4-fwd-addr-sub-tlv 231 | | +--ro ipv4-fwd-addr-sub-tlv-length? uint16 232 | | +--ro forwarding-address? inet:ipv4-address 233 | +--ro route-tag-sub-tlv 234 | +--ro route-tag-sub-tlv-length? uint16 235 | +--ro route-tag? uint32 236 +--ro e-link 237 | +--ro rtr-priority? uint8 238 | +--ro options bits 239 | +--ro e-link-tlvs* 240 | +--ro unknown-tlv 241 | | +--ro type? uint16 242 | | +--ro length? uint16 243 | | +--ro value? yang:hex-string 244 | +--ro intra-prefix-tlv 245 | | +--ro intra-prefix-tlv-length? uint16 246 | | +--ro metric? rt-types:uint24 247 | | +--ro prefix? inet:ip-prefix 248 | | +--ro prefix-options? bits 249 | | +--ro sub-tlvs* 250 | | +--ro unknown-sub-tlv 251 | | +--ro type? uint16 252 | | +--ro length? uint16 253 | | +--ro value? yang:hex-string 254 | +--ro ipv6-link-local-tlv 255 | | +--ro ipv6-link-local-tlv-length? uint16 256 | | +--ro link-local-address? inet:ipv6-address 257 | | +--ro sub-tlvs* 258 | | +--ro unknown-sub-tlv 259 | | +--ro type? uint16 260 | | +--ro length? uint16 261 | | +--ro value? yang:hex-string 262 | +--ro ipv4-link-local-tlv 263 | +--ro ipv4-link-local-tlv-length? uint16 264 | +--ro link-local-address? inet:ipv4-address 265 | +--ro sub-tlvs* 266 | +--ro unknown-sub-tlv 267 | +--ro type? uint16 268 | +--ro length? uint16 269 | +--ro value? yang:hex-string 270 +--ro e-intra-area-prefix 271 +--ro referenced-ls-type? uint16 272 +--ro referenced-link-state-id? uint32 273 +--ro referenced-adv-router? rt-types:router-id 274 +--ro e-intra-prefix-tlvs* 275 +--ro unknown-tlv 276 | +--ro type? uint16 277 | +--ro length? uint16 278 | +--ro value? yang:hex-string 279 +--ro intra-prefix-tlv 280 +--ro intra-prefix-tlv-length? uint16 281 +--ro metric? rt-types:uint24 282 +--ro prefix? inet:ip-prefix 283 +--ro prefix-options? bits 284 +--ro sub-tlvs* 285 +--ro unknown-sub-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 291 /ospf:area/ospf:database/ospf:area-scope-lsa-type 292 /ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version 293 /ospf:ospfv3/ospf:ospfv3/ospf:body: 294 +--ro e-router 295 | +--ro flags? bits 296 | +--ro options bits 297 | +--ro e-router-tlvs* 298 | +--ro unknown-tlv 299 | | +--ro type? uint16 300 | | +--ro length? uint16 301 | | +--ro value? yang:hex-string 302 | +--ro link-tlv 303 | +--ro link-tlv-length? uint16 304 | +--ro interface-id? uint32 305 | +--ro neighbor-interface-id? uint32 306 | +--ro neighbor-router-id? rt-types:router-id 307 | +--ro type? uint8 308 | +--ro metric? uint16 309 | +--ro sub-tlvs* 310 | +--ro unknown-sub-tlv 311 | +--ro type? uint16 312 | +--ro length? uint16 313 | +--ro value? yang:hex-string 314 +--ro e-network 315 | +--ro options bits 316 | +--ro e-network-tlvs* 317 | +--ro unknown--tlv 318 | | +--ro type? uint16 319 | | +--ro length? uint16 320 | | +--ro value? yang:hex-string 321 | +--ro attached-router-tlv 322 | +--ro attached-router-tlv-length? uint16 323 | +--ro Adjacent-neighbor-router-id? rt-types:router-id 324 | +--ro sub-tlvs* 325 | +--ro unknown-sub-tlv 326 | +--ro type? uint16 327 | +--ro length? uint16 328 | +--ro value? yang:hex-string 329 +--ro e-inter-area-prefix 330 | +--ro e-inter-prefix-tlvs* 331 | +--ro unknown--tlv 332 | | +--ro type? uint16 333 | | +--ro length? uint16 334 | | +--ro value? yang:hex-string 335 | +--ro inter-prefix-tlv 336 | +--ro inter-prefix-tlv-length? uint16 337 | +--ro metric? rt-types:uint24 338 | +--ro prefix? inet:ip-prefix 339 | +--ro prefix-options? bits 340 | +--ro sub-tlvs* 341 | +--ro unknown-sub-tlv 342 | +--ro type? uint16 343 | +--ro length? uint16 344 | +--ro value? yang:hex-string 345 +--ro e-inter-area-router 346 | +--ro e-inter-router-tlvs* 347 | +--ro unknown-tlv 348 | | +--ro type? uint16 349 | | +--ro length? uint16 350 | | +--ro value? yang:hex-string 351 | +--ro inter-router-tlv 352 | +--ro inter-router-tlv-length? uint16 353 | +--ro flags? bits 354 | +--ro options bits 355 | +--ro metric? rt-types:uint24 356 | +--ro destination-router-id? rt-types:router-id 357 | +--ro sub-tlvs* 358 | +--ro unknown-sub-tlv 359 | +--ro type? uint16 360 | +--ro length? uint16 361 | +--ro value? yang:hex-string 362 +--ro e-as-external 363 | +--ro e-external-tlvs* 364 | +--ro unknown-tlv 365 | | +--ro type? uint16 366 | | +--ro length? uint16 367 | | +--ro value? yang:hex-string 368 | +--ro external-prefix-tlv 369 | +--ro external-prefix-tlv-length? uint16 370 | +--ro flags? bits 371 | +--ro metric? rt-types:uint24 372 | +--ro prefix? inet:ip-prefix 373 | +--ro prefix-options? bits 374 | +--ro sub-tlvs* 375 | +--ro unknown-sub-tlv 376 | | +--ro type? uint16 377 | | +--ro length? uint16 378 | | +--ro value? yang:hex-string 379 | +--ro ipv6-fwd-addr-sub-tlv 380 | | +--ro ipv6-fwd-addr-sub-tlv-length? uint16 381 | | +--ro forwarding-address? inet:ipv6-address 382 | +--ro ipv4-fwd-addr-sub-tlv 383 | | +--ro ipv4-fwd-addr-sub-tlv-length? uint16 384 | | +--ro forwarding-address? inet:ipv4-address 385 | +--ro route-tag-sub-tlv 386 | +--ro route-tag-sub-tlv-length? uint16 387 | +--ro route-tag? uint32 388 +--ro e-nssa 389 | +--ro e-external-tlvs* 390 | +--ro unknown-tlv 391 | | +--ro type? uint16 392 | | +--ro length? uint16 393 | | +--ro value? yang:hex-string 394 | +--ro external-prefix-tlv 395 | +--ro external-prefix-tlv-length? uint16 396 | +--ro flags? bits 397 | +--ro metric? rt-types:uint24 398 | +--ro prefix? inet:ip-prefix 399 | +--ro prefix-options? bits 400 | +--ro sub-tlvs* 401 | +--ro unknown-sub-tlv 402 | | +--ro type? uint16 403 | | +--ro length? uint16 404 | | +--ro value? yang:hex-string 405 | +--ro ipv6-fwd-addr-sub-tlv 406 | | +--ro ipv6-fwd-addr-sub-tlv-length? uint16 407 | | +--ro forwarding-address? inet:ipv6-address 408 | +--ro ipv4-fwd-addr-sub-tlv 409 | | +--ro ipv4-fwd-addr-sub-tlv-length? uint16 410 | | +--ro forwarding-address? inet:ipv4-address 411 | +--ro route-tag-sub-tlv 412 | +--ro route-tag-sub-tlv-length? uint16 413 | +--ro route-tag? uint32 414 +--ro e-link 415 | +--ro rtr-priority? uint8 416 | +--ro options bits 417 | +--ro e-link-tlvs* 418 | +--ro unknown-tlv 419 | | +--ro type? uint16 420 | | +--ro length? uint16 421 | | +--ro value? yang:hex-string 422 | +--ro intra-prefix-tlv 423 | | +--ro intra-prefix-tlv-length? uint16 424 | | +--ro metric? rt-types:uint24 425 | | +--ro prefix? inet:ip-prefix 426 | | +--ro prefix-options? bits 427 | | +--ro sub-tlvs* 428 | | +--ro unknown-sub-tlv 429 | | +--ro type? uint16 430 | | +--ro length? uint16 431 | | +--ro value? yang:hex-string 432 | +--ro ipv6-link-local-tlv 433 | | +--ro ipv6-link-local-tlv-length? uint16 434 | | +--ro link-local-address? inet:ipv6-address 435 | | +--ro sub-tlvs* 436 | | +--ro unknown-sub-tlv 437 | | +--ro type? uint16 438 | | +--ro length? uint16 439 | | +--ro value? yang:hex-string 440 | +--ro ipv4-link-local-tlv 441 | +--ro ipv4-link-local-tlv-length? uint16 442 | +--ro link-local-address? inet:ipv4-address 443 | +--ro sub-tlvs* 444 | +--ro unknown-sub-tlv 445 | +--ro type? uint16 446 | +--ro length? uint16 447 | +--ro value? yang:hex-string 448 +--ro e-intra-area-prefix 449 +--ro referenced-ls-type? uint16 450 +--ro referenced-link-state-id? uint32 451 +--ro referenced-adv-router? rt-types:router-id 452 +--ro e-intra-prefix-tlvs* 453 +--ro unknown-tlv 454 | +--ro type? uint16 455 | +--ro length? uint16 456 | +--ro value? yang:hex-string 457 +--ro intra-prefix-tlv 458 +--ro intra-prefix-tlv-length? uint16 459 +--ro metric? rt-types:uint24 460 +--ro prefix? inet:ip-prefix 461 +--ro prefix-options? bits 462 +--ro sub-tlvs* 463 +--ro unknown-sub-tlv 464 +--ro type? uint16 465 +--ro length? uint16 466 +--ro value? yang:hex-string 467 augment /rt:routing/rt:control-plane-protocols 468 /rt:control-plane-protocol/ospf:ospf/ospf:database 469 /ospf:as-scope-lsa-type/ospf:as-scope-lsas 470 /ospf:as-scope-lsa/ospf:version/ospf:ospfv3 471 /ospf:ospfv3/ospf:body: 472 +--ro e-router 473 | +--ro flags? bits 474 | +--ro options bits 475 | +--ro e-router-tlvs* 476 | +--ro unknown-tlv 477 | | +--ro type? uint16 478 | | +--ro length? uint16 479 | | +--ro value? yang:hex-string 480 | +--ro link-tlv 481 | +--ro link-tlv-length? uint16 482 | +--ro interface-id? uint32 483 | +--ro neighbor-interface-id? uint32 484 | +--ro neighbor-router-id? rt-types:router-id 485 | +--ro type? uint8 486 | +--ro metric? uint16 487 | +--ro sub-tlvs* 488 | +--ro unknown-sub-tlv 489 | +--ro type? uint16 490 | +--ro length? uint16 491 | +--ro value? yang:hex-string 492 +--ro e-network 493 | +--ro options bits 494 | +--ro e-network-tlvs* 495 | +--ro unknown--tlv 496 | | +--ro type? uint16 497 | | +--ro length? uint16 498 | | +--ro value? yang:hex-string 499 | +--ro attached-router-tlv 500 | +--ro attached-router-tlv-length? uint16 501 | +--ro Adjacent-neighbor-router-id? rt-types:router-id 502 | +--ro sub-tlvs* 503 | +--ro unknown-sub-tlv 504 | +--ro type? uint16 505 | +--ro length? uint16 506 | +--ro value? yang:hex-string 507 +--ro e-inter-area-prefix 508 | +--ro e-inter-prefix-tlvs* 509 | +--ro unknown--tlv 510 | | +--ro type? uint16 511 | | +--ro length? uint16 512 | | +--ro value? yang:hex-string 513 | +--ro inter-prefix-tlv 514 | +--ro inter-prefix-tlv-length? uint16 515 | +--ro metric? rt-types:uint24 516 | +--ro prefix? inet:ip-prefix 517 | +--ro prefix-options? bits 518 | +--ro sub-tlvs* 519 | +--ro unknown-sub-tlv 520 | +--ro type? uint16 521 | +--ro length? uint16 522 | +--ro value? yang:hex-string 523 +--ro e-inter-area-router 524 | +--ro e-inter-router-tlvs* 525 | +--ro unknown-tlv 526 | | +--ro type? uint16 527 | | +--ro length? uint16 528 | | +--ro value? yang:hex-string 529 | +--ro inter-router-tlv 530 | +--ro inter-router-tlv-length? uint16 531 | +--ro flags? bits 532 | +--ro options bits 533 | +--ro metric? rt-types:uint24 534 | +--ro destination-router-id? rt-types:router-id 535 | +--ro sub-tlvs* 536 | +--ro unknown-sub-tlv 537 | +--ro type? uint16 538 | +--ro length? uint16 539 | +--ro value? yang:hex-string 540 +--ro e-as-external 541 | +--ro e-external-tlvs* 542 | +--ro unknown-tlv 543 | | +--ro type? uint16 544 | | +--ro length? uint16 545 | | +--ro value? yang:hex-string 546 | +--ro external-prefix-tlv 547 | +--ro external-prefix-tlv-length? uint16 548 | +--ro flags? bits 549 | +--ro metric? rt-types:uint24 550 | +--ro prefix? inet:ip-prefix 551 | +--ro prefix-options? bits 552 | +--ro sub-tlvs* 553 | +--ro unknown-sub-tlv 554 | | +--ro type? uint16 555 | | +--ro length? uint16 556 | | +--ro value? yang:hex-string 557 | +--ro ipv6-fwd-addr-sub-tlv 558 | | +--ro ipv6-fwd-addr-sub-tlv-length? uint16 559 | | +--ro forwarding-address? inet:ipv6-address 560 | +--ro ipv4-fwd-addr-sub-tlv 561 | | +--ro ipv4-fwd-addr-sub-tlv-length? uint16 562 | | +--ro forwarding-address? inet:ipv4-address 563 | +--ro route-tag-sub-tlv 564 | +--ro route-tag-sub-tlv-length? uint16 565 | +--ro route-tag? uint32 566 +--ro e-nssa 567 | +--ro e-external-tlvs* 568 | +--ro unknown-tlv 569 | | +--ro type? uint16 570 | | +--ro length? uint16 571 | | +--ro value? yang:hex-string 572 | +--ro external-prefix-tlv 573 | +--ro external-prefix-tlv-length? uint16 574 | +--ro flags? bits 575 | +--ro metric? rt-types:uint24 576 | +--ro prefix? inet:ip-prefix 577 | +--ro prefix-options? bits 578 | +--ro sub-tlvs* 579 | +--ro unknown-sub-tlv 580 | | +--ro type? uint16 581 | | +--ro length? uint16 582 | | +--ro value? yang:hex-string 583 | +--ro ipv6-fwd-addr-sub-tlv 584 | | +--ro ipv6-fwd-addr-sub-tlv-length? uint16 585 | | +--ro forwarding-address? inet:ipv6-address 586 | +--ro ipv4-fwd-addr-sub-tlv 587 | | +--ro ipv4-fwd-addr-sub-tlv-length? uint16 588 | | +--ro forwarding-address? inet:ipv4-address 589 | +--ro route-tag-sub-tlv 590 | +--ro route-tag-sub-tlv-length? uint16 591 | +--ro route-tag? uint32 592 +--ro e-link 593 | +--ro rtr-priority? uint8 594 | +--ro options bits 595 | +--ro e-link-tlvs* 596 | +--ro unknown-tlv 597 | | +--ro type? uint16 598 | | +--ro length? uint16 599 | | +--ro value? yang:hex-string 600 | +--ro intra-prefix-tlv 601 | | +--ro intra-prefix-tlv-length? uint16 602 | | +--ro metric? rt-types:uint24 603 | | +--ro prefix? inet:ip-prefix 604 | | +--ro prefix-options? bits 605 | | +--ro sub-tlvs* 606 | | +--ro unknown-sub-tlv 607 | | +--ro type? uint16 608 | | +--ro length? uint16 609 | | +--ro value? yang:hex-string 610 | +--ro ipv6-link-local-tlv 611 | | +--ro ipv6-link-local-tlv-length? uint16 612 | | +--ro link-local-address? inet:ipv6-address 613 | | +--ro sub-tlvs* 614 | | +--ro unknown-sub-tlv 615 | | +--ro type? uint16 616 | | +--ro length? uint16 617 | | +--ro value? yang:hex-string 618 | +--ro ipv4-link-local-tlv 619 | +--ro ipv4-link-local-tlv-length? uint16 620 | +--ro link-local-address? inet:ipv4-address 621 | +--ro sub-tlvs* 622 | +--ro unknown-sub-tlv 623 | +--ro type? uint16 624 | +--ro length? uint16 625 | +--ro value? yang:hex-string 626 +--ro e-intra-area-prefix 627 +--ro referenced-ls-type? uint16 628 +--ro referenced-link-state-id? uint32 629 +--ro referenced-adv-router? rt-types:router-id 630 +--ro e-intra-prefix-tlvs* 631 +--ro unknown-tlv 632 | +--ro type? uint16 633 | +--ro length? uint16 634 | +--ro value? yang:hex-string 635 +--ro intra-prefix-tlv 636 +--ro intra-prefix-tlv-length? uint16 637 +--ro metric? rt-types:uint24 638 +--ro prefix? inet:ip-prefix 639 +--ro prefix-options? bits 640 +--ro sub-tlvs* 641 +--ro unknown-sub-tlv 642 +--ro type? uint16 643 +--ro length? uint16 644 +--ro value? yang:hex-string 646 3. OSPFv3 Extended LSA Yang Module 648 file "ietf-ospfv3-extended-lsa@2019-07-05.yang" 649 module ietf-ospfv3-extended-lsa { 650 yang-version 1.1; 651 namespace 652 "urn:ietf:params:xml:ns:yang:ietf-ospfv3-extended-lsa"; 654 prefix ospfv3-e-lsa; 656 import ietf-routing-types { 657 prefix "rt-types"; 658 } 660 import ietf-inet-types { 661 prefix "inet"; 662 reference "RFC 6021 - Common YANG Data Types"; 663 } 665 import ietf-routing { 666 prefix "rt"; 667 reference "RFC 8349 - A YANG Data Model for Routing 668 Management (NMDA Version)"; 669 } 670 import ietf-ospf { 671 prefix "ospf"; 672 reference "RFC XXXX - A YANG Data Model for OSPF 673 Protocol"; 674 } 676 organization 677 "IETF LSR - Link State Routing Working Group"; 679 contact 680 "WG Web: 681 WG List: 683 Author: Acee Lindem 684 685 Author: Sharmila Palani 686 687 Author: Yingzhen Qu 688 "; 690 description 691 "This YANG module defines the configuration 692 and operational state for OSPFv3 Extended LSAs, which is 693 common across all of the vendor implementations. 695 Copyright (c) 2019 IETF Trust and the persons identified as 696 authors of the code. All rights reserved. 698 Redistribution and use in source and binary forms, with or 699 without modification, is permitted pursuant to, and subject 700 to the license terms contained in, the Simplified BSD License 701 set forth in Section 4.c of the IETF Trust's Legal Provisions 702 Relating to IETF Documents 703 (http://trustee.ietf.org/license-info). 705 This version of this YANG module is part of RFC XXXX; 706 see the RFC itself for full legal notices."; 708 reference "RFC XXXX"; 709 revision 2019-07-05 { 710 description 711 "Initial revision."; 712 reference 713 "RFC XXXX: A YANG Data Model for OSPFv3 Extended LSAs."; 714 } 716 feature extended-lsa-support { 717 description 718 "Support for OSPFv3 Extended LSAs"; 719 reference 720 "RFC 8362 - OSPFv3 Link State Advertisement (LSA) 721 Extensibility"; 722 } 724 /* 725 * OSPFv3 Extend LSA Type Identities 726 */ 727 identity ospfv3-e-router-lsa { 728 base ospf:ospfv3-lsa-type; 729 description 730 "OSPFv3 Extended Router LSA - Type 0xA021"; 731 } 733 identity ospfv3-e-network-lsa { 734 base ospf:ospfv3-lsa-type; 735 description 736 "OSPFv3 Extended Network LSA - Type 0xA022"; 737 } 739 identity ospfv3-e-summary-lsa-type { 740 base ospf:ospfv3-lsa-type; 741 description 742 "OSPFv3 Extended Summary LSA types"; 743 } 745 identity ospfv3-e-inter-area-prefix-lsa { 746 base ospfv3-e-summary-lsa-type; 747 description 748 "OSPFv3 Extended Inter-area Prefix LSA - Type 0xA023"; 749 } 751 identity ospfv3-e-inter-area-router-lsa { 752 base ospfv3-e-summary-lsa-type; 753 description 754 "OSPFv3 Exteneded Inter-area Router LSA - Type 0xA024"; 755 } 757 identity ospfv3-e-external-lsa-type { 758 base ospf:ospfv3-lsa-type; 759 description 760 "OSPFv3 Extended External LSA types"; 761 } 763 identity ospfv3-e-as-external-lsa { 764 base ospfv3-e-external-lsa-type; 765 description 766 "OSPFv3 Extended AS-External LSA - Type 0xC025"; 767 } 769 identity ospfv3-e-nssa-lsa { 770 base ospfv3-e-external-lsa-type; 771 description 772 "OSPFv3 Extended Not-So-Stubby-Area (NSSA) LSA - 773 Type 0xA027"; 774 } 776 identity ospfv3-e-link-lsa { 777 base ospf:ospfv3-lsa-type; 778 description 779 "OSPFv3 Extended Link LSA - Type 0x8028"; 780 } 782 identity ospfv3-e-intra-area-prefix-lsa { 783 base ospf:ospfv3-lsa-type; 784 description 785 "OSPFv3 Extended Intra-area Prefix LSA - Type 0xA029"; 786 } 788 grouping unknown-sub-tlv { 789 description 790 "Unknown TLV grouping"; 791 container unknown-sub-tlv { 792 uses ospf:tlv; 793 description "Unknown External TLV Sub-TLV"; 794 } 795 } 797 grouping ospfv3-lsa-prefix { 798 description 799 "OSPFv3 LSA prefix"; 801 leaf prefix { 802 type inet:ip-prefix; 803 description 804 "LSA Prefix"; 805 } 806 leaf prefix-options { 807 type bits { 808 bit NU { 809 description 810 "When set, the prefix should be excluded 811 from IPv6 unicast calculations."; 812 } 813 bit LA { 814 description 815 "When set, the prefix is actually an IPv6 interface 816 address of the Advertising Router."; 817 } 818 bit P { 819 description 820 "When set, the NSSA area prefix should be 821 translated to an AS External LSA and readvertised 822 by the translating NSSA Border Router."; 823 } 824 bit DN { 825 description 826 "When set, the inter-area-prefix LSA or 827 AS-external LSA prefix has been advertised as an 828 L3VPN prefix."; 829 } 830 } 831 description "Prefix options"; 832 } 833 } 835 grouping ipv6-fwd-addr-sub-tlv { 836 container ipv6-fwd-addr-sub-tlv { 837 description 838 "IPv6 Forwarding Address Sub-TLV"; 839 leaf ipv6-fwd-addr-sub-tlv-length { 840 type uint16; 841 description 842 "IPv6 Forwarding Addrss Sub-TLV Length - 16 843 for IPv6 address"; 844 } 845 leaf forwarding-address { 846 type inet:ipv6-address; 847 description 848 "Forwarding address"; 849 } 850 } 851 description 852 "IPv6 Forwarding Address Sub-TLV grouping"; 853 } 855 grouping ipv4-fwd-addr-sub-tlv { 856 container ipv4-fwd-addr-sub-tlv { 857 description 858 "IPv4 Forwarding Address Sub-TLV"; 859 leaf ipv4-fwd-addr-sub-tlv-length { 860 type uint16; 861 description 862 "IPv4 Forwarding Addrss Sub-TLV Length - 4 863 for IPv4 address"; 864 } 865 leaf forwarding-address { 866 type inet:ipv4-address; 867 description 868 "Forwarding address"; 869 } 870 } 871 description 872 "IPv4 Forwarding Address Sub-TLV grouping"; 873 } 875 grouping route-tag-sub-tlv { 876 container route-tag-sub-tlv { 877 description 878 "Route Tag Sub-TLV"; 879 leaf route-tag-sub-tlv-length { 880 type uint16; 881 description 882 "Route Tag Sub-TLV Length - 4 for 32-bit tag"; 883 } 884 leaf route-tag { 885 type uint32; 886 description 887 "Route Tag"; 888 } 889 } 890 description 891 "Route Tag Sub-TLV grouping"; 892 } 894 grouping external-prefix-tlv { 895 container external-prefix-tlv { 896 description "External Prefix LSA TLV"; 897 leaf external-prefix-tlv-length { 898 type uint16; 899 description 900 "External Prefix TLV Length - Variable dependent 901 on sub-TLVs"; 902 } 903 leaf flags { 904 type bits { 905 bit E { 906 description 907 "When set, the metric specified is a Type 2 908 external metric."; 910 } 911 } 912 description "External Prefix Flags"; 913 } 914 leaf metric { 915 type rt-types:uint24; 916 description "External Prefix Metric"; 917 } 918 uses ospfv3-lsa-prefix; 919 list sub-tlvs { 920 description "External Prefix TLV Sub-TLVs"; 921 uses unknown-sub-tlv; 922 uses ipv6-fwd-addr-sub-tlv; 923 uses ipv4-fwd-addr-sub-tlv; 924 uses route-tag-sub-tlv; 925 } 926 } 927 description "External Prefix TLV Grouping"; 928 } 930 grouping intra-area-prefix-tlv { 931 container intra-prefix-tlv { 932 description "Intra-Area Prefix LSA TLV"; 933 leaf intra-prefix-tlv-length { 934 type uint16; 935 description 936 "Intra-Area Prefix TLV Length - Variable dependent 937 on sub-TLVs"; 938 } 939 leaf metric { 940 type rt-types:uint24; 941 description "Intra-Area Prefix Metric"; 942 } 943 uses ospfv3-lsa-prefix; 944 list sub-tlvs { 945 description "Intra-Area Prefix TLV Sub-TLVs"; 946 uses unknown-sub-tlv; 947 } 948 } 949 description "Intra-Area Prefix TLV Grouping"; 950 } 952 grouping ipv6-link-local-tlv { 953 container ipv6-link-local-tlv { 954 description "IPv6 Link-Local LSA TLV"; 955 leaf ipv6-link-local-tlv-length { 956 type uint16; 957 description 958 "IPv6 Link-Local TLV Length - Variable dependent 959 on sub-TLVs"; 960 } 961 leaf link-local-address { 962 type inet:ipv6-address; 963 description 964 "IPv6 Link Local address"; 965 } 966 list sub-tlvs { 967 description "IPv6 Link Local TLV Sub-TLVs"; 968 uses unknown-sub-tlv; 969 } 970 } 971 description "IPv6 Link-Local TLV Grouping"; 972 } 974 grouping ipv4-link-local-tlv { 975 container ipv4-link-local-tlv { 976 description "IPv6 Link-Local LSA TLV"; 977 leaf ipv4-link-local-tlv-length { 978 type uint16; 979 description 980 "IPv4 Link-Local TLV Length - Variable dependent 981 on sub-TLVs"; 982 } 983 leaf link-local-address { 984 type inet:ipv4-address; 985 description 986 "IPv4 Link Local address"; 987 } 988 list sub-tlvs { 989 description "IPv4 Link Local TLV Sub-TLVs"; 990 uses unknown-sub-tlv; 991 } 992 } 993 description "IPv4 Link-Local TLV Grouping"; 994 } 996 grouping ospfv3-e-lsa-body { 997 description "OSPFv3 Extended LSA body."; 998 container e-router { 999 when "derived-from(../../ospf:header/ospf:type, " 1000 + "'ospfv3-e-router-lsa')" { 1001 description "Only valid for OSPFv3 Extended-Router LSAs"; 1002 } 1003 description "OSPv3 Extended Router LSA"; 1004 uses ospf:ospf-router-lsa-flags; 1005 uses ospf:ospfv3-lsa-options; 1006 list e-router-tlvs { 1007 description "E-Router LSA TLVs"; 1008 container unknown-tlv { 1009 uses ospf:tlv; 1010 description "Unknown E-Router TLV"; 1011 } 1012 container link-tlv { 1013 description "E-Router LSA TLV"; 1014 leaf link-tlv-length { 1015 type uint16; 1016 description 1017 "Link TLV Length - Variable dependent on sub-TLVs"; 1018 } 1019 leaf interface-id { 1020 type uint32; 1021 description "Interface ID for link"; 1022 } 1023 leaf neighbor-interface-id { 1024 type uint32; 1025 description "Neighbor's Interface ID for link"; 1026 } 1027 leaf neighbor-router-id { 1028 type rt-types:router-id; 1029 description "Neighbor's Router ID for link"; 1030 } 1031 leaf type { 1032 type uint8; 1033 description "Link type: 1 - Point-to-Point Link 1034 2 - Transit Network Link 1035 3 - Stub Network Link Link 1036 4 - Virtual Link"; 1037 } 1038 leaf metric { 1039 type uint16; 1040 description "Link Metric"; 1041 } 1042 list sub-tlvs { 1043 description "Link TLV Sub-TLVs"; 1044 uses unknown-sub-tlv; 1045 } 1046 } 1047 } 1048 } 1050 container e-network { 1051 when "derived-from(../../ospf:header/ospf:type, " 1052 + "'ospfv3-e-network-lsa')" { 1053 description 1054 "Only applies to E-Network LSAs."; 1055 } 1056 description "Extended Network LSA"; 1057 uses ospf:ospfv3-lsa-options; 1058 list e-network-tlvs { 1059 description "E-Network LSA TLVs"; 1060 container unknown--tlv { 1061 uses ospf:tlv; 1062 description "Unknown E-Network TLV"; 1063 } 1064 container attached-router-tlv { 1065 description "Attached Router TLV"; 1066 leaf attached-router-tlv-length { 1067 type uint16; 1068 description 1069 "Attached Router TLV Length - Variable dependent 1070 on sub-TLVs"; 1071 } 1072 leaf Adjacent-neighbor-router-id { 1073 type rt-types:router-id; 1074 description "Adjacent Neighbor's Router ID"; 1075 } 1076 list sub-tlvs { 1077 description "Attached Router TLV Sub-TLVs"; 1078 uses unknown-sub-tlv; 1079 } 1080 } 1081 } 1082 } 1084 container e-inter-area-prefix { 1085 when "derived-from(../../ospf:header/ospf:type, " 1086 + "'ospfv3-e-inter-area-prefix-lsa')" { 1087 description 1088 "Only applies to E-Inter-Area-Prefix LSAs."; 1089 } 1090 description "Extended Inter-Area Prefix LSA"; 1091 list e-inter-prefix-tlvs { 1092 description "E-Inter-Area-Prefix LSA TLVs"; 1093 container unknown--tlv { 1094 uses ospf:tlv; 1095 description "Unknown E-Inter-Area-Prefix TLV"; 1096 } 1097 container inter-prefix-tlv { 1098 description "Unknown E-Inter-Area-Prefix LSA TLV"; 1099 leaf inter-prefix-tlv-length { 1100 type uint16; 1101 description 1102 "Inter-Area-Prefix TLV Length - Variable dependent 1103 on sub-TLVs"; 1104 } 1105 leaf metric { 1106 type rt-types:uint24; 1107 description "Inter-Area Prefix Metric"; 1108 } 1109 uses ospfv3-lsa-prefix; 1110 list sub-tlvs { 1111 description "Inter-Area Prefix TLV Sub-TLVs"; 1112 uses unknown-sub-tlv; 1113 } 1114 } 1115 } 1116 } 1118 container e-inter-area-router { 1119 when "derived-from(../../ospf:header/ospf:type, " 1120 + "'ospfv3-e-inter-area-router-lsa')" { 1121 description 1122 "Only applies to E-Inter-Area-Router LSAs."; 1123 } 1124 description "Extended Inter-Area Router LSA"; 1125 list e-inter-router-tlvs { 1126 description "E-Inter-Area-Router LSA TLVs"; 1127 container unknown-tlv { 1128 uses ospf:tlv; 1129 description "Unknown E-Inter-Area-Router TLV"; 1130 } 1131 container inter-router-tlv { 1132 description "Unknown E-Inter-Area-Router LSA TLV"; 1133 leaf inter-router-tlv-length { 1134 type uint16; 1135 description 1136 "Inter-Area-Router TLV Length - Variable dependent 1137 on sub-TLVs"; 1138 } 1139 uses ospf:ospf-router-lsa-flags; 1140 uses ospf:ospfv3-lsa-options; 1141 leaf metric { 1142 type rt-types:uint24; 1143 description "Inter-Area Router Metric"; 1144 } 1145 leaf destination-router-id { 1146 type rt-types:router-id; 1147 description "Destination Router ID"; 1148 } 1149 list sub-tlvs { 1150 description "Inter-Area Router TLV Sub-TLVs"; 1151 uses unknown-sub-tlv; 1152 } 1153 } 1154 } 1155 } 1157 container e-as-external { 1158 when "derived-from-or-self(../../ospf:header/ospf:type, " 1159 + "'ospfv3-e-as-external-lsa')" { 1160 description 1161 "Only applies to E-AS-external LSAs."; 1162 } 1163 list e-external-tlvs { 1164 description "E-External LSA TLVs"; 1165 container unknown-tlv { 1166 uses ospf:tlv; 1167 description "Unknown E-External TLV"; 1168 } 1169 uses external-prefix-tlv; 1170 } 1171 description "E-AS-External LSA."; 1172 } 1174 container e-nssa { 1175 when "derived-from-or-self(../../ospf:header/ospf:type, " 1176 + "'ospfv3-e-nssa-lsa')" { 1177 description 1178 "Only applies to E-NSSA LSAs."; 1179 } 1180 list e-external-tlvs { 1181 description "E-NSSA LSA TLVs"; 1182 container unknown-tlv { 1183 uses ospf:tlv; 1184 description "Unknown E-External TLV"; 1185 } 1186 uses external-prefix-tlv; 1187 } 1188 description "E-NSSA LSA."; 1189 } 1191 container e-link { 1192 when "derived-from-or-self(../../ospf:header/ospf:type, " 1193 + "'ospfv3-e-link-lsa')" { 1194 description 1195 "Only applies to Extended Link LSAs."; 1196 } 1197 description "E-Link LSA"; 1198 leaf rtr-priority { 1199 type uint8; 1200 description "Router Priority for the interface."; 1201 } 1202 uses ospf:ospfv3-lsa-options; 1203 list e-link-tlvs { 1204 description "E-Link LSA TLVs"; 1205 container unknown-tlv { 1206 uses ospf:tlv; 1207 description "Unknown E-Link TLV"; 1208 } 1209 uses intra-area-prefix-tlv; 1210 uses ipv6-link-local-tlv; 1211 uses ipv4-link-local-tlv; 1212 } 1213 } 1215 container e-intra-area-prefix { 1216 when "derived-from-or-self(../../ospf:header/ospf:type, " 1217 + "'ospfv3-e-intra-area-prefix-lsa')" { 1218 description 1219 "Only applies to E-Intra-Area-Prefix LSAs."; 1220 } 1221 description "E-Intra-Area-Prefix LSA"; 1222 leaf referenced-ls-type { 1223 type uint16; 1224 description "Referenced Link State type"; 1225 } 1226 leaf referenced-link-state-id { 1227 type uint32; 1228 description 1229 "Referenced Link State ID"; 1230 } 1231 leaf referenced-adv-router { 1232 type rt-types:router-id; 1233 description 1234 "Referenced Advertising Router"; 1235 } 1236 list e-intra-prefix-tlvs { 1237 description "E-Intra-Area-Prefix LSA TLVs"; 1238 container unknown-tlv { 1239 uses ospf:tlv; 1240 description "Unknown E-Intra-Area-Prefix TLV"; 1241 } 1242 uses intra-area-prefix-tlv; 1243 } 1244 } 1245 } 1246 /* Configuration */ 1247 augment "/rt:routing/rt:control-plane-protocols" 1248 + "/rt:control-plane-protocol/ospf:ospf" { 1249 when "/rt:routing/rt:control-plane-protocols" 1250 + "/rt:control-plane-protocol/rt:type = 'ospf:ospfv3'" { 1251 description 1252 "This augments the OSPFv3 routing protocol when used."; 1253 } 1254 description 1255 "This augments the OSPFv3 protocol configuration 1256 with segment routing."; 1257 leaf extended-lsa-support { 1258 if-feature extended-lsa-support; 1259 type boolean; 1260 default false; 1261 description 1262 "Enable OSPFv3 Extended LSA Support for the OSPFv3 1263 domain"; 1264 } 1265 } 1267 augment "/rt:routing/rt:control-plane-protocols/" 1268 + "rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area" { 1269 when "'ospf:../../../../../rt:type' = 'ospf:ospfv3'" { 1270 description 1271 "This augments the OSPFv3 area configuration 1272 when used."; 1273 } 1274 description 1275 "This augments the OSPFv3 protocol area 1276 configuration with Extend LSA support"; 1277 leaf extended-lsa-support { 1278 if-feature extended-lsa-support; 1279 type boolean; 1280 default false; 1281 description 1282 "Enable OSPFv3 Extended LSA Support for the OSPFv3 area"; 1283 } 1284 } 1286 /* 1287 * Link State Database (LSDB) Augmentations 1288 */ 1289 augment "/rt:routing/" 1290 + "rt:control-plane-protocols/rt:control-plane-protocol/" 1291 + "ospf:ospf/ospf:areas/ospf:area/" 1292 + "ospf:interfaces/ospf:interface/ospf:database/" 1293 + "ospf:link-scope-lsa-type/ospf:link-scope-lsas/" 1294 + "ospf:link-scope-lsa/ospf:version/ospf:ospfv3/" 1295 + "ospf:ospfv3/ospf:body" { 1296 when "/rt:routing/rt:control-plane-protocols" 1297 + "/rt:control-plane-protocol/rt:type = 'ospf:ospfv3'" { 1298 description 1299 "This augmentation is only valid for OSPFv3."; 1300 } 1301 uses ospfv3-e-lsa-body; 1302 description 1303 "OSPFv3 Link-Scoped Extended LSAs"; 1304 } 1306 augment "/rt:routing/" 1307 + "rt:control-plane-protocols/rt:control-plane-protocol/" 1308 + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" 1309 + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" 1310 + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" 1311 + "ospf:ospfv3/ospf:body" { 1312 when "../../../../../../../../../" 1313 + "rt:type = 'ospf:ospfv3'" { 1314 description 1315 "This augmentation is only valid for OSPFv3 1316 E-Router LSAs"; 1317 } 1318 uses ospfv3-e-lsa-body; 1319 description 1320 "OSPFv3 Area-Scoped Extended LSAs"; 1321 } 1323 augment "/rt:routing/" 1324 + "rt:control-plane-protocols/rt:control-plane-protocol/" 1325 + "ospf:ospf/ospf:database/" 1326 + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" 1327 + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" 1328 + "ospf:ospfv3/ospf:body" { 1329 when "'ospf:../../../../../../../../../" 1330 + "rt:type' = 'ospf:ospfv3'" { 1331 description 1332 "This augmentation is only valid for OSPFv3."; 1333 } 1334 uses ospfv3-e-lsa-body; 1335 description 1336 "OSPFv3 AS-Scoped Extended LSAs"; 1337 } 1338 } 1339 1341 4. Security Considerations 1343 The YANG modules specified in this document define a schema for data 1344 that is designed to be accessed via network management protocols such 1345 as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer 1346 is the secure transport layer, and the mandatory-to-implement secure 1347 transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer 1348 is HTTPS, and the mandatory-to-implement secure transport is TLS 1349 [RFC5246]. 1351 The NETCONF access control model [RFC6536] provides the means to 1352 restrict access for particular NETCONF or RESTCONF users to a pre- 1353 configured subset of all available NETCONF or RESTCONF protocol 1354 operations and content. 1356 There are a number of data nodes defined in ietf-ospfv3-extended- 1357 lsa.yang module that are writable/creatable/deletable (i.e., config 1358 true, which is the default). These data nodes may be considered 1359 sensitive or vulnerable in some network environments. Write 1360 operations (e.g., edit-config) to these data nodes without proper 1361 protection can have a negative effect on network operations. For 1362 OSPFv3 Extended LSAs, the ability to disable OSPFv3 Extended LSA 1363 support result in a denial of service. 1365 Some of the readable data nodes in the ietf-ospfv3-extended-lsa.yang 1366 module may be considered sensitive or vulnerable in some network 1367 environments. It is thus important to control read access (e.g., via 1368 get, get-config, or notification) to these data nodes. The exposure 1369 of the Link State Database (LSDB) will expose the detailed topology 1370 of the network. This may be undesirable since both due to the fact 1371 that exposure may facilitate other attacks. Additionally, network 1372 operators may consider their topologies to be sensitive confidential 1373 data. 1375 5. IANA Considerations 1377 This document registers a URI in the IETF XML registry [RFC3688]. 1378 Following the format in [RFC3688], the following registration is 1379 requested to be made: 1381 URI: urn:ietf:params:xml:ns:yang:ietf-ospfv3-extended-lsa 1382 Registrant Contact: The IESG. 1383 XML: N/A, the requested URI is an XML namespace. 1385 This document registers a YANG module in the YANG Module Names 1386 registry [RFC6020]. 1388 name: ietf-ospfv3-extended-lsa 1389 namespace: urn:ietf:params:xml:ns:yang:ietf-ospfv3-extended-lsa 1390 prefix: ospfv3-e-lsa 1391 reference: RFC XXXX 1393 6. Acknowledgements 1395 This document was produced using Marshall Rose's xml2rfc tool. 1397 The YANG model was developed using the suite of YANG tools written 1398 and maintained by numerous authors. 1400 7. References 1402 7.1. Normative References 1404 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1405 Requirement Levels", BCP 14, RFC 2119, 1406 DOI 10.17487/RFC2119, March 1997, 1407 . 1409 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 1410 DOI 10.17487/RFC3688, January 2004, 1411 . 1413 [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security 1414 (TLS) Protocol Version 1.2", RFC 5246, 1415 DOI 10.17487/RFC5246, August 2008, 1416 . 1418 [RFC5340] Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF 1419 for IPv6", RFC 5340, DOI 10.17487/RFC5340, July 2008, 1420 . 1422 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 1423 the Network Configuration Protocol (NETCONF)", RFC 6020, 1424 DOI 10.17487/RFC6020, October 2010, 1425 . 1427 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 1428 and A. Bierman, Ed., "Network Configuration Protocol 1429 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 1430 . 1432 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 1433 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 1434 . 1436 [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration 1437 Protocol (NETCONF) Access Control Model", RFC 6536, 1438 DOI 10.17487/RFC6536, March 2012, 1439 . 1441 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 1442 RFC 7950, DOI 10.17487/RFC7950, August 2016, 1443 . 1445 [RFC8022] Lhotka, L. and A. Lindem, "A YANG Data Model for Routing 1446 Management", RFC 8022, DOI 10.17487/RFC8022, November 1447 2016, . 1449 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 1450 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 1451 . 1453 [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for 1454 Routing Management (NMDA Version)", RFC 8349, 1455 DOI 10.17487/RFC8349, March 2018, 1456 . 1458 [RFC8362] Lindem, A., Roy, A., Goethals, D., Reddy Vallem, V., and 1459 F. Baker, "OSPFv3 Link State Advertisement (LSA) 1460 Extensibility", RFC 8362, DOI 10.17487/RFC8362, April 1461 2018, . 1463 7.2. Informative References 1465 [I-D.ietf-ospf-yang] 1466 Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, 1467 "YANG Data Model for OSPF Protocol", draft-ietf-ospf- 1468 yang-23 (work in progress), July 2019. 1470 Authors' Addresses 1472 Acee Lindem 1473 Cisco Systems 1474 301 Midenhall Way 1475 Cary, NC 27513 1477 EMail: acee@cisco.com 1478 Sharmila Palani 1479 Cisco Systems 1480 170 West Tasman Drive 1481 San Jose, CA 95134 1483 EMail: shpalani@cisco.com 1485 Yingzhen Qu 1486 Futurewei 1487 2330 Central Expressway 1488 Santa Clara, CA 95050 1489 USA 1491 EMail: yingzhen.qu@futurewei.com