idnits 2.17.1 draft-ermagan-lisp-yang-01.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 507 instances of too long lines in the document, the longest one being 21 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 112 has weird spacing: '...ro type dev...' == Line 1544 has weird spacing: '...site-id uin...' == Line 1547 has weird spacing: '...vice-id uin...' -- The document date (July 6, 2015) is 3214 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Experimental ---------------------------------------------------------------------------- == Unused Reference: 'I-D.ietf-lisp-ddt' is defined on line 3724, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-lisp-lcaf' is defined on line 3729, but no explicit reference was found in the text == Unused Reference: 'RFC2119' is defined on line 3734, but no explicit reference was found in the text == Unused Reference: 'RFC6830' is defined on line 3737, but no explicit reference was found in the text == Unused Reference: 'RFC6836' is defined on line 3749, but no explicit reference was found in the text == Outdated reference: A later version (-09) exists of draft-ietf-lisp-ddt-03 == Outdated reference: A later version (-22) exists of draft-ietf-lisp-lcaf-10 ** 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 (~~), 11 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 LISP Working Group V. Ermagan 3 Internet-Draft Cisco Systems 4 Intended status: Experimental A. Rodriguez-Natal 5 Expires: January 7, 2016 F. Coras 6 Technical University of Catalonia 7 C. Moberg 8 Cisco Systems 9 A. Cabellos-Aparicio 10 Technical University of Catalonia 11 F. Maino 12 Cisco Systems 13 July 6, 2015 15 LISP Configuration YANG Model 16 draft-ermagan-lisp-yang-01 18 Abstract 20 This document describes a YANG data model to use with the Locator/ID 21 Separation Protocol (LISP). 23 Status of This Memo 25 This Internet-Draft is submitted in full conformance with the 26 provisions of BCP 78 and BCP 79. 28 Internet-Drafts are working documents of the Internet Engineering 29 Task Force (IETF). Note that other groups may also distribute 30 working documents as Internet-Drafts. The list of current Internet- 31 Drafts is at http://datatracker.ietf.org/drafts/current/. 33 Internet-Drafts are draft documents valid for a maximum of six months 34 and may be updated, replaced, or obsoleted by other documents at any 35 time. It is inappropriate to use Internet-Drafts as reference 36 material or to cite them other than as "work in progress." 38 This Internet-Draft will expire on January 7, 2016. 40 Copyright Notice 42 Copyright (c) 2015 IETF Trust and the persons identified as the 43 document authors. All rights reserved. 45 This document is subject to BCP 78 and the IETF Trust's Legal 46 Provisions Relating to IETF Documents 47 (http://trustee.ietf.org/license-info) in effect on the date of 48 publication of this document. Please review these documents 49 carefully, as they describe your rights and restrictions with respect 50 to this document. Code Components extracted from this document must 51 include Simplified BSD License text as described in Section 4.e of 52 the Trust Legal Provisions and are provided without warranty as 53 described in the Simplified BSD License. 55 Table of Contents 57 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 58 2. LISP Module . . . . . . . . . . . . . . . . . . . . . . . . . 3 59 2.1. Module Structure . . . . . . . . . . . . . . . . . . . . 3 60 2.2. Module Definition . . . . . . . . . . . . . . . . . . . . 3 61 3. LISP-ITR Module . . . . . . . . . . . . . . . . . . . . . . . 9 62 3.1. Module Structure . . . . . . . . . . . . . . . . . . . . 9 63 3.2. Module Definition . . . . . . . . . . . . . . . . . . . . 22 64 4. LISP ETR Module . . . . . . . . . . . . . . . . . . . . . . . 26 65 4.1. Module Structure . . . . . . . . . . . . . . . . . . . . 26 66 4.2. Module Definition . . . . . . . . . . . . . . . . . . . . 30 67 5. LISP Map Server Module . . . . . . . . . . . . . . . . . . . 32 68 5.1. Module Structure . . . . . . . . . . . . . . . . . . . . 33 69 5.2. Module Definition . . . . . . . . . . . . . . . . . . . . 43 70 6. LISP Map Resolver Module . . . . . . . . . . . . . . . . . . 47 71 6.1. Module Structure . . . . . . . . . . . . . . . . . . . . 47 72 6.2. Module Definition . . . . . . . . . . . . . . . . . . . . 48 73 7. LISP Proxy ITR Module . . . . . . . . . . . . . . . . . . . . 49 74 7.1. Module Structure . . . . . . . . . . . . . . . . . . . . 50 75 7.2. Module Definition . . . . . . . . . . . . . . . . . . . . 59 76 8. LISP Proxy ETR Module . . . . . . . . . . . . . . . . . . . . 62 77 8.1. Module Structure . . . . . . . . . . . . . . . . . . . . 62 78 8.2. Module Definition . . . . . . . . . . . . . . . . . . . . 64 79 9. LISP Address Types . . . . . . . . . . . . . . . . . . . . . 66 80 9.1. Module Definition . . . . . . . . . . . . . . . . . . . . 66 81 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 78 82 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 78 83 12. Security Considerations . . . . . . . . . . . . . . . . . . . 78 84 13. Normative References . . . . . . . . . . . . . . . . . . . . 78 85 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 79 87 1. Introduction 89 The Locator/ID Separation Protocol (LISP) defines several network 90 elements subject to be configured. This document presents the YANG 91 data models required for basic configuration of all major LISP 92 [RFC6830]elements. The models also capture some essential 93 operational data elements as well. 95 2. LISP Module 97 This module is the base LISP module that is augmented in multiple 98 models to represent various LISP device roles. 100 2.1. Module Structure 102 module: ietf-lisp 103 +--rw lisp 104 | +--rw devices 105 | +--rw device* [type id] 106 | +--rw type device-ref 107 | +--rw id string 108 | +--rw enabled? boolean 109 +--ro lisp-state 110 +--ro devices 111 +--ro device* [type id] 112 +--ro type device-ref 113 +--ro id string 115 2.2. Module Definition 117 module ietf-lisp { 118 namespace "urn:ietf:params:xml:ns:yang:ietf-lisp"; 119 prefix lisp; 120 import ietf-interfaces { 121 prefix if; 122 } 123 import lisp-address-types { 124 prefix lcaf; 125 } 126 organization 127 "IETF LISP (Locator/ID Separation Protocol) Working Group"; 128 contact 129 "lisp@ietf.org"; 130 description 131 "This YANG module defines the generic configuration 132 and operational data for LISP. The module can be extended by 133 vendors to define vendor-specific LISP configuration 134 parameters and policies. 136 Copyright (c) 2014 IETF Trust and the persons identified as 137 authors of the code. All rights reserved. 139 Redistribution and use in source and binary forms, with or 140 without modification, is permitted pursuant to, and subject 141 to the license terms contained in, the Simplified BSD License 142 set forth in Section 4.c of the IETF Trust's Legal Provisions 143 Relating to IETF Documents 144 (http://trustee.ietf.org/license-info). 146 This version of this YANG module is part of RFC 6338; see 147 the RFC itself for full legal notices. 148 "; 150 revision 2014-12-19 { 151 description 152 "Initial revision."; 153 reference 154 "https://tools.ietf.org/html/rfc6830"; 155 } 156 identity lisp-device { 157 description 158 "LISP network device."; 159 } 160 typedef device-ref { 161 type identityref { 162 base lisp-device; 163 } 164 description 165 "LISP device reference"; 166 } 167 typedef map-reply-action { 168 type enumeration { 169 enum no-action { 170 value 0; 171 description 172 "Mapping is kept alive and no encapsulation occurs."; 173 } 174 enum natively-forward { 175 value 1; 176 description 177 "Matching packets are not encapsulated or dropped but 178 natively forwarded."; 179 } 180 enum send-map-request { 181 value 2; 182 description 183 "Matching packets invoke Map-Requests."; 184 } 185 enum drop { 186 value 3; 187 description 188 "Matching packets are dropped."; 189 } 190 } 191 description 192 "Defines the lisp map-cache ACT type"; 193 reference "https://tools.ietf.org/html/rfc6830#section-6.1.4"; 194 } 195 typedef eid-id { 196 type string; 197 description 198 "Type encoding of lisp-addresses to be generally used in EID 199 keyed lists."; 200 } 201 typedef auth-key-type { 202 type enumeration { 203 enum none { 204 value 0; 205 description 206 "No authentication."; 207 } 208 enum hmac-sha-1-96 { 209 value 1; 210 description 211 "HMAC-SHA-1-96 (RFC2404) authentication is used."; 212 } 213 enum hmac-sha-256-128 { 214 value 2; 215 description 216 "HMAC-SHA-256-128 (RFC4868) authentication is used."; 217 } 218 } 219 description 220 "Enumeration of the authentication mechansms supported by 221 LISP."; 222 reference 223 "https://tools.ietf.org/html/rfc6830#section-6.1.6"; 224 } 225 grouping locators { 226 description 227 "Group that defines a list of LISP locators."; 228 list rloc { 229 key "id"; 230 description 231 "List of routing locators"; 232 leaf id { 233 type string; 234 description 235 "Locator id"; 236 } 237 // FC need to be sure we don't use interface-name in itr 238 // cached mappings 239 choice address-type { 240 description 241 "The address type of the locator"; 242 case interface-name { 243 leaf interface { 244 type if:interface-state-ref; 245 description 246 "The name of the interface supporting the locator."; 247 } 248 } 249 case address { 250 container locator-address { 251 uses lcaf:lisp-address; 252 description 253 "The locator address provided in LISP canonincal 254 address format."; 255 } 256 } 257 } 258 leaf priority { 259 type uint8; 260 description 261 "Locator priority."; 262 } 263 leaf weight { 264 type uint8; 265 description 266 "Locator weight."; 267 } 268 leaf multicast-priority { 269 type uint8; 270 description 271 "Locator's multicast priority"; 272 } 273 leaf multicast-weight { 274 type uint8; 275 description 276 "Locator's multicast weight"; 277 } 278 } 279 } 280 grouping mappings { 281 description 282 "Group that defines a list of LISP mappings."; 283 list mapping { 284 key "id"; 285 description 286 "List of EID to RLOCs mappings."; 288 leaf id { 289 type eid-id; 290 description 291 "Id that uniquely identifies a mapping."; 292 } 293 container eid { 294 uses lcaf:lisp-address; 295 description 296 "End-host Identifier (EID) to be mapped to a list of 297 locators"; 298 } 299 leaf ttl { 300 type uint32; 301 description 302 "Mapping validity period."; 303 } 304 leaf authoritative { 305 type bits { 306 bit A { 307 description 308 "Authoritative bit."; 309 } 310 } 311 description 312 "Bit that indicates if mapping comes from an 313 authoritative source."; 314 } 315 choice locator-list { 316 case negative-mapping { 317 leaf map-reply-action { 318 type map-reply-action; 319 description 320 "Forwarding action for a negative mapping."; 321 } 322 } 323 case positive-mapping { 324 container rlocs { 325 uses locators; 326 description 327 "List of locators for a positive mapping."; 328 } 329 } 330 default "positive-mapping"; 331 description 332 "Choice of locator list based on type of mapping."; 333 } 334 } 335 } 336 /* Configuration Data */ 337 container lisp { 338 description 339 "Configuration parameters for LISP subsystem."; 340 container devices { 341 description 342 "Configuration of LISP devices."; 343 list device { 344 key "type id"; 345 description 346 "Each entry contains configuration of a lisp-device."; 347 leaf type { 348 type device-ref; 349 description 350 "The type of LISP device - identity derived from the 351 'lisp-device' base identity."; 352 } 353 leaf id { 354 type string; 355 description 356 "Arbitrary device name."; 357 } 358 leaf enabled { 359 type boolean; 360 default "true"; 361 description 362 "Enable/disable the lisp-device."; 363 } 364 } 365 } 366 } 368 /* Operational state data */ 369 container lisp-state { 370 config false; 371 description 372 "Operational state of the LISP subsystem."; 373 container devices { 374 description 375 "Operational state of lisp-devices."; 376 list device { 377 key "type id"; 378 description 379 "Each entry contains operational data of a lisp-device."; 380 leaf type { 381 type device-ref; 382 description 383 "Type of LISP device."; 385 } 386 leaf id { 387 type string; 388 description 389 "Name of LISP device."; 390 } 391 } 392 } 393 } 395 } 397 3. LISP-ITR Module 399 This module captures the configuration data model of a LISP ITR. The 400 model also captures some operational data elements. 402 3.1. Module Structure 404 module: lisp-itr 405 augment /lisp:lisp/lisp:devices/lisp:device: 406 +--rw itr-cfg! 407 +--rw rloc-probing! 408 | +--rw interval? uint16 409 | +--rw retries? uint8 410 | +--rw retries-interval? uint16 411 +--rw itr-rlocs 412 | +--rw itr-rloc* [id] 413 | +--rw id string 414 | +--rw address 415 | +--rw afi lisp-address-family-ref 416 | +--rw instance-id? instance-id-type 417 | +--rw (address)? 418 | +--:(ipv4) 419 | | +--rw ipv4? inet:ipv4-address 420 | +--:(ipv6) 421 | | +--rw ipv6? inet:ipv6-address 422 | +--:(mac) 423 | | +--rw mac? yang:mac-address 424 | +--:(distinguished-name) 425 | | +--rw distinguished-name? distinguished-name 426 | +--:(lcaf) 427 | +--rw lcaf 428 | +--rw lcaf-type lcaf-ref 429 | +--rw (address)? 430 | +--:(null-address) 431 | | +--rw null-address 432 | | +--rw address? empty 433 | +--:(afi-list) 434 | | +--rw afi-list 435 | | +--rw address-list* simple-address 436 | +--:(instance-id) 437 | | +--rw instance-id 438 | | +--rw instance-id? instance-id-type 439 | | +--rw mask-length? uint8 440 | | +--rw address? simple-address 441 | +--:(as-number) 442 | | +--rw as-number 443 | | +--rw as? inet:as-number 444 | | +--rw address? simple-address 445 | +--:(application-data) 446 | | +--rw application-data 447 | | +--rw address? simple-address 448 | | +--rw protocol? uint8 449 | | +--rw ip-tos? int32 450 | | +--rw local-port-low? inet:port-number 451 | | +--rw local-port-high? inet:port-number 452 | | +--rw remote-port-low? inet:port-number 453 | | +--rw remote-port-high? inet:port-number 454 | +--:(geo-coordinates) 455 | | +--rw geo-coordinates 456 | | +--rw latitude? bits 457 | | +--rw latitude-degrees? uint8 458 | | +--rw latitude-minutes? uint8 459 | | +--rw latitude-seconds? uint8 460 | | +--rw longitude? bits 461 | | +--rw longitude-degrees? uint16 462 | | +--rw longitude-minutes? uint8 463 | | +--rw longitude-seconds? uint8 464 | | +--rw altitude? int32 465 | | +--rw address? simple-address 466 | +--:(nat-traversal) 467 | | +--rw nat-traversal 468 | | +--rw ms-udp-port? uint16 469 | | +--rw etr-udp-port? uint16 470 | | +--rw global-etr-rloc? simple-address 471 | | +--rw ms-rloc? simple-address 472 | | +--rw private-etr-rloc? simple-address 473 | | +--rw rtr-rlocs* simple-address 474 | +--:(explicit-locator-path) 475 | | +--rw explicit-locator-path 476 | | +--rw hop* [address] 477 | | +--rw address simple-address 478 | | +--rw lrs-bits? bits 479 | +--:(sourc-dest-key) 480 | +--rw sourc-dest-key 481 | +--rw source? inet:ip-prefix 482 | +--rw dest? inet:ip-prefix 483 +--rw local-eids 484 | +--rw local-eid* [id] 485 | +--rw id lisp:eid-id 486 | +--rw eid-address 487 | +--rw afi lisp-address-family-ref 488 | +--rw instance-id? instance-id-type 489 | +--rw (address)? 490 | +--:(ipv4) 491 | | +--rw ipv4? inet:ipv4-address 492 | +--:(ipv6) 493 | | +--rw ipv6? inet:ipv6-address 494 | +--:(mac) 495 | | +--rw mac? yang:mac-address 496 | +--:(distinguished-name) 497 | | +--rw distinguished-name? distinguished-name 498 | +--:(lcaf) 499 | +--rw lcaf 500 | +--rw lcaf-type lcaf-ref 501 | +--rw (address)? 502 | +--:(null-address) 503 | | +--rw null-address 504 | | +--rw address? empty 505 | +--:(afi-list) 506 | | +--rw afi-list 507 | | +--rw address-list* simple-address 508 | +--:(instance-id) 509 | | +--rw instance-id 510 | | +--rw instance-id? instance-id-type 511 | | +--rw mask-length? uint8 512 | | +--rw address? simple-address 513 | +--:(as-number) 514 | | +--rw as-number 515 | | +--rw as? inet:as-number 516 | | +--rw address? simple-address 517 | +--:(application-data) 518 | | +--rw application-data 519 | | +--rw address? simple-address 520 | | +--rw protocol? uint8 521 | | +--rw ip-tos? int32 522 | | +--rw local-port-low? inet:port-number 523 | | +--rw local-port-high? inet:port-number 524 | | +--rw remote-port-low? inet:port-number 525 | | +--rw remote-port-high? inet:port-number 526 | +--:(geo-coordinates) 527 | | +--rw geo-coordinates 528 | | +--rw latitude? bits 529 | | +--rw latitude-degrees? uint8 530 | | +--rw latitude-minutes? uint8 531 | | +--rw latitude-seconds? uint8 532 | | +--rw longitude? bits 533 | | +--rw longitude-degrees? uint16 534 | | +--rw longitude-minutes? uint8 535 | | +--rw longitude-seconds? uint8 536 | | +--rw altitude? int32 537 | | +--rw address? simple-address 538 | +--:(nat-traversal) 539 | | +--rw nat-traversal 540 | | +--rw ms-udp-port? uint16 541 | | +--rw etr-udp-port? uint16 542 | | +--rw global-etr-rloc? simple-address 543 | | +--rw ms-rloc? simple-address 544 | | +--rw private-etr-rloc? simple-address 545 | | +--rw rtr-rlocs* simple-address 546 | +--:(explicit-locator-path) 547 | | +--rw explicit-locator-path 548 | | +--rw hop* [address] 549 | | +--rw address simple-address 550 | | +--rw lrs-bits? bits 551 | +--:(sourc-dest-key) 552 | +--rw sourc-dest-key 553 | +--rw source? inet:ip-prefix 554 | +--rw dest? inet:ip-prefix 555 +--rw map-resolvers 556 | +--rw map-resolver* [id] 557 | +--rw id lisp:eid-id 558 | +--rw eid-address 559 | | +--rw afi lisp-address-family-ref 560 | | +--rw instance-id? instance-id-type 561 | | +--rw (address)? 562 | | +--:(ipv4) 563 | | | +--rw ipv4? inet:ipv4-address 564 | | +--:(ipv6) 565 | | | +--rw ipv6? inet:ipv6-address 566 | | +--:(mac) 567 | | | +--rw mac? yang:mac-address 568 | | +--:(distinguished-name) 569 | | | +--rw distinguished-name? distinguished-name 570 | | +--:(lcaf) 571 | | +--rw lcaf 572 | | +--rw lcaf-type lcaf-ref 573 | | +--rw (address)? 574 | | +--:(null-address) 575 | | | +--rw null-address 576 | | | +--rw address? empty 577 | | +--:(afi-list) 578 | | | +--rw afi-list 579 | | | +--rw address-list* simple-address 580 | | +--:(instance-id) 581 | | | +--rw instance-id 582 | | | +--rw instance-id? instance-id-type 583 | | | +--rw mask-length? uint8 584 | | | +--rw address? simple-address 585 | | +--:(as-number) 586 | | | +--rw as-number 587 | | | +--rw as? inet:as-number 588 | | | +--rw address? simple-address 589 | | +--:(application-data) 590 | | | +--rw application-data 591 | | | +--rw address? simple-address 592 | | | +--rw protocol? uint8 593 | | | +--rw ip-tos? int32 594 | | | +--rw local-port-low? inet:port-number 595 | | | +--rw local-port-high? inet:port-number 596 | | | +--rw remote-port-low? inet:port-number 597 | | | +--rw remote-port-high? inet:port-number 598 | | +--:(geo-coordinates) 599 | | | +--rw geo-coordinates 600 | | | +--rw latitude? bits 601 | | | +--rw latitude-degrees? uint8 602 | | | +--rw latitude-minutes? uint8 603 | | | +--rw latitude-seconds? uint8 604 | | | +--rw longitude? bits 605 | | | +--rw longitude-degrees? uint16 606 | | | +--rw longitude-minutes? uint8 607 | | | +--rw longitude-seconds? uint8 608 | | | +--rw altitude? int32 609 | | | +--rw address? simple-address 610 | | +--:(nat-traversal) 611 | | | +--rw nat-traversal 612 | | | +--rw ms-udp-port? uint16 613 | | | +--rw etr-udp-port? uint16 614 | | | +--rw global-etr-rloc? simple-address 615 | | | +--rw ms-rloc? simple-address 616 | | | +--rw private-etr-rloc? simple-address 617 | | | +--rw rtr-rlocs* simple-address 618 | | +--:(explicit-locator-path) 619 | | | +--rw explicit-locator-path 620 | | | +--rw hop* [address] 621 | | | +--rw address simple-address 622 | | | +--rw lrs-bits? bits 623 | | +--:(sourc-dest-key) 624 | | +--rw sourc-dest-key 625 | | +--rw source? inet:ip-prefix 626 | | +--rw dest? inet:ip-prefix 627 | +--rw map-resolver-address* inet:ip-address 628 +--rw proxy-etrs 629 | +--rw proxy-etr* [id] 630 | +--rw id lisp:eid-id 631 | +--rw eid-address 632 | | +--rw afi lisp-address-family-ref 633 | | +--rw instance-id? instance-id-type 634 | | +--rw (address)? 635 | | +--:(ipv4) 636 | | | +--rw ipv4? inet:ipv4-address 637 | | +--:(ipv6) 638 | | | +--rw ipv6? inet:ipv6-address 639 | | +--:(mac) 640 | | | +--rw mac? yang:mac-address 641 | | +--:(distinguished-name) 642 | | | +--rw distinguished-name? distinguished-name 643 | | +--:(lcaf) 644 | | +--rw lcaf 645 | | +--rw lcaf-type lcaf-ref 646 | | +--rw (address)? 647 | | +--:(null-address) 648 | | | +--rw null-address 649 | | | +--rw address? empty 650 | | +--:(afi-list) 651 | | | +--rw afi-list 652 | | | +--rw address-list* simple-address 653 | | +--:(instance-id) 654 | | | +--rw instance-id 655 | | | +--rw instance-id? instance-id-type 656 | | | +--rw mask-length? uint8 657 | | | +--rw address? simple-address 658 | | +--:(as-number) 659 | | | +--rw as-number 660 | | | +--rw as? inet:as-number 661 | | | +--rw address? simple-address 662 | | +--:(application-data) 663 | | | +--rw application-data 664 | | | +--rw address? simple-address 665 | | | +--rw protocol? uint8 666 | | | +--rw ip-tos? int32 667 | | | +--rw local-port-low? inet:port-number 668 | | | +--rw local-port-high? inet:port-number 669 | | | +--rw remote-port-low? inet:port-number 670 | | | +--rw remote-port-high? inet:port-number 671 | | +--:(geo-coordinates) 672 | | | +--rw geo-coordinates 673 | | | +--rw latitude? bits 674 | | | +--rw latitude-degrees? uint8 675 | | | +--rw latitude-minutes? uint8 676 | | | +--rw latitude-seconds? uint8 677 | | | +--rw longitude? bits 678 | | | +--rw longitude-degrees? uint16 679 | | | +--rw longitude-minutes? uint8 680 | | | +--rw longitude-seconds? uint8 681 | | | +--rw altitude? int32 682 | | | +--rw address? simple-address 683 | | +--:(nat-traversal) 684 | | | +--rw nat-traversal 685 | | | +--rw ms-udp-port? uint16 686 | | | +--rw etr-udp-port? uint16 687 | | | +--rw global-etr-rloc? simple-address 688 | | | +--rw ms-rloc? simple-address 689 | | | +--rw private-etr-rloc? simple-address 690 | | | +--rw rtr-rlocs* simple-address 691 | | +--:(explicit-locator-path) 692 | | | +--rw explicit-locator-path 693 | | | +--rw hop* [address] 694 | | | +--rw address simple-address 695 | | | +--rw lrs-bits? bits 696 | | +--:(sourc-dest-key) 697 | | +--rw sourc-dest-key 698 | | +--rw source? inet:ip-prefix 699 | | +--rw dest? inet:ip-prefix 700 | +--rw proxy-etr-address* inet:ip-address 701 +--rw static-mappings 702 +--rw mapping* [id] 703 +--rw id eid-id 704 +--rw eid 705 | +--rw afi lisp-address-family-ref 706 | +--rw instance-id? instance-id-type 707 | +--rw (address)? 708 | +--:(ipv4) 709 | | +--rw ipv4? inet:ipv4-address 710 | +--:(ipv6) 711 | | +--rw ipv6? inet:ipv6-address 712 | +--:(mac) 713 | | +--rw mac? yang:mac-address 714 | +--:(distinguished-name) 715 | | +--rw distinguished-name? distinguished-name 716 | +--:(lcaf) 717 | +--rw lcaf 718 | +--rw lcaf-type lcaf-ref 719 | +--rw (address)? 720 | +--:(null-address) 721 | | +--rw null-address 722 | | +--rw address? empty 723 | +--:(afi-list) 724 | | +--rw afi-list 725 | | +--rw address-list* simple-address 726 | +--:(instance-id) 727 | | +--rw instance-id 728 | | +--rw instance-id? instance-id-type 729 | | +--rw mask-length? uint8 730 | | +--rw address? simple-address 731 | +--:(as-number) 732 | | +--rw as-number 733 | | +--rw as? inet:as-number 734 | | +--rw address? simple-address 735 | +--:(application-data) 736 | | +--rw application-data 737 | | +--rw address? simple-address 738 | | +--rw protocol? uint8 739 | | +--rw ip-tos? int32 740 | | +--rw local-port-low? inet:port-number 741 | | +--rw local-port-high? inet:port-number 742 | | +--rw remote-port-low? inet:port-number 743 | | +--rw remote-port-high? inet:port-number 744 | +--:(geo-coordinates) 745 | | +--rw geo-coordinates 746 | | +--rw latitude? bits 747 | | +--rw latitude-degrees? uint8 748 | | +--rw latitude-minutes? uint8 749 | | +--rw latitude-seconds? uint8 750 | | +--rw longitude? bits 751 | | +--rw longitude-degrees? uint16 752 | | +--rw longitude-minutes? uint8 753 | | +--rw longitude-seconds? uint8 754 | | +--rw altitude? int32 755 | | +--rw address? simple-address 756 | +--:(nat-traversal) 757 | | +--rw nat-traversal 758 | | +--rw ms-udp-port? uint16 759 | | +--rw etr-udp-port? uint16 760 | | +--rw global-etr-rloc? simple-address 761 | | +--rw ms-rloc? simple-address 762 | | +--rw private-etr-rloc? simple-address 763 | | +--rw rtr-rlocs* simple-address 764 | +--:(explicit-locator-path) 765 | | +--rw explicit-locator-path 766 | | +--rw hop* [address] 767 | | +--rw address simple-address 768 | | +--rw lrs-bits? bits 769 | +--:(sourc-dest-key) 770 | +--rw sourc-dest-key 771 | +--rw source? inet:ip-prefix 772 | +--rw dest? inet:ip-prefix 773 +--rw ttl? uint32 774 +--rw authoritative? bits 775 +--rw (locator-list)? 776 +--:(negative-mapping) 777 | +--rw map-reply-action? map-reply-action 778 +--:(positive-mapping) 779 +--rw rlocs 780 +--rw rloc* [id] 781 +--rw id string 782 +--rw (address-type)? 783 | +--:(interface-name) 784 | | +--rw interface? if:interface-state-ref 785 | +--:(address) 786 | +--rw locator-address 787 | +--rw afi lisp-address-family-ref 788 | +--rw instance-id? instance-id-type 789 | +--rw (address)? 790 | +--:(ipv4) 791 | | +--rw ipv4? inet:ipv4-address 792 | +--:(ipv6) 793 | | +--rw ipv6? inet:ipv6-address 794 | +--:(mac) 795 | | +--rw mac? yang:mac-address 796 | +--:(distinguished-name) 797 | | +--rw distinguished-name? distinguished-name 798 | +--:(lcaf) 799 | +--rw lcaf 800 | +--rw lcaf-type lcaf-ref 801 | +--rw (address)? 802 | +--:(null-address) 803 | | +--rw null-address 804 | | +--rw address? empty 805 | +--:(afi-list) 806 | | +--rw afi-list 807 | | +--rw address-list* simple-address 808 | +--:(instance-id) 809 | | +--rw instance-id 810 | | +--rw instance-id? instance-id-type 811 | | +--rw mask-length? uint8 812 | | +--rw address? simple-address 813 | +--:(as-number) 814 | | +--rw as-number 815 | | +--rw as? inet:as-number 816 | | +--rw address? simple-address 817 | +--:(application-data) 818 | | +--rw application-data 819 | | +--rw address? simple-address 820 | | +--rw protocol? uint8 821 | | +--rw ip-tos? int32 822 | | +--rw local-port-low? inet:port-number 823 | | +--rw local-port-high? inet:port-number 824 | | +--rw remote-port-low? inet:port-number 825 | | +--rw remote-port-high? inet:port-number 826 | +--:(geo-coordinates) 827 | | +--rw geo-coordinates 828 | | +--rw latitude? bits 829 | | +--rw latitude-degrees? uint8 830 | | +--rw latitude-minutes? uint8 831 | | +--rw latitude-seconds? uint8 832 | | +--rw longitude? bits 833 | | +--rw longitude-degrees? uint16 834 | | +--rw longitude-minutes? uint8 835 | | +--rw longitude-seconds? uint8 836 | | +--rw altitude? int32 837 | | +--rw address? simple-address 838 | +--:(nat-traversal) 839 | | +--rw nat-traversal 840 | | +--rw ms-udp-port? uint16 841 | | +--rw etr-udp-port? uint16 842 | | +--rw global-etr-rloc? simple-address 843 | | +--rw ms-rloc? simple-address 844 | | +--rw private-etr-rloc? simple-address 845 | | +--rw rtr-rlocs* simple-address 846 | +--:(explicit-locator-path) 847 | | +--rw explicit-locator-path 848 | | +--rw hop* [address] 849 | | +--rw address simple-address 850 | | +--rw lrs-bits? bits 851 | +--:(sourc-dest-key) 852 | +--rw sourc-dest-key 853 | +--rw source? inet:ip-prefix 854 | +--rw dest? inet:ip-prefix 855 +--rw priority? uint8 856 +--rw weight? uint8 857 +--rw multicast-priority? uint8 858 +--rw multicast-weight? uint8 859 augment /lisp:lisp-state/lisp:devices/lisp:device: 860 +--ro itr-state 861 +--ro learned-mappings 862 +--ro mapping* [id] 863 +--ro id eid-id 864 +--ro eid 865 | +--ro afi lisp-address-family-ref 866 | +--ro instance-id? instance-id-type 867 | +--ro (address)? 868 | +--:(ipv4) 869 | | +--ro ipv4? inet:ipv4-address 870 | +--:(ipv6) 871 | | +--ro ipv6? inet:ipv6-address 872 | +--:(mac) 873 | | +--ro mac? yang:mac-address 874 | +--:(distinguished-name) 875 | | +--ro distinguished-name? distinguished-name 876 | +--:(lcaf) 877 | +--ro lcaf 878 | +--ro lcaf-type lcaf-ref 879 | +--ro (address)? 880 | +--:(null-address) 881 | | +--ro null-address 882 | | +--ro address? empty 883 | +--:(afi-list) 884 | | +--ro afi-list 885 | | +--ro address-list* simple-address 886 | +--:(instance-id) 887 | | +--ro instance-id 888 | | +--ro instance-id? instance-id-type 889 | | +--ro mask-length? uint8 890 | | +--ro address? simple-address 891 | +--:(as-number) 892 | | +--ro as-number 893 | | +--ro as? inet:as-number 894 | | +--ro address? simple-address 895 | +--:(application-data) 896 | | +--ro application-data 897 | | +--ro address? simple-address 898 | | +--ro protocol? uint8 899 | | +--ro ip-tos? int32 900 | | +--ro local-port-low? inet:port-number 901 | | +--ro local-port-high? inet:port-number 902 | | +--ro remote-port-low? inet:port-number 903 | | +--ro remote-port-high? inet:port-number 904 | +--:(geo-coordinates) 905 | | +--ro geo-coordinates 906 | | +--ro latitude? bits 907 | | +--ro latitude-degrees? uint8 908 | | +--ro latitude-minutes? uint8 909 | | +--ro latitude-seconds? uint8 910 | | +--ro longitude? bits 911 | | +--ro longitude-degrees? uint16 912 | | +--ro longitude-minutes? uint8 913 | | +--ro longitude-seconds? uint8 914 | | +--ro altitude? int32 915 | | +--ro address? simple-address 916 | +--:(nat-traversal) 917 | | +--ro nat-traversal 918 | | +--ro ms-udp-port? uint16 919 | | +--ro etr-udp-port? uint16 920 | | +--ro global-etr-rloc? simple-address 921 | | +--ro ms-rloc? simple-address 922 | | +--ro private-etr-rloc? simple-address 923 | | +--ro rtr-rlocs* simple-address 924 | +--:(explicit-locator-path) 925 | | +--ro explicit-locator-path 926 | | +--ro hop* [address] 927 | | +--ro address simple-address 928 | | +--ro lrs-bits? bits 929 | +--:(sourc-dest-key) 930 | +--ro sourc-dest-key 931 | +--ro source? inet:ip-prefix 932 | +--ro dest? inet:ip-prefix 933 +--ro ttl? uint32 934 +--ro authoritative? bits 935 +--ro (locator-list)? 936 +--:(negative-mapping) 937 | +--ro map-reply-action? map-reply-action 938 +--:(positive-mapping) 939 +--ro rlocs 940 +--ro rloc* [id] 941 +--ro id string 942 +--ro (address-type)? 943 | +--:(interface-name) 944 | | +--ro interface? if:interface-state-ref 945 | +--:(address) 946 | +--ro locator-address 947 | +--ro afi lisp-address-family-ref 948 | +--ro instance-id? instance-id-type 949 | +--ro (address)? 950 | +--:(ipv4) 951 | | +--ro ipv4? inet:ipv4-address 952 | +--:(ipv6) 953 | | +--ro ipv6? inet:ipv6-address 954 | +--:(mac) 955 | | +--ro mac? yang:mac-address 956 | +--:(distinguished-name) 957 | | +--ro distinguished-name? distinguished-name 958 | +--:(lcaf) 959 | +--ro lcaf 960 | +--ro lcaf-type lcaf-ref 961 | +--ro (address)? 962 | +--:(null-address) 963 | | +--ro null-address 964 | | +--ro address? empty 965 | +--:(afi-list) 966 | | +--ro afi-list 967 | | +--ro address-list* simple-address 968 | +--:(instance-id) 969 | | +--ro instance-id 970 | | +--ro instance-id? instance-id-type 971 | | +--ro mask-length? uint8 972 | | +--ro address? simple-address 973 | +--:(as-number) 974 | | +--ro as-number 975 | | +--ro as? inet:as-number 976 | | +--ro address? simple-address 977 | +--:(application-data) 978 | | +--ro application-data 979 | | +--ro address? simple-address 980 | | +--ro protocol? uint8 981 | | +--ro ip-tos? int32 982 | | +--ro local-port-low? inet:port-number 983 | | +--ro local-port-high? inet:port-number 984 | | +--ro remote-port-low? inet:port-number 985 | | +--ro remote-port-high? inet:port-number 986 | +--:(geo-coordinates) 987 | | +--ro geo-coordinates 988 | | +--ro latitude? bits 989 | | +--ro latitude-degrees? uint8 990 | | +--ro latitude-minutes? uint8 991 | | +--ro latitude-seconds? uint8 992 | | +--ro longitude? bits 993 | | +--ro longitude-degrees? uint16 994 | | +--ro longitude-minutes? uint8 995 | | +--ro longitude-seconds? uint8 996 | | +--ro altitude? int32 997 | | +--ro address? simple-address 998 | +--:(nat-traversal) 999 | | +--ro nat-traversal 1000 | | +--ro ms-udp-port? uint16 1001 | | +--ro etr-udp-port? uint16 1002 | | +--ro global-etr-rloc? simple-address 1003 | | +--ro ms-rloc? simple-address 1004 | | +--ro private-etr-rloc? simple-address 1005 | | +--ro rtr-rlocs* simple-address 1006 | +--:(explicit-locator-path) 1007 | | +--ro explicit-locator-path 1008 | | +--ro hop* [address] 1009 | | +--ro address simple-address 1010 | | +--ro lrs-bits? bits 1011 | +--:(sourc-dest-key) 1012 | +--ro sourc-dest-key 1013 | +--ro source? inet:ip-prefix 1014 | +--ro dest? inet:ip-prefix 1015 +--ro priority? uint8 1016 +--ro weight? uint8 1017 +--ro multicast-priority? uint8 1018 +--ro multicast-weight? uint8 1020 3.2. Module Definition 1022 module lisp-itr { 1023 namespace "urn:ietf:params:xml:ns:yang:lisp-itr"; 1024 prefix lisp-itr; 1025 import ietf-lisp { 1026 prefix lisp; 1027 } 1028 import lisp-address-types { 1029 prefix lcaf; 1030 } 1031 import ietf-inet-types { 1032 prefix inet; 1033 } 1034 organization 1035 "IETF LISP (Locator/ID Separation Protocol) Working Group"; 1036 contact 1037 "lisp@ietf.org"; 1038 description 1039 "This YANG module defines the generic configuration 1040 data for a LISP ITR. The module can be extended by vendors 1041 to define vendor-specific configuration parameters and 1042 policies. 1044 Copyright (c) 2015 IETF Trust and the persons identified as 1045 authors of the code. All rights reserved. 1047 Redistribution and use in source and binary forms, with or 1048 without modification, is permitted pursuant to, and subject 1049 to the license terms contained in, the Simplified BSD License 1050 set forth in Section 4.c of the IETF Trust's Legal Provisions 1051 Relating to IETF Documents 1052 (http://trustee.ietf.org/license-info). 1054 This version of this YANG module is part of RFC 6338; see 1055 the RFC itself for full legal notices. 1056 "; 1058 revision 2015-07-02 { 1059 description 1060 "Initial revision."; 1061 reference 1062 "https://tools.ietf.org/html/rfc6830"; 1063 } 1064 identity itr { 1065 base lisp:lisp-device; 1066 description 1067 "LISP ITR."; 1068 } 1069 augment "/lisp:lisp/lisp:devices/lisp:device" { 1070 when "lisp:type = lisp-itr:itr" { 1071 description 1072 "Augment is valid when LISP device type is ITR."; 1073 } 1074 description 1075 "This augments LISP devices list with ITR specific 1076 parameters."; 1077 container itr-cfg { 1078 presence "LISP ITR operation enabled"; 1079 description 1080 "ITR configuration"; 1081 container rloc-probing { 1082 presence "RLOC probing active"; 1083 description 1084 "RLOC-probing parameters"; 1085 leaf interval { 1086 type uint16; 1087 units "seconds"; 1088 description 1089 "Interval in seconds"; 1090 } 1091 leaf retries { 1092 type uint8; 1093 description 1094 "Number of retries"; 1095 } 1096 leaf retries-interval { 1097 type uint16; 1098 units "seconds"; 1099 description 1100 "Interval in seconds between retries"; 1101 } 1102 } 1103 container itr-rlocs { 1104 description 1105 "List of RLOCs of the ITR included in Map-Requests"; 1107 list itr-rloc { 1108 key "id"; 1109 description 1110 "ITR's list of RLOCs."; 1111 leaf id { 1112 type string; 1113 description 1114 "Unique RLOC id."; 1115 } 1116 container address { 1117 uses lcaf:lisp-address; 1118 description 1119 "RLOC address in generic LISP address format."; 1120 } 1121 } 1122 } 1123 container local-eids { 1124 description 1125 "Container for an ITR's local list of EIDs"; 1126 list local-eid { 1127 key "id"; 1128 min-elements 1; 1129 description 1130 "List of EIDs from which the ITR forwards traffic."; 1131 leaf id { 1132 type lisp:eid-id; 1133 description 1134 "Unique EID ID"; 1135 } 1136 container eid-address { 1137 uses lcaf:lisp-address; 1138 description 1139 "Addres in generic LISP address format"; 1140 } 1141 } 1142 } 1143 container map-resolvers { 1144 description 1145 "The Map-Resolvers configured for the ITR."; 1146 list map-resolver { 1147 key "id"; 1148 min-elements 1; 1149 description 1150 "List of Map-Resolvers configured for the ITR."; 1151 leaf id { 1152 type lisp:eid-id; 1153 description 1154 "Id of the EID for which the Map-Server is 1155 configured."; 1156 } 1157 container eid-address { 1158 uses lcaf:lisp-address; 1159 description 1160 "EID for which the Map-Resolver is configured."; 1161 } 1162 leaf-list map-resolver-address { 1163 type inet:ip-address; 1164 description 1165 "Map-Resolver RLOC address."; 1166 } 1167 } 1168 } 1169 container proxy-etrs { 1170 description 1171 "Proxy ETRs configured for the ITR."; 1172 list proxy-etr { 1173 key "id"; 1174 description 1175 "List of PETR configured for the ITR."; 1176 leaf id { 1177 type lisp:eid-id; 1178 description 1179 "Id of the EID for which the PETR is configured."; 1180 } 1181 container eid-address { 1182 uses lcaf:lisp-address; 1183 description 1184 "EID for which the PETR is configured."; 1185 } 1186 leaf-list proxy-etr-address{ 1187 type inet:ip-address; 1188 description 1189 "PETR RLOC address."; 1190 } 1191 } 1192 } 1193 container static-mappings { 1194 uses lisp:mappings; 1195 description 1196 "EID to RLOCs mappings cache."; 1197 } 1198 } 1199 } 1200 augment "/lisp:lisp-state/lisp:devices/lisp:device" { 1201 when "lisp:type = lisp-itr:itr" { 1202 description 1203 "Augment is valid when LISP device type is ITR."; 1204 } 1205 description 1206 "This augments LISP devices list state with ITR specific 1207 parameters."; 1208 container itr-state { 1209 config false; 1210 description 1211 "ITR state."; 1212 container learned-mappings { 1213 uses lisp:mappings; 1214 description 1215 "EID to RLOCs mappings cache."; 1216 } 1217 } 1218 } 1219 } 1221 4. LISP ETR Module 1223 This module captures the configuration data model of a LISP ETR. The 1224 model also captures some operational data elements. 1226 4.1. Module Structure 1228 module: lisp-etr 1229 augment /lisp:lisp/lisp:devices/lisp:device: 1230 +--rw etr-cfg! 1231 +--rw local-eids 1232 +--rw local-eid* [id] 1233 +--rw id lisp:eid-id 1234 +--rw eid-address 1235 | +--rw afi lisp-address-family-ref 1236 | +--rw instance-id? instance-id-type 1237 | +--rw (address)? 1238 | +--:(ipv4) 1239 | | +--rw ipv4? inet:ipv4-address 1240 | +--:(ipv6) 1241 | | +--rw ipv6? inet:ipv6-address 1242 | +--:(mac) 1243 | | +--rw mac? yang:mac-address 1244 | +--:(distinguished-name) 1245 | | +--rw distinguished-name? distinguished-name 1246 | +--:(lcaf) 1247 | +--rw lcaf 1248 | +--rw lcaf-type lcaf-ref 1249 | +--rw (address)? 1250 | +--:(null-address) 1251 | | +--rw null-address 1252 | | +--rw address? empty 1253 | +--:(afi-list) 1254 | | +--rw afi-list 1255 | | +--rw address-list* simple-address 1256 | +--:(instance-id) 1257 | | +--rw instance-id 1258 | | +--rw instance-id? instance-id-type 1259 | | +--rw mask-length? uint8 1260 | | +--rw address? simple-address 1261 | +--:(as-number) 1262 | | +--rw as-number 1263 | | +--rw as? inet:as-number 1264 | | +--rw address? simple-address 1265 | +--:(application-data) 1266 | | +--rw application-data 1267 | | +--rw address? simple-address 1268 | | +--rw protocol? uint8 1269 | | +--rw ip-tos? int32 1270 | | +--rw local-port-low? inet:port-number 1271 | | +--rw local-port-high? inet:port-number 1272 | | +--rw remote-port-low? inet:port-number 1273 | | +--rw remote-port-high? inet:port-number 1274 | +--:(geo-coordinates) 1275 | | +--rw geo-coordinates 1276 | | +--rw latitude? bits 1277 | | +--rw latitude-degrees? uint8 1278 | | +--rw latitude-minutes? uint8 1279 | | +--rw latitude-seconds? uint8 1280 | | +--rw longitude? bits 1281 | | +--rw longitude-degrees? uint16 1282 | | +--rw longitude-minutes? uint8 1283 | | +--rw longitude-seconds? uint8 1284 | | +--rw altitude? int32 1285 | | +--rw address? simple-address 1286 | +--:(nat-traversal) 1287 | | +--rw nat-traversal 1288 | | +--rw ms-udp-port? uint16 1289 | | +--rw etr-udp-port? uint16 1290 | | +--rw global-etr-rloc? simple-address 1291 | | +--rw ms-rloc? simple-address 1292 | | +--rw private-etr-rloc? simple-address 1293 | | +--rw rtr-rlocs* simple-address 1294 | +--:(explicit-locator-path) 1295 | | +--rw explicit-locator-path 1296 | | +--rw hop* [address] 1297 | | +--rw address simple-address 1298 | | +--rw lrs-bits? bits 1299 | +--:(sourc-dest-key) 1300 | +--rw sourc-dest-key 1301 | +--rw source? inet:ip-prefix 1302 | +--rw dest? inet:ip-prefix 1303 +--rw map-servers 1304 | +--rw map-server* [address] 1305 | +--rw address inet:ip-address 1306 | +--rw auth-key? string 1307 | +--rw auth-key-type? lisp:auth-key-type 1308 +--rw rlocs 1309 | +--rw rloc* [id] 1310 | +--rw id string 1311 | +--rw (address-type)? 1312 | | +--:(interface-name) 1313 | | | +--rw interface? if:interface-state-ref 1314 | | +--:(address) 1315 | | +--rw locator-address 1316 | | +--rw afi lisp-address-family-ref 1317 | | +--rw instance-id? instance-id-type 1318 | | +--rw (address)? 1319 | | +--:(ipv4) 1320 | | | +--rw ipv4? inet:ipv4-address 1321 | | +--:(ipv6) 1322 | | | +--rw ipv6? inet:ipv6-address 1323 | | +--:(mac) 1324 | | | +--rw mac? yang:mac-address 1325 | | +--:(distinguished-name) 1326 | | | +--rw distinguished-name? distinguished-name 1327 | | +--:(lcaf) 1328 | | +--rw lcaf 1329 | | +--rw lcaf-type lcaf-ref 1330 | | +--rw (address)? 1331 | | +--:(null-address) 1332 | | | +--rw null-address 1333 | | | +--rw address? empty 1334 | | +--:(afi-list) 1335 | | | +--rw afi-list 1336 | | | +--rw address-list* simple-address 1337 | | +--:(instance-id) 1338 | | | +--rw instance-id 1339 | | | +--rw instance-id? instance-id-type 1340 | | | +--rw mask-length? uint8 1341 | | | +--rw address? simple-address 1342 | | +--:(as-number) 1343 | | | +--rw as-number 1344 | | | +--rw as? inet:as-number 1345 | | | +--rw address? simple-address 1346 | | +--:(application-data) 1347 | | | +--rw application-data 1348 | | | +--rw address? simple-address 1349 | | | +--rw protocol? uint8 1350 | | | +--rw ip-tos? int32 1351 | | | +--rw local-port-low? inet:port-number 1352 | | | +--rw local-port-high? inet:port-number 1353 | | | +--rw remote-port-low? inet:port-number 1354 | | | +--rw remote-port-high? inet:port-number 1355 | | +--:(geo-coordinates) 1356 | | | +--rw geo-coordinates 1357 | | | +--rw latitude? bits 1358 | | | +--rw latitude-degrees? uint8 1359 | | | +--rw latitude-minutes? uint8 1360 | | | +--rw latitude-seconds? uint8 1361 | | | +--rw longitude? bits 1362 | | | +--rw longitude-degrees? uint16 1363 | | | +--rw longitude-minutes? uint8 1364 | | | +--rw longitude-seconds? uint8 1365 | | | +--rw altitude? int32 1366 | | | +--rw address? simple-address 1367 | | +--:(nat-traversal) 1368 | | | +--rw nat-traversal 1369 | | | +--rw ms-udp-port? uint16 1370 | | | +--rw etr-udp-port? uint16 1371 | | | +--rw global-etr-rloc? simple-address 1372 | | | +--rw ms-rloc? simple-address 1373 | | | +--rw private-etr-rloc? simple-address 1374 | | | +--rw rtr-rlocs* simple-address 1375 | | +--:(explicit-locator-path) 1376 | | | +--rw explicit-locator-path 1377 | | | +--rw hop* [address] 1378 | | | +--rw address simple-address 1379 | | | +--rw lrs-bits? bits 1380 | | +--:(sourc-dest-key) 1381 | | +--rw sourc-dest-key 1382 | | +--rw source? inet:ip-prefix 1383 | | +--rw dest? inet:ip-prefix 1384 | +--rw priority? uint8 1385 | +--rw weight? uint8 1386 | +--rw multicast-priority? uint8 1387 | +--rw multicast-weight? uint8 1388 +--rw record-ttl? uint32 1389 +--rw want-map-notify? boolean 1390 +--rw proxy-reply? boolean 1391 +--rw registration-interval? uint16 1393 4.2. Module Definition 1395 module lisp-etr { 1396 namespace "urn:ietf:params:xml:ns:yang:lisp-etr"; 1397 prefix lisp-etr; 1398 import ietf-lisp { 1399 prefix lisp; 1400 } 1401 import lisp-address-types { 1402 prefix lcaf; 1403 } 1404 import ietf-inet-types { 1405 prefix inet; 1406 } 1407 organization 1408 "IETF LISP (Locator/ID Separation Protocol) Working Group"; 1409 contact 1410 "lisp@ietf.org"; 1411 description 1412 "This YANG module defines the generic configuration 1413 data for a LISP ETR. The module can be extended by vendors 1414 to define vendor-specific configuration parameters and 1415 policies. 1417 Copyright (c) 2015 IETF Trust and the persons identified as 1418 authors of the code. All rights reserved. 1420 Redistribution and use in source and binary forms, with or 1421 without modification, is permitted pursuant to, and subject 1422 to the license terms contained in, the Simplified BSD License 1423 set forth in Section 4.c of the IETF Trust's Legal Provisions 1424 Relating to IETF Documents 1425 (http://trustee.ietf.org/license-info). 1427 This version of this YANG module is part of RFC 6338; see 1428 the RFC itself for full legal notices. 1429 "; 1430 revision 2015-07-02 { 1431 description 1432 "Initial revision."; 1433 reference 1434 "https://tools.ietf.org/html/rfc6830"; 1435 } 1436 identity etr { 1437 base lisp:lisp-device; 1438 description 1439 "LISP ETR."; 1440 } 1441 augment "/lisp:lisp/lisp:devices/lisp:device" { 1442 when "lisp:type = lisp-etr:etr" { 1443 description 1444 "Augment is valid when LISP device type is ETR."; 1445 } 1446 description 1447 "This augments LISP devices list with ETR specific 1448 parameters."; 1449 container etr-cfg { 1450 presence "LISP ETR operation enabled"; 1451 description 1452 "ETR configuration parameters."; 1453 container local-eids { 1454 description 1455 "EIDs served by the ETR."; 1456 list local-eid { 1457 key "id"; 1458 min-elements 1; 1459 description 1460 "List of local EIDs."; 1461 leaf id { 1462 type lisp:eid-id; 1463 description 1464 "Unique id of local EID."; 1465 } 1466 container eid-address { 1467 uses lcaf:lisp-address; 1468 description 1469 "EID address in generic LISP address format."; 1470 } 1471 container map-servers { 1472 description 1473 "Map-Servers configured for the ETR."; 1474 list map-server { 1475 key "address"; 1476 description 1477 "List of Map-Servers configured for the ETR."; 1478 leaf address { 1479 type inet:ip-address; 1480 description 1481 "Map-Server address."; 1482 } 1483 leaf auth-key { 1484 type string; 1485 description 1486 "Map-Server authentication key."; 1487 } 1488 leaf auth-key-type { 1489 type lisp:auth-key-type; 1490 description 1491 "Map-Server authentication type."; 1492 } 1493 } 1494 } 1495 container rlocs { 1496 uses lisp:locators; 1497 description 1498 "Locators mapped to local EID."; 1499 } 1500 leaf record-ttl { 1501 type uint32; 1502 description 1503 "Validity period of the EID to RLOCs mapping provided 1504 in Map-Replies."; 1505 } 1506 leaf want-map-notify { 1507 type boolean; 1508 description 1509 "Flag which if set in a Map-Register requests that a 1510 Map-Notify be sent in response."; 1511 } 1512 leaf proxy-reply { 1513 type boolean; 1514 description 1515 "Flag which if set in a Map-Register requests that the 1516 Map-Server proxy Map-Replies for the ETR."; 1517 } 1518 leaf registration-interval { 1519 type uint16; 1520 units "seconds"; 1521 default "60"; 1522 description 1523 "Interval between consecutive Map-Register messages."; 1524 } 1525 } 1526 } 1527 } 1528 } 1529 } 1531 5. LISP Map Server Module 1533 This module captures the configuration data model of a LISP Map 1534 Server [RFC6833]. The model also captures some operational data 1535 elements. 1537 5.1. Module Structure 1539 module: lisp-map-server 1540 augment /lisp:lisp/lisp:devices/lisp:device: 1541 +--rw map-server-cfg! 1542 +--rw sites 1543 | +--rw site* [site-id] 1544 | +--rw site-id uint64 1545 | +--rw devices 1546 | +--rw device* [device-id] 1547 | +--rw device-id uint64 1548 | +--rw auth-key 1549 | | +--rw auth-key-value? string 1550 | | +--rw auth-key-type? lisp:auth-key-type 1551 | +--rw eids 1552 | +--rw eid* [id] 1553 | +--rw id lisp:eid-id 1554 | +--rw eid-address 1555 | | +--rw afi lisp-address-family-ref 1556 | | +--rw instance-id? instance-id-type 1557 | | +--rw (address)? 1558 | | +--:(ipv4) 1559 | | | +--rw ipv4? inet:ipv4-address 1560 | | +--:(ipv6) 1561 | | | +--rw ipv6? inet:ipv6-address 1562 | | +--:(mac) 1563 | | | +--rw mac? yang:mac-address 1564 | | +--:(distinguished-name) 1565 | | | +--rw distinguished-name? distinguished-name 1566 | | +--:(lcaf) 1567 | | +--rw lcaf 1568 | | +--rw lcaf-type lcaf-ref 1569 | | +--rw (address)? 1570 | | +--:(null-address) 1571 | | | +--rw null-address 1572 | | | +--rw address? empty 1573 | | +--:(afi-list) 1574 | | | +--rw afi-list 1575 | | | +--rw address-list* simple-address 1576 | | +--:(instance-id) 1577 | | | +--rw instance-id 1578 | | | +--rw instance-id? instance-id-type 1579 | | | +--rw mask-length? uint8 1580 | | | +--rw address? simple-address 1581 | | +--:(as-number) 1582 | | | +--rw as-number 1583 | | | +--rw as? inet:as-number 1584 | | | +--rw address? simple-address 1585 | | +--:(application-data) 1586 | | | +--rw application-data 1587 | | | +--rw address? simple-address 1588 | | | +--rw protocol? uint8 1589 | | | +--rw ip-tos? int32 1590 | | | +--rw local-port-low? inet:port-number 1591 | | | +--rw local-port-high? inet:port-number 1592 | | | +--rw remote-port-low? inet:port-number 1593 | | | +--rw remote-port-high? inet:port-number 1594 | | +--:(geo-coordinates) 1595 | | | +--rw geo-coordinates 1596 | | | +--rw latitude? bits 1597 | | | +--rw latitude-degrees? uint8 1598 | | | +--rw latitude-minutes? uint8 1599 | | | +--rw latitude-seconds? uint8 1600 | | | +--rw longitude? bits 1601 | | | +--rw longitude-degrees? uint16 1602 | | | +--rw longitude-minutes? uint8 1603 | | | +--rw longitude-seconds? uint8 1604 | | | +--rw altitude? int32 1605 | | | +--rw address? simple-address 1606 | | +--:(nat-traversal) 1607 | | | +--rw nat-traversal 1608 | | | +--rw ms-udp-port? uint16 1609 | | | +--rw etr-udp-port? uint16 1610 | | | +--rw global-etr-rloc? simple-address 1611 | | | +--rw ms-rloc? simple-address 1612 | | | +--rw private-etr-rloc? simple-address 1613 | | | +--rw rtr-rlocs* simple-address 1614 | | +--:(explicit-locator-path) 1615 | | | +--rw explicit-locator-path 1616 | | | +--rw hop* [address] 1617 | | | +--rw address simple-address 1618 | | | +--rw lrs-bits? bits 1619 | | +--:(sourc-dest-key) 1620 | | +--rw sourc-dest-key 1621 | | +--rw source? inet:ip-prefix 1622 | | +--rw dest? inet:ip-prefix 1623 | +--rw more-specifics-accepted? boolean 1624 | +--rw mapping-expiration-timeout? int16 1625 +--rw static-mappings 1626 | +--rw mapping* [id] 1627 | +--rw id eid-id 1628 | +--rw eid 1629 | | +--rw afi lisp-address-family-ref 1630 | | +--rw instance-id? instance-id-type 1631 | | +--rw (address)? 1632 | | +--:(ipv4) 1633 | | | +--rw ipv4? inet:ipv4-address 1634 | | +--:(ipv6) 1635 | | | +--rw ipv6? inet:ipv6-address 1636 | | +--:(mac) 1637 | | | +--rw mac? yang:mac-address 1638 | | +--:(distinguished-name) 1639 | | | +--rw distinguished-name? distinguished-name 1640 | | +--:(lcaf) 1641 | | +--rw lcaf 1642 | | +--rw lcaf-type lcaf-ref 1643 | | +--rw (address)? 1644 | | +--:(null-address) 1645 | | | +--rw null-address 1646 | | | +--rw address? empty 1647 | | +--:(afi-list) 1648 | | | +--rw afi-list 1649 | | | +--rw address-list* simple-address 1650 | | +--:(instance-id) 1651 | | | +--rw instance-id 1652 | | | +--rw instance-id? instance-id-type 1653 | | | +--rw mask-length? uint8 1654 | | | +--rw address? simple-address 1655 | | +--:(as-number) 1656 | | | +--rw as-number 1657 | | | +--rw as? inet:as-number 1658 | | | +--rw address? simple-address 1659 | | +--:(application-data) 1660 | | | +--rw application-data 1661 | | | +--rw address? simple-address 1662 | | | +--rw protocol? uint8 1663 | | | +--rw ip-tos? int32 1664 | | | +--rw local-port-low? inet:port-number 1665 | | | +--rw local-port-high? inet:port-number 1666 | | | +--rw remote-port-low? inet:port-number 1667 | | | +--rw remote-port-high? inet:port-number 1668 | | +--:(geo-coordinates) 1669 | | | +--rw geo-coordinates 1670 | | | +--rw latitude? bits 1671 | | | +--rw latitude-degrees? uint8 1672 | | | +--rw latitude-minutes? uint8 1673 | | | +--rw latitude-seconds? uint8 1674 | | | +--rw longitude? bits 1675 | | | +--rw longitude-degrees? uint16 1676 | | | +--rw longitude-minutes? uint8 1677 | | | +--rw longitude-seconds? uint8 1678 | | | +--rw altitude? int32 1679 | | | +--rw address? simple-address 1680 | | +--:(nat-traversal) 1681 | | | +--rw nat-traversal 1682 | | | +--rw ms-udp-port? uint16 1683 | | | +--rw etr-udp-port? uint16 1684 | | | +--rw global-etr-rloc? simple-address 1685 | | | +--rw ms-rloc? simple-address 1686 | | | +--rw private-etr-rloc? simple-address 1687 | | | +--rw rtr-rlocs* simple-address 1688 | | +--:(explicit-locator-path) 1689 | | | +--rw explicit-locator-path 1690 | | | +--rw hop* [address] 1691 | | | +--rw address simple-address 1692 | | | +--rw lrs-bits? bits 1693 | | +--:(sourc-dest-key) 1694 | | +--rw sourc-dest-key 1695 | | +--rw source? inet:ip-prefix 1696 | | +--rw dest? inet:ip-prefix 1697 | +--rw ttl? uint32 1698 | +--rw authoritative? bits 1699 | +--rw (locator-list)? 1700 | +--:(negative-mapping) 1701 | | +--rw map-reply-action? map-reply-action 1702 | +--:(positive-mapping) 1703 | +--rw rlocs 1704 | +--rw rloc* [id] 1705 | +--rw id string 1706 | +--rw (address-type)? 1707 | | +--:(interface-name) 1708 | | | +--rw interface? if:interface-state-ref 1709 | | +--:(address) 1710 | | +--rw locator-address 1711 | | +--rw afi lisp-address-family-ref 1712 | | +--rw instance-id? instance-id-type 1713 | | +--rw (address)? 1714 | | +--:(ipv4) 1715 | | | +--rw ipv4? inet:ipv4-address 1716 | | +--:(ipv6) 1717 | | | +--rw ipv6? inet:ipv6-address 1718 | | +--:(mac) 1719 | | | +--rw mac? yang:mac-address 1720 | | +--:(distinguished-name) 1721 | | | +--rw distinguished-name? distinguished-name 1722 | | +--:(lcaf) 1723 | | +--rw lcaf 1724 | | +--rw lcaf-type lcaf-ref 1725 | | +--rw (address)? 1726 | | +--:(null-address) 1727 | | | +--rw null-address 1728 | | | +--rw address? empty 1729 | | +--:(afi-list) 1730 | | | +--rw afi-list 1731 | | | +--rw address-list* simple-address 1732 | | +--:(instance-id) 1733 | | | +--rw instance-id 1734 | | | +--rw instance-id? instance-id-type 1735 | | | +--rw mask-length? uint8 1736 | | | +--rw address? simple-address 1737 | | +--:(as-number) 1738 | | | +--rw as-number 1739 | | | +--rw as? inet:as-number 1740 | | | +--rw address? simple-address 1741 | | +--:(application-data) 1742 | | | +--rw application-data 1743 | | | +--rw address? simple-address 1744 | | | +--rw protocol? uint8 1745 | | | +--rw ip-tos? int32 1746 | | | +--rw local-port-low? inet:port-number 1747 | | | +--rw local-port-high? inet:port-number 1748 | | | +--rw remote-port-low? inet:port-number 1749 | | | +--rw remote-port-high? inet:port-number 1750 | | +--:(geo-coordinates) 1751 | | | +--rw geo-coordinates 1752 | | | +--rw latitude? bits 1753 | | | +--rw latitude-degrees? uint8 1754 | | | +--rw latitude-minutes? uint8 1755 | | | +--rw latitude-seconds? uint8 1756 | | | +--rw longitude? bits 1757 | | | +--rw longitude-degrees? uint16 1758 | | | +--rw longitude-minutes? uint8 1759 | | | +--rw longitude-seconds? uint8 1760 | | | +--rw altitude? int32 1761 | | | +--rw address? simple-address 1762 | | +--:(nat-traversal) 1763 | | | +--rw nat-traversal 1764 | | | +--rw ms-udp-port? uint16 1765 | | | +--rw etr-udp-port? uint16 1766 | | | +--rw global-etr-rloc? simple-address 1767 | | | +--rw ms-rloc? simple-address 1768 | | | +--rw private-etr-rloc? simple-address 1769 | | | +--rw rtr-rlocs* simple-address 1770 | | +--:(explicit-locator-path) 1771 | | | +--rw explicit-locator-path 1772 | | | +--rw hop* [address] 1773 | | | +--rw address simple-address 1774 | | | +--rw lrs-bits? bits 1775 | | +--:(sourc-dest-key) 1776 | | +--rw sourc-dest-key 1777 | | +--rw source? inet:ip-prefix 1778 | | +--rw dest? inet:ip-prefix 1779 | +--rw priority? uint8 1780 | +--rw weight? uint8 1781 | +--rw multicast-priority? uint8 1782 | +--rw multicast-weight? uint8 1783 +--rw (mapping-system) 1784 +--:(ddt-mapping-system) 1785 | +--rw ddt-mapping-system! 1786 | +--rw ddt-root* inet:ip-address 1787 | +--rw authoritative-eids 1788 | +--rw authoritative-eid* [id] 1789 | +--rw id lisp:eid-id 1790 | +--rw eid-address 1791 | +--rw afi lisp-address-family-ref 1792 | +--rw instance-id? instance-id-type 1793 | +--rw (address)? 1794 | +--:(ipv4) 1795 | | +--rw ipv4? inet:ipv4-address 1796 | +--:(ipv6) 1797 | | +--rw ipv6? inet:ipv6-address 1798 | +--:(mac) 1799 | | +--rw mac? yang:mac-address 1800 | +--:(distinguished-name) 1801 | | +--rw distinguished-name? distinguished-name 1802 | +--:(lcaf) 1803 | +--rw lcaf 1804 | +--rw lcaf-type lcaf-ref 1805 | +--rw (address)? 1806 | +--:(null-address) 1807 | | +--rw null-address 1808 | | +--rw address? empty 1809 | +--:(afi-list) 1810 | | +--rw afi-list 1811 | | +--rw address-list* simple-address 1812 | +--:(instance-id) 1813 | | +--rw instance-id 1814 | | +--rw instance-id? instance-id-type 1815 | | +--rw mask-length? uint8 1816 | | +--rw address? simple-address 1817 | +--:(as-number) 1818 | | +--rw as-number 1819 | | +--rw as? inet:as-number 1820 | | +--rw address? simple-address 1821 | +--:(application-data) 1822 | | +--rw application-data 1823 | | +--rw address? simple-address 1824 | | +--rw protocol? uint8 1825 | | +--rw ip-tos? int32 1826 | | +--rw local-port-low? inet:port-number 1827 | | +--rw local-port-high? inet:port-number 1828 | | +--rw remote-port-low? inet:port-number 1829 | | +--rw remote-port-high? inet:port-number 1830 | +--:(geo-coordinates) 1831 | | +--rw geo-coordinates 1832 | | +--rw latitude? bits 1833 | | +--rw latitude-degrees? uint8 1834 | | +--rw latitude-minutes? uint8 1835 | | +--rw latitude-seconds? uint8 1836 | | +--rw longitude? bits 1837 | | +--rw longitude-degrees? uint16 1838 | | +--rw longitude-minutes? uint8 1839 | | +--rw longitude-seconds? uint8 1840 | | +--rw altitude? int32 1841 | | +--rw address? simple-address 1842 | +--:(nat-traversal) 1843 | | +--rw nat-traversal 1844 | | +--rw ms-udp-port? uint16 1845 | | +--rw etr-udp-port? uint16 1846 | | +--rw global-etr-rloc? simple-address 1847 | | +--rw ms-rloc? simple-address 1848 | | +--rw private-etr-rloc? simple-address 1849 | | +--rw rtr-rlocs* simple-address 1850 | +--:(explicit-locator-path) 1851 | | +--rw explicit-locator-path 1852 | | +--rw hop* [address] 1853 | | +--rw address simple-address 1854 | | +--rw lrs-bits? bits 1855 | +--:(sourc-dest-key) 1856 | +--rw sourc-dest-key 1857 | +--rw source? inet:ip-prefix 1858 | +--rw dest? inet:ip-prefix 1859 +--:(alt-mapping-system) 1860 +--rw alt-mapping-system! 1861 augment /lisp:lisp-state/lisp:devices/lisp:device: 1862 +--ro ms-state 1863 +--ro registered-mappings 1864 +--ro mapping* [id] 1865 +--ro id eid-id 1866 +--ro eid 1867 | +--ro afi lisp-address-family-ref 1868 | +--ro instance-id? instance-id-type 1869 | +--ro (address)? 1870 | +--:(ipv4) 1871 | | +--ro ipv4? inet:ipv4-address 1872 | +--:(ipv6) 1873 | | +--ro ipv6? inet:ipv6-address 1874 | +--:(mac) 1875 | | +--ro mac? yang:mac-address 1876 | +--:(distinguished-name) 1877 | | +--ro distinguished-name? distinguished-name 1878 | +--:(lcaf) 1879 | +--ro lcaf 1880 | +--ro lcaf-type lcaf-ref 1881 | +--ro (address)? 1882 | +--:(null-address) 1883 | | +--ro null-address 1884 | | +--ro address? empty 1885 | +--:(afi-list) 1886 | | +--ro afi-list 1887 | | +--ro address-list* simple-address 1888 | +--:(instance-id) 1889 | | +--ro instance-id 1890 | | +--ro instance-id? instance-id-type 1891 | | +--ro mask-length? uint8 1892 | | +--ro address? simple-address 1893 | +--:(as-number) 1894 | | +--ro as-number 1895 | | +--ro as? inet:as-number 1896 | | +--ro address? simple-address 1897 | +--:(application-data) 1898 | | +--ro application-data 1899 | | +--ro address? simple-address 1900 | | +--ro protocol? uint8 1901 | | +--ro ip-tos? int32 1902 | | +--ro local-port-low? inet:port-number 1903 | | +--ro local-port-high? inet:port-number 1904 | | +--ro remote-port-low? inet:port-number 1905 | | +--ro remote-port-high? inet:port-number 1906 | +--:(geo-coordinates) 1907 | | +--ro geo-coordinates 1908 | | +--ro latitude? bits 1909 | | +--ro latitude-degrees? uint8 1910 | | +--ro latitude-minutes? uint8 1911 | | +--ro latitude-seconds? uint8 1912 | | +--ro longitude? bits 1913 | | +--ro longitude-degrees? uint16 1914 | | +--ro longitude-minutes? uint8 1915 | | +--ro longitude-seconds? uint8 1916 | | +--ro altitude? int32 1917 | | +--ro address? simple-address 1918 | +--:(nat-traversal) 1919 | | +--ro nat-traversal 1920 | | +--ro ms-udp-port? uint16 1921 | | +--ro etr-udp-port? uint16 1922 | | +--ro global-etr-rloc? simple-address 1923 | | +--ro ms-rloc? simple-address 1924 | | +--ro private-etr-rloc? simple-address 1925 | | +--ro rtr-rlocs* simple-address 1926 | +--:(explicit-locator-path) 1927 | | +--ro explicit-locator-path 1928 | | +--ro hop* [address] 1929 | | +--ro address simple-address 1930 | | +--ro lrs-bits? bits 1931 | +--:(sourc-dest-key) 1932 | +--ro sourc-dest-key 1933 | +--ro source? inet:ip-prefix 1934 | +--ro dest? inet:ip-prefix 1935 +--ro ttl? uint32 1936 +--ro authoritative? bits 1937 +--ro (locator-list)? 1938 +--:(negative-mapping) 1939 | +--ro map-reply-action? map-reply-action 1940 +--:(positive-mapping) 1941 +--ro rlocs 1942 +--ro rloc* [id] 1943 +--ro id string 1944 +--ro (address-type)? 1945 | +--:(interface-name) 1946 | | +--ro interface? if:interface-state-ref 1947 | +--:(address) 1948 | +--ro locator-address 1949 | +--ro afi lisp-address-family-ref 1950 | +--ro instance-id? instance-id-type 1951 | +--ro (address)? 1952 | +--:(ipv4) 1953 | | +--ro ipv4? inet:ipv4-address 1954 | +--:(ipv6) 1955 | | +--ro ipv6? inet:ipv6-address 1956 | +--:(mac) 1957 | | +--ro mac? yang:mac-address 1958 | +--:(distinguished-name) 1959 | | +--ro distinguished-name? distinguished-name 1960 | +--:(lcaf) 1961 | +--ro lcaf 1962 | +--ro lcaf-type lcaf-ref 1963 | +--ro (address)? 1964 | +--:(null-address) 1965 | | +--ro null-address 1966 | | +--ro address? empty 1967 | +--:(afi-list) 1968 | | +--ro afi-list 1969 | | +--ro address-list* simple-address 1970 | +--:(instance-id) 1971 | | +--ro instance-id 1972 | | +--ro instance-id? instance-id-type 1973 | | +--ro mask-length? uint8 1974 | | +--ro address? simple-address 1975 | +--:(as-number) 1976 | | +--ro as-number 1977 | | +--ro as? inet:as-number 1978 | | +--ro address? simple-address 1979 | +--:(application-data) 1980 | | +--ro application-data 1981 | | +--ro address? simple-address 1982 | | +--ro protocol? uint8 1983 | | +--ro ip-tos? int32 1984 | | +--ro local-port-low? inet:port-number 1985 | | +--ro local-port-high? inet:port-number 1986 | | +--ro remote-port-low? inet:port-number 1987 | | +--ro remote-port-high? inet:port-number 1988 | +--:(geo-coordinates) 1989 | | +--ro geo-coordinates 1990 | | +--ro latitude? bits 1991 | | +--ro latitude-degrees? uint8 1992 | | +--ro latitude-minutes? uint8 1993 | | +--ro latitude-seconds? uint8 1994 | | +--ro longitude? bits 1995 | | +--ro longitude-degrees? uint16 1996 | | +--ro longitude-minutes? uint8 1997 | | +--ro longitude-seconds? uint8 1998 | | +--ro altitude? int32 1999 | | +--ro address? simple-address 2000 | +--:(nat-traversal) 2001 | | +--ro nat-traversal 2002 | | +--ro ms-udp-port? uint16 2003 | | +--ro etr-udp-port? uint16 2004 | | +--ro global-etr-rloc? simple-address 2005 | | +--ro ms-rloc? simple-address 2006 | | +--ro private-etr-rloc? simple-address 2007 | | +--ro rtr-rlocs* simple-address 2008 | +--:(explicit-locator-path) 2009 | | +--ro explicit-locator-path 2010 | | +--ro hop* [address] 2011 | | +--ro address simple-address 2012 | | +--ro lrs-bits? bits 2013 | +--:(sourc-dest-key) 2014 | +--ro sourc-dest-key 2015 | +--ro source? inet:ip-prefix 2016 | +--ro dest? inet:ip-prefix 2017 +--ro priority? uint8 2018 +--ro weight? uint8 2019 +--ro multicast-priority? uint8 2020 +--ro multicast-weight? uint8 2022 5.2. Module Definition 2024 module lisp-map-server { 2025 namespace "urn:ietf:params:xml:ns:yang:lisp-map-server"; 2026 prefix lisp-ms; 2027 import ietf-lisp { 2028 prefix lisp; 2029 } 2030 import lisp-address-types { 2031 prefix lcaf; 2032 } 2033 import ietf-inet-types { 2034 prefix inet; 2035 } 2036 organization 2037 "IETF LISP (Locator/ID Separation Protocol) Working Group"; 2038 contact 2039 "lisp@ietf.org"; 2040 description 2041 "This YANG module defines the generic configuration 2042 data for a LISP Map-Server. The module can be extended by 2043 vendors to define vendor-specific configuration parameters 2044 and policies. 2046 Copyright (c) 2015 IETF Trust and the persons identified as 2047 authors of the code. All rights reserved. 2049 Redistribution and use in source and binary forms, with or 2050 without modification, is permitted pursuant to, and subject 2051 to the license terms contained in, the Simplified BSD License 2052 set forth in Section 4.c of the IETF Trust's Legal Provisions 2053 Relating to IETF Documents 2054 (http://trustee.ietf.org/license-info). 2056 This version of this YANG module is part of RFC 6338; see 2057 the RFC itself for full legal notices. 2058 "; 2060 revision 2015-07-02 { 2061 description 2062 "Initial revision."; 2063 reference 2064 "https://tools.ietf.org/html/rfc6833"; 2066 } 2067 identity ms { 2068 base lisp:lisp-device; 2069 description 2070 "LISP Map-Server."; 2071 } 2072 augment "/lisp:lisp/lisp:devices/lisp:device" { 2073 when "lisp:type = lisp-ms:ms" { 2074 description 2075 "Augment is valid when LISP device type is Map-Server."; 2076 } 2077 description 2078 "This augments LISP devices list with Map-Server specific 2079 parameters."; 2080 container map-server-cfg { 2081 presence "LISP Map-Server operation enabled"; 2082 description 2083 "Map-Server configuration parameters."; 2084 container sites { 2085 description 2086 "Sites for which the Map-Server accepts registrations."; 2087 list site { 2088 key "site-id"; 2089 description 2090 "List of sites for which the Map-Server acceptes 2091 registrations."; 2092 leaf site-id { 2093 type uint64; 2094 description 2095 "Site identifier."; 2096 } 2097 //VINA: can be augmented to have below for per site auth-key 2098 // leaf auth-key { 2099 // description "clear text authentication key"; 2100 // type string; 2101 // } 2102 container devices { 2103 description 2104 "Site devices registered with the Map-Server."; 2105 list device { 2106 key "device-id"; 2107 description 2108 "List of site devices registered with the 2109 Map-Server."; 2110 leaf device-id { 2111 type uint64; 2112 description 2113 "Device identifier."; 2115 } 2116 container auth-key { 2117 description 2118 "Device authentication key."; 2119 leaf auth-key-value { 2120 type string; 2121 description 2122 "Clear text authentication key"; 2123 } 2124 leaf auth-key-type { 2125 type lisp:auth-key-type; 2126 description 2127 "Authentication key type."; 2128 } 2129 } 2131 container eids { 2132 description 2133 "EIDs registered by device."; 2134 list eid { 2135 key "id"; 2136 description 2137 "List of EIDs registered by device."; 2138 leaf id { 2139 type lisp:eid-id; 2140 description 2141 "Id of the EID registered."; 2142 } 2143 container eid-address { 2144 uses lcaf:lisp-address; 2145 description 2146 "EID in generic LISP address format registered 2147 with the Map-Server."; 2148 } 2149 leaf more-specifics-accepted { 2150 type boolean; 2151 description 2152 "Flag indicating if more specific prefixes 2153 can be registered."; 2154 } 2155 leaf mapping-expiration-timeout { 2156 type int16; 2157 units "seconds"; 2158 default "180"; //3 times the mapregister int 2159 description 2160 "Time before mapping is expired if no new 2161 registrations are received."; 2162 } 2164 // VINA: can be augmented to have below for per-eid auth-key 2165 // leaf auth-key { 2166 // description "clear text authentication key"; 2167 // type string; 2168 // } 2169 } 2170 } 2171 } 2172 } 2173 } 2174 } 2175 container static-mappings { 2176 uses lisp:mappings; 2177 description 2178 "Datastore of statically registred mappings."; 2179 } 2180 choice mapping-system { 2181 mandatory true; 2182 description 2183 "Interface to Mapping System."; 2184 container ddt-mapping-system { 2185 presence "DDT Mapping System in use"; 2186 description 2187 "DDT Mapping System interface."; 2188 leaf-list ddt-root { 2189 type inet:ip-address; 2190 description 2191 "List of DDT root address."; 2192 } 2193 container authoritative-eids { 2194 description 2195 "Authoritative EIDs"; 2196 list authoritative-eid { 2197 key "id"; 2198 description 2199 "List of authoritative EIDs."; 2200 leaf id { 2201 type lisp:eid-id; 2202 description 2203 "EID id."; 2204 } 2205 container eid-address { 2206 uses lcaf:lisp-address; 2207 description 2208 "EID in generic LISP address format."; 2209 } 2210 } 2211 } 2213 } 2214 container alt-mapping-system { 2215 presence "ALT Mapping System in use"; 2216 description 2217 "ALT Mapping System interface."; 2218 // TBD 2219 } 2220 } 2221 } 2222 } 2223 augment "/lisp:lisp-state/lisp:devices/lisp:device" { 2224 when "lisp:type = lisp-ms:ms" { 2225 description 2226 "Augment is valid when LISP device type is Map-Server."; 2227 } 2228 description 2229 "This augments LISP devices list state with Map-Server 2230 specific parameters."; 2231 container ms-state { 2232 config false; 2233 description 2234 "Map-Server state."; 2235 container registered-mappings { 2236 uses lisp:mappings; 2237 description 2238 "Datastore of registred mappings."; 2239 } 2240 } 2241 } 2242 } 2244 6. LISP Map Resolver Module 2246 This module captures the configuration data model of a LISP Map 2247 Resolver [RFC6833]. The model also captures some operational data 2248 elements. 2250 6.1. Module Structure 2252 module: lisp-map-resolver 2253 augment /lisp:lisp/lisp:devices/lisp:device: 2254 +--rw map-resolver-cfg! 2255 +--rw (mapping-system) 2256 +--:(ddt-mapping-system) 2257 | +--rw ddt-mapping-system! 2258 | +--rw ddt-root* inet:ip-address 2259 +--:(alt-mapping-system) 2260 +--rw alt-mapping-system! 2262 6.2. Module Definition 2264 module lisp-map-resolver { 2265 namespace "urn:ietf:params:xml:ns:yang:lisp-map-resolver"; 2266 prefix lisp-mr; 2267 import ietf-lisp { 2268 prefix lisp; 2269 } 2270 import ietf-inet-types { 2271 prefix inet; 2272 } 2273 organization 2274 "IETF LISP (Locator/ID Separation Protocol) Working Group"; 2275 contact 2276 "lisp@ietf.org"; 2277 description 2278 "This YANG module defines the generic configuration 2279 data for a LISP Map-Resolver. The module can be extended by 2280 vendors to define vendor-specific configuration parameters 2281 and policies. 2283 Copyright (c) 2015 IETF Trust and the persons identified as 2284 authors of the code. All rights reserved. 2286 Redistribution and use in source and binary forms, with or 2287 without modification, is permitted pursuant to, and subject 2288 to the license terms contained in, the Simplified BSD License 2289 set forth in Section 4.c of the IETF Trust's Legal Provisions 2290 Relating to IETF Documents 2291 (http://trustee.ietf.org/license-info). 2293 This version of this YANG module is part of RFC 6338; see 2294 the RFC itself for full legal notices. 2295 "; 2296 revision 2015-07-02 { 2297 description 2298 "Initial revision."; 2299 reference 2300 "https://tools.ietf.org/html/rfc6833"; 2301 } 2302 identity mr { 2303 base lisp:lisp-device; 2304 description 2305 "LISP Map-Resolver."; 2306 } 2307 augment "/lisp:lisp/lisp:devices/lisp:device" { 2308 when "lisp:type = lisp-mr:mr" { 2309 description 2310 "Augment is valid when LISP device type is Map-Resolver."; 2311 } 2312 description 2313 "This augments LISP devices list with Map-Resolver specific 2314 parameters."; 2315 container map-resolver-cfg { 2316 presence "LISP Map-Resolver operation enabled"; 2317 description 2318 "Map-Resolver configuration parameters."; 2319 choice mapping-system { 2320 mandatory true; 2321 description 2322 "Mapping system interface."; 2323 container ddt-mapping-system { 2324 presence "DDT Mapping System in use"; 2325 description 2326 "DDT mapping system interface."; 2327 leaf-list ddt-root { 2328 type inet:ip-address; 2329 description 2330 "List of DDT root addresses."; 2331 } 2332 } 2333 container alt-mapping-system{ 2334 presence "ALT Mapping System in use"; 2335 description 2336 "ALT mapping system interface."; 2337 // TBD 2338 } 2339 } 2340 // VE: move to operational model/container 2341 // container mappings { 2342 // config false; 2343 // uses mappings; 2344 // } 2345 } 2346 } 2347 // FC : should we add as operational data 2348 // cached mappings? 2349 } 2351 7. LISP Proxy ITR Module 2353 This module captures the configuration data model of a LISP Proxy ITR 2354 [RFC6832]. The model may also capture some operational data 2355 elements. 2357 7.1. Module Structure 2359 module: lisp-pitr 2360 augment /lisp:lisp/lisp:devices/lisp:device: 2361 +--rw proxy-itr-cfg! 2362 +--rw servicing-eids 2363 | +--rw eid* [id] 2364 | +--rw id lisp:eid-id 2365 | +--rw eid-address 2366 | +--rw afi lisp-address-family-ref 2367 | +--rw instance-id? instance-id-type 2368 | +--rw (address)? 2369 | +--:(ipv4) 2370 | | +--rw ipv4? inet:ipv4-address 2371 | +--:(ipv6) 2372 | | +--rw ipv6? inet:ipv6-address 2373 | +--:(mac) 2374 | | +--rw mac? yang:mac-address 2375 | +--:(distinguished-name) 2376 | | +--rw distinguished-name? distinguished-name 2377 | +--:(lcaf) 2378 | +--rw lcaf 2379 | +--rw lcaf-type lcaf-ref 2380 | +--rw (address)? 2381 | +--:(null-address) 2382 | | +--rw null-address 2383 | | +--rw address? empty 2384 | +--:(afi-list) 2385 | | +--rw afi-list 2386 | | +--rw address-list* simple-address 2387 | +--:(instance-id) 2388 | | +--rw instance-id 2389 | | +--rw instance-id? instance-id-type 2390 | | +--rw mask-length? uint8 2391 | | +--rw address? simple-address 2392 | +--:(as-number) 2393 | | +--rw as-number 2394 | | +--rw as? inet:as-number 2395 | | +--rw address? simple-address 2396 | +--:(application-data) 2397 | | +--rw application-data 2398 | | +--rw address? simple-address 2399 | | +--rw protocol? uint8 2400 | | +--rw ip-tos? int32 2401 | | +--rw local-port-low? inet:port-number 2402 | | +--rw local-port-high? inet:port-number 2403 | | +--rw remote-port-low? inet:port-number 2404 | | +--rw remote-port-high? inet:port-number 2405 | +--:(geo-coordinates) 2406 | | +--rw geo-coordinates 2407 | | +--rw latitude? bits 2408 | | +--rw latitude-degrees? uint8 2409 | | +--rw latitude-minutes? uint8 2410 | | +--rw latitude-seconds? uint8 2411 | | +--rw longitude? bits 2412 | | +--rw longitude-degrees? uint16 2413 | | +--rw longitude-minutes? uint8 2414 | | +--rw longitude-seconds? uint8 2415 | | +--rw altitude? int32 2416 | | +--rw address? simple-address 2417 | +--:(nat-traversal) 2418 | | +--rw nat-traversal 2419 | | +--rw ms-udp-port? uint16 2420 | | +--rw etr-udp-port? uint16 2421 | | +--rw global-etr-rloc? simple-address 2422 | | +--rw ms-rloc? simple-address 2423 | | +--rw private-etr-rloc? simple-address 2424 | | +--rw rtr-rlocs* simple-address 2425 | +--:(explicit-locator-path) 2426 | | +--rw explicit-locator-path 2427 | | +--rw hop* [address] 2428 | | +--rw address simple-address 2429 | | +--rw lrs-bits? bits 2430 | +--:(sourc-dest-key) 2431 | +--rw sourc-dest-key 2432 | +--rw source? inet:ip-prefix 2433 | +--rw dest? inet:ip-prefix 2434 +--rw map-resolvers 2435 | +--rw map-resolver* [id] 2436 | +--rw id lisp:eid-id 2437 | +--rw eid 2438 | | +--rw afi lisp-address-family-ref 2439 | | +--rw instance-id? instance-id-type 2440 | | +--rw (address)? 2441 | | +--:(ipv4) 2442 | | | +--rw ipv4? inet:ipv4-address 2443 | | +--:(ipv6) 2444 | | | +--rw ipv6? inet:ipv6-address 2445 | | +--:(mac) 2446 | | | +--rw mac? yang:mac-address 2447 | | +--:(distinguished-name) 2448 | | | +--rw distinguished-name? distinguished-name 2449 | | +--:(lcaf) 2450 | | +--rw lcaf 2451 | | +--rw lcaf-type lcaf-ref 2452 | | +--rw (address)? 2453 | | +--:(null-address) 2454 | | | +--rw null-address 2455 | | | +--rw address? empty 2456 | | +--:(afi-list) 2457 | | | +--rw afi-list 2458 | | | +--rw address-list* simple-address 2459 | | +--:(instance-id) 2460 | | | +--rw instance-id 2461 | | | +--rw instance-id? instance-id-type 2462 | | | +--rw mask-length? uint8 2463 | | | +--rw address? simple-address 2464 | | +--:(as-number) 2465 | | | +--rw as-number 2466 | | | +--rw as? inet:as-number 2467 | | | +--rw address? simple-address 2468 | | +--:(application-data) 2469 | | | +--rw application-data 2470 | | | +--rw address? simple-address 2471 | | | +--rw protocol? uint8 2472 | | | +--rw ip-tos? int32 2473 | | | +--rw local-port-low? inet:port-number 2474 | | | +--rw local-port-high? inet:port-number 2475 | | | +--rw remote-port-low? inet:port-number 2476 | | | +--rw remote-port-high? inet:port-number 2477 | | +--:(geo-coordinates) 2478 | | | +--rw geo-coordinates 2479 | | | +--rw latitude? bits 2480 | | | +--rw latitude-degrees? uint8 2481 | | | +--rw latitude-minutes? uint8 2482 | | | +--rw latitude-seconds? uint8 2483 | | | +--rw longitude? bits 2484 | | | +--rw longitude-degrees? uint16 2485 | | | +--rw longitude-minutes? uint8 2486 | | | +--rw longitude-seconds? uint8 2487 | | | +--rw altitude? int32 2488 | | | +--rw address? simple-address 2489 | | +--:(nat-traversal) 2490 | | | +--rw nat-traversal 2491 | | | +--rw ms-udp-port? uint16 2492 | | | +--rw etr-udp-port? uint16 2493 | | | +--rw global-etr-rloc? simple-address 2494 | | | +--rw ms-rloc? simple-address 2495 | | | +--rw private-etr-rloc? simple-address 2496 | | | +--rw rtr-rlocs* simple-address 2497 | | +--:(explicit-locator-path) 2498 | | | +--rw explicit-locator-path 2499 | | | +--rw hop* [address] 2500 | | | +--rw address simple-address 2501 | | | +--rw lrs-bits? bits 2502 | | +--:(sourc-dest-key) 2503 | | +--rw sourc-dest-key 2504 | | +--rw source? inet:ip-prefix 2505 | | +--rw dest? inet:ip-prefix 2506 | +--rw address* inet:ip-address 2507 +--rw static-mappings 2508 +--rw mapping* [id] 2509 +--rw id eid-id 2510 +--rw eid 2511 | +--rw afi lisp-address-family-ref 2512 | +--rw instance-id? instance-id-type 2513 | +--rw (address)? 2514 | +--:(ipv4) 2515 | | +--rw ipv4? inet:ipv4-address 2516 | +--:(ipv6) 2517 | | +--rw ipv6? inet:ipv6-address 2518 | +--:(mac) 2519 | | +--rw mac? yang:mac-address 2520 | +--:(distinguished-name) 2521 | | +--rw distinguished-name? distinguished-name 2522 | +--:(lcaf) 2523 | +--rw lcaf 2524 | +--rw lcaf-type lcaf-ref 2525 | +--rw (address)? 2526 | +--:(null-address) 2527 | | +--rw null-address 2528 | | +--rw address? empty 2529 | +--:(afi-list) 2530 | | +--rw afi-list 2531 | | +--rw address-list* simple-address 2532 | +--:(instance-id) 2533 | | +--rw instance-id 2534 | | +--rw instance-id? instance-id-type 2535 | | +--rw mask-length? uint8 2536 | | +--rw address? simple-address 2537 | +--:(as-number) 2538 | | +--rw as-number 2539 | | +--rw as? inet:as-number 2540 | | +--rw address? simple-address 2541 | +--:(application-data) 2542 | | +--rw application-data 2543 | | +--rw address? simple-address 2544 | | +--rw protocol? uint8 2545 | | +--rw ip-tos? int32 2546 | | +--rw local-port-low? inet:port-number 2547 | | +--rw local-port-high? inet:port-number 2548 | | +--rw remote-port-low? inet:port-number 2549 | | +--rw remote-port-high? inet:port-number 2550 | +--:(geo-coordinates) 2551 | | +--rw geo-coordinates 2552 | | +--rw latitude? bits 2553 | | +--rw latitude-degrees? uint8 2554 | | +--rw latitude-minutes? uint8 2555 | | +--rw latitude-seconds? uint8 2556 | | +--rw longitude? bits 2557 | | +--rw longitude-degrees? uint16 2558 | | +--rw longitude-minutes? uint8 2559 | | +--rw longitude-seconds? uint8 2560 | | +--rw altitude? int32 2561 | | +--rw address? simple-address 2562 | +--:(nat-traversal) 2563 | | +--rw nat-traversal 2564 | | +--rw ms-udp-port? uint16 2565 | | +--rw etr-udp-port? uint16 2566 | | +--rw global-etr-rloc? simple-address 2567 | | +--rw ms-rloc? simple-address 2568 | | +--rw private-etr-rloc? simple-address 2569 | | +--rw rtr-rlocs* simple-address 2570 | +--:(explicit-locator-path) 2571 | | +--rw explicit-locator-path 2572 | | +--rw hop* [address] 2573 | | +--rw address simple-address 2574 | | +--rw lrs-bits? bits 2575 | +--:(sourc-dest-key) 2576 | +--rw sourc-dest-key 2577 | +--rw source? inet:ip-prefix 2578 | +--rw dest? inet:ip-prefix 2579 +--rw ttl? uint32 2580 +--rw authoritative? bits 2581 +--rw (locator-list)? 2582 +--:(negative-mapping) 2583 | +--rw map-reply-action? map-reply-action 2584 +--:(positive-mapping) 2585 +--rw rlocs 2586 +--rw rloc* [id] 2587 +--rw id string 2588 +--rw (address-type)? 2589 | +--:(interface-name) 2590 | | +--rw interface? if:interface-state-ref 2591 | +--:(address) 2592 | +--rw locator-address 2593 | +--rw afi lisp-address-family-ref 2594 | +--rw instance-id? instance-id-type 2595 | +--rw (address)? 2596 | +--:(ipv4) 2597 | | +--rw ipv4? inet:ipv4-address 2598 | +--:(ipv6) 2599 | | +--rw ipv6? inet:ipv6-address 2600 | +--:(mac) 2601 | | +--rw mac? yang:mac-address 2602 | +--:(distinguished-name) 2603 | | +--rw distinguished-name? distinguished-name 2604 | +--:(lcaf) 2605 | +--rw lcaf 2606 | +--rw lcaf-type lcaf-ref 2607 | +--rw (address)? 2608 | +--:(null-address) 2609 | | +--rw null-address 2610 | | +--rw address? empty 2611 | +--:(afi-list) 2612 | | +--rw afi-list 2613 | | +--rw address-list* simple-address 2614 | +--:(instance-id) 2615 | | +--rw instance-id 2616 | | +--rw instance-id? instance-id-type 2617 | | +--rw mask-length? uint8 2618 | | +--rw address? simple-address 2619 | +--:(as-number) 2620 | | +--rw as-number 2621 | | +--rw as? inet:as-number 2622 | | +--rw address? simple-address 2623 | +--:(application-data) 2624 | | +--rw application-data 2625 | | +--rw address? simple-address 2626 | | +--rw protocol? uint8 2627 | | +--rw ip-tos? int32 2628 | | +--rw local-port-low? inet:port-number 2629 | | +--rw local-port-high? inet:port-number 2630 | | +--rw remote-port-low? inet:port-number 2631 | | +--rw remote-port-high? inet:port-number 2632 | +--:(geo-coordinates) 2633 | | +--rw geo-coordinates 2634 | | +--rw latitude? bits 2635 | | +--rw latitude-degrees? uint8 2636 | | +--rw latitude-minutes? uint8 2637 | | +--rw latitude-seconds? uint8 2638 | | +--rw longitude? bits 2639 | | +--rw longitude-degrees? uint16 2640 | | +--rw longitude-minutes? uint8 2641 | | +--rw longitude-seconds? uint8 2642 | | +--rw altitude? int32 2643 | | +--rw address? simple-address 2644 | +--:(nat-traversal) 2645 | | +--rw nat-traversal 2646 | | +--rw ms-udp-port? uint16 2647 | | +--rw etr-udp-port? uint16 2648 | | +--rw global-etr-rloc? simple-address 2649 | | +--rw ms-rloc? simple-address 2650 | | +--rw private-etr-rloc? simple-address 2651 | | +--rw rtr-rlocs* simple-address 2652 | +--:(explicit-locator-path) 2653 | | +--rw explicit-locator-path 2654 | | +--rw hop* [address] 2655 | | +--rw address simple-address 2656 | | +--rw lrs-bits? bits 2657 | +--:(sourc-dest-key) 2658 | +--rw sourc-dest-key 2659 | +--rw source? inet:ip-prefix 2660 | +--rw dest? inet:ip-prefix 2661 +--rw priority? uint8 2662 +--rw weight? uint8 2663 +--rw multicast-priority? uint8 2664 +--rw multicast-weight? uint8 2665 augment /lisp:lisp-state/lisp:devices/lisp:device: 2666 +--ro pitr-state 2667 +--ro learned-mappings 2668 +--ro mapping* [id] 2669 +--ro id eid-id 2670 +--ro eid 2671 | +--ro afi lisp-address-family-ref 2672 | +--ro instance-id? instance-id-type 2673 | +--ro (address)? 2674 | +--:(ipv4) 2675 | | +--ro ipv4? inet:ipv4-address 2676 | +--:(ipv6) 2677 | | +--ro ipv6? inet:ipv6-address 2678 | +--:(mac) 2679 | | +--ro mac? yang:mac-address 2680 | +--:(distinguished-name) 2681 | | +--ro distinguished-name? distinguished-name 2682 | +--:(lcaf) 2683 | +--ro lcaf 2684 | +--ro lcaf-type lcaf-ref 2685 | +--ro (address)? 2686 | +--:(null-address) 2687 | | +--ro null-address 2688 | | +--ro address? empty 2689 | +--:(afi-list) 2690 | | +--ro afi-list 2691 | | +--ro address-list* simple-address 2692 | +--:(instance-id) 2693 | | +--ro instance-id 2694 | | +--ro instance-id? instance-id-type 2695 | | +--ro mask-length? uint8 2696 | | +--ro address? simple-address 2697 | +--:(as-number) 2698 | | +--ro as-number 2699 | | +--ro as? inet:as-number 2700 | | +--ro address? simple-address 2701 | +--:(application-data) 2702 | | +--ro application-data 2703 | | +--ro address? simple-address 2704 | | +--ro protocol? uint8 2705 | | +--ro ip-tos? int32 2706 | | +--ro local-port-low? inet:port-number 2707 | | +--ro local-port-high? inet:port-number 2708 | | +--ro remote-port-low? inet:port-number 2709 | | +--ro remote-port-high? inet:port-number 2710 | +--:(geo-coordinates) 2711 | | +--ro geo-coordinates 2712 | | +--ro latitude? bits 2713 | | +--ro latitude-degrees? uint8 2714 | | +--ro latitude-minutes? uint8 2715 | | +--ro latitude-seconds? uint8 2716 | | +--ro longitude? bits 2717 | | +--ro longitude-degrees? uint16 2718 | | +--ro longitude-minutes? uint8 2719 | | +--ro longitude-seconds? uint8 2720 | | +--ro altitude? int32 2721 | | +--ro address? simple-address 2722 | +--:(nat-traversal) 2723 | | +--ro nat-traversal 2724 | | +--ro ms-udp-port? uint16 2725 | | +--ro etr-udp-port? uint16 2726 | | +--ro global-etr-rloc? simple-address 2727 | | +--ro ms-rloc? simple-address 2728 | | +--ro private-etr-rloc? simple-address 2729 | | +--ro rtr-rlocs* simple-address 2730 | +--:(explicit-locator-path) 2731 | | +--ro explicit-locator-path 2732 | | +--ro hop* [address] 2733 | | +--ro address simple-address 2734 | | +--ro lrs-bits? bits 2735 | +--:(sourc-dest-key) 2736 | +--ro sourc-dest-key 2737 | +--ro source? inet:ip-prefix 2738 | +--ro dest? inet:ip-prefix 2739 +--ro ttl? uint32 2740 +--ro authoritative? bits 2741 +--ro (locator-list)? 2742 +--:(negative-mapping) 2743 | +--ro map-reply-action? map-reply-action 2744 +--:(positive-mapping) 2745 +--ro rlocs 2746 +--ro rloc* [id] 2747 +--ro id string 2748 +--ro (address-type)? 2749 | +--:(interface-name) 2750 | | +--ro interface? if:interface-state-ref 2751 | +--:(address) 2752 | +--ro locator-address 2753 | +--ro afi lisp-address-family-ref 2754 | +--ro instance-id? instance-id-type 2755 | +--ro (address)? 2756 | +--:(ipv4) 2757 | | +--ro ipv4? inet:ipv4-address 2758 | +--:(ipv6) 2759 | | +--ro ipv6? inet:ipv6-address 2760 | +--:(mac) 2761 | | +--ro mac? yang:mac-address 2762 | +--:(distinguished-name) 2763 | | +--ro distinguished-name? distinguished-name 2764 | +--:(lcaf) 2765 | +--ro lcaf 2766 | +--ro lcaf-type lcaf-ref 2767 | +--ro (address)? 2768 | +--:(null-address) 2769 | | +--ro null-address 2770 | | +--ro address? empty 2771 | +--:(afi-list) 2772 | | +--ro afi-list 2773 | | +--ro address-list* simple-address 2774 | +--:(instance-id) 2775 | | +--ro instance-id 2776 | | +--ro instance-id? instance-id-type 2777 | | +--ro mask-length? uint8 2778 | | +--ro address? simple-address 2779 | +--:(as-number) 2780 | | +--ro as-number 2781 | | +--ro as? inet:as-number 2782 | | +--ro address? simple-address 2783 | +--:(application-data) 2784 | | +--ro application-data 2785 | | +--ro address? simple-address 2786 | | +--ro protocol? uint8 2787 | | +--ro ip-tos? int32 2788 | | +--ro local-port-low? inet:port-number 2789 | | +--ro local-port-high? inet:port-number 2790 | | +--ro remote-port-low? inet:port-number 2791 | | +--ro remote-port-high? inet:port-number 2792 | +--:(geo-coordinates) 2793 | | +--ro geo-coordinates 2794 | | +--ro latitude? bits 2795 | | +--ro latitude-degrees? uint8 2796 | | +--ro latitude-minutes? uint8 2797 | | +--ro latitude-seconds? uint8 2798 | | +--ro longitude? bits 2799 | | +--ro longitude-degrees? uint16 2800 | | +--ro longitude-minutes? uint8 2801 | | +--ro longitude-seconds? uint8 2802 | | +--ro altitude? int32 2803 | | +--ro address? simple-address 2804 | +--:(nat-traversal) 2805 | | +--ro nat-traversal 2806 | | +--ro ms-udp-port? uint16 2807 | | +--ro etr-udp-port? uint16 2808 | | +--ro global-etr-rloc? simple-address 2809 | | +--ro ms-rloc? simple-address 2810 | | +--ro private-etr-rloc? simple-address 2811 | | +--ro rtr-rlocs* simple-address 2812 | +--:(explicit-locator-path) 2813 | | +--ro explicit-locator-path 2814 | | +--ro hop* [address] 2815 | | +--ro address simple-address 2816 | | +--ro lrs-bits? bits 2817 | +--:(sourc-dest-key) 2818 | +--ro sourc-dest-key 2819 | +--ro source? inet:ip-prefix 2820 | +--ro dest? inet:ip-prefix 2821 +--ro priority? uint8 2822 +--ro weight? uint8 2823 +--ro multicast-priority? uint8 2824 +--ro multicast-weight? uint8 2826 7.2. Module Definition 2828 module lisp-pitr { 2829 namespace "urn:ietf:params:xml:ns:yang:lisp-pitr"; 2830 prefix lisp-pitr; 2831 import ietf-lisp { 2832 prefix lisp; 2833 } 2834 import lisp-address-types { 2835 prefix lcaf; 2836 } 2837 import ietf-inet-types { 2838 prefix inet; 2839 } 2840 organization 2841 "IETF LISP (Locator/ID Separation Protocol) Working Group"; 2842 contact 2843 "lisp@ietf.org"; 2844 description 2845 "This YANG module defines the generic configuration 2846 data for a LISP PITR. The module can be extended by vendors 2847 to define vendor-specific configuration parameters and 2848 policies. 2850 Copyright (c) 2015 IETF Trust and the persons identified as 2851 authors of the code. All rights reserved. 2853 Redistribution and use in source and binary forms, with or 2854 without modification, is permitted pursuant to, and subject 2855 to the license terms contained in, the Simplified BSD License 2856 set forth in Section 4.c of the IETF Trust's Legal Provisions 2857 Relating to IETF Documents 2858 (http://trustee.ietf.org/license-info). 2860 This version of this YANG module is part of RFC 6338; see 2861 the RFC itself for full legal notices. 2862 "; 2863 revision 2015-07-02 { 2864 description 2865 "Initial revision."; 2866 reference 2867 "https://tools.ietf.org/html/rfc6832"; 2868 } 2869 identity pitr { 2870 base lisp:lisp-device; 2871 description 2872 "LISP PITR."; 2873 } 2874 augment "/lisp:lisp/lisp:devices/lisp:device" { 2875 when "lisp:type = lisp-pitr:pitr" { 2876 description 2877 "Augment is valid when LISP device type is PITR."; 2878 } 2879 description 2880 "This augments LISP devices list with PITR specific 2881 parameters."; 2882 container proxy-itr-cfg { 2883 presence "LISP PITR operation enabled"; 2884 description 2885 "Proxy-ITR configuration parameters."; 2886 container servicing-eids { 2887 description 2888 "EIDs serviced by the PITR."; 2889 list eid { 2890 key "id"; 2891 description 2892 "List of EIDs serviced by the PITR."; 2893 leaf id { 2894 type lisp:eid-id; 2895 description 2896 "Id of serviced EID."; 2897 } 2898 container eid-address { 2899 uses lcaf:lisp-address; 2900 description 2901 "Serviced EID address in generic LISP address format."; 2902 } 2903 } 2904 } 2906 container map-resolvers { 2907 description 2908 "Map-Resolvers configured for PITR."; 2909 list map-resolver { 2910 key "id"; 2911 description 2912 "List of Map-Resolvers configured for PITR."; 2913 leaf id { 2914 type lisp:eid-id; 2915 description 2916 "Id of EID for which the Map-Resolver is used."; 2917 } 2918 container eid { 2919 uses lcaf:lisp-address; 2920 description 2921 "EID for which the Map-Resolver is used."; 2922 } 2923 leaf-list address { 2924 type inet:ip-address; 2925 min-elements 1; 2926 description 2927 "List of Map-Resolver's addresses."; 2928 } 2929 } 2930 } 2931 container static-mappings{ 2932 uses lisp:mappings; 2933 description 2934 "EID to RLOCs mappings cache."; 2935 } 2936 } 2937 } 2938 augment "/lisp:lisp-state/lisp:devices/lisp:device" { 2939 when "lisp:type = lisp-pitr:pitr" { 2940 description 2941 "Augment is valid when LISP device type is PITR."; 2942 } 2943 description 2944 "This augments LISP devices list state with PITR specific 2945 parameters."; 2946 container pitr-state { 2947 config false; 2948 description 2949 "ITR state."; 2950 container learned-mappings { 2951 uses lisp:mappings; 2952 description 2953 "EID to RLOCs mappings cache."; 2954 } 2955 } 2956 } 2957 } 2959 8. LISP Proxy ETR Module 2961 This module captures the configuration data model of a LISP Proxy ETR 2962 [RFC6832]. The model may also capture some operational data 2963 elements. 2965 8.1. Module Structure 2967 module: lisp-petr 2968 augment /lisp:lisp/lisp:devices/lisp:device: 2969 +--rw proxy-etr-cfg! 2970 +--rw servicing-eids 2971 +--rw eid* [id] 2972 +--rw id lisp:eid-id 2973 +--rw eid-address 2974 +--rw afi lisp-address-family-ref 2975 +--rw instance-id? instance-id-type 2976 +--rw (address)? 2977 +--:(ipv4) 2978 | +--rw ipv4? inet:ipv4-address 2979 +--:(ipv6) 2980 | +--rw ipv6? inet:ipv6-address 2981 +--:(mac) 2982 | +--rw mac? yang:mac-address 2983 +--:(distinguished-name) 2984 | +--rw distinguished-name? distinguished-name 2985 +--:(lcaf) 2986 +--rw lcaf 2987 +--rw lcaf-type lcaf-ref 2988 +--rw (address)? 2989 +--:(null-address) 2990 | +--rw null-address 2991 | +--rw address? empty 2992 +--:(afi-list) 2993 | +--rw afi-list 2994 | +--rw address-list* simple-address 2995 +--:(instance-id) 2996 | +--rw instance-id 2997 | +--rw instance-id? instance-id-type 2998 | +--rw mask-length? uint8 2999 | +--rw address? simple-address 3000 +--:(as-number) 3001 | +--rw as-number 3002 | +--rw as? inet:as-number 3003 | +--rw address? simple-address 3004 +--:(application-data) 3005 | +--rw application-data 3006 | +--rw address? simple-address 3007 | +--rw protocol? uint8 3008 | +--rw ip-tos? int32 3009 | +--rw local-port-low? inet:port-number 3010 | +--rw local-port-high? inet:port-number 3011 | +--rw remote-port-low? inet:port-number 3012 | +--rw remote-port-high? inet:port-number 3013 +--:(geo-coordinates) 3014 | +--rw geo-coordinates 3015 | +--rw latitude? bits 3016 | +--rw latitude-degrees? uint8 3017 | +--rw latitude-minutes? uint8 3018 | +--rw latitude-seconds? uint8 3019 | +--rw longitude? bits 3020 | +--rw longitude-degrees? uint16 3021 | +--rw longitude-minutes? uint8 3022 | +--rw longitude-seconds? uint8 3023 | +--rw altitude? int32 3024 | +--rw address? simple-address 3025 +--:(nat-traversal) 3026 | +--rw nat-traversal 3027 | +--rw ms-udp-port? uint16 3028 | +--rw etr-udp-port? uint16 3029 | +--rw global-etr-rloc? simple-address 3030 | +--rw ms-rloc? simple-address 3031 | +--rw private-etr-rloc? simple-address 3032 | +--rw rtr-rlocs* simple-address 3033 +--:(explicit-locator-path) 3034 | +--rw explicit-locator-path 3035 | +--rw hop* [address] 3036 | +--rw address simple-address 3037 | +--rw lrs-bits? bits 3038 +--:(sourc-dest-key) 3039 +--rw sourc-dest-key 3040 +--rw source? inet:ip-prefix 3041 +--rw dest? inet:ip-prefix 3043 8.2. Module Definition 3045 module lisp-petr { 3046 namespace "urn:ietf:params:xml:ns:yang:lisp-petr"; 3047 prefix lisp-petr; 3048 import ietf-lisp { 3049 prefix lisp; 3050 } 3051 import lisp-address-types { 3052 prefix lcaf; 3053 } 3054 organization 3055 "IETF LISP (Locator/ID Separation Protocol) Working Group"; 3056 contact 3057 "lisp@ietf.org"; 3058 description 3059 "This YANG module defines the generic configuration 3060 data for a LISP PETR. The module can be extended by vendors to 3061 define vendor-specific configuration parameters and policies. 3063 Copyright (c) 2015 IETF Trust and the persons identified as 3064 authors of the code. All rights reserved. 3066 Redistribution and use in source and binary forms, with or 3067 without modification, is permitted pursuant to, and subject 3068 to the license terms contained in, the Simplified BSD License 3069 set forth in Section 4.c of the IETF Trust's Legal Provisions 3070 Relating to IETF Documents 3071 (http://trustee.ietf.org/license-info). 3073 This version of this YANG module is part of RFC 6338; see 3074 the RFC itself for full legal notices. 3075 "; 3076 revision 2015-07-02 { 3077 description 3078 "Initial revision."; 3079 reference 3080 "https://tools.ietf.org/html/rfc6832"; 3081 } 3082 identity petr { 3083 base lisp:lisp-device; 3084 description 3085 "LISP PETR."; 3086 } 3087 augment "/lisp:lisp/lisp:devices/lisp:device" { 3088 when "lisp:type = lisp-petr:petr" { 3089 description 3090 "Augment is valid when LISP device type is PETR."; 3091 } 3092 description 3093 "This augments LISP devices list with PETR specific 3094 parameters."; 3095 container proxy-etr-cfg { 3096 presence "LISP PETR operation enabled"; 3097 description 3098 "Proxy ETR configuration parameters."; 3099 container servicing-eids { 3100 description 3101 "EIDs serviced by the PETR."; 3102 list eid { 3103 key "id"; 3104 description 3105 "List of EIDs serviced by the PETR."; 3106 leaf id { 3107 type lisp:eid-id; 3108 description 3109 "Id of serviced EID."; 3110 } 3111 container eid-address { 3112 uses lcaf:lisp-address; 3113 description 3114 "Serviced EID in generic LISP address format."; 3115 } 3116 } 3117 } 3118 } 3119 } 3120 } 3122 9. LISP Address Types 3124 This module captures the various LISP address types, and is an 3125 essential building block used in other LISP modules. 3127 9.1. Module Definition 3129 module lisp-address-types { 3130 namespace "urn:ietf:params:xml:ns:yang:lisp-address-types"; 3131 prefix laddr; 3132 import ietf-inet-types { 3133 prefix inet; 3134 } 3135 import ietf-yang-types { 3136 prefix yang; 3137 } 3138 organization 3139 "IETF LISP (Locator/ID Separation Protocol) Working Group"; 3140 contact 3141 "lisp@ietf.org"; 3142 description 3143 "This YANG module defines the LISP Canonical Address Formats 3144 (LCAF) for LISP. The module can be extended by vendors to 3145 define vendor-specific parameters. 3147 Copyright (c) 2014 IETF Trust and the persons identified as 3148 authors of the code. All rights reserved. 3150 Redistribution and use in source and binary forms, with or 3151 without modification, is permitted pursuant to, and subject 3152 to the license terms contained in, the Simplified BSD License 3153 set forth in Section 4.c of the IETF Trust's Legal Provisions 3154 Relating to IETF Documents 3155 (http://trustee.ietf.org/license-info). 3157 This version of this YANG module is part of RFC 6338; see 3158 the RFC itself for full legal notices. 3160 "; 3161 revision 2015-03-09 { 3162 description 3163 "Initial revision."; 3164 reference 3165 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10"; 3166 } 3167 identity lisp-address-family { 3168 description 3169 "Base identity from which identities describing LISP address 3170 families are derived."; 3171 } 3172 identity ipv4 { 3173 base lisp-address-family; 3174 description 3175 "IANA IPv4 address family."; 3176 } 3177 identity ipv6 { 3178 base lisp-address-family; 3179 description 3180 "IANA IPv6 address family."; 3181 } 3182 identity mac { 3183 base lisp-address-family; 3184 description 3185 "IANA MAC address family."; 3186 } 3187 identity distinguished-name { 3188 base lisp-address-family; 3189 description 3190 "IANA Distinguished Name address family."; 3191 } 3192 identity lcaf { 3193 base lisp-address-family; 3194 description 3195 "IANA LISP Canonical Address Format address family."; 3196 } 3197 identity null-address { 3198 base lcaf; 3199 description 3200 "Null body LCAF type."; 3201 } 3202 identity afi-list { 3203 base lcaf; 3204 description 3205 "AFI-List LCAF type."; 3206 } 3207 identity instance-id { 3208 base lcaf; 3209 description 3210 "Instance-ID LCAF type."; 3211 } 3212 identity as-number { 3213 base lcaf; 3214 description 3215 "AS Number LCAF type."; 3216 } 3217 identity application-data { 3218 base lcaf; 3219 description 3220 "Application Data LCAF type."; 3221 } 3222 identity geo-coordinates { 3223 base lcaf; 3224 description 3225 "Geo-coordinates LCAF type."; 3226 } 3227 identity opaque-key { 3228 base lcaf; 3229 description 3230 "Opaque Key LCAF type."; 3231 } 3232 identity nat-traversal { 3233 base lcaf; 3234 description 3235 "NAT-Traversal LCAF type."; 3236 } 3237 identity nonce-locator { 3238 base lcaf; 3239 description 3240 "Nonce-Locator LCAF type."; 3241 } 3242 identity multicast-info { 3243 base lcaf; 3244 description 3245 "Multicast Info LCAF type."; 3246 } 3247 identity explicit-locator-path { 3248 base lcaf; 3249 description 3250 "Explicit Locator Path LCAF type."; 3251 } 3252 identity security-key { 3253 base lcaf; 3254 description 3255 "Security Key LCAF type."; 3256 } 3257 identity source-dest-key { 3258 base lcaf; 3259 description 3260 "Source/Dest LCAF type."; 3261 } 3262 identity replication-list { 3263 base lcaf; 3264 description 3265 "Replication-List LCAF type."; 3267 } 3268 identity json-data-model { 3269 base lcaf; 3270 description 3271 "JSON Data Model LCAF type."; 3272 } 3273 identity key-value-address { 3274 base lcaf; 3275 description 3276 "Key-Value LCAF type."; 3277 } 3278 identity encapsulation-format { 3279 base lcaf; 3280 description 3281 "Encapsulation Format LCAF type."; 3282 } 3283 typedef instance-id-type { 3284 type uint32 { 3285 range "0..16777214"; 3286 } 3287 description 3288 "Defines the range of values for an Instance ID."; 3289 } 3290 typedef simple-address { 3291 type union { 3292 type inet:ip-address; 3293 type inet:ip-prefix; 3294 type yang:mac-address; 3295 type distinguished-name; 3296 } 3297 description 3298 "Union of address types that can be part of LCAFs."; 3299 } 3300 typedef distinguished-name { 3301 type string; 3302 description 3303 "Distinguished Name address."; 3304 reference 3305 "http://www.iana.org/assignments/address-family-numbers/ 3306 address-family-numbers.xhtml"; 3307 } 3308 typedef lisp-address-family-ref { 3309 type identityref { 3310 base lisp-address-family; 3311 } 3312 description 3313 "LISP address family reference."; 3314 } 3315 typedef lcaf-ref { 3316 type identityref { 3317 base lcaf; 3318 } 3319 description 3320 "LCAF types reference."; 3321 } 3322 grouping lcaf-address { 3323 description 3324 "Group of all the LCAF types."; 3325 leaf lcaf-type { 3326 type lcaf-ref; 3327 mandatory true; 3328 description 3329 "Enumeration of LCAF types."; 3330 } 3331 choice address { 3332 description "The LCAF addresses."; 3333 container null-address { 3334 when "../../lcaf-type = null" { 3335 description 3336 "When LCAF type is null."; 3337 } 3338 description 3339 "Null body LCAF type"; 3340 leaf address { 3341 type empty; 3342 description 3343 "AFI address."; 3344 } 3345 } 3346 container afi-list { 3347 when "../../lcaf-type = afi-list" { 3348 description 3349 "When LCAF type is AFI-List."; 3350 } 3351 description 3352 "AFI-List LCAF type."; 3353 reference 3354 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 3355 #section-4.16.1"; 3356 leaf-list address-list { 3357 type simple-address; 3358 description 3359 "List of AFI addresses."; 3360 } 3361 } 3362 container instance-id { 3363 when "../../lcaf-type = instance-id" { 3364 description 3365 "When LCAF type is Instance-ID"; 3366 } 3367 description 3368 "Instance ID LCAF type."; 3369 reference 3370 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 3371 #section-4.2"; 3372 leaf instance-id { 3373 type instance-id-type; 3374 description 3375 "Instance ID value."; 3376 } 3377 leaf mask-length { 3378 type uint8; 3379 description 3380 "Mask length."; 3381 } 3382 leaf address { 3383 type simple-address; 3384 description 3385 "AFI address."; 3386 } 3387 } 3388 container as-number { 3389 when "../../lcaf-type = as-number" { 3390 description 3391 "When LCAF type is AS-Number."; 3392 } 3393 description 3394 "AS Number LCAF type."; 3395 reference 3396 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 3397 #section-4.3"; 3398 leaf as { 3399 type inet:as-number; 3400 description 3401 "AS number."; 3402 } 3403 leaf address { 3404 type simple-address; 3405 description 3406 "AFI address."; 3407 } 3408 } 3409 container application-data { 3410 when "../../lcaf-type = application-data" { 3411 description 3412 "When LCAF type is Application Data."; 3413 } 3414 description 3415 "Application Data LCAF type."; 3416 reference 3417 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 3418 #section-4.4"; 3419 leaf address { 3420 type simple-address; 3421 description 3422 "AFI address."; 3423 } 3424 leaf protocol { 3425 type uint8; 3426 description 3427 "Protocol number."; 3428 } 3429 leaf ip-tos { 3430 type int32; 3431 description 3432 "Type of service field."; 3433 } 3434 leaf local-port-low { 3435 type inet:port-number; 3436 description 3437 "Low end of local port range."; 3438 } 3439 leaf local-port-high { 3440 type inet:port-number; 3441 description 3442 "High end of local port range."; 3443 } 3444 leaf remote-port-low { 3445 type inet:port-number; 3446 description 3447 "Low end of remote port range."; 3448 } 3449 leaf remote-port-high { 3450 type inet:port-number; 3451 description 3452 "High end of remote port range."; 3453 } 3454 } 3455 container geo-coordinates { 3456 when "../../lcaf-type = geo-coordinates" { 3457 description 3458 "When LCAF type is Geo-coordinates."; 3460 } 3461 description 3462 "Geo-coordinates LCAF type."; 3463 reference 3464 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 3465 #section-4.5"; 3466 leaf latitude { 3467 type bits { 3468 bit N { 3469 description 3470 "Latitude bit."; 3471 } 3472 } 3473 description 3474 "Bit that selects between North and South latitude."; 3475 } 3476 leaf latitude-degrees { 3477 type uint8 { 3478 range "0 .. 90"; 3479 } 3480 description 3481 "Degrees of latitude."; 3482 } 3483 leaf latitude-minutes { 3484 type uint8 { 3485 range "0..59"; 3486 } 3487 description 3488 "Minutes of latitude."; 3489 } 3490 leaf latitude-seconds { 3491 type uint8 { 3492 range "0..59"; 3493 } 3494 description 3495 "Seconds of latitude."; 3496 } 3497 leaf longitude { 3498 type bits { 3499 bit E { 3500 description 3501 "Longitude bit."; 3502 } 3503 } 3504 description 3505 "Bit that selects between East and West longitude."; 3506 } 3507 leaf longitude-degrees { 3508 type uint16 { 3509 range "0 .. 180"; 3510 } 3511 description 3512 "Degrees of longitude."; 3513 } 3514 leaf longitude-minutes { 3515 type uint8 { 3516 range "0..59"; 3517 } 3518 description 3519 "Minutes of longitude."; 3520 } 3521 leaf longitude-seconds { 3522 type uint8 { 3523 range "0..59"; 3524 } 3525 description 3526 "Seconds of longitude."; 3527 } 3528 leaf altitude { 3529 type int32; 3530 description 3531 "Height relative to sea level in meters."; 3532 } 3533 leaf address { 3534 type simple-address; 3535 description 3536 "AFI address."; 3537 } 3538 } 3539 container nat-traversal { 3540 when "../../lcaf-type = nat-traversal" { 3541 description 3542 "When LCAF type is NAT-Traversal."; 3543 } 3544 description 3545 "NAT-Traversal LCAF type."; 3546 reference 3547 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 3548 #section-4.6"; 3549 leaf ms-udp-port { 3550 type uint16; 3551 description 3552 "Map-Server UDP port (set to 4342)."; 3553 } 3554 leaf etr-udp-port { 3555 type uint16; 3556 description 3557 "ETR UDP port."; 3558 } 3559 leaf global-etr-rloc { 3560 type simple-address; 3561 description 3562 "Global ETR RLOC address."; 3563 } 3564 leaf ms-rloc { 3565 type simple-address; 3566 description 3567 "Map-Server RLOC address."; 3568 } 3569 leaf private-etr-rloc { 3570 type simple-address; 3571 description 3572 "Private ETR RLOC address."; 3573 } 3574 leaf-list rtr-rlocs { 3575 type simple-address; 3576 description 3577 "List of RTR RLOC addresses."; 3578 } 3579 } 3580 container explicit-locator-path { 3581 when "../../lcaf-type = explicit-locator-path" { 3582 description 3583 "When LCAF type type is Explicit Locator Path."; 3584 } 3585 description 3586 "Explicit Locator Path LCAF type."; 3587 reference 3588 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 3589 #section-4.9"; 3590 list hop { 3591 key "address"; 3592 description 3593 "List of locator hops forming the explicit path."; 3594 leaf address { 3595 type simple-address; 3596 description 3597 "AFI address."; 3598 } 3599 leaf lrs-bits { 3600 type bits{ 3601 bit lookup { 3602 description 3603 "Lookup bit."; 3605 } 3606 bit rloc-probe { 3607 description 3608 "RLOC-probe bit."; 3609 } 3610 bit strict { 3611 description 3612 "Strict bit."; 3613 } 3614 } 3615 description 3616 "Flag bits per hop."; 3617 } 3618 } 3619 } 3620 container sourc-dest-key { 3621 when "../../lcaf-type = source-dest-key" { 3622 description 3623 "When LCAF type type is Source/Dest."; 3624 } 3625 description 3626 "Source/Dest LCAF type."; 3627 reference 3628 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 3629 #section-4.11"; 3630 leaf source { 3631 type inet:ip-prefix; 3632 description 3633 "Source prefix."; 3634 } 3635 leaf dest { 3636 type inet:ip-prefix; 3637 description 3638 "Destination prefix."; 3639 } 3640 } 3641 } 3642 } 3643 grouping lisp-address { 3644 description 3645 "Generic LISP address."; 3646 leaf afi { 3647 type lisp-address-family-ref; 3648 mandatory true; 3649 description 3650 "LISP address family AFI."; 3651 } 3652 leaf instance-id { 3653 type instance-id-type; 3654 description 3655 "Instance ID of the address."; 3656 } 3657 choice address { 3658 leaf ipv4 { 3659 when "../../afi = 'laddr:ipv4'" { 3660 description 3661 "When AFI is IPv4."; 3662 } 3663 type inet:ipv4-address; 3664 description 3665 "IPv4 address."; 3666 } 3667 leaf ipv6 { 3668 when "../../afi = 'laddr:ipv6'" { 3669 description 3670 "When AFI is IPv6."; 3671 } 3672 type inet:ipv6-address; 3673 description 3674 "IPv6 address."; 3675 } 3676 leaf mac { 3677 when "../../afi = 'laddr:mac'" { 3678 description 3679 "When AFI is MAC."; 3680 } 3681 type yang:mac-address; 3682 description 3683 "MAC address."; 3684 } 3685 leaf distinguished-name { 3686 when "../../afi = 'laddr:distinguished-name'" { 3687 description 3688 "When AFI is distinguished-name."; 3689 } 3690 type distinguished-name; 3691 description 3692 "Distinguished Name address."; 3693 } 3694 container lcaf { 3695 when "../../afi = 'laddr:lcaf'" { 3696 description 3697 "When AFI is LCAF."; 3698 } 3699 uses lcaf-address; 3700 description 3701 "LCAF address."; 3702 } 3703 description 3704 "Selection of address type."; 3705 } 3706 } 3707 } 3709 10. Acknowledgments 3711 The tree view and the YANG model shown in this document have been 3712 formated with the 'pyang' tool. 3714 11. IANA Considerations 3716 This memo includes no request to IANA. 3718 12. Security Considerations 3720 Security Considerations TBD 3722 13. Normative References 3724 [I-D.ietf-lisp-ddt] 3725 Fuller, V., Lewis, D., Ermagan, V., and A. Jain, "LISP 3726 Delegated Database Tree", draft-ietf-lisp-ddt-03 (work in 3727 progress), April 2015. 3729 [I-D.ietf-lisp-lcaf] 3730 Farinacci, D., Meyer, D., and J. Snijders, "LISP Canonical 3731 Address Format (LCAF)", draft-ietf-lisp-lcaf-10 (work in 3732 progress), June 2015. 3734 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 3735 Requirement Levels", BCP 14, RFC 2119, March 1997. 3737 [RFC6830] Farinacci, D., Fuller, V., Meyer, D., and D. Lewis, "The 3738 Locator/ID Separation Protocol (LISP)", RFC 6830, January 3739 2013. 3741 [RFC6832] Lewis, D., Meyer, D., Farinacci, D., and V. Fuller, 3742 "Interworking between Locator/ID Separation Protocol 3743 (LISP) and Non-LISP Sites", RFC 6832. 3745 [RFC6833] Fuller, V. and D. Farinacci, "Locator/ID Separation 3746 Protocol (LISP) Map-Server Interface", RFC 6833, January 3747 2013. 3749 [RFC6836] Fuller, V., Farinacci, D., Meyer, D., and D. Lewis, 3750 "Locator/ID Separation Protocol Alternative Logical 3751 Topology (LISP+ALT)", RFC 6836, January 2013. 3753 Authors' Addresses 3755 Vina Ermagan 3756 Cisco Systems 3757 170 Tasman Drive 3758 San Jose, CA 3759 USA 3761 Email: vermagan@cisco.com 3763 Alberto Rodriguez-Natal 3764 Technical University of Catalonia 3765 Barcelona 3766 Spain 3768 Email: arnatal@ac.upc.edu 3770 Florin Coras 3771 Technical University of Catalonia 3772 Barcelona 3773 Spain 3775 Email: fcoras@ac.upc.edu 3777 Carl Moberg 3778 Cisco Systems 3779 170 W Tasman Dr 3780 San Jose, CA 3781 USA 3783 Email: camoberg@cisco.com 3785 Albert Cabellos-Aparicio 3786 Technical University of Catalonia 3787 Barcelona 3788 Spain 3790 Email: acabello@ac.upc.edu 3791 Fabio Maino 3792 Cisco Systems 3793 170 Tasman Drive 3794 San Jose, CA 3795 USA 3797 Email: fmaino@cisco.com