idnits 2.17.1 draft-acee-lsr-ospfv3-extended-lsa-yang-06.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 8 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 (August 13, 2019) is 1716 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-26 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: February 14, 2020 Y. Qu 6 Futurewei 7 August 13, 2019 9 YANG Model for OSPFv3 Extended LSAs 10 draft-acee-lsr-ospfv3-extended-lsa-yang-06 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 February 14, 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 . . . . . . . . . . . . . . . 11 57 4. Security Considerations . . . . . . . . . . . . . . . . . . . 26 58 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 27 59 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 28 60 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 28 61 7.1. Normative References . . . . . . . . . . . . . . . . . . 28 62 7.2. Informative References . . . . . . . . . . . . . . . . . 29 63 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 29 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 augment /rt:routing/rt:control-plane-protocols 117 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 118 /ospf:database/ospf:area-scope-lsa-type 119 /ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version 120 /ospf:ospfv3/ospf:ospfv3/ospf:body: 121 +--ro e-router 122 | +--ro router-bits 123 | | +--ro rtr-lsa-bits* identityref 124 | +--ro lsa-options 125 | | +--ro lsa-options* identityref 126 | +--ro e-router-tlvs* 127 | +--ro unknown-tlv 128 | | +--ro type? uint16 129 | | +--ro length? uint16 130 | | +--ro value? yang:hex-string 131 | +--ro link-tlv 132 | +--ro link-tlv-length? uint16 133 | +--ro interface-id? uint32 134 | +--ro neighbor-interface-id? uint32 135 | +--ro neighbor-router-id? rt-types:router-id 136 | +--ro type? uint8 137 | +--ro metric? uint16 138 | +--ro sub-tlvs* 139 | +--ro unknown-sub-tlv 140 | +--ro type? uint16 141 | +--ro length? uint16 142 | +--ro value? yang:hex-string 143 +--ro e-network 144 | +--ro lsa-options 145 | | +--ro lsa-options* identityref 146 | +--ro e-network-tlvs* 147 | +--ro unknown--tlv 148 | | +--ro type? uint16 149 | | +--ro length? uint16 150 | | +--ro value? yang:hex-string 151 | +--ro attached-router-tlv 152 | +--ro attached-router-tlv-length? uint16 153 | +--ro Adjacent-neighbor-router-id? rt-types:router-id 154 | +--ro sub-tlvs* 155 | +--ro unknown-sub-tlv 156 | +--ro type? uint16 157 | +--ro length? uint16 158 | +--ro value? yang:hex-string 159 +--ro e-inter-area-prefix 160 | +--ro e-inter-prefix-tlvs* 161 | +--ro unknown--tlv 162 | | +--ro type? uint16 163 | | +--ro length? uint16 164 | | +--ro value? yang:hex-string 165 | +--ro inter-prefix-tlv 166 | +--ro inter-prefix-tlv-length? uint16 167 | +--ro metric? rt-types:uint24 168 | +--ro prefix? inet:ip-prefix 169 | +--ro prefix-options 170 | | +--ro prefix-options* identityref 171 | +--ro prefix-length? uint8 172 | +--ro sub-tlvs* 173 | +--ro unknown-sub-tlv 174 | +--ro type? uint16 175 | +--ro length? uint16 176 | +--ro value? yang:hex-string 177 +--ro e-inter-area-router 178 | +--ro e-inter-router-tlvs* 179 | +--ro unknown-tlv 180 | | +--ro type? uint16 181 | | +--ro length? uint16 182 | | +--ro value? yang:hex-string 183 | +--ro inter-router-tlv 184 | +--ro inter-router-tlv-length? uint16 185 | +--ro router-bits 186 | | +--ro rtr-lsa-bits* identityref 187 | +--ro lsa-options 188 | | +--ro lsa-options* identityref 189 | +--ro metric? rt-types:uint24 190 | +--ro destination-router-id? rt-types:router-id 191 | +--ro sub-tlvs* 192 | +--ro unknown-sub-tlv 193 | +--ro type? uint16 194 | +--ro length? uint16 195 | +--ro value? yang:hex-string 196 +--ro e-as-external 197 | +--ro e-external-tlvs* 198 | +--ro unknown-tlv 199 | | +--ro type? uint16 200 | | +--ro length? uint16 201 | | +--ro value? yang:hex-string 202 | +--ro external-prefix-tlv 203 | +--ro external-prefix-tlv-length? uint16 204 | +--ro flags 205 | | +--ro ospfv3-e-external-prefix-bits* identityref 206 | +--ro metric? rt-types:uint24 207 | +--ro prefix? inet:ip-prefix 208 | +--ro prefix-options 209 | | +--ro prefix-options* identityref 210 | +--ro prefix-length? uint8 211 | +--ro sub-tlvs* 212 | +--ro unknown-sub-tlv 213 | | +--ro type? uint16 214 | | +--ro length? uint16 215 | | +--ro value? yang:hex-string 216 | +--ro ipv6-fwd-addr-sub-tlv 217 | | +--ro ipv6-fwd-addr-sub-tlv-length? uint16 218 | | +--ro forwarding-address? inet:ipv6-address 219 | +--ro ipv4-fwd-addr-sub-tlv 220 | | +--ro ipv4-fwd-addr-sub-tlv-length? uint16 221 | | +--ro forwarding-address? inet:ipv4-address 222 | +--ro route-tag-sub-tlv 223 | +--ro route-tag-sub-tlv-length? uint16 224 | +--ro route-tag? uint32 225 +--ro e-nssa 226 | +--ro e-external-tlvs* 227 | +--ro unknown-tlv 228 | | +--ro type? uint16 229 | | +--ro length? uint16 230 | | +--ro value? yang:hex-string 231 | +--ro external-prefix-tlv 232 | +--ro external-prefix-tlv-length? uint16 233 | +--ro flags 234 | | +--ro ospfv3-e-external-prefix-bits* identityref 235 | +--ro metric? rt-types:uint24 236 | +--ro prefix? inet:ip-prefix 237 | +--ro prefix-options 238 | | +--ro prefix-options* identityref 239 | +--ro prefix-length? uint8 240 | +--ro sub-tlvs* 241 | +--ro unknown-sub-tlv 242 | | +--ro type? uint16 243 | | +--ro length? uint16 244 | | +--ro value? yang:hex-string 245 | +--ro ipv6-fwd-addr-sub-tlv 246 | | +--ro ipv6-fwd-addr-sub-tlv-length? uint16 247 | | +--ro forwarding-address? inet:ipv6-address 248 | +--ro ipv4-fwd-addr-sub-tlv 249 | | +--ro ipv4-fwd-addr-sub-tlv-length? uint16 250 | | +--ro forwarding-address? inet:ipv4-address 251 | +--ro route-tag-sub-tlv 252 | +--ro route-tag-sub-tlv-length? uint16 253 | +--ro route-tag? uint32 254 +--ro e-link 255 | +--ro rtr-priority? uint8 256 | +--ro lsa-options 257 | | +--ro lsa-options* identityref 258 | +--ro e-link-tlvs* 259 | +--ro unknown-tlv 260 | | +--ro type? uint16 261 | | +--ro length? uint16 262 | | +--ro value? yang:hex-string 263 | +--ro intra-prefix-tlv 264 | | +--ro intra-prefix-tlv-length? uint16 265 | | +--ro metric? rt-types:uint24 266 | | +--ro prefix? inet:ip-prefix 267 | | +--ro prefix-options 268 | | | +--ro prefix-options* identityref 269 | | +--ro prefix-length? uint8 270 | | +--ro sub-tlvs* 271 | | +--ro unknown-sub-tlv 272 | | +--ro type? uint16 273 | | +--ro length? uint16 274 | | +--ro value? yang:hex-string 275 | +--ro ipv6-link-local-tlv 276 | | +--ro ipv6-link-local-tlv-length? uint16 277 | | +--ro link-local-address? inet:ipv6-address 278 | | +--ro sub-tlvs* 279 | | +--ro unknown-sub-tlv 280 | | +--ro type? uint16 281 | | +--ro length? uint16 282 | | +--ro value? yang:hex-string 283 | +--ro ipv4-link-local-tlv 284 | +--ro ipv4-link-local-tlv-length? uint16 285 | +--ro link-local-address? inet:ipv4-address 286 | +--ro sub-tlvs* 287 | +--ro unknown-sub-tlv 288 | +--ro type? uint16 289 | +--ro length? uint16 290 | +--ro value? yang:hex-string 291 +--ro e-intra-area-prefix 292 +--ro referenced-ls-type? uint16 293 +--ro referenced-link-state-id? uint32 294 +--ro referenced-adv-router? rt-types:router-id 295 +--ro e-intra-prefix-tlvs* 296 +--ro unknown-tlv 297 | +--ro type? uint16 298 | +--ro length? uint16 299 | +--ro value? yang:hex-string 300 +--ro intra-prefix-tlv 301 +--ro intra-prefix-tlv-length? uint16 302 +--ro metric? rt-types:uint24 303 +--ro prefix? inet:ip-prefix 304 +--ro prefix-options 305 | +--ro prefix-options* identityref 306 +--ro prefix-length? uint8 307 +--ro sub-tlvs* 308 +--ro unknown-sub-tlv 309 +--ro type? uint16 310 +--ro length? uint16 311 +--ro value? yang:hex-string 312 augment /rt:routing/rt:control-plane-protocols 313 /rt:control-plane-protocol/ospf:ospf/ospf:database 314 /ospf:as-scope-lsa-type/ospf:as-scope-lsas 315 /ospf:as-scope-lsa/ospf:version/ospf:ospfv3 316 /ospf:ospfv3/ospf:body: 317 +--ro e-router 318 | +--ro router-bits 319 | | +--ro rtr-lsa-bits* identityref 320 | +--ro lsa-options 321 | | +--ro lsa-options* identityref 322 | +--ro e-router-tlvs* 323 | +--ro unknown-tlv 324 | | +--ro type? uint16 325 | | +--ro length? uint16 326 | | +--ro value? yang:hex-string 327 | +--ro link-tlv 328 | +--ro link-tlv-length? uint16 329 | +--ro interface-id? uint32 330 | +--ro neighbor-interface-id? uint32 331 | +--ro neighbor-router-id? rt-types:router-id 332 | +--ro type? uint8 333 | +--ro metric? uint16 334 | +--ro sub-tlvs* 335 | +--ro unknown-sub-tlv 336 | +--ro type? uint16 337 | +--ro length? uint16 338 | +--ro value? yang:hex-string 339 +--ro e-network 340 | +--ro lsa-options 341 | | +--ro lsa-options* identityref 342 | +--ro e-network-tlvs* 343 | +--ro unknown--tlv 344 | | +--ro type? uint16 345 | | +--ro length? uint16 346 | | +--ro value? yang:hex-string 347 | +--ro attached-router-tlv 348 | +--ro attached-router-tlv-length? uint16 349 | +--ro Adjacent-neighbor-router-id? rt-types:router-id 350 | +--ro sub-tlvs* 351 | +--ro unknown-sub-tlv 352 | +--ro type? uint16 353 | +--ro length? uint16 354 | +--ro value? yang:hex-string 355 +--ro e-inter-area-prefix 356 | +--ro e-inter-prefix-tlvs* 357 | +--ro unknown--tlv 358 | | +--ro type? uint16 359 | | +--ro length? uint16 360 | | +--ro value? yang:hex-string 361 | +--ro inter-prefix-tlv 362 | +--ro inter-prefix-tlv-length? uint16 363 | +--ro metric? rt-types:uint24 364 | +--ro prefix? inet:ip-prefix 365 | +--ro prefix-options 366 | | +--ro prefix-options* identityref 367 | +--ro prefix-length? uint8 368 | +--ro sub-tlvs* 369 | +--ro unknown-sub-tlv 370 | +--ro type? uint16 371 | +--ro length? uint16 372 | +--ro value? yang:hex-string 373 +--ro e-inter-area-router 374 | +--ro e-inter-router-tlvs* 375 | +--ro unknown-tlv 376 | | +--ro type? uint16 377 | | +--ro length? uint16 378 | | +--ro value? yang:hex-string 379 | +--ro inter-router-tlv 380 | +--ro inter-router-tlv-length? uint16 381 | +--ro router-bits 382 | | +--ro rtr-lsa-bits* identityref 383 | +--ro lsa-options 384 | | +--ro lsa-options* identityref 385 | +--ro metric? rt-types:uint24 386 | +--ro destination-router-id? rt-types:router-id 387 | +--ro sub-tlvs* 388 | +--ro unknown-sub-tlv 389 | +--ro type? uint16 390 | +--ro length? uint16 391 | +--ro value? yang:hex-string 392 +--ro e-as-external 393 | +--ro e-external-tlvs* 394 | +--ro unknown-tlv 395 | | +--ro type? uint16 396 | | +--ro length? uint16 397 | | +--ro value? yang:hex-string 398 | +--ro external-prefix-tlv 399 | +--ro external-prefix-tlv-length? uint16 400 | +--ro flags 401 | | +--ro ospfv3-e-external-prefix-bits* identityref 402 | +--ro metric? rt-types:uint24 403 | +--ro prefix? inet:ip-prefix 404 | +--ro prefix-options 405 | | +--ro prefix-options* identityref 406 | +--ro prefix-length? uint8 407 | +--ro sub-tlvs* 408 | +--ro unknown-sub-tlv 409 | | +--ro type? uint16 410 | | +--ro length? uint16 411 | | +--ro value? yang:hex-string 412 | +--ro ipv6-fwd-addr-sub-tlv 413 | | +--ro ipv6-fwd-addr-sub-tlv-length? uint16 414 | | +--ro forwarding-address? inet:ipv6-address 415 | +--ro ipv4-fwd-addr-sub-tlv 416 | | +--ro ipv4-fwd-addr-sub-tlv-length? uint16 417 | | +--ro forwarding-address? inet:ipv4-address 418 | +--ro route-tag-sub-tlv 419 | +--ro route-tag-sub-tlv-length? uint16 420 | +--ro route-tag? uint32 421 +--ro e-nssa 422 | +--ro e-external-tlvs* 423 | +--ro unknown-tlv 424 | | +--ro type? uint16 425 | | +--ro length? uint16 426 | | +--ro value? yang:hex-string 427 | +--ro external-prefix-tlv 428 | +--ro external-prefix-tlv-length? uint16 429 | +--ro flags 430 | | +--ro ospfv3-e-external-prefix-bits* identityref 431 | +--ro metric? rt-types:uint24 432 | +--ro prefix? inet:ip-prefix 433 | +--ro prefix-options 434 | | +--ro prefix-options* identityref 435 | +--ro prefix-length? uint8 436 | +--ro sub-tlvs* 437 | +--ro unknown-sub-tlv 438 | | +--ro type? uint16 439 | | +--ro length? uint16 440 | | +--ro value? yang:hex-string 441 | +--ro ipv6-fwd-addr-sub-tlv 442 | | +--ro ipv6-fwd-addr-sub-tlv-length? uint16 443 | | +--ro forwarding-address? inet:ipv6-address 444 | +--ro ipv4-fwd-addr-sub-tlv 445 | | +--ro ipv4-fwd-addr-sub-tlv-length? uint16 446 | | +--ro forwarding-address? inet:ipv4-address 447 | +--ro route-tag-sub-tlv 448 | +--ro route-tag-sub-tlv-length? uint16 449 | +--ro route-tag? uint32 450 +--ro e-link 451 | +--ro rtr-priority? uint8 452 | +--ro lsa-options 453 | | +--ro lsa-options* identityref 454 | +--ro e-link-tlvs* 455 | +--ro unknown-tlv 456 | | +--ro type? uint16 457 | | +--ro length? uint16 458 | | +--ro value? yang:hex-string 459 | +--ro intra-prefix-tlv 460 | | +--ro intra-prefix-tlv-length? uint16 461 | | +--ro metric? rt-types:uint24 462 | | +--ro prefix? inet:ip-prefix 463 | | +--ro prefix-options 464 | | | +--ro prefix-options* identityref 465 | | +--ro prefix-length? uint8 466 | | +--ro sub-tlvs* 467 | | +--ro unknown-sub-tlv 468 | | +--ro type? uint16 469 | | +--ro length? uint16 470 | | +--ro value? yang:hex-string 471 | +--ro ipv6-link-local-tlv 472 | | +--ro ipv6-link-local-tlv-length? uint16 473 | | +--ro link-local-address? inet:ipv6-address 474 | | +--ro sub-tlvs* 475 | | +--ro unknown-sub-tlv 476 | | +--ro type? uint16 477 | | +--ro length? uint16 478 | | +--ro value? yang:hex-string 479 | +--ro ipv4-link-local-tlv 480 | +--ro ipv4-link-local-tlv-length? uint16 481 | +--ro link-local-address? inet:ipv4-address 482 | +--ro sub-tlvs* 483 | +--ro unknown-sub-tlv 484 | +--ro type? uint16 485 | +--ro length? uint16 486 | +--ro value? yang:hex-string 487 +--ro e-intra-area-prefix 488 +--ro referenced-ls-type? uint16 489 +--ro referenced-link-state-id? uint32 490 +--ro referenced-adv-router? rt-types:router-id 491 +--ro e-intra-prefix-tlvs* 492 +--ro unknown-tlv 493 | +--ro type? uint16 494 | +--ro length? uint16 495 | +--ro value? yang:hex-string 496 +--ro intra-prefix-tlv 497 +--ro intra-prefix-tlv-length? uint16 498 +--ro metric? rt-types:uint24 499 +--ro prefix? inet:ip-prefix 500 +--ro prefix-options 501 | +--ro prefix-options* identityref 502 +--ro prefix-length? uint8 503 +--ro sub-tlvs* 504 +--ro unknown-sub-tlv 505 +--ro type? uint16 506 +--ro length? uint16 507 +--ro value? yang:hex-string 509 3. OSPFv3 Extended LSA Yang Module 511 file "ietf-ospfv3-extended-lsa@2019-08-13.yang" 512 module ietf-ospfv3-extended-lsa { 513 yang-version 1.1; 514 namespace 515 "urn:ietf:params:xml:ns:yang:ietf-ospfv3-extended-lsa"; 517 prefix ospfv3-e-lsa; 519 import ietf-routing-types { 520 prefix "rt-types"; 521 } 523 import ietf-inet-types { 524 prefix "inet"; 525 reference "RFC 6021 - Common YANG Data Types"; 526 } 527 import ietf-routing { 528 prefix "rt"; 529 reference "RFC 8349 - A YANG Data Model for Routing 530 Management (NMDA Version)"; 531 } 533 import ietf-ospf { 534 prefix "ospf"; 535 reference "RFC XXXX - A YANG Data Model for OSPF 536 Protocol"; 537 } 539 organization 540 "IETF LSR - Link State Routing Working Group"; 542 contact 543 "WG Web: 544 WG List: 546 Author: Acee Lindem 547 548 Author: Sharmila Palani 549 550 Author: Yingzhen Qu 551 "; 553 description 554 "This YANG module defines the configuration 555 and operational state for OSPFv3 Extended LSAs, which is 556 common across all of the vendor implementations. 558 Copyright (c) 2019 IETF Trust and the persons identified as 559 authors of the code. All rights reserved. 561 Redistribution and use in source and binary forms, with or 562 without modification, is permitted pursuant to, and subject 563 to the license terms contained in, the Simplified BSD License 564 set forth in Section 4.c of the IETF Trust's Legal Provisions 565 Relating to IETF Documents 566 (http://trustee.ietf.org/license-info). 568 This version of this YANG module is part of RFC XXXX; 569 see the RFC itself for full legal notices."; 571 reference "RFC XXXX"; 572 revision 2019-08-13 { 573 description 574 "Initial revision."; 576 reference 577 "RFC XXXX: A YANG Data Model for OSPFv3 Extended LSAs."; 578 } 580 feature extended-lsa-support { 581 description 582 "Support for OSPFv3 Extended LSAs"; 583 reference 584 "RFC 8362 - OSPFv3 Link State Advertisement (LSA) 585 Extensibility"; 586 } 588 /* 589 * OSPFv3 Extend LSA Type Identities 590 */ 591 identity ospfv3-e-router-lsa { 592 base ospf:ospfv3-lsa-type; 593 description 594 "OSPFv3 Extended Router LSA - Type 0xA021"; 595 } 597 identity ospfv3-e-network-lsa { 598 base ospf:ospfv3-lsa-type; 599 description 600 "OSPFv3 Extended Network LSA - Type 0xA022"; 601 } 603 identity ospfv3-e-summary-lsa-type { 604 base ospf:ospfv3-lsa-type; 605 description 606 "OSPFv3 Extended Summary LSA types"; 607 } 609 identity ospfv3-e-inter-area-prefix-lsa { 610 base ospfv3-e-summary-lsa-type; 611 description 612 "OSPFv3 Extended Inter-area Prefix LSA - Type 0xA023"; 613 } 615 identity ospfv3-e-inter-area-router-lsa { 616 base ospfv3-e-summary-lsa-type; 617 description 618 "OSPFv3 Exteneded Inter-area Router LSA - Type 0xA024"; 619 } 621 identity ospfv3-e-external-lsa-type { 622 base ospf:ospfv3-lsa-type; 623 description 624 "OSPFv3 Extended External LSA types"; 625 } 627 identity ospfv3-e-as-external-lsa { 628 base ospfv3-e-external-lsa-type; 629 description 630 "OSPFv3 Extended AS-External LSA - Type 0xC025"; 631 } 633 identity ospfv3-e-nssa-lsa { 634 base ospfv3-e-external-lsa-type; 635 description 636 "OSPFv3 Extended Not-So-Stubby-Area (NSSA) LSA - 637 Type 0xA027"; 638 } 640 identity ospfv3-e-link-lsa { 641 base ospf:ospfv3-lsa-type; 642 description 643 "OSPFv3 Extended Link LSA - Type 0x8028"; 644 } 646 identity ospfv3-e-intra-area-prefix-lsa { 647 base ospf:ospfv3-lsa-type; 648 description 649 "OSPFv3 Extended Intra-area Prefix LSA - Type 0xA029"; 650 } 652 identity ospfv3-e-prefix-option { 653 description 654 "Base identity for OSPFv3 Prefix Options."; 655 } 657 identity nu-bit { 658 base ospfv3-e-prefix-option; 659 description 660 "When set, the prefix should be excluded 661 from IPv6 unicast calculations."; 662 } 664 identity la-bit { 665 base ospfv3-e-prefix-option; 666 description 667 "When set, the prefix is actually an IPv6 interface 668 address of the Advertising Router."; 669 } 671 identity p-bit { 672 base ospfv3-e-prefix-option; 673 description 674 "When set, the NSSA area prefix should be 675 translated to an AS External LSA and advertised 676 by the translating NSSA Border Router."; 677 } 679 identity dn-bit { 680 base ospfv3-e-prefix-option; 681 description 682 "When set, the inter-area-prefix LSA or 683 AS-external LSA prefix has been advertised as an 684 L3VPN prefix."; 685 } 687 identity ospfv3-e-external-prefix-option { 688 description 689 "Base identity for OSPFv3 External Prefix Options."; 690 } 692 identity e-bit { 693 base ospfv3-e-external-prefix-option; 694 description 695 "When set, the metric specified is a Type 2 696 external metric."; 697 } 699 grouping unknown-sub-tlv { 700 description 701 "Unknown TLV grouping"; 702 container unknown-sub-tlv { 703 uses ospf:tlv; 704 description "Unknown External TLV Sub-TLV"; 705 } 706 } 708 grouping ospfv3-lsa-prefix { 709 description 710 "OSPFv3 LSA prefix"; 712 leaf prefix { 713 type inet:ip-prefix; 714 description 715 "LSA Prefix"; 716 } 717 container prefix-options { 718 leaf-list prefix-options { 719 type identityref { 720 base ospfv3-e-prefix-option; 721 } 722 description 723 "OSPFv3 prefix option flag list. This list will 724 contain the identities for the OSPFv3 options 725 that are set for the OSPFv3 prefix."; 726 } 727 description "Prefix options."; 728 } 730 leaf prefix-length { 731 type uint8 { 732 range "0..128"; 733 } 734 description "Prefix length."; 735 } 736 } 738 grouping ipv6-fwd-addr-sub-tlv { 739 container ipv6-fwd-addr-sub-tlv { 740 description 741 "IPv6 Forwarding Address Sub-TLV"; 742 leaf ipv6-fwd-addr-sub-tlv-length { 743 type uint16; 744 description 745 "IPv6 Forwarding Addrss Sub-TLV Length - 16 746 for IPv6 address"; 747 } 748 leaf forwarding-address { 749 type inet:ipv6-address; 750 description 751 "Forwarding address"; 752 } 753 } 754 description 755 "IPv6 Forwarding Address Sub-TLV grouping"; 756 } 758 grouping ipv4-fwd-addr-sub-tlv { 759 container ipv4-fwd-addr-sub-tlv { 760 description 761 "IPv4 Forwarding Address Sub-TLV"; 762 leaf ipv4-fwd-addr-sub-tlv-length { 763 type uint16; 764 description 765 "IPv4 Forwarding Addrss Sub-TLV Length - 4 766 for IPv4 address"; 767 } 768 leaf forwarding-address { 769 type inet:ipv4-address; 770 description 771 "Forwarding address"; 772 } 773 } 774 description 775 "IPv4 Forwarding Address Sub-TLV grouping"; 776 } 778 grouping route-tag-sub-tlv { 779 container route-tag-sub-tlv { 780 description 781 "Route Tag Sub-TLV"; 782 leaf route-tag-sub-tlv-length { 783 type uint16; 784 description 785 "Route Tag Sub-TLV Length - 4 for 32-bit tag"; 786 } 787 leaf route-tag { 788 type uint32; 789 description 790 "Route Tag"; 791 } 792 } 793 description 794 "Route Tag Sub-TLV grouping"; 795 } 797 grouping external-prefix-tlv { 798 container external-prefix-tlv { 799 description "External Prefix LSA TLV"; 800 leaf external-prefix-tlv-length { 801 type uint16; 802 description 803 "External Prefix TLV Length - Variable dependent 804 on sub-TLVs"; 805 } 806 container flags { 807 leaf-list ospfv3-e-external-prefix-bits { 808 type identityref { 809 base ospfv3-e-external-prefix-option; 810 } 811 description "OSPFv3 exernal-prefix TLV bits list."; 812 } 813 description "External Prefix Flags"; 814 } 815 leaf metric { 816 type rt-types:uint24; 817 description "External Prefix Metric"; 818 } 819 uses ospfv3-lsa-prefix; 820 list sub-tlvs { 821 description "External Prefix TLV Sub-TLVs"; 822 uses unknown-sub-tlv; 823 uses ipv6-fwd-addr-sub-tlv; 824 uses ipv4-fwd-addr-sub-tlv; 825 uses route-tag-sub-tlv; 826 } 827 } 828 description "External Prefix TLV Grouping"; 829 } 831 grouping intra-area-prefix-tlv { 832 container intra-prefix-tlv { 833 description "Intra-Area Prefix LSA TLV"; 834 leaf intra-prefix-tlv-length { 835 type uint16; 836 description 837 "Intra-Area Prefix TLV Length - Variable dependent 838 on sub-TLVs"; 839 } 840 leaf metric { 841 type rt-types:uint24; 842 description "Intra-Area Prefix Metric"; 843 } 844 uses ospfv3-lsa-prefix; 845 list sub-tlvs { 846 description "Intra-Area Prefix TLV Sub-TLVs"; 847 uses unknown-sub-tlv; 848 } 849 } 850 description "Intra-Area Prefix TLV Grouping"; 851 } 853 grouping ipv6-link-local-tlv { 854 container ipv6-link-local-tlv { 855 description "IPv6 Link-Local LSA TLV"; 856 leaf ipv6-link-local-tlv-length { 857 type uint16; 858 description 859 "IPv6 Link-Local TLV Length - Variable dependent 860 on sub-TLVs"; 861 } 862 leaf link-local-address { 863 type inet:ipv6-address; 864 description 865 "IPv6 Link Local address"; 866 } 867 list sub-tlvs { 868 description "IPv6 Link Local TLV Sub-TLVs"; 869 uses unknown-sub-tlv; 870 } 871 } 872 description "IPv6 Link-Local TLV Grouping"; 873 } 875 grouping ipv4-link-local-tlv { 876 container ipv4-link-local-tlv { 877 description "IPv6 Link-Local LSA TLV"; 878 leaf ipv4-link-local-tlv-length { 879 type uint16; 880 description 881 "IPv4 Link-Local TLV Length - Variable dependent 882 on sub-TLVs"; 883 } 884 leaf link-local-address { 885 type inet:ipv4-address; 886 description 887 "IPv4 Link Local address"; 888 } 889 list sub-tlvs { 890 description "IPv4 Link Local TLV Sub-TLVs"; 891 uses unknown-sub-tlv; 892 } 893 } 894 description "IPv4 Link-Local TLV Grouping"; 895 } 897 grouping ospfv3-e-lsa-body { 898 description "OSPFv3 Extended LSA body."; 899 container e-router { 900 when "derived-from(../../ospf:header/ospf:type, " 901 + "'ospfv3-e-router-lsa')" { 902 description "Only valid for OSPFv3 Extended-Router LSAs"; 903 } 904 description "OSPv3 Extended Router LSA"; 905 uses ospf:ospf-router-lsa-bits; 906 uses ospf:ospfv3-lsa-options; 908 list e-router-tlvs { 909 description "E-Router LSA TLVs"; 910 container unknown-tlv { 911 uses ospf:tlv; 912 description "Unknown E-Router TLV"; 913 } 914 container link-tlv { 915 description "E-Router LSA TLV"; 916 leaf link-tlv-length { 917 type uint16; 918 description 919 "Link TLV Length - Variable dependent on sub-TLVs"; 920 } 921 leaf interface-id { 922 type uint32; 923 description "Interface ID for link"; 924 } 925 leaf neighbor-interface-id { 926 type uint32; 927 description "Neighbor's Interface ID for link"; 928 } 929 leaf neighbor-router-id { 930 type rt-types:router-id; 931 description "Neighbor's Router ID for link"; 932 } 933 leaf type { 934 type uint8; 935 description "Link type: 1 - Point-to-Point Link 936 2 - Transit Network Link 937 3 - Stub Network Link Link 938 4 - Virtual Link"; 939 } 940 leaf metric { 941 type uint16; 942 description "Link Metric"; 943 } 944 list sub-tlvs { 945 description "Link TLV Sub-TLVs"; 946 uses unknown-sub-tlv; 947 } 948 } 949 } 950 } 952 container e-network { 953 when "derived-from(../../ospf:header/ospf:type, " 954 + "'ospfv3-e-network-lsa')" { 955 description 956 "Only applies to E-Network LSAs."; 957 } 958 description "Extended Network LSA"; 959 uses ospf:ospfv3-lsa-options; 960 list e-network-tlvs { 961 description "E-Network LSA TLVs"; 962 container unknown--tlv { 963 uses ospf:tlv; 964 description "Unknown E-Network TLV"; 965 } 966 container attached-router-tlv { 967 description "Attached Router TLV"; 968 leaf attached-router-tlv-length { 969 type uint16; 970 description 971 "Attached Router TLV Length - Variable dependent 972 on sub-TLVs"; 973 } 974 leaf Adjacent-neighbor-router-id { 975 type rt-types:router-id; 976 description "Adjacent Neighbor's Router ID"; 977 } 978 list sub-tlvs { 979 description "Attached Router TLV Sub-TLVs"; 980 uses unknown-sub-tlv; 981 } 982 } 983 } 984 } 986 container e-inter-area-prefix { 987 when "derived-from(../../ospf:header/ospf:type, " 988 + "'ospfv3-e-inter-area-prefix-lsa')" { 989 description 990 "Only applies to E-Inter-Area-Prefix LSAs."; 991 } 992 description "Extended Inter-Area Prefix LSA"; 993 list e-inter-prefix-tlvs { 994 description "E-Inter-Area-Prefix LSA TLVs"; 995 container unknown--tlv { 996 uses ospf:tlv; 997 description "Unknown E-Inter-Area-Prefix TLV"; 998 } 999 container inter-prefix-tlv { 1000 description "Unknown E-Inter-Area-Prefix LSA TLV"; 1001 leaf inter-prefix-tlv-length { 1002 type uint16; 1003 description 1004 "Inter-Area-Prefix TLV Length - Variable dependent 1005 on sub-TLVs"; 1006 } 1007 leaf metric { 1008 type rt-types:uint24; 1009 description "Inter-Area Prefix Metric"; 1010 } 1011 uses ospfv3-lsa-prefix; 1012 list sub-tlvs { 1013 description "Inter-Area Prefix TLV Sub-TLVs"; 1014 uses unknown-sub-tlv; 1015 } 1016 } 1017 } 1018 } 1020 container e-inter-area-router { 1021 when "derived-from(../../ospf:header/ospf:type, " 1022 + "'ospfv3-e-inter-area-router-lsa')" { 1023 description 1024 "Only applies to E-Inter-Area-Router LSAs."; 1025 } 1026 description "Extended Inter-Area Router LSA"; 1027 list e-inter-router-tlvs { 1028 description "E-Inter-Area-Router LSA TLVs"; 1029 container unknown-tlv { 1030 uses ospf:tlv; 1031 description "Unknown E-Inter-Area-Router TLV"; 1032 } 1033 container inter-router-tlv { 1034 description "Unknown E-Inter-Area-Router LSA TLV"; 1035 leaf inter-router-tlv-length { 1036 type uint16; 1037 description 1038 "Inter-Area-Router TLV Length - Variable dependent 1039 on sub-TLVs"; 1040 } 1041 uses ospf:ospf-router-lsa-bits; 1042 uses ospf:ospfv3-lsa-options; 1043 leaf metric { 1044 type rt-types:uint24; 1045 description "Inter-Area Router Metric"; 1046 } 1047 leaf destination-router-id { 1048 type rt-types:router-id; 1049 description "Destination Router ID"; 1050 } 1051 list sub-tlvs { 1052 description "Inter-Area Router TLV Sub-TLVs"; 1053 uses unknown-sub-tlv; 1054 } 1055 } 1057 } 1058 } 1060 container e-as-external { 1061 when "derived-from-or-self(../../ospf:header/ospf:type, " 1062 + "'ospfv3-e-as-external-lsa')" { 1063 description 1064 "Only applies to E-AS-external LSAs."; 1065 } 1066 list e-external-tlvs { 1067 description "E-External LSA TLVs"; 1068 container unknown-tlv { 1069 uses ospf:tlv; 1070 description "Unknown E-External TLV"; 1071 } 1072 uses external-prefix-tlv; 1073 } 1074 description "E-AS-External LSA."; 1075 } 1077 container e-nssa { 1078 when "derived-from-or-self(../../ospf:header/ospf:type, " 1079 + "'ospfv3-e-nssa-lsa')" { 1080 description 1081 "Only applies to E-NSSA LSAs."; 1082 } 1083 list e-external-tlvs { 1084 description "E-NSSA LSA TLVs"; 1085 container unknown-tlv { 1086 uses ospf:tlv; 1087 description "Unknown E-External TLV"; 1088 } 1089 uses external-prefix-tlv; 1090 } 1091 description "E-NSSA LSA."; 1092 } 1094 container e-link { 1095 when "derived-from-or-self(../../ospf:header/ospf:type, " 1096 + "'ospfv3-e-link-lsa')" { 1097 description 1098 "Only applies to Extended Link LSAs."; 1099 } 1100 description "E-Link LSA"; 1101 leaf rtr-priority { 1102 type uint8; 1103 description "Router Priority for the interface."; 1104 } 1105 uses ospf:ospfv3-lsa-options; 1106 list e-link-tlvs { 1107 description "E-Link LSA TLVs"; 1108 container unknown-tlv { 1109 uses ospf:tlv; 1110 description "Unknown E-Link TLV"; 1111 } 1112 uses intra-area-prefix-tlv; 1113 uses ipv6-link-local-tlv; 1114 uses ipv4-link-local-tlv; 1115 } 1116 } 1118 container e-intra-area-prefix { 1119 when "derived-from-or-self(../../ospf:header/ospf:type, " 1120 + "'ospfv3-e-intra-area-prefix-lsa')" { 1121 description 1122 "Only applies to E-Intra-Area-Prefix LSAs."; 1123 } 1124 description "E-Intra-Area-Prefix LSA"; 1125 leaf referenced-ls-type { 1126 type uint16; 1127 description "Referenced Link State type"; 1128 } 1129 leaf referenced-link-state-id { 1130 type uint32; 1131 description 1132 "Referenced Link State ID"; 1133 } 1134 leaf referenced-adv-router { 1135 type rt-types:router-id; 1136 description 1137 "Referenced Advertising Router"; 1138 } 1139 list e-intra-prefix-tlvs { 1140 description "E-Intra-Area-Prefix LSA TLVs"; 1141 container unknown-tlv { 1142 uses ospf:tlv; 1143 description "Unknown E-Intra-Area-Prefix TLV"; 1144 } 1145 uses intra-area-prefix-tlv; 1146 } 1147 } 1148 } 1150 /* Configuration */ 1151 augment "/rt:routing/rt:control-plane-protocols" 1152 + "/rt:control-plane-protocol/ospf:ospf" { 1154 when "/rt:routing/rt:control-plane-protocols" 1155 + "/rt:control-plane-protocol/rt:type = 'ospf:ospfv3'" { 1156 description 1157 "This augments the OSPFv3 routing protocol when used."; 1158 } 1159 description 1160 "This augments the OSPFv3 protocol configuration 1161 with segment routing."; 1162 leaf extended-lsa-support { 1163 if-feature extended-lsa-support; 1164 type boolean; 1165 default false; 1166 description 1167 "Enable OSPFv3 Extended LSA Support for the OSPFv3 1168 domain"; 1169 } 1170 } 1172 augment "/rt:routing/rt:control-plane-protocols/" 1173 + "rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area" { 1174 when "'ospf:../../../../../rt:type' = 'ospf:ospfv3'" { 1175 description 1176 "This augments the OSPFv3 area configuration 1177 when used."; 1178 } 1179 description 1180 "This augments the OSPFv3 protocol area 1181 configuration with Extend LSA support"; 1182 leaf extended-lsa-support { 1183 if-feature extended-lsa-support; 1184 type boolean; 1185 default false; 1186 description 1187 "Enable OSPFv3 Extended LSA Support for the OSPFv3 area"; 1188 } 1189 } 1191 /* 1192 * Link State Database (LSDB) Augmentations 1193 */ 1194 augment "/rt:routing/" 1195 + "rt:control-plane-protocols/rt:control-plane-protocol/" 1196 + "ospf:ospf/ospf:areas/ospf:area/" 1197 + "ospf:interfaces/ospf:interface/ospf:database/" 1198 + "ospf:link-scope-lsa-type/ospf:link-scope-lsas/" 1199 + "ospf:link-scope-lsa/ospf:version/ospf:ospfv3/" 1200 + "ospf:ospfv3/ospf:body" { 1201 when "/rt:routing/rt:control-plane-protocols" 1202 + "/rt:control-plane-protocol/rt:type = 'ospf:ospfv3'" { 1203 description 1204 "This augmentation is only valid for OSPFv3."; 1205 } 1206 description 1207 "OSPFv3 Link-Scoped Extended LSAs"; 1208 } 1210 augment "/rt:routing/" 1211 + "rt:control-plane-protocols/rt:control-plane-protocol/" 1212 + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" 1213 + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" 1214 + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" 1215 + "ospf:ospfv3/ospf:body" { 1216 when "../../../../../../../../../" 1217 + "rt:type = 'ospf:ospfv3'" { 1218 description 1219 "This augmentation is only valid for OSPFv3 1220 E-Router LSAs"; 1221 } 1222 uses ospfv3-e-lsa-body; 1223 description 1224 "OSPFv3 Area-Scoped Extended LSAs"; 1225 } 1226 augment "/rt:routing/" 1227 + "rt:control-plane-protocols/rt:control-plane-protocol/" 1228 + "ospf:ospf/ospf:database/" 1229 + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" 1230 + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" 1231 + "ospf:ospfv3/ospf:body" { 1232 when "'ospf:../../../../../../../../../" 1233 + "rt:type' = 'ospf:ospfv3'" { 1234 description 1235 "This augmentation is only valid for OSPFv3."; 1236 } 1237 uses ospfv3-e-lsa-body; 1238 description 1239 "OSPFv3 AS-Scoped Extended LSAs"; 1240 } 1241 } 1242 1244 4. Security Considerations 1246 The YANG modules specified in this document define a schema for data 1247 that is designed to be accessed via network management protocols such 1248 as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer 1249 is the secure transport layer, and the mandatory-to-implement secure 1250 transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer 1251 is HTTPS, and the mandatory-to-implement secure transport is TLS 1252 [RFC5246]. 1254 The NETCONF access control model [RFC6536] provides the means to 1255 restrict access for particular NETCONF or RESTCONF users to a pre- 1256 configured subset of all available NETCONF or RESTCONF protocol 1257 operations and content. 1259 There are a number of data nodes defined in ietf-ospfv3-extended- 1260 lsa.yang module that are writable/creatable/deletable (i.e., config 1261 true, which is the default). These data nodes may be considered 1262 sensitive or vulnerable in some network environments. Write 1263 operations (e.g., edit-config) to these data nodes without proper 1264 protection can have a negative effect on network operations. For 1265 OSPFv3 Extended LSAs, the ability to disable OSPFv3 Extended LSA 1266 support result in a denial of service. 1268 Some of the readable data nodes in the ietf-ospfv3-extended-lsa.yang 1269 module may be considered sensitive or vulnerable in some network 1270 environments. It is thus important to control read access (e.g., via 1271 get, get-config, or notification) to these data nodes. The exposure 1272 of the Link State Database (LSDB) will expose the detailed topology 1273 of the network. This may be undesirable since both due to the fact 1274 that exposure may facilitate other attacks. Additionally, network 1275 operators may consider their topologies to be sensitive confidential 1276 data. 1278 5. IANA Considerations 1280 This document registers a URI in the IETF XML registry [RFC3688]. 1281 Following the format in [RFC3688], the following registration is 1282 requested to be made: 1284 URI: urn:ietf:params:xml:ns:yang:ietf-ospfv3-extended-lsa 1285 Registrant Contact: The IESG. 1286 XML: N/A, the requested URI is an XML namespace. 1288 This document registers a YANG module in the YANG Module Names 1289 registry [RFC6020]. 1291 name: ietf-ospfv3-extended-lsa 1292 namespace: urn:ietf:params:xml:ns:yang:ietf-ospfv3-extended-lsa 1293 prefix: ospfv3-e-lsa 1294 reference: RFC XXXX 1296 6. Acknowledgements 1298 This document was produced using Marshall Rose's xml2rfc tool. 1300 The YANG model was developed using the suite of YANG tools written 1301 and maintained by numerous authors. 1303 7. References 1305 7.1. Normative References 1307 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1308 Requirement Levels", BCP 14, RFC 2119, 1309 DOI 10.17487/RFC2119, March 1997, 1310 . 1312 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 1313 DOI 10.17487/RFC3688, January 2004, 1314 . 1316 [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security 1317 (TLS) Protocol Version 1.2", RFC 5246, 1318 DOI 10.17487/RFC5246, August 2008, 1319 . 1321 [RFC5340] Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF 1322 for IPv6", RFC 5340, DOI 10.17487/RFC5340, July 2008, 1323 . 1325 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 1326 the Network Configuration Protocol (NETCONF)", RFC 6020, 1327 DOI 10.17487/RFC6020, October 2010, 1328 . 1330 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 1331 and A. Bierman, Ed., "Network Configuration Protocol 1332 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 1333 . 1335 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 1336 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 1337 . 1339 [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration 1340 Protocol (NETCONF) Access Control Model", RFC 6536, 1341 DOI 10.17487/RFC6536, March 2012, 1342 . 1344 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 1345 RFC 7950, DOI 10.17487/RFC7950, August 2016, 1346 . 1348 [RFC8022] Lhotka, L. and A. Lindem, "A YANG Data Model for Routing 1349 Management", RFC 8022, DOI 10.17487/RFC8022, November 1350 2016, . 1352 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 1353 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 1354 . 1356 [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for 1357 Routing Management (NMDA Version)", RFC 8349, 1358 DOI 10.17487/RFC8349, March 2018, 1359 . 1361 [RFC8362] Lindem, A., Roy, A., Goethals, D., Reddy Vallem, V., and 1362 F. Baker, "OSPFv3 Link State Advertisement (LSA) 1363 Extensibility", RFC 8362, DOI 10.17487/RFC8362, April 1364 2018, . 1366 7.2. Informative References 1368 [I-D.ietf-ospf-yang] 1369 Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, 1370 "YANG Data Model for OSPF Protocol", draft-ietf-ospf- 1371 yang-26 (work in progress), August 2019. 1373 Authors' Addresses 1375 Acee Lindem 1376 Cisco Systems 1377 301 Midenhall Way 1378 Cary, NC 27513 1380 EMail: acee@cisco.com 1382 Sharmila Palani 1383 Cisco Systems 1384 170 West Tasman Drive 1385 San Jose, CA 95134 1387 EMail: shpalani@cisco.com 1388 Yingzhen Qu 1389 Futurewei 1390 2330 Central Expressway 1391 Santa Clara, CA 95050 1392 USA 1394 EMail: yingzhen.qu@futurewei.com