idnits 2.17.1 draft-ietf-lisp-yang-07.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 183 instances of too long lines in the document, the longest one being 33 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 102 has weird spacing: '...et-name str...' == Line 202 has weird spacing: '...ance-id int...' == Line 204 has weird spacing: '...le-type lis...' -- The document date (March 5, 2018) is 2242 days in the past. Is this intentional? Checking references for intended status: Experimental ---------------------------------------------------------------------------- == Unused Reference: 'RFC2119' is defined on line 2642, but no explicit reference was found in the text == Unused Reference: 'RFC6830' is defined on line 2647, but no explicit reference was found in the text == Unused Reference: 'RFC6832' is defined on line 2652, but no explicit reference was found in the text == Unused Reference: 'RFC6836' is defined on line 2663, but no explicit reference was found in the text == Unused Reference: 'RFC8060' is defined on line 2668, but no explicit reference was found in the text == Unused Reference: 'RFC8111' is defined on line 2672, but no explicit reference was found in the text ** Obsolete normative reference: RFC 6830 (Obsoleted by RFC 9300, RFC 9301) ** Obsolete normative reference: RFC 6833 (Obsoleted by RFC 9301) Summary: 3 errors (**), 0 flaws (~~), 10 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 LISP Working Group V. Ermagan 3 Internet-Draft A. Rodriguez-Natal 4 Intended status: Experimental F. Coras 5 Expires: September 6, 2018 C. Moberg 6 R. Rahman 7 Cisco Systems 8 A. Cabellos-Aparicio 9 Technical University of Catalonia 10 F. Maino 11 Cisco Systems 12 March 5, 2018 14 LISP YANG Model 15 draft-ietf-lisp-yang-07 17 Abstract 19 This document describes a YANG data model to use with the Locator/ID 20 Separation Protocol (LISP). 22 The YANG modules in this document conform to the Network Management 23 Datastore Architecture (NMDA). 25 Status of This Memo 27 This Internet-Draft is submitted in full conformance with the 28 provisions of BCP 78 and BCP 79. 30 Internet-Drafts are working documents of the Internet Engineering 31 Task Force (IETF). Note that other groups may also distribute 32 working documents as Internet-Drafts. The list of current Internet- 33 Drafts is at https://datatracker.ietf.org/drafts/current/. 35 Internet-Drafts are draft documents valid for a maximum of six months 36 and may be updated, replaced, or obsoleted by other documents at any 37 time. It is inappropriate to use Internet-Drafts as reference 38 material or to cite them other than as "work in progress." 40 This Internet-Draft will expire on September 6, 2018. 42 Copyright Notice 44 Copyright (c) 2018 IETF Trust and the persons identified as the 45 document authors. All rights reserved. 47 This document is subject to BCP 78 and the IETF Trust's Legal 48 Provisions Relating to IETF Documents 49 (https://trustee.ietf.org/license-info) in effect on the date of 50 publication of this document. Please review these documents 51 carefully, as they describe your rights and restrictions with respect 52 to this document. Code Components extracted from this document must 53 include Simplified BSD License text as described in Section 4.e of 54 the Trust Legal Provisions and are provided without warranty as 55 described in the Simplified BSD License. 57 Table of Contents 59 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 60 2. LISP Module . . . . . . . . . . . . . . . . . . . . . . . . . 2 61 2.1. Module Structure . . . . . . . . . . . . . . . . . . . . 3 62 2.2. Module Definition . . . . . . . . . . . . . . . . . . . . 5 63 3. LISP-ITR Module . . . . . . . . . . . . . . . . . . . . . . . 13 64 3.1. Module Structure . . . . . . . . . . . . . . . . . . . . 14 65 3.2. Module Definition . . . . . . . . . . . . . . . . . . . . 18 66 4. LISP-ETR Module . . . . . . . . . . . . . . . . . . . . . . . 21 67 4.1. Module Structure . . . . . . . . . . . . . . . . . . . . 21 68 4.2. Module Definition . . . . . . . . . . . . . . . . . . . . 23 69 5. LISP-Map-Server Module . . . . . . . . . . . . . . . . . . . 27 70 5.1. Module Structure . . . . . . . . . . . . . . . . . . . . 27 71 5.2. Module Definition . . . . . . . . . . . . . . . . . . . . 33 72 6. LISP-Map-Resolver Module . . . . . . . . . . . . . . . . . . 39 73 6.1. Module Structure . . . . . . . . . . . . . . . . . . . . 39 74 6.2. Module Definition . . . . . . . . . . . . . . . . . . . . 39 75 7. LISP-Address-Types Module . . . . . . . . . . . . . . . . . . 41 76 7.1. Module Definition . . . . . . . . . . . . . . . . . . . . 41 77 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 55 78 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 55 79 10. Security Considerations . . . . . . . . . . . . . . . . . . . 56 80 11. Normative References . . . . . . . . . . . . . . . . . . . . 56 81 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 56 83 1. Introduction 85 The Locator/ID Separation Protocol (LISP) defines several network 86 elements subject to be configured. This document presents the YANG 87 data models required for basic configuration of all major LISP 88 [RFC6830]elements. The models also capture some essential 89 operational data elements as well. 91 2. LISP Module 93 This module is the base LISP module that is augmented in multiple 94 models to represent various LISP device roles. 96 2.1. Module Structure 98 module: ietf-lisp 99 +--rw lisp 100 +--rw locator-sets 101 | +--rw locator-set* [locator-set-name] 102 | +--rw locator-set-name string 103 | +--rw (locator-type)? 104 | +--:(local-interface) 105 | | +--rw interface* [interface-ref] 106 | | +--rw interface-ref if:interface-ref 107 | | +--rw priority? uint8 108 | | +--rw weight? uint8 109 | | +--rw multicast-priority? uint8 110 | | +--rw multicast-weight? uint8 111 | +--:(general-locator) 112 | +--rw locator* [id] 113 | +--rw id string 114 | +--rw locator-address 115 | | +--rw address-type lisp-address-family-ref 116 | | +--rw virtual-network-id? instance-id-type 117 | | +--rw (address)? 118 | | +--:(no-address) 119 | | | +--rw no-address? empty 120 | | +--:(ipv4) 121 | | | +--rw ipv4? inet:ipv4-address 122 | | +--:(ipv4-prefix) 123 | | | +--rw ipv4-prefix? inet:ipv4-prefix 124 | | +--:(ipv6) 125 | | | +--rw ipv6? inet:ipv6-address 126 | | +--:(ipv6-prefix) 127 | | | +--rw ipv6-prefix? inet:ipv6-prefix 128 | | +--:(mac) 129 | | | +--rw mac? yang:mac-address 130 | | +--:(distinguished-name) 131 | | | +--rw distinguished-name? distinguished-name-type 132 | | +--:(as-number) 133 | | | +--rw as-number? inet:as-number 134 | | +--:(null-address) 135 | | | +--rw null-address 136 | | | +--rw address? empty 137 | | +--:(afi-list) 138 | | | +--rw afi-list 139 | | | +--rw address-list* simple-address 140 | | +--:(instance-id) 141 | | | +--rw instance-id 142 | | | +--rw iid? instance-id-type 143 | | | +--rw mask-length? uint8 144 | | | +--rw address? simple-address 145 | | +--:(as-number-lcaf) 146 | | | +--rw as-number-lcaf 147 | | | +--rw as? inet:as-number 148 | | | +--rw address? simple-address 149 | | +--:(application-data) 150 | | | +--rw application-data 151 | | | +--rw address? simple-address 152 | | | +--rw protocol? uint8 153 | | | +--rw ip-tos? int32 154 | | | +--rw local-port-low? inet:port-number 155 | | | +--rw local-port-high? inet:port-number 156 | | | +--rw remote-port-low? inet:port-number 157 | | | +--rw remote-port-high? inet:port-number 158 | | +--:(geo-coordinates) 159 | | | +--rw geo-coordinates 160 | | | +--rw latitude? bits 161 | | | +--rw latitude-degrees? uint8 162 | | | +--rw latitude-minutes? uint8 163 | | | +--rw latitude-seconds? uint8 164 | | | +--rw longitude? bits 165 | | | +--rw longitude-degrees? uint16 166 | | | +--rw longitude-minutes? uint8 167 | | | +--rw longitude-seconds? uint8 168 | | | +--rw altitude? int32 169 | | | +--rw address? simple-address 170 | | +--:(nat-traversal) 171 | | | +--rw nat-traversal 172 | | | +--rw ms-udp-port? uint16 173 | | | +--rw etr-udp-port? uint16 174 | | | +--rw global-etr-rloc? simple-address 175 | | | +--rw ms-rloc? simple-address 176 | | | +--rw private-etr-rloc? simple-address 177 | | | +--rw rtr-rlocs* simple-address 178 | | +--:(explicit-locator-path) 179 | | | +--rw explicit-locator-path 180 | | | +--rw hop* [hop-id] 181 | | | +--rw hop-id string 182 | | | +--rw address? simple-address 183 | | | +--rw lrs-bits? bits 184 | | +--:(source-dest-key) 185 | | | +--rw source-dest-key 186 | | | +--rw source? simple-address 187 | | | +--rw dest? simple-address 188 | | +--:(key-value-address) 189 | | | +--rw key-value-address 190 | | | +--rw key? simple-address 191 | | | +--rw value? simple-address 192 | | +--:(service-path) 193 | | +--rw service-path 194 | | +--rw service-path-id? service-path-id-type 195 | | +--rw service-index? uint8 196 | +--rw priority? uint8 197 | +--rw weight? uint8 198 | +--rw multicast-priority? uint8 199 | +--rw multicast-weight? uint8 200 +--rw lisp-router-instances 201 +--rw lisp-router-instance* [lisp-router-instance-id] 202 +--rw lisp-router-instance-id int32 203 +--rw lisp-role* [lisp-role-type] 204 | +--rw lisp-role-type lisp-role-ref 205 +--rw lisp-router-id 206 +--rw site-id? uint64 207 +--rw xtr-id? lisp:xtr-id-type 209 2.2. Module Definition 211 file "ietf-lisp@2018-03-05.yang" 212 module ietf-lisp { 213 namespace "urn:ietf:params:xml:ns:yang:ietf-lisp"; 214 prefix lisp; 215 import ietf-interfaces { 216 prefix if; 217 } 218 import ietf-lisp-address-types { 219 prefix lcaf; 220 } 221 import ietf-yang-types { 222 prefix yang; 223 } 224 organization 225 "IETF LISP (Locator/ID Separation Protocol) Working Group"; 226 contact 227 "WG Web: 228 WG List: 230 Editor: Vina Ermagan 231 233 Editor: Alberto Rodriguez-Natal 234 236 Editor: Reshad Rahman 237 "; 238 description 239 "This YANG module defines the generic parameters for LISP. 241 The module can be extended by vendors to define vendor-specific 242 LISP parameters and policies. 244 Copyright (c) 2018 IETF Trust and the persons identified as 245 authors of the code. All rights reserved. 247 Redistribution and use in source and binary forms, with or 248 without modification, is permitted pursuant to, and subject 249 to the license terms contained in, the Simplified BSD License 250 set forth in Section 4.c of the IETF Trust's Legal Provisions 251 Relating to IETF Documents 252 (http://trustee.ietf.org/license-info). 254 This version of this YANG module is part of RFC XXXX; see 255 the RFC itself for full legal notices. 256 "; 257 // RFC Ed.: replace XXXX with actual RFC number and remove 258 // this note 259 reference "RFC XXXX"; 261 revision 2018-03-05 { 262 description 263 "Initial revision."; 264 reference 265 "https://tools.ietf.org/html/rfc6830"; 266 } 267 identity lisp-role { 268 description 269 "LISP router role."; 270 } 271 identity itr { 272 base lisp-role; 273 description 274 "LISP ITR."; 275 } 276 identity pitr { 277 base lisp-role; 278 description 279 "LISP PITR."; 280 } 281 identity etr { 282 base lisp-role; 283 description 284 "LISP ETR."; 285 } 286 identity petr { 287 base lisp-role; 288 description 289 "LISP PETR."; 290 } 291 identity mapping-system { 292 description 293 "Mapping System interface"; 294 } 295 identity single-node-mapping-system { 296 base mapping-system; 297 description 298 "logically singular Map Server"; 299 } 300 typedef mapping-system-ref { 301 type identityref { 302 base mapping-system; 303 } 304 description 305 "Mapping System reference"; 306 } 308 typedef lisp-role-ref { 309 type identityref { 310 base lisp-role; 311 } 312 description 313 "LISP role reference"; 314 } 315 typedef map-reply-action { 316 type enumeration { 317 enum no-action { 318 value 0; 319 description 320 "Mapping is kept alive and no encapsulation occurs."; 321 } 322 enum natively-forward { 323 value 1; 324 description 325 "Matching packets are not encapsulated or dropped but 326 natively forwarded."; 327 } 328 enum send-map-request { 329 value 2; 330 description 331 "Matching packets invoke Map-Requests."; 332 } 333 enum drop { 334 value 3; 335 description 336 "Matching packets are dropped."; 338 } 339 } 340 description 341 "Defines the lisp map-cache ACT type"; 342 reference "https://tools.ietf.org/html/rfc6830#section-6.1.4"; 343 } 344 typedef eid-id { 345 type string; 346 description 347 "Type encoding of lisp-addresses to be generally used in EID 348 keyed lists."; 349 } 350 typedef auth-key-type { 351 type enumeration { 352 enum none { 353 value 0; 354 description 355 "No authentication."; 356 } 357 enum hmac-sha-1-96 { 358 value 1; 359 description 360 "HMAC-SHA-1-96 (RFC2404) authentication is used."; 361 } 362 enum hmac-sha-256-128 { 363 value 2; 364 description 365 "HMAC-SHA-256-128 (RFC4868) authentication is used."; 366 } 367 } 368 description 369 "Enumeration of the authentication mechanisms supported by 370 LISP."; 371 reference 372 "https://tools.ietf.org/html/rfc6830#section-6.1.6"; 373 } 374 typedef xtr-id-type { 375 type binary { 376 length "16"; 377 } 378 description 379 "128 bit xTR identifier."; 380 } 382 grouping locator-properties { 383 description 384 "Properties of a RLOC"; 385 leaf priority { 386 type uint8; 387 description 388 "Locator priority."; 389 } 390 leaf weight { 391 type uint8; 392 description 393 "Locator weight."; 394 } 395 leaf multicast-priority { 396 type uint8; 397 description 398 "Locator's multicast priority"; 399 } 400 leaf multicast-weight { 401 type uint8; 402 description 403 "Locator's multicast weight"; 404 } 405 } 407 grouping locators-grouping { 408 description 409 "Group that defines a list of LISP locators."; 410 list locator { 411 key "id"; 412 description 413 "List of routing locators"; 414 leaf id { 415 type string { 416 length "1..64"; 417 } 418 description 419 "Locator id"; 420 } 421 container locator-address { 422 uses lcaf:lisp-address; 423 description 424 "The locator address provided in LISP canonincal 425 address format."; 426 } 427 uses locator-properties; 428 } 430 } 432 grouping local-locators-grouping { 433 description 434 "Group that defines a list of LISP locators."; 435 list interface { 436 key "interface-ref"; 437 description 438 "The address type of the locator"; 439 leaf interface-ref { 440 type if:interface-ref; 441 description 442 "The name of the interface supporting the locator."; 443 } 444 uses locator-properties; 445 } 446 } 448 grouping mapping { 449 description 450 "Group that defines a LISP mapping."; 451 container eid { 452 uses lcaf:lisp-address; 453 description 454 "End-host Identifier (EID) to be mapped to a list of 455 locators"; 456 } 457 leaf time-to-live { 458 type uint32; 459 units minutes; 460 description 461 "Mapping validity period in minutes."; 462 } 463 leaf creation-time { 464 type yang:date-and-time; 465 description 466 "Time when the mapping was created."; 467 } 468 leaf authoritative { 469 type bits { 470 bit A { 471 description 472 "Authoritative bit."; 473 } 474 } 475 description 476 "Bit that indicates if mapping comes from an 477 authoritative source."; 478 } 479 leaf static { 480 type boolean; 481 default "false"; 482 description 483 "This leaf should be true if the mapping is static."; 484 } 485 choice locator-list { 486 description 487 "list of locartors are either negative, or positive."; 488 case negative-mapping { 489 leaf map-reply-action { 490 type map-reply-action; 491 description 492 "Forwarding action for a negative mapping."; 493 } 494 } 495 case positive-mapping { 496 container rlocs { 497 uses locators-grouping; 498 description 499 "List of locators for a positive mapping."; 500 } 501 } 502 } 503 } 505 grouping mappings { 506 description 507 "Group that defines a list of LISP mappings."; 508 list virtual-network { 509 key "vni"; 510 description 511 "Virtual network to which the mappings belong."; 512 leaf vni { 513 type lcaf:instance-id-type; 514 description 515 "Virtual network identifier."; 516 } 517 container mappings { 518 description 519 "Mappings within the virtual network."; 520 list mapping { 521 key "id"; 522 description 523 "List of EID to RLOCs mappings."; 524 leaf id { 525 type eid-id; 526 description 527 "Id that uniquely identifies a mapping."; 528 } 529 uses mapping; 531 } 532 } 533 } 534 } 536 container lisp { 537 description 538 "Parameters for the LISP subsystem."; 540 container locator-sets { 541 description 542 "Container that defines a named locator set which can be 543 referenced elsewhere."; 544 list locator-set { 545 key "locator-set-name"; 546 description 547 "Multiple locator sets can be defined."; 548 leaf locator-set-name { 549 type string { 550 length "1..64"; 551 } 552 description 553 "Locator set name"; 554 } 555 choice locator-type { 556 description 557 "Locator sets can be based on local interfaces, or 558 general locators."; 559 case local-interface { 560 uses local-locators-grouping; 561 description 562 "List of locators in this set based on local 563 interfaces."; 564 } 565 case general-locator { 566 uses locators-grouping; 567 description 568 "List of locators in this set based on lisp-address."; 569 } 570 } 571 } 572 } 574 container lisp-router-instances { 575 description 576 "Different LISP routers instantiated in the device"; 577 list lisp-router-instance { 578 key "lisp-router-instance-id"; 579 description 580 "Each entry contains parameters for a LISP router."; 581 leaf lisp-router-instance-id { 582 type int32; 583 description 584 "Arbitrary lisp-router id."; 585 } 586 list lisp-role { 587 key lisp-role-type; 588 description 589 "List of lisp device roles such as MS, MR, ITR, 590 PITR, ETR or PETR."; 591 leaf lisp-role-type { 592 type lisp-role-ref; 593 description 594 "The type of LISP device - identity derived from the 595 'lisp-device' base identity."; 596 } 597 } 598 container lisp-router-id { 599 when "../lisp-role/lisp-role-type = 'itr' or 600 ../lisp-role/lisp-role-type = 'pitr' or 601 ../lisp-role/lisp-role-type = 'etr' or 602 ../lisp-role/lisp-role-type = 'petr'" { 603 description "Only when ITR, PITR, ETR or PETR."; 604 } 605 description 606 "Site-ID and xTR-ID of the device."; 607 leaf site-id { 608 type uint64; 609 description "Site ID"; 610 } 611 leaf xtr-id { 612 type lisp:xtr-id-type; 613 description "xTR ID"; 614 } 615 } 616 } 617 } 618 } 619 } 620 622 3. LISP-ITR Module 624 This module captures the configuration data model of a LISP ITR. The 625 model also captures some operational data elements. 627 3.1. Module Structure 629 module: ietf-lisp-itr 630 augment /lisp:lisp/lisp:lisp-router-instances/lisp:lisp-router-instance: 631 +--rw itr! 632 +--rw rloc-probing! 633 | +--rw interval? uint16 634 | +--rw retries? uint8 635 | +--rw retries-interval? uint16 636 +--rw itr-rlocs? -> /lisp:lisp/locator-sets/locator-set/locator-set-name 637 +--rw map-resolvers 638 | +--rw map-resolver* inet:ip-address 639 +--rw proxy-etrs 640 | +--rw proxy-etr-address* inet:ip-address 641 +--rw map-cache 642 +--rw virtual-network* [vni] 643 +--rw vni lcaf:instance-id-type 644 +--rw mappings 645 +--rw mapping* [id] 646 +--rw id eid-id 647 +--rw eid 648 | +--rw address-type lisp-address-family-ref 649 | +--rw virtual-network-id? instance-id-type 650 | +--rw (address)? 651 | +--:(no-address) 652 | | +--rw no-address? empty 653 | +--:(ipv4) 654 | | +--rw ipv4? inet:ipv4-address 655 | +--:(ipv4-prefix) 656 | | +--rw ipv4-prefix? inet:ipv4-prefix 657 | +--:(ipv6) 658 | | +--rw ipv6? inet:ipv6-address 659 | +--:(ipv6-prefix) 660 | | +--rw ipv6-prefix? inet:ipv6-prefix 661 | +--:(mac) 662 | | +--rw mac? yang:mac-address 663 | +--:(distinguished-name) 664 | | +--rw distinguished-name? distinguished-name-type 665 | +--:(as-number) 666 | | +--rw as-number? inet:as-number 667 | +--:(null-address) 668 | | +--rw null-address 669 | | +--rw address? empty 670 | +--:(afi-list) 671 | | +--rw afi-list 672 | | +--rw address-list* simple-address 673 | +--:(instance-id) 674 | | +--rw instance-id 675 | | +--rw iid? instance-id-type 676 | | +--rw mask-length? uint8 677 | | +--rw address? simple-address 678 | +--:(as-number-lcaf) 679 | | +--rw as-number-lcaf 680 | | +--rw as? inet:as-number 681 | | +--rw address? simple-address 682 | +--:(application-data) 683 | | +--rw application-data 684 | | +--rw address? simple-address 685 | | +--rw protocol? uint8 686 | | +--rw ip-tos? int32 687 | | +--rw local-port-low? inet:port-number 688 | | +--rw local-port-high? inet:port-number 689 | | +--rw remote-port-low? inet:port-number 690 | | +--rw remote-port-high? inet:port-number 691 | +--:(geo-coordinates) 692 | | +--rw geo-coordinates 693 | | +--rw latitude? bits 694 | | +--rw latitude-degrees? uint8 695 | | +--rw latitude-minutes? uint8 696 | | +--rw latitude-seconds? uint8 697 | | +--rw longitude? bits 698 | | +--rw longitude-degrees? uint16 699 | | +--rw longitude-minutes? uint8 700 | | +--rw longitude-seconds? uint8 701 | | +--rw altitude? int32 702 | | +--rw address? simple-address 703 | +--:(nat-traversal) 704 | | +--rw nat-traversal 705 | | +--rw ms-udp-port? uint16 706 | | +--rw etr-udp-port? uint16 707 | | +--rw global-etr-rloc? simple-address 708 | | +--rw ms-rloc? simple-address 709 | | +--rw private-etr-rloc? simple-address 710 | | +--rw rtr-rlocs* simple-address 711 | +--:(explicit-locator-path) 712 | | +--rw explicit-locator-path 713 | | +--rw hop* [hop-id] 714 | | +--rw hop-id string 715 | | +--rw address? simple-address 716 | | +--rw lrs-bits? bits 717 | +--:(source-dest-key) 718 | | +--rw source-dest-key 719 | | +--rw source? simple-address 720 | | +--rw dest? simple-address 721 | +--:(key-value-address) 722 | | +--rw key-value-address 723 | | +--rw key? simple-address 724 | | +--rw value? simple-address 725 | +--:(service-path) 726 | +--rw service-path 727 | +--rw service-path-id? service-path-id-type 728 | +--rw service-index? uint8 729 +--rw time-to-live? uint32 730 +--rw creation-time? yang:date-and-time 731 +--rw authoritative? bits 732 +--rw static? boolean 733 +--rw (locator-list)? 734 +--:(negative-mapping) 735 | +--rw map-reply-action? map-reply-action 736 +--:(positive-mapping) 737 +--rw rlocs 738 +--rw locator* [id] 739 +--rw id string 740 +--rw locator-address 741 | +--rw address-type lisp-address-family-ref 742 | +--rw virtual-network-id? instance-id-type 743 | +--rw (address)? 744 | +--:(no-address) 745 | | +--rw no-address? empty 746 | +--:(ipv4) 747 | | +--rw ipv4? inet:ipv4-address 748 | +--:(ipv4-prefix) 749 | | +--rw ipv4-prefix? inet:ipv4-prefix 750 | +--:(ipv6) 751 | | +--rw ipv6? inet:ipv6-address 752 | +--:(ipv6-prefix) 753 | | +--rw ipv6-prefix? inet:ipv6-prefix 754 | +--:(mac) 755 | | +--rw mac? yang:mac-address 756 | +--:(distinguished-name) 757 | | +--rw distinguished-name? distinguished-name-type 758 | +--:(as-number) 759 | | +--rw as-number? inet:as-number 760 | +--:(null-address) 761 | | +--rw null-address 762 | | +--rw address? empty 763 | +--:(afi-list) 764 | | +--rw afi-list 765 | | +--rw address-list* simple-address 766 | +--:(instance-id) 767 | | +--rw instance-id 768 | | +--rw iid? instance-id-type 769 | | +--rw mask-length? uint8 770 | | +--rw address? simple-address 771 | +--:(as-number-lcaf) 772 | | +--rw as-number-lcaf 773 | | +--rw as? inet:as-number 774 | | +--rw address? simple-address 775 | +--:(application-data) 776 | | +--rw application-data 777 | | +--rw address? simple-address 778 | | +--rw protocol? uint8 779 | | +--rw ip-tos? int32 780 | | +--rw local-port-low? inet:port-number 781 | | +--rw local-port-high? inet:port-number 782 | | +--rw remote-port-low? inet:port-number 783 | | +--rw remote-port-high? inet:port-number 784 | +--:(geo-coordinates) 785 | | +--rw geo-coordinates 786 | | +--rw latitude? bits 787 | | +--rw latitude-degrees? uint8 788 | | +--rw latitude-minutes? uint8 789 | | +--rw latitude-seconds? uint8 790 | | +--rw longitude? bits 791 | | +--rw longitude-degrees? uint16 792 | | +--rw longitude-minutes? uint8 793 | | +--rw longitude-seconds? uint8 794 | | +--rw altitude? int32 795 | | +--rw address? simple-address 796 | +--:(nat-traversal) 797 | | +--rw nat-traversal 798 | | +--rw ms-udp-port? uint16 799 | | +--rw etr-udp-port? uint16 800 | | +--rw global-etr-rloc? simple-address 801 | | +--rw ms-rloc? simple-address 802 | | +--rw private-etr-rloc? simple-address 803 | | +--rw rtr-rlocs* simple-address 804 | +--:(explicit-locator-path) 805 | | +--rw explicit-locator-path 806 | | +--rw hop* [hop-id] 807 | | +--rw hop-id string 808 | | +--rw address? simple-address 809 | | +--rw lrs-bits? bits 810 | +--:(source-dest-key) 811 | | +--rw source-dest-key 812 | | +--rw source? simple-address 813 | | +--rw dest? simple-address 814 | +--:(key-value-address) 815 | | +--rw key-value-address 816 | | +--rw key? simple-address 817 | | +--rw value? simple-address 818 | +--:(service-path) 819 | +--rw service-path 820 | +--rw service-path-id? service-path-id-type 821 | +--rw service-index? uint8 822 +--rw priority? uint8 823 +--rw weight? uint8 824 +--rw multicast-priority? uint8 825 +--rw multicast-weight? uint8 827 3.2. Module Definition 829 file "ietf-lisp-itr@2018-03-05.yang" 830 module ietf-lisp-itr { 831 namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-itr"; 832 prefix lisp-itr; 833 import ietf-lisp { 834 prefix lisp; 835 } 836 import ietf-inet-types { 837 prefix inet; 838 } 839 organization 840 "IETF LISP (Locator/ID Separation Protocol) Working Group"; 841 contact 842 "WG Web: 843 WG List: 845 Editor: Vina Ermagan 846 848 Editor: Alberto Rodriguez-Natal 849 851 Editor: Reshad Rahman 852 "; 853 description 854 "This YANG module defines the generic parameters for a LISP 855 ITR. The module can be extended by vendors to define 856 vendor-specific parameters and policies. 858 Copyright (c) 2018 IETF Trust and the persons identified as 859 authors of the code. All rights reserved. 861 Redistribution and use in source and binary forms, with or 862 without modification, is permitted pursuant to, and subject 863 to the license terms contained in, the Simplified BSD License 864 set forth in Section 4.c of the IETF Trust's Legal Provisions 865 Relating to IETF Documents 866 (http://trustee.ietf.org/license-info). 867 This version of this YANG module is part of RFC XXXX; see 868 the RFC itself for full legal notices. 869 "; 870 // RFC Ed.: replace XXXX with actual RFC number and remove 871 // this note 872 reference "RFC XXXX"; 874 revision 2018-03-05 { 875 description 876 "Initial revision."; 877 reference 878 "https://tools.ietf.org/html/rfc6830"; 879 } 880 augment "/lisp:lisp/lisp:lisp-router-instances/lisp:lisp-router-instance" { 881 when "lisp:lisp-role/lisp:lisp-role-type = 'lisp:itr' or 882 lisp:lisp-role/lisp:lisp-role-type = 'lisp:pitr'" { 883 description 884 "Augment is valid when LISP role type is ITR or PITR."; 885 } 886 description 887 "This augments LISP devices list with (P)ITR specific 888 parameters."; 889 container itr { 890 presence "LISP (P)ITR operation enabled"; 891 description 892 "ITR parameters"; 893 container rloc-probing { 894 presence "RLOC probing active"; 895 description 896 "RLOC-probing parameters"; 897 leaf interval { 898 type uint16; 899 units "seconds"; 900 description 901 "Interval in seconds for resending the probes"; 902 } 903 leaf retries { 904 type uint8; 905 description 906 "Number of retries for sending the probes"; 907 } 908 leaf retries-interval { 909 type uint16; 910 units "seconds"; 911 description 912 "Interval in seconds between retries when sending probes. 913 The action taken if all retries fail to receive is 914 impementation specific."; 916 } 917 } 918 leaf itr-rlocs { 919 type leafref { 920 path "/lisp:lisp/lisp:locator-sets/lisp:locator-set/" 921 + "lisp:locator-set-name"; 922 } 923 description 924 "Reference to a locator set that the (P)ITR includes in 925 Map-Requests"; 926 } 927 container map-resolvers { 928 description 929 "Map-Resolvers that the (P)ITR uses."; 930 leaf-list map-resolver { 931 type inet:ip-address; 932 min-elements 1; 933 description 934 "Each Map-Resolver within the list of Map-Resolvers."; 935 } 936 } 937 container proxy-etrs { 938 when "../../lisp:lisp-role/lisp:lisp-role-type = 'lisp:itr'" { 939 description 940 "Container exists only when LISP role type is ITR"; 941 } 942 description 943 "Proxy ETRs that the ITR uses."; 944 leaf-list proxy-etr-address{ 945 type inet:ip-address; 946 description 947 "Proxy ETR RLOC address."; 948 } 949 } 950 container map-cache{ 951 uses lisp:mappings; 952 description 953 "EID to RLOCs mappings cache."; 954 } 955 } 956 } 957 } 958 959 4. LISP-ETR Module 961 This module captures the configuration data model of a LISP ETR. The 962 model also captures some operational data elements. 964 4.1. Module Structure 966 module: ietf-lisp-etr 967 augment /lisp:lisp/lisp:lisp-router-instances/lisp:lisp-router-instance: 968 +--rw etr! 969 +--rw map-servers 970 | +--rw map-server* [ms-address] 971 | +--rw ms-address inet:ip-address 972 | +--rw auth-key? string 973 | +--rw auth-key-type? lisp:auth-key-type 974 +--rw local-eids 975 +--rw virtual-network* [vni] 976 +--rw vni lcaf:instance-id-type 977 +--rw eids 978 +--rw local-eid* [id] 979 +--rw id lisp:eid-id 980 +--rw eid-address 981 | +--rw address-type lisp-address-family-ref 982 | +--rw virtual-network-id? instance-id-type 983 | +--rw (address)? 984 | +--:(no-address) 985 | | +--rw no-address? empty 986 | +--:(ipv4) 987 | | +--rw ipv4? inet:ipv4-address 988 | +--:(ipv4-prefix) 989 | | +--rw ipv4-prefix? inet:ipv4-prefix 990 | +--:(ipv6) 991 | | +--rw ipv6? inet:ipv6-address 992 | +--:(ipv6-prefix) 993 | | +--rw ipv6-prefix? inet:ipv6-prefix 994 | +--:(mac) 995 | | +--rw mac? yang:mac-address 996 | +--:(distinguished-name) 997 | | +--rw distinguished-name? distinguished-name-type 998 | +--:(as-number) 999 | | +--rw as-number? inet:as-number 1000 | +--:(null-address) 1001 | | +--rw null-address 1002 | | +--rw address? empty 1003 | +--:(afi-list) 1004 | | +--rw afi-list 1005 | | +--rw address-list* simple-address 1006 | +--:(instance-id) 1007 | | +--rw instance-id 1008 | | +--rw iid? instance-id-type 1009 | | +--rw mask-length? uint8 1010 | | +--rw address? simple-address 1011 | +--:(as-number-lcaf) 1012 | | +--rw as-number-lcaf 1013 | | +--rw as? inet:as-number 1014 | | +--rw address? simple-address 1015 | +--:(application-data) 1016 | | +--rw application-data 1017 | | +--rw address? simple-address 1018 | | +--rw protocol? uint8 1019 | | +--rw ip-tos? int32 1020 | | +--rw local-port-low? inet:port-number 1021 | | +--rw local-port-high? inet:port-number 1022 | | +--rw remote-port-low? inet:port-number 1023 | | +--rw remote-port-high? inet:port-number 1024 | +--:(geo-coordinates) 1025 | | +--rw geo-coordinates 1026 | | +--rw latitude? bits 1027 | | +--rw latitude-degrees? uint8 1028 | | +--rw latitude-minutes? uint8 1029 | | +--rw latitude-seconds? uint8 1030 | | +--rw longitude? bits 1031 | | +--rw longitude-degrees? uint16 1032 | | +--rw longitude-minutes? uint8 1033 | | +--rw longitude-seconds? uint8 1034 | | +--rw altitude? int32 1035 | | +--rw address? simple-address 1036 | +--:(nat-traversal) 1037 | | +--rw nat-traversal 1038 | | +--rw ms-udp-port? uint16 1039 | | +--rw etr-udp-port? uint16 1040 | | +--rw global-etr-rloc? simple-address 1041 | | +--rw ms-rloc? simple-address 1042 | | +--rw private-etr-rloc? simple-address 1043 | | +--rw rtr-rlocs* simple-address 1044 | +--:(explicit-locator-path) 1045 | | +--rw explicit-locator-path 1046 | | +--rw hop* [hop-id] 1047 | | +--rw hop-id string 1048 | | +--rw address? simple-address 1049 | | +--rw lrs-bits? bits 1050 | +--:(source-dest-key) 1051 | | +--rw source-dest-key 1052 | | +--rw source? simple-address 1053 | | +--rw dest? simple-address 1054 | +--:(key-value-address) 1055 | | +--rw key-value-address 1056 | | +--rw key? simple-address 1057 | | +--rw value? simple-address 1058 | +--:(service-path) 1059 | +--rw service-path 1060 | +--rw service-path-id? service-path-id-type 1061 | +--rw service-index? uint8 1062 +--rw rlocs? -> /lisp:lisp/locator-sets/locator-set/locator-set-name 1063 +--rw record-ttl? uint32 1064 +--rw want-map-notify? boolean 1065 +--rw proxy-reply? boolean 1066 +--rw registration-interval? uint16 1068 4.2. Module Definition 1070 file "ietf-lisp-etr@2018-03-05.yang" 1071 module ietf-lisp-etr { 1072 namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-etr"; 1073 prefix lisp-etr; 1074 import ietf-lisp { 1075 prefix lisp; 1076 } 1077 import ietf-lisp-address-types { 1078 prefix lcaf; 1079 } 1080 import ietf-inet-types { 1081 prefix inet; 1082 } 1083 organization 1084 "IETF LISP (Locator/ID Separation Protocol) Working Group"; 1085 contact 1086 "WG Web: 1087 WG List: 1089 Editor: Vina Ermagan 1090 1092 Editor: Alberto Rodriguez-Natal 1093 1095 Editor: Reshad Rahman 1096 "; 1097 description 1098 "This YANG module defines the generic parameters for a LISP 1099 ETR. The module can be extended by vendors to define 1100 vendor-specific parameters and policies. 1102 Copyright (c) 2018 IETF Trust and the persons identified as 1103 authors of the code. All rights reserved. 1105 Redistribution and use in source and binary forms, with or 1106 without modification, is permitted pursuant to, and subject 1107 to the license terms contained in, the Simplified BSD License 1108 set forth in Section 4.c of the IETF Trust's Legal Provisions 1109 Relating to IETF Documents 1110 (http://trustee.ietf.org/license-info). 1112 This version of this YANG module is part of RFC XXXX; see 1113 the RFC itself for full legal notices. 1114 "; 1115 // RFC Ed.: replace XXXX with actual RFC number and remove 1116 // this note 1117 reference "RFC XXXX"; 1119 revision 2018-03-05 { 1120 description 1121 "Initial revision."; 1122 reference 1123 "https://tools.ietf.org/html/rfc6830"; 1124 } 1125 augment "/lisp:lisp/lisp:lisp-router-instances/lisp:lisp-router-instance" { 1126 when "lisp:lisp-role/lisp:lisp-role-type = 'lisp:etr' or 1127 lisp:lisp-role/lisp:lisp-role-type = 'lisp:petr'" { 1128 description 1129 "Augment is valid when LISP device type is (P)ETR."; 1130 } 1131 description 1132 "This augments LISP devices list with (P)ETR specific 1133 parameters."; 1134 container etr { 1135 presence "LISP (P)ETR operation enabled"; 1136 description 1137 "(P)ETR parameters."; 1139 container map-servers { 1140 when "../../lisp:lisp-role/lisp:lisp-role-type = 'lisp:etr'" { 1141 description 1142 "Container exists only when LISP device type is ETR."; 1143 } 1144 description 1145 "Map-Servers that the ETR uses."; 1146 list map-server { 1147 key "ms-address"; 1148 description 1149 "Each Map-Server within the list of Map-Servers."; 1150 leaf ms-address { 1151 type inet:ip-address; 1152 description 1153 "Map-Server address."; 1154 } 1155 leaf auth-key { 1156 type string; 1157 description 1158 "Map-Server authentication key."; 1159 } 1160 leaf auth-key-type { 1161 type lisp:auth-key-type; 1162 description 1163 "Map-Server authentication type."; 1164 } 1165 } 1166 } 1168 container local-eids { 1169 when "../../lisp:lisp-role/lisp:lisp-role-type = 'lisp:etr'" { 1170 description 1171 "Container exists only when LISP device type is ETR."; 1172 } 1173 description 1174 "Virtual networks served by the ETR."; 1175 list virtual-network { 1176 key "vni"; 1177 description 1178 "Virtual network for local-EIDs."; 1179 leaf vni { 1180 type lcaf:instance-id-type; 1181 description 1182 "Virtual network identifier."; 1183 } 1184 container eids { 1185 description 1186 "EIDs served by the ETR."; 1187 list local-eid { 1188 key "id"; 1189 min-elements 1; 1190 description 1191 "List of local EIDs."; 1192 leaf id { 1193 type lisp:eid-id; 1194 description 1195 "Unique id of local EID."; 1196 } 1197 container eid-address { 1198 uses lcaf:lisp-address; 1199 description 1200 "EID address in generic LISP address format."; 1201 } 1202 leaf rlocs { 1203 type leafref { 1204 path "/lisp:lisp/lisp:locator-sets/lisp:locator-set/" 1205 + "lisp:locator-set-name"; 1206 } 1207 description 1208 "Locator set mapped to this local EID."; 1209 } 1210 leaf record-ttl { 1211 type uint32; 1212 units minutes; 1213 description 1214 "Validity period of the EID to RLOCs mapping provided 1215 in Map-Replies."; 1216 } 1217 leaf want-map-notify { 1218 type boolean; 1219 default "true"; 1220 description 1221 "Flag which if set in a Map-Register requests that a 1222 Map-Notify be sent in response."; 1223 } 1224 leaf proxy-reply { 1225 type boolean; 1226 default "false"; 1227 description 1228 "Flag which if set in a Map-Register requests that the 1229 Map-Server proxy Map-Replies for the ETR."; 1230 } 1231 leaf registration-interval { 1232 type uint16; 1233 units "seconds"; 1234 default "60"; 1235 description 1236 "Interval between consecutive Map-Register messages."; 1237 } 1238 } 1239 } 1240 } 1241 } 1242 } 1243 } 1244 } 1245 1246 5. LISP-Map-Server Module 1248 This module captures the configuration data model of a LISP Map 1249 Server [RFC6833]. The model also captures some operational data 1250 elements. 1252 5.1. Module Structure 1254 module: ietf-lisp-mapserver 1255 augment /lisp:lisp/lisp:lisp-router-instances/lisp:lisp-router-instance: 1256 +--rw map-server! 1257 +--rw sites 1258 | +--rw site* [site-id] 1259 | +--rw site-id uint64 1260 | +--rw auth-key 1261 | +--rw auth-key-value? string 1262 | +--rw auth-key-type* lisp:auth-key-type 1263 +--rw virtual-network-ids 1264 | +--rw virtual-network-identifier* [vni] 1265 | +--rw vni lcaf:instance-id-type 1266 | +--rw mappings 1267 | | +--rw mapping* [eid-id] 1268 | | +--rw eid-id lisp:eid-id 1269 | | +--rw eid-address 1270 | | | +--rw address-type lisp-address-family-ref 1271 | | | +--rw virtual-network-id? instance-id-type 1272 | | | +--rw (address)? 1273 | | | +--:(no-address) 1274 | | | | +--rw no-address? empty 1275 | | | +--:(ipv4) 1276 | | | | +--rw ipv4? inet:ipv4-address 1277 | | | +--:(ipv4-prefix) 1278 | | | | +--rw ipv4-prefix? inet:ipv4-prefix 1279 | | | +--:(ipv6) 1280 | | | | +--rw ipv6? inet:ipv6-address 1281 | | | +--:(ipv6-prefix) 1282 | | | | +--rw ipv6-prefix? inet:ipv6-prefix 1283 | | | +--:(mac) 1284 | | | | +--rw mac? yang:mac-address 1285 | | | +--:(distinguished-name) 1286 | | | | +--rw distinguished-name? distinguished-name-type 1287 | | | +--:(as-number) 1288 | | | | +--rw as-number? inet:as-number 1289 | | | +--:(null-address) 1290 | | | | +--rw null-address 1291 | | | | +--rw address? empty 1292 | | | +--:(afi-list) 1293 | | | | +--rw afi-list 1294 | | | | +--rw address-list* simple-address 1295 | | | +--:(instance-id) 1296 | | | | +--rw instance-id 1297 | | | | +--rw iid? instance-id-type 1298 | | | | +--rw mask-length? uint8 1299 | | | | +--rw address? simple-address 1300 | | | +--:(as-number-lcaf) 1301 | | | | +--rw as-number-lcaf 1302 | | | | +--rw as? inet:as-number 1303 | | | | +--rw address? simple-address 1304 | | | +--:(application-data) 1305 | | | | +--rw application-data 1306 | | | | +--rw address? simple-address 1307 | | | | +--rw protocol? uint8 1308 | | | | +--rw ip-tos? int32 1309 | | | | +--rw local-port-low? inet:port-number 1310 | | | | +--rw local-port-high? inet:port-number 1311 | | | | +--rw remote-port-low? inet:port-number 1312 | | | | +--rw remote-port-high? inet:port-number 1313 | | | +--:(geo-coordinates) 1314 | | | | +--rw geo-coordinates 1315 | | | | +--rw latitude? bits 1316 | | | | +--rw latitude-degrees? uint8 1317 | | | | +--rw latitude-minutes? uint8 1318 | | | | +--rw latitude-seconds? uint8 1319 | | | | +--rw longitude? bits 1320 | | | | +--rw longitude-degrees? uint16 1321 | | | | +--rw longitude-minutes? uint8 1322 | | | | +--rw longitude-seconds? uint8 1323 | | | | +--rw altitude? int32 1324 | | | | +--rw address? simple-address 1325 | | | +--:(nat-traversal) 1326 | | | | +--rw nat-traversal 1327 | | | | +--rw ms-udp-port? uint16 1328 | | | | +--rw etr-udp-port? uint16 1329 | | | | +--rw global-etr-rloc? simple-address 1330 | | | | +--rw ms-rloc? simple-address 1331 | | | | +--rw private-etr-rloc? simple-address 1332 | | | | +--rw rtr-rlocs* simple-address 1333 | | | +--:(explicit-locator-path) 1334 | | | | +--rw explicit-locator-path 1335 | | | | +--rw hop* [hop-id] 1336 | | | | +--rw hop-id string 1337 | | | | +--rw address? simple-address 1338 | | | | +--rw lrs-bits? bits 1339 | | | +--:(source-dest-key) 1340 | | | | +--rw source-dest-key 1341 | | | | +--rw source? simple-address 1342 | | | | +--rw dest? simple-address 1343 | | | +--:(key-value-address) 1344 | | | | +--rw key-value-address 1345 | | | | +--rw key? simple-address 1346 | | | | +--rw value? simple-address 1347 | | | +--:(service-path) 1348 | | | +--rw service-path 1349 | | | +--rw service-path-id? service-path-id-type 1350 | | | +--rw service-index? uint8 1351 | | +--rw site-id* uint64 1352 | | +--rw more-specifics-accepted? boolean 1353 | | +--rw mapping-expiration-timeout? int16 1354 | | +--rw mapping-records 1355 | | +--rw mapping-record* [xtr-id] 1356 | | +--rw xtr-id lisp:xtr-id-type 1357 | | +--rw site-id? uint64 1358 | | +--rw eid 1359 | | | +--rw address-type lisp-address-family-ref 1360 | | | +--rw virtual-network-id? instance-id-type 1361 | | | +--rw (address)? 1362 | | | +--:(no-address) 1363 | | | | +--rw no-address? empty 1364 | | | +--:(ipv4) 1365 | | | | +--rw ipv4? inet:ipv4-address 1366 | | | +--:(ipv4-prefix) 1367 | | | | +--rw ipv4-prefix? inet:ipv4-prefix 1368 | | | +--:(ipv6) 1369 | | | | +--rw ipv6? inet:ipv6-address 1370 | | | +--:(ipv6-prefix) 1371 | | | | +--rw ipv6-prefix? inet:ipv6-prefix 1372 | | | +--:(mac) 1373 | | | | +--rw mac? yang:mac-address 1374 | | | +--:(distinguished-name) 1375 | | | | +--rw distinguished-name? distinguished-name-type 1376 | | | +--:(as-number) 1377 | | | | +--rw as-number? inet:as-number 1378 | | | +--:(null-address) 1379 | | | | +--rw null-address 1380 | | | | +--rw address? empty 1381 | | | +--:(afi-list) 1382 | | | | +--rw afi-list 1383 | | | | +--rw address-list* simple-address 1384 | | | +--:(instance-id) 1385 | | | | +--rw instance-id 1386 | | | | +--rw iid? instance-id-type 1387 | | | | +--rw mask-length? uint8 1388 | | | | +--rw address? simple-address 1389 | | | +--:(as-number-lcaf) 1390 | | | | +--rw as-number-lcaf 1391 | | | | +--rw as? inet:as-number 1392 | | | | +--rw address? simple-address 1393 | | | +--:(application-data) 1394 | | | | +--rw application-data 1395 | | | | +--rw address? simple-address 1396 | | | | +--rw protocol? uint8 1397 | | | | +--rw ip-tos? int32 1398 | | | | +--rw local-port-low? inet:port-number 1399 | | | | +--rw local-port-high? inet:port-number 1400 | | | | +--rw remote-port-low? inet:port-number 1401 | | | | +--rw remote-port-high? inet:port-number 1402 | | | +--:(geo-coordinates) 1403 | | | | +--rw geo-coordinates 1404 | | | | +--rw latitude? bits 1405 | | | | +--rw latitude-degrees? uint8 1406 | | | | +--rw latitude-minutes? uint8 1407 | | | | +--rw latitude-seconds? uint8 1408 | | | | +--rw longitude? bits 1409 | | | | +--rw longitude-degrees? uint16 1410 | | | | +--rw longitude-minutes? uint8 1411 | | | | +--rw longitude-seconds? uint8 1412 | | | | +--rw altitude? int32 1413 | | | | +--rw address? simple-address 1414 | | | +--:(nat-traversal) 1415 | | | | +--rw nat-traversal 1416 | | | | +--rw ms-udp-port? uint16 1417 | | | | +--rw etr-udp-port? uint16 1418 | | | | +--rw global-etr-rloc? simple-address 1419 | | | | +--rw ms-rloc? simple-address 1420 | | | | +--rw private-etr-rloc? simple-address 1421 | | | | +--rw rtr-rlocs* simple-address 1422 | | | +--:(explicit-locator-path) 1423 | | | | +--rw explicit-locator-path 1424 | | | | +--rw hop* [hop-id] 1425 | | | | +--rw hop-id string 1426 | | | | +--rw address? simple-address 1427 | | | | +--rw lrs-bits? bits 1428 | | | +--:(source-dest-key) 1429 | | | | +--rw source-dest-key 1430 | | | | +--rw source? simple-address 1431 | | | | +--rw dest? simple-address 1432 | | | +--:(key-value-address) 1433 | | | | +--rw key-value-address 1434 | | | | +--rw key? simple-address 1435 | | | | +--rw value? simple-address 1436 | | | +--:(service-path) 1437 | | | +--rw service-path 1438 | | | +--rw service-path-id? service-path-id-type 1439 | | | +--rw service-index? uint8 1440 | | +--rw time-to-live? uint32 1441 | | +--rw creation-time? yang:date-and-time 1442 | | +--rw authoritative? bits 1443 | | +--rw static? boolean 1444 | | +--rw (locator-list)? 1445 | | +--:(negative-mapping) 1446 | | | +--rw map-reply-action? map-reply-action 1447 | | +--:(positive-mapping) 1448 | | +--rw rlocs 1449 | | +--rw locator* [id] 1450 | | +--rw id string 1451 | | +--rw locator-address 1452 | | | +--rw address-type lisp-address-family-ref 1453 | | | +--rw virtual-network-id? instance-id-type 1454 | | | +--rw (address)? 1455 | | | +--:(no-address) 1456 | | | | +--rw no-address? empty 1457 | | | +--:(ipv4) 1458 | | | | +--rw ipv4? inet:ipv4-address 1459 | | | +--:(ipv4-prefix) 1460 | | | | +--rw ipv4-prefix? inet:ipv4-prefix 1461 | | | +--:(ipv6) 1462 | | | | +--rw ipv6? inet:ipv6-address 1463 | | | +--:(ipv6-prefix) 1464 | | | | +--rw ipv6-prefix? inet:ipv6-prefix 1465 | | | +--:(mac) 1466 | | | | +--rw mac? yang:mac-address 1467 | | | +--:(distinguished-name) 1468 | | | | +--rw distinguished-name? distinguished-name-type 1469 | | | +--:(as-number) 1470 | | | | +--rw as-number? inet:as-number 1471 | | | +--:(null-address) 1472 | | | | +--rw null-address 1473 | | | | +--rw address? empty 1474 | | | +--:(afi-list) 1475 | | | | +--rw afi-list 1476 | | | | +--rw address-list* simple-address 1477 | | | +--:(instance-id) 1478 | | | | +--rw instance-id 1479 | | | | +--rw iid? instance-id-type 1480 | | | | +--rw mask-length? uint8 1481 | | | | +--rw address? simple-address 1482 | | | +--:(as-number-lcaf) 1483 | | | | +--rw as-number-lcaf 1484 | | | | +--rw as? inet:as-number 1485 | | | | +--rw address? simple-address 1486 | | | +--:(application-data) 1487 | | | | +--rw application-data 1488 | | | | +--rw address? simple-address 1489 | | | | +--rw protocol? uint8 1490 | | | | +--rw ip-tos? int32 1491 | | | | +--rw local-port-low? inet:port-number 1492 | | | | +--rw local-port-high? inet:port-number 1493 | | | | +--rw remote-port-low? inet:port-number 1494 | | | | +--rw remote-port-high? inet:port-number 1495 | | | +--:(geo-coordinates) 1496 | | | | +--rw geo-coordinates 1497 | | | | +--rw latitude? bits 1498 | | | | +--rw latitude-degrees? uint8 1499 | | | | +--rw latitude-minutes? uint8 1500 | | | | +--rw latitude-seconds? uint8 1501 | | | | +--rw longitude? bits 1502 | | | | +--rw longitude-degrees? uint16 1503 | | | | +--rw longitude-minutes? uint8 1504 | | | | +--rw longitude-seconds? uint8 1505 | | | | +--rw altitude? int32 1506 | | | | +--rw address? simple-address 1507 | | | +--:(nat-traversal) 1508 | | | | +--rw nat-traversal 1509 | | | | +--rw ms-udp-port? uint16 1510 | | | | +--rw etr-udp-port? uint16 1511 | | | | +--rw global-etr-rloc? simple-address 1512 | | | | +--rw ms-rloc? simple-address 1513 | | | | +--rw private-etr-rloc? simple-address 1514 | | | | +--rw rtr-rlocs* simple-address 1515 | | | +--:(explicit-locator-path) 1516 | | | | +--rw explicit-locator-path 1517 | | | | +--rw hop* [hop-id] 1518 | | | | +--rw hop-id string 1519 | | | | +--rw address? simple-address 1520 | | | | +--rw lrs-bits? bits 1521 | | | +--:(source-dest-key) 1522 | | | | +--rw source-dest-key 1523 | | | | +--rw source? simple-address 1524 | | | | +--rw dest? simple-address 1525 | | | +--:(key-value-address) 1526 | | | | +--rw key-value-address 1527 | | | | +--rw key? simple-address 1528 | | | | +--rw value? simple-address 1529 | | | +--:(service-path) 1530 | | | +--rw service-path 1531 | | | +--rw service-path-id? service-path-id-type 1532 | | | +--rw service-index? uint8 1533 | | +--rw priority? uint8 1534 | | +--rw weight? uint8 1535 | | +--rw multicast-priority? uint8 1536 | | +--rw multicast-weight? uint8 1537 | +--ro counters 1538 | +--ro map-registers-in? yang:counter32 1539 | +--ro map-registers-in-auth-failed? yang:counter32 1540 | +--ro map-notify-records-out? yang:counter32 1541 | +--ro proxy-reply-records-out? yang:counter32 1542 | +--ro map-requests-forwarded-out? yang:counter32 1543 +--rw mapping-system-type? lisp:mapping-system-ref 1544 +--ro summary 1545 | +--ro number-configured-sites? uint32 1546 | +--ro number-registered-sites? uint32 1547 | +--ro af-datum 1548 | +--ro af-data* [address-type] 1549 | +--ro address-type lcaf:lisp-address-family-ref 1550 | +--ro number-configured-eids? uint32 1551 | +--ro number-registered-eids? uint32 1552 +--ro counters 1553 +--ro map-registers-in? yang:counter32 1554 +--ro map-registers-in-auth-failed? yang:counter32 1555 +--ro map-notify-records-out? yang:counter32 1556 +--ro proxy-reply-records-out? yang:counter32 1557 +--ro map-requests-forwarded-out? yang:counter32 1559 5.2. Module Definition 1561 file "ietf-lisp-mapserver@2018-03-05.yang" 1562 module ietf-lisp-mapserver { 1563 namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-mapserver"; 1564 prefix lisp-ms; 1565 import ietf-lisp { 1566 prefix lisp; 1567 } 1568 import ietf-lisp-address-types { 1569 prefix lcaf; 1570 } 1571 import ietf-yang-types { 1572 prefix yang; 1573 revision-date 2013-07-15; 1574 } 1576 organization 1577 "IETF LISP (Locator/ID Separation Protocol) Working Group"; 1578 contact 1579 "WG Web: 1580 WG List: 1581 Editor: Vina Ermagan 1582 1584 Editor: Alberto Rodriguez-Natal 1585 1587 Editor: Reshad Rahman 1588 "; 1589 description 1590 "This YANG module defines the generic parameters for a LISP 1591 Map-Server. The module can be extended by vendors to define 1592 vendor-specific parameters and policies. 1594 Copyright (c) 2018 IETF Trust and the persons identified as 1595 authors of the code. All rights reserved. 1597 Redistribution and use in source and binary forms, with or 1598 without modification, is permitted pursuant to, and subject 1599 to the license terms contained in, the Simplified BSD License 1600 set forth in Section 4.c of the IETF Trust's Legal Provisions 1601 Relating to IETF Documents 1602 (http://trustee.ietf.org/license-info). 1604 This version of this YANG module is part of RFC XXXX; see 1605 the RFC itself for full legal notices. 1606 "; 1607 // RFC Ed.: replace XXXX with actual RFC number and remove 1608 // this note 1609 reference "RFC XXXX"; 1611 revision 2018-03-05 { 1612 description 1613 "Initial revision."; 1614 reference 1615 "https://tools.ietf.org/html/rfc6833"; 1616 } 1618 identity ms { 1619 base lisp:lisp-role; 1620 description 1621 "LISP Map-Server."; 1622 } 1624 grouping ms-counters { 1625 description "Group that defines map-server counters."; 1626 container counters { 1627 config false; 1628 description "Container for the counters"; 1629 leaf map-registers-in { 1630 type yang:counter64; 1631 description "Number of incoming Map-Register messages"; 1632 } 1634 leaf map-registers-in-auth-failed { 1635 type yang:counter64; 1636 description 1637 "Number of incoming Map-Register messages failed 1638 authentication"; 1639 } 1641 leaf map-notify-records-out { 1642 type yang:counter64; 1643 description 1644 "Number of outgoing Map-Notify records"; 1645 } 1647 leaf proxy-reply-records-out { 1648 type yang:counter64; 1649 description 1650 "Number of outgoing proxy Map-Reply records"; 1651 } 1653 leaf map-requests-forwarded-out { 1654 type yang:counter64; 1655 description 1656 "Number of outgoing Map-Requests forwarded to ETR"; 1657 } 1658 } 1659 } 1661 augment "/lisp:lisp/lisp:lisp-router-instances" 1662 + "/lisp:lisp-router-instance" { 1663 when "lisp:lisp-role/lisp:lisp-role-type = 'lisp-ms:ms'" { 1664 description 1665 "Augment is valid when LISP device type is Map-Server."; 1666 } 1667 description 1668 "This augments LISP devices list with Map-Server specific 1669 parameters."; 1670 container map-server { 1671 presence "LISP Map-Server operation enabled"; 1672 description 1673 "Map-Server parameters."; 1674 container sites{ 1675 description 1676 "Sites to accept registrations from."; 1678 list site { 1679 key site-id; 1680 description 1681 "Site that can send registrations."; 1682 leaf site-id { 1683 type uint64; 1684 description "Site ID"; 1685 } 1686 container auth-key { 1687 description 1688 "Site authentication key."; 1689 leaf auth-key-value { 1690 type string; 1691 description 1692 "Clear text authentication key"; 1693 } 1694 leaf-list auth-key-type { 1695 type lisp:auth-key-type; 1696 description 1697 "Authentication key type."; 1698 } 1699 } 1700 } 1701 } 1702 container virtual-network-ids { 1703 description 1704 "Sites for which the Map-Server accepts registrations."; 1705 list virtual-network-identifier { 1706 key "vni"; 1707 description 1708 "Virtual network instances in the Map-Server."; 1709 leaf vni { 1710 type lcaf:instance-id-type; 1711 description 1712 "Virtual network identifier."; 1713 } 1714 container mappings { 1715 description 1716 "EIDs registered by device."; 1717 list mapping { 1718 key "eid-id"; 1719 description 1720 "List of EIDs registered by device."; 1721 leaf eid-id { 1722 type lisp:eid-id; 1723 description 1724 "Id of the EID registered."; 1725 } 1726 container eid-address { 1727 uses lcaf:lisp-address; 1728 description 1729 "EID in generic LISP address format registered 1730 with the Map-Server."; 1731 } 1732 leaf-list site-id { 1733 type uint64; 1734 description "Site ID"; 1735 } 1736 leaf more-specifics-accepted { 1737 type boolean; 1738 default "false"; 1739 description 1740 "Flag indicating if more specific prefixes 1741 can be registered."; 1742 } 1743 leaf mapping-expiration-timeout { 1744 type int16; 1745 units "seconds"; 1746 default "180"; //3 times the mapregister int 1747 description 1748 "Time before mapping is expired if no new 1749 registrations are received."; 1750 } 1751 container mapping-records { 1752 description 1753 "Datastore of registered mappings."; 1754 list mapping-record{ 1755 key xtr-id; 1756 description 1757 "Registered mapping."; 1758 leaf xtr-id { 1759 type lisp:xtr-id-type; 1760 description "xTR ID"; 1761 } 1762 leaf site-id { 1763 type uint64; 1764 description "Site ID"; 1765 } 1766 uses lisp:mapping; 1767 } 1768 } 1769 } 1770 } 1771 uses ms-counters; 1772 } 1773 } 1774 leaf mapping-system-type { 1775 type lisp:mapping-system-ref; 1776 description 1777 "A reference to the mapping system"; 1778 } 1780 container summary { 1781 config false; 1782 description "Summary state information"; 1784 leaf number-configured-sites { 1785 type uint32; 1786 description "Number of configured LISP sites"; 1787 } 1788 leaf number-registered-sites { 1789 type uint32; 1790 description "Number of registered LISP sites"; 1791 } 1792 container af-datum { 1793 description "Number of configured EIDs per each AF"; 1795 list af-data { 1796 key "address-type"; 1797 description "Number of configured EIDs for this AF"; 1798 leaf address-type { 1799 type lcaf:lisp-address-family-ref; 1800 description "AF type"; 1801 } 1802 leaf number-configured-eids { 1803 type uint32; 1804 description "Number of configured EIDs for this AF"; 1805 } 1806 leaf number-registered-eids { 1807 type uint32; 1808 description "Number of registered EIDs for this AF"; 1809 } 1810 } 1811 } 1812 } 1813 uses ms-counters; 1814 } 1815 } 1816 } 1817 1819 6. LISP-Map-Resolver Module 1821 This module captures the configuration data model of a LISP Map 1822 Resolver [RFC6833]. The model also captures some operational data 1823 elements. 1825 6.1. Module Structure 1827 module: ietf-lisp-mapresolver 1828 augment /lisp:lisp/lisp:lisp-router-instances/lisp:lisp-router-instance: 1829 +--rw map-resolver! 1830 +--rw mapping-system-type? lisp:mapping-system-ref 1831 +--rw ms-address? inet:ip-address 1833 6.2. Module Definition 1835 file "ietf-lisp-mapresolver@2018-03-05.yang" 1836 module ietf-lisp-mapresolver { 1837 namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-mapresolver"; 1838 prefix lisp-mr; 1839 import ietf-lisp { 1840 prefix lisp; 1841 } 1842 import ietf-inet-types { 1843 prefix inet; 1844 } 1846 organization 1847 "IETF LISP (Locator/ID Separation Protocol) Working Group"; 1848 contact 1849 "WG Web: 1850 WG List: 1852 Editor: Vina Ermagan 1853 1855 Editor: Alberto Rodriguez-Natal 1856 1858 Editor: Reshad Rahman 1859 "; 1860 description 1861 "This YANG module defines the generic parameters for a LISP 1862 Map-Resolver. The module can be extended by vendors to define 1863 vendor-specific parameters and policies. 1865 Copyright (c) 2018 IETF Trust and the persons identified as 1866 authors of the code. All rights reserved. 1868 Redistribution and use in source and binary forms, with or 1869 without modification, is permitted pursuant to, and subject 1870 to the license terms contained in, the Simplified BSD License 1871 set forth in Section 4.c of the IETF Trust's Legal Provisions 1872 Relating to IETF Documents 1873 (http://trustee.ietf.org/license-info). 1875 This version of this YANG module is part of RFC XXXX; see 1876 the RFC itself for full legal notices. 1877 "; 1878 // RFC Ed.: replace XXXX with actual RFC number and remove 1879 // this note 1880 reference "RFC XXXX"; 1882 revision 2018-05-03 { 1883 description 1884 "Initial revision."; 1885 reference 1886 "https://tools.ietf.org/html/rfc6833"; 1887 } 1888 identity mr { 1889 base lisp:lisp-role; 1890 description 1891 "LISP Map-Resolver."; 1892 } 1893 augment "/lisp:lisp/lisp:lisp-router-instances" 1894 +"/lisp:lisp-router-instance" { 1895 when "lisp:lisp-role/lisp:lisp-role-type = 'lisp-mr:mr'" { 1896 description 1897 "Augment is valid when LISP device type is Map-Resolver."; 1898 } 1899 description 1900 "This augments LISP devices list with Map-Resolver specific 1901 parameters."; 1902 container map-resolver { 1903 presence "LISP Map-Resolver operation enabled"; 1904 description 1905 "Map-Resolver parameters."; 1906 leaf mapping-system-type { 1907 type lisp:mapping-system-ref; 1908 description 1909 "A reference to the mapping system"; 1910 } 1911 leaf ms-address { 1912 when "../mapping-system-type='lisp-mr:single-node-mapping-system'"; 1913 type inet:ip-address; 1914 description 1915 "address to reach the Map Server when " 1916 + "lisp-mr:single-node-mapping-system is being used."; 1917 } 1918 } 1919 } 1920 } 1921 1923 7. LISP-Address-Types Module 1925 This module captures the various LISP address types, and is an 1926 essential building block used in other LISP modules. 1928 7.1. Module Definition 1930 file "ietf-lisp-address-types@2018-03-05.yang" 1931 module ietf-lisp-address-types { 1932 namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-address-types"; 1933 prefix laddr; 1934 import ietf-inet-types { 1935 prefix inet; 1936 revision-date 2013-07-15; 1937 } 1938 import ietf-yang-types { 1939 prefix yang; 1940 revision-date 2013-07-15; 1941 } 1942 organization 1943 "IETF LISP (Locator/ID Separation Protocol) Working Group"; 1944 contact 1945 "WG Web: 1946 WG List: 1948 Editor: Vina Ermagan 1949 1951 Editor: Alberto Rodriguez-Natal 1952 1954 Editor: Reshad Rahman 1955 "; 1956 description 1957 "This YANG module defines the LISP Canonical Address Formats 1958 (LCAF) for LISP. The module can be extended by vendors to 1959 define vendor-specific parameters. 1961 Copyright (c) 2018 IETF Trust and the persons identified as 1962 authors of the code. All rights reserved. 1964 Redistribution and use in source and binary forms, with or 1965 without modification, is permitted pursuant to, and subject 1966 to the license terms contained in, the Simplified BSD License 1967 set forth in Section 4.c of the IETF Trust's Legal Provisions 1968 Relating to IETF Documents 1969 (http://trustee.ietf.org/license-info). 1971 This version of this YANG module is part of RFC XXXX; see 1972 the RFC itself for full legal notices. 1974 "; 1975 // RFC Ed.: replace XXXX with actual RFC number and remove 1976 // this note 1977 reference "RFC XXXX"; 1979 revision 2018-03-05 { 1980 description 1981 "Initial revision."; 1982 reference 1983 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10"; 1984 } 1985 identity lisp-address-family { 1986 description 1987 "Base identity from which identities describing LISP address 1988 families are derived."; 1989 } 1990 identity no-address-afi { 1991 base lisp-address-family; 1992 description 1993 "IANA Reserved."; 1994 } 1995 identity ipv4-afi { 1996 base lisp-address-family; 1997 description 1998 "IANA IPv4 address family."; 1999 } 2000 identity ipv4-prefix-afi { 2001 base lisp-address-family; 2002 description 2003 "IANA IPv4 address family prefix."; 2004 } 2005 identity ipv6-afi { 2006 base lisp-address-family; 2007 description 2008 "IANA IPv6 address family."; 2009 } 2010 identity ipv6-prefix-afi { 2011 base lisp-address-family; 2012 description 2013 "IANA IPv6 address family prefix."; 2014 } 2015 identity mac-afi { 2016 base lisp-address-family; 2017 description 2018 "IANA MAC address family."; 2019 } 2020 identity distinguished-name-afi { 2021 base lisp-address-family; 2022 description 2023 "IANA Distinguished Name address family."; 2024 } 2025 identity as-number-afi { 2026 base lisp-address-family; 2027 description 2028 "IANA AS Number address family."; 2029 } 2030 identity lcaf { 2031 base lisp-address-family; 2032 description 2033 "IANA LISP Canonical Address Format address family."; 2034 } 2035 identity null-address-lcaf { 2036 base lcaf; 2037 description 2038 "Null body LCAF type."; 2039 } 2040 identity afi-list-lcaf { 2041 base lcaf; 2042 description 2043 "AFI-List LCAF type."; 2044 } 2045 identity instance-id-lcaf { 2046 base lcaf; 2047 description 2048 "Instance-ID LCAF type."; 2049 } 2050 identity as-number-lcaf { 2051 base lcaf; 2052 description 2053 "AS Number LCAF type."; 2054 } 2055 identity application-data-lcaf { 2056 base lcaf; 2057 description 2058 "Application Data LCAF type."; 2059 } 2060 identity geo-coordinates-lcaf { 2061 base lcaf; 2062 description 2063 "Geo-coordinates LCAF type."; 2064 } 2065 identity opaque-key-lcaf { 2066 base lcaf; 2067 description 2068 "Opaque Key LCAF type."; 2069 } 2070 identity nat-traversal-lcaf { 2071 base lcaf; 2072 description 2073 "NAT-Traversal LCAF type."; 2074 } 2075 identity nonce-locator-lcaf { 2076 base lcaf; 2077 description 2078 "Nonce-Locator LCAF type."; 2079 } 2080 identity multicast-info-lcaf { 2081 base lcaf; 2082 description 2083 "Multicast Info LCAF type."; 2084 } 2085 identity explicit-locator-path-lcaf { 2086 base lcaf; 2087 description 2088 "Explicit Locator Path LCAF type."; 2089 } 2090 identity security-key-lcaf { 2091 base lcaf; 2092 description 2093 "Security Key LCAF type."; 2094 } 2095 identity source-dest-key-lcaf { 2096 base lcaf; 2097 description 2098 "Source/Dest LCAF type."; 2099 } 2100 identity replication-list-lcaf { 2101 base lcaf; 2102 description 2103 "Replication-List LCAF type."; 2104 } 2105 identity json-data-model-lcaf { 2106 base lcaf; 2107 description 2108 "JSON Data Model LCAF type."; 2109 } 2110 identity key-value-address-lcaf { 2111 base lcaf; 2112 description 2113 "Key/Value Address LCAF type."; 2114 } 2115 identity encapsulation-format-lcaf { 2116 base lcaf; 2117 description 2118 "Encapsulation Format LCAF type."; 2119 } 2120 identity service-path-lcaf { 2121 base lcaf; 2122 description 2123 "Service Path LCAF type."; 2124 } 2125 typedef instance-id-type { 2126 type uint32 { 2127 range "0..16777215"; 2128 } 2129 description 2130 "Defines the range of values for an Instance ID."; 2131 } 2132 typedef service-path-id-type { 2133 type uint32 { 2134 range "0..16777215"; 2135 } 2136 description 2137 "Defines the range of values for a Service Path ID."; 2138 } 2139 typedef distinguished-name-type { 2140 type string; 2141 description 2142 "Distinguished Name address."; 2143 reference 2144 "http://www.iana.org/assignments/address-family-numbers/ 2145 address-family-numbers.xhtml"; 2146 } 2147 typedef simple-address { 2148 type union { 2149 type inet:ip-address; 2150 type inet:ip-prefix; 2151 type yang:mac-address; 2152 type distinguished-name-type; 2153 type inet:as-number; 2154 } 2155 description 2156 "Union of address types that can be part of LCAFs."; 2157 } 2159 typedef lisp-address-family-ref { 2160 type identityref { 2161 base lisp-address-family; 2162 } 2163 description 2164 "LISP address family reference."; 2165 } 2166 typedef lcaf-ref { 2167 type identityref { 2168 base lcaf; 2169 } 2170 description 2171 "LCAF types reference."; 2172 } 2174 grouping lisp-address { 2175 description 2176 "Generic LISP address."; 2177 leaf address-type { 2178 type lisp-address-family-ref; 2179 mandatory true; 2180 description 2181 "Type of the LISP address."; 2182 } 2183 leaf virtual-network-id { 2184 type instance-id-type; 2185 description 2186 "Virtual Network Identifier (instance-id) of the address."; 2187 } 2188 choice address { 2189 description 2190 "Various LISP address types, including IP, MAC, and LCAF."; 2192 leaf no-address { 2193 when "../address-type = 'laddr:no-addr-afi'" { 2194 description 2195 "When AFI is 0."; 2196 } 2197 type empty; 2198 description 2199 "No address."; 2200 } 2201 leaf ipv4 { 2202 when "../address-type = 'laddr:ipv4-afi'" { 2203 description 2204 "When AFI is IPv4."; 2205 } 2206 type inet:ipv4-address; 2207 description 2208 "IPv4 address."; 2209 } 2210 leaf ipv4-prefix { 2211 when "../address-type = 'laddr:ipv4-prefix-afi'" { 2212 description 2213 "When AFI is IPv4."; 2214 } 2215 type inet:ipv4-prefix; 2216 description 2217 "IPv4 prefix."; 2218 } 2219 leaf ipv6 { 2220 when "../address-type = 'laddr:ipv6-afi'" { 2221 description 2222 "When AFI is IPv6."; 2223 } 2224 type inet:ipv6-address; 2225 description 2226 "IPv6 address."; 2227 } 2228 leaf ipv6-prefix { 2229 when "../address-type = 'laddr:ipv6-prefix-afi'" { 2230 description 2231 "When AFI is IPv6."; 2232 } 2233 type inet:ipv6-prefix; 2234 description 2235 "IPv6 address."; 2236 } 2237 leaf mac { 2238 when "../address-type = 'laddr:mac-afi'" { 2239 description 2240 "When AFI is MAC."; 2241 } 2242 type yang:mac-address; 2243 description 2244 "MAC address."; 2245 } 2246 leaf distinguished-name { 2247 when "../address-type = 'laddr:distinguished-name-afi'" { 2248 description 2249 "When AFI is distinguished-name."; 2250 } 2251 type distinguished-name-type; 2252 description 2253 "Distinguished Name address."; 2254 } 2255 leaf as-number { 2256 when "../address-type = 'laddr:as-number-afi'" { 2257 description 2258 "When AFI is as-number."; 2259 } 2260 type inet:as-number; 2261 description 2262 "AS Number."; 2263 } 2264 container null-address { 2265 when "../address-type = 'laddr:null-address-lcaf'" { 2266 description 2267 "When LCAF type is null."; 2268 } 2269 description 2270 "Null body LCAF type"; 2271 leaf address { 2272 type empty; 2273 description 2274 "AFI address."; 2275 } 2276 } 2277 container afi-list { 2278 when "../address-type = 'laddr:afi-list-lcaf'" { 2279 description 2280 "When LCAF type is AFI-List."; 2281 } 2282 description 2283 "AFI-List LCAF type."; 2284 reference 2285 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 2286 #section-4.16.1"; 2287 leaf-list address-list { 2288 type simple-address; 2289 description 2290 "List of AFI addresses."; 2291 } 2292 } 2293 container instance-id { 2294 when "../address-type = 'laddr:instance-id-lcaf'" { 2295 description 2296 "When LCAF type is Instance-ID"; 2297 } 2298 description 2299 "Instance ID LCAF type."; 2301 reference 2302 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 2303 #section-4.2"; 2304 leaf iid { 2305 type instance-id-type; 2306 description 2307 "Instance ID value."; 2308 } 2309 leaf mask-length { 2310 type uint8; 2311 description 2312 "Mask length."; 2313 } 2314 leaf address { 2315 type simple-address; 2316 description 2317 "AFI address."; 2318 } 2319 } 2320 container as-number-lcaf { 2321 when "../address-type = 'laddr:as-number-lcaf'" { 2322 description 2323 "When LCAF type is AS-Number."; 2324 } 2325 description 2326 "AS Number LCAF type."; 2327 reference 2328 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 2329 #section-4.3"; 2330 leaf as { 2331 type inet:as-number; 2332 description 2333 "AS number."; 2334 } 2335 leaf address { 2336 type simple-address; 2337 description 2338 "AFI address."; 2339 } 2340 } 2341 container application-data { 2342 when "../address-type = 'laddr:application-data-lcaf'" { 2343 description 2344 "When LCAF type is Application Data."; 2345 } 2346 description 2347 "Application Data LCAF type."; 2348 reference 2349 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 2350 #section-4.4"; 2351 leaf address { 2352 type simple-address; 2353 description 2354 "AFI address."; 2355 } 2356 leaf protocol { 2357 type uint8; 2358 description 2359 "Protocol number."; 2360 } 2361 leaf ip-tos { 2362 type int32; 2363 description 2364 "Type of service field."; 2365 } 2366 leaf local-port-low { 2367 type inet:port-number; 2368 description 2369 "Low end of local port range."; 2370 } 2371 leaf local-port-high { 2372 type inet:port-number; 2373 description 2374 "High end of local port range."; 2375 } 2376 leaf remote-port-low { 2377 type inet:port-number; 2378 description 2379 "Low end of remote port range."; 2380 } 2381 leaf remote-port-high { 2382 type inet:port-number; 2383 description 2384 "High end of remote port range."; 2385 } 2386 } 2387 container geo-coordinates { 2388 when "../address-type = 'laddr:geo-coordinates-lcaf'" { 2389 description 2390 "When LCAF type is Geo-coordinates."; 2391 } 2392 description 2393 "Geo-coordinates LCAF type."; 2394 reference 2395 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 2396 #section-4.5"; 2398 leaf latitude { 2399 type bits { 2400 bit N { 2401 description 2402 "Latitude bit."; 2403 } 2404 } 2405 description 2406 "Bit that selects between North and South latitude."; 2407 } 2408 leaf latitude-degrees { 2409 type uint8 { 2410 range "0 .. 90"; 2411 } 2412 description 2413 "Degrees of latitude."; 2414 } 2415 leaf latitude-minutes { 2416 type uint8 { 2417 range "0..59"; 2418 } 2419 description 2420 "Minutes of latitude."; 2421 } 2422 leaf latitude-seconds { 2423 type uint8 { 2424 range "0..59"; 2425 } 2426 description 2427 "Seconds of latitude."; 2428 } 2429 leaf longitude { 2430 type bits { 2431 bit E { 2432 description 2433 "Longitude bit."; 2434 } 2435 } 2436 description 2437 "Bit that selects between East and West longitude."; 2438 } 2439 leaf longitude-degrees { 2440 type uint16 { 2441 range "0 .. 180"; 2442 } 2443 description 2444 "Degrees of longitude."; 2445 } 2446 leaf longitude-minutes { 2447 type uint8 { 2448 range "0..59"; 2449 } 2450 description 2451 "Minutes of longitude."; 2452 } 2453 leaf longitude-seconds { 2454 type uint8 { 2455 range "0..59"; 2456 } 2457 description 2458 "Seconds of longitude."; 2459 } 2460 leaf altitude { 2461 type int32; 2462 description 2463 "Height relative to sea level in meters."; 2464 } 2465 leaf address { 2466 type simple-address; 2467 description 2468 "AFI address."; 2469 } 2470 } 2471 container nat-traversal { 2472 when "../address-type = 'laddr:nat-traversal-lcaf'" { 2473 description 2474 "When LCAF type is NAT-Traversal."; 2475 } 2476 description 2477 "NAT-Traversal LCAF type."; 2478 reference 2479 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 2480 #section-4.6"; 2481 leaf ms-udp-port { 2482 type uint16; 2483 description 2484 "Map-Server UDP port (set to 4342)."; 2485 } 2486 leaf etr-udp-port { 2487 type uint16; 2488 description 2489 "ETR UDP port."; 2490 } 2491 leaf global-etr-rloc { 2492 type simple-address; 2493 description 2494 "Global ETR RLOC address."; 2495 } 2496 leaf ms-rloc { 2497 type simple-address; 2498 description 2499 "Map-Server RLOC address."; 2500 } 2501 leaf private-etr-rloc { 2502 type simple-address; 2503 description 2504 "Private ETR RLOC address."; 2505 } 2506 leaf-list rtr-rlocs { 2507 type simple-address; 2508 description 2509 "List of RTR RLOC addresses."; 2510 } 2511 } 2512 container explicit-locator-path { 2513 when "../address-type = 'laddr:explicit-locator-path-lcaf'" { 2514 description 2515 "When LCAF type type is Explicit Locator Path."; 2516 } 2517 description 2518 "Explicit Locator Path LCAF type."; 2519 reference 2520 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 2521 #section-4.9"; 2522 list hop { 2523 key "hop-id"; 2524 ordered-by user; 2525 description 2526 "List of locator hops forming the explicit path."; 2527 leaf hop-id { 2528 type string { 2529 length "1..64"; 2530 } 2531 description 2532 "Unique identifier for the hop."; 2533 } 2534 leaf address { 2535 type simple-address; 2536 description 2537 "AFI address."; 2538 } 2539 leaf lrs-bits { 2540 type bits{ 2541 bit lookup { 2542 description 2543 "Lookup bit."; 2544 } 2545 bit rloc-probe { 2546 description 2547 "RLOC-probe bit."; 2548 } 2549 bit strict { 2550 description 2551 "Strict bit."; 2552 } 2553 } 2554 description 2555 "Flag bits per hop."; 2556 } 2557 } 2558 } 2559 container source-dest-key { 2560 when "../address-type = 'laddr:source-dest-key-lcaf'" { 2561 description 2562 "When LCAF type type is Source/Dest."; 2563 } 2564 description 2565 "Source/Dest LCAF type."; 2566 reference 2567 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 2568 #section-4.11"; 2569 leaf source { 2570 type simple-address; 2571 description 2572 "Source address."; 2573 } 2574 leaf dest { 2575 type simple-address; 2576 description 2577 "Destination address."; 2578 } 2579 } 2580 container key-value-address { 2581 when "../address-type = 'laddr:key-value-address-lcaf'" { 2582 description 2583 "When LCAF type type is Key/Value Address."; 2584 } 2585 description 2586 "Key/Value Address LCAF type."; 2587 reference 2588 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 2589 #section-4.11"; 2591 leaf key { 2592 type simple-address; 2593 description 2594 "Address as Key."; 2595 } 2596 leaf value { 2597 type simple-address; 2598 description 2599 "Address as Value."; 2600 } 2601 } 2602 container service-path { 2603 when "../address-type = 'laddr:service-path-lcaf'" { 2604 description 2605 "When LCAF type service path identifier."; 2606 } 2607 description 2608 "Service Path LCAF type."; 2609 reference 2610 "http://tools.ietf.org/html/draft-ermagan-lisp-nsh-00"; 2611 leaf service-path-id { 2612 type service-path-id-type; 2613 description 2614 "Service path identifier for the path for NSH header"; 2615 } 2616 leaf service-index { 2617 type uint8; 2618 description 2619 "Service path index for NSH header"; 2620 } 2621 } 2622 } 2623 } 2624 } 2625 2627 8. Acknowledgments 2629 The tree view and the YANG model shown in this document have been 2630 formated with the 'pyang' tool. 2632 9. IANA Considerations 2634 This memo includes no request to IANA. 2636 10. Security Considerations 2638 Security Considerations TBD 2640 11. Normative References 2642 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 2643 Requirement Levels", BCP 14, RFC 2119, 2644 DOI 10.17487/RFC2119, March 1997, 2645 . 2647 [RFC6830] Farinacci, D., Fuller, V., Meyer, D., and D. Lewis, "The 2648 Locator/ID Separation Protocol (LISP)", RFC 6830, 2649 DOI 10.17487/RFC6830, January 2013, 2650 . 2652 [RFC6832] Lewis, D., Meyer, D., Farinacci, D., and V. Fuller, 2653 "Interworking between Locator/ID Separation Protocol 2654 (LISP) and Non-LISP Sites", RFC 6832, 2655 DOI 10.17487/RFC6832, January 2013, 2656 . 2658 [RFC6833] Fuller, V. and D. Farinacci, "Locator/ID Separation 2659 Protocol (LISP) Map-Server Interface", RFC 6833, 2660 DOI 10.17487/RFC6833, January 2013, 2661 . 2663 [RFC6836] Fuller, V., Farinacci, D., Meyer, D., and D. Lewis, 2664 "Locator/ID Separation Protocol Alternative Logical 2665 Topology (LISP+ALT)", RFC 6836, DOI 10.17487/RFC6836, 2666 January 2013, . 2668 [RFC8060] Farinacci, D., Meyer, D., and J. Snijders, "LISP Canonical 2669 Address Format (LCAF)", RFC 8060, DOI 10.17487/RFC8060, 2670 February 2017, . 2672 [RFC8111] Fuller, V., Lewis, D., Ermagan, V., Jain, A., and A. 2673 Smirnov, "Locator/ID Separation Protocol Delegated 2674 Database Tree (LISP-DDT)", RFC 8111, DOI 10.17487/RFC8111, 2675 May 2017, . 2677 Authors' Addresses 2678 Vina Ermagan 2679 Cisco Systems 2680 San Jose, CA 2681 USA 2683 Email: vermagan@cisco.com 2685 Alberto Rodriguez-Natal 2686 Cisco Systems 2687 San Jose, CA 2688 USA 2690 Email: natal@cisco.com 2692 Florin Coras 2693 Cisco Systems 2694 San Jose, CA 2695 USA 2697 Email: fcoras@cisco.com 2699 Carl Moberg 2700 Cisco Systems 2701 San Jose, CA 2702 USA 2704 Email: camoberg@cisco.com 2706 Reshad Rahman 2707 Cisco Systems 2708 Canada 2710 Email: rrahman@cisco.com 2712 Albert Cabellos-Aparicio 2713 Technical University of Catalonia 2714 Barcelona 2715 Spain 2717 Email: acabello@ac.upc.edu 2718 Fabio Maino 2719 Cisco Systems 2720 San Jose, CA 2721 USA 2723 Email: fmaino@cisco.com