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