1 module ietf-lisp-address-types {
2 namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-address-types";
4 import ietf-inet-types {
6 revision-date 2013-07-15;
8 import ietf-yang-types {
10 revision-date 2013-07-15;
13 "IETF LISP (Locator/ID Separation Protocol) Working Group";
17 "This YANG module defines the LISP Canonical Address Formats
18 (LCAF) for LISP. The module can be extended by vendors to
19 define vendor-specific parameters.
21 Copyright (c) 2014 IETF Trust and the persons identified as
22 authors of the code. All rights reserved.
24 Redistribution and use in source and binary forms, with or
25 without modification, is permitted pursuant to, and subject
26 to the license terms contained in, the Simplified BSD License
27 set forth in Section 4.c of the IETF Trust's Legal Provisions
28 Relating to IETF Documents
29 (http://trustee.ietf.org/license-info).
31 This version of this YANG module is part of RFC 6338; see
32 the RFC itself for full legal notices.
39 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10";
41 identity lisp-address-family {
43 "Base identity from which identities describing LISP address
44 families are derived.";
46 identity no-address-afi {
47 base lisp-address-family;
52 base lisp-address-family;
54 "IANA IPv4 address family.";
56 identity ipv4-prefix-afi {
57 base lisp-address-family;
59 "IANA IPv4 address family prefix.";
62 base lisp-address-family;
64 "IANA IPv6 address family.";
66 identity ipv6-prefix-afi {
67 base lisp-address-family;
69 "IANA IPv6 address family prefix.";
72 base lisp-address-family;
74 "IANA MAC address family.";
76 identity distinguished-name-afi {
77 base lisp-address-family;
79 "IANA Distinguished Name address family.";
81 identity as-number-afi {
82 base lisp-address-family;
84 "IANA AS Number address family.";
87 base lisp-address-family;
89 "IANA LISP Canonical Address Format address family.";
91 identity null-address-lcaf {
94 "Null body LCAF type.";
96 identity afi-list-lcaf {
99 "AFI-List LCAF type.";
101 identity instance-id-lcaf {
104 "Instance-ID LCAF type.";
106 identity as-number-lcaf {
109 "AS Number LCAF type.";
111 identity application-data-lcaf {
114 "Application Data LCAF type.";
116 identity geo-coordinates-lcaf {
119 "Geo-coordinates LCAF type.";
121 identity opaque-key-lcaf {
124 "Opaque Key LCAF type.";
126 identity nat-traversal-lcaf {
129 "NAT-Traversal LCAF type.";
131 identity nonce-locator-lcaf {
134 "Nonce-Locator LCAF type.";
136 identity multicast-info-lcaf {
139 "Multicast Info LCAF type.";
141 identity explicit-locator-path-lcaf {
144 "Explicit Locator Path LCAF type.";
146 identity security-key-lcaf {
149 "Security Key LCAF type.";
151 identity source-dest-key-lcaf {
154 "Source/Dest LCAF type.";
156 identity replication-list-lcaf {
159 "Replication-List LCAF type.";
161 identity json-data-model-lcaf {
164 "JSON Data Model LCAF type.";
166 identity key-value-address-lcaf {
169 "Key/Value Address LCAF type.";
171 identity encapsulation-format-lcaf {
174 "Encapsulation Format LCAF type.";
176 identity service-path-lcaf {
179 "Service Path LCAF type.";
181 typedef instance-id-type {
186 "Defines the range of values for an Instance ID.";
188 typedef service-path-id-type {
193 "Defines the range of values for a Service Path ID.";
195 typedef distinguished-name-type {
198 "Distinguished Name address.";
200 "http://www.iana.org/assignments/address-family-numbers/
201 address-family-numbers.xhtml";
203 typedef simple-address {
205 type inet:ip-address;
207 type yang:mac-address;
208 type distinguished-name-type;
212 "Union of address types that can be part of LCAFs.";
215 typedef lisp-address-family-ref {
217 base lisp-address-family;
220 "LISP address family reference.";
227 "LCAF types reference.";
230 grouping lisp-address {
232 "Generic LISP address.";
234 type lisp-address-family-ref;
237 "Type of the LISP address.";
239 leaf virtual-network-id {
240 type instance-id-type;
242 "Virtual Network Identifier (instance-id) of the address.";
246 "Various LISP address types, including IP, MAC, and LCAF.";
249 when "../address-type = 'laddr:no-addr-afi'" {
258 when "../address-type = 'laddr:ipv4-afi'" {
262 type inet:ipv4-address;
267 when "../address-type = 'laddr:ipv4-prefix-afi'" {
271 type inet:ipv4-prefix;
276 when "../address-type = 'laddr:ipv6-afi'" {
280 type inet:ipv6-address;
285 when "../address-type = 'laddr:ipv6-prefix-afi'" {
289 type inet:ipv6-prefix;
294 when "../address-type = 'laddr:mac-afi'" {
298 type yang:mac-address;
302 leaf distinguished-name {
303 when "../address-type = 'laddr:distinguished-name-afi'" {
305 "When AFI is distinguished-name.";
307 type distinguished-name-type;
309 "Distinguished Name address.";
312 when "../address-type = 'laddr:as-number-afi'" {
314 "When AFI is as-number.";
320 container null-address {
321 when "../address-type = 'laddr:null-address-lcaf'" {
323 "When LCAF type is null.";
326 "Null body LCAF type";
334 when "../address-type = 'laddr:afi-list-lcaf'" {
336 "When LCAF type is AFI-List.";
339 "AFI-List LCAF type.";
341 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10
343 leaf-list address-list {
346 "List of AFI addresses.";
349 container instance-id {
350 when "../address-type = 'laddr:instance-id-lcaf'" {
352 "When LCAF type is Instance-ID";
355 "Instance ID LCAF type.";
357 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10
360 type instance-id-type;
362 "Instance ID value.";
375 container as-number-lcaf {
376 when "../address-type = 'laddr:as-number-lcaf'" {
378 "When LCAF type is AS-Number.";
381 "AS Number LCAF type.";
383 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10
396 container application-data {
397 when "../address-type = 'laddr:application-data-lcaf'" {
399 "When LCAF type is Application Data.";
402 "Application Data LCAF type.";
404 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10
419 "Type of service field.";
421 leaf local-port-low {
422 type inet:port-number;
424 "Low end of local port range.";
426 leaf local-port-high {
427 type inet:port-number;
429 "High end of local port range.";
431 leaf remote-port-low {
432 type inet:port-number;
434 "Low end of remote port range.";
436 leaf remote-port-high {
437 type inet:port-number;
439 "High end of remote port range.";
442 container geo-coordinates {
443 when "../address-type = 'laddr:geo-coordinates-lcaf'" {
445 "When LCAF type is Geo-coordinates.";
448 "Geo-coordinates LCAF type.";
450 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10
460 "Bit that selects between North and South latitude.";
462 leaf latitude-degrees {
467 "Degrees of latitude.";
469 leaf latitude-minutes {
474 "Minutes of latitude.";
476 leaf latitude-seconds {
481 "Seconds of latitude.";
491 "Bit that selects between East and West longitude.";
493 leaf longitude-degrees {
498 "Degrees of longitude.";
500 leaf longitude-minutes {
505 "Minutes of longitude.";
507 leaf longitude-seconds {
512 "Seconds of longitude.";
517 "Height relative to sea level in meters.";
525 container nat-traversal {
526 when "../address-type = 'laddr:nat-traversal-lcaf'" {
528 "When LCAF type is NAT-Traversal.";
531 "NAT-Traversal LCAF type.";
533 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10
538 "Map-Server UDP port (set to 4342).";
545 leaf global-etr-rloc {
548 "Global ETR RLOC address.";
553 "Map-Server RLOC address.";
555 leaf private-etr-rloc {
558 "Private ETR RLOC address.";
560 leaf-list rtr-rlocs {
563 "List of RTR RLOC addresses.";
566 container explicit-locator-path {
567 when "../address-type = 'laddr:explicit-locator-path-lcaf'" {
569 "When LCAF type type is Explicit Locator Path.";
572 "Explicit Locator Path LCAF type.";
574 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10
580 "List of locator hops forming the explicit path.";
584 "Unique identifier for the hop.";
607 "Flag bits per hop.";
611 container source-dest-key {
612 when "../address-type = 'laddr:source-dest-key-lcaf'" {
614 "When LCAF type type is Source/Dest.";
617 "Source/Dest LCAF type.";
619 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10
629 "Destination address.";
632 container key-value-address {
633 when "../address-type = 'laddr:key-value-address-lcaf'" {
635 "When LCAF type type is Key/Value Address.";
638 "Key/Value Address LCAF type.";
640 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10
653 container service-path {
654 when "../address-type = 'laddr:service-path-lcaf'" {
656 "When LCAF type service path identifier.";
659 "Service Path LCAF type.";
661 "http://tools.ietf.org/html/draft-ermagan-lisp-nsh-00";
662 leaf service-path-id {
663 type service-path-id-type;
665 "Service path identifier for the path for NSH header";
670 "Service path index for NSH header";