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