4 namespace "urn:opendaylight:lfm:lisp-proto";
7 import ietf-inet-types { prefix inet; revision-date 2010-09-24; }
8 import ietf-yang-types { prefix yang; revision-date 2010-09-24; }
9 import lisp-address-types { prefix lisp-address; revision-date 2015-03-09; }
11 organization "LISP Flow Mapping";
14 "David Goldberg <david.goldberg@contextream.com>
15 Vina Ermagan <vermagan@cisco.com>";
18 "YANG representation of LISP (RFC6830) protocol.";
20 revision "2015-08-20" {
21 description "Renamed the module to lisp-proto.";
22 reference "https://tools.ietf.org/html/rfc6830";
25 grouping TransportAddress {
26 container TransportAddress {
29 reference "http://www.iana.org/assignments/safi-namespace/safi-namespace.xhtml";
32 type inet:port-number;
37 grouping LispAFIAddress {
40 reference "http://www.iana.org/assignments/safi-namespace/safi-namespace.xhtml";
44 grouping LispNoAddress {
52 grouping LispIpv4Address {
59 type inet:ipv4-address;
60 reference "https://tools.ietf.org/html/rfc3209#section-4.6.2.1";
67 grouping LispIpv6Address {
74 type inet:ipv6-address;
81 grouping LispMacAddress {
88 type yang:mac-address;
92 grouping LispDistinguishedNameAddress {
98 leaf distinguishedName {
103 grouping LispASAddress {
104 uses LispAFIAddress {
114 grouping LispSimpleAddress {
115 choice primitiveAddress {
117 container NoAddress {
122 container Ipv4Address {
123 uses LispIpv4Address;
127 container Ipv6Address {
128 uses LispIpv6Address;
132 container MacAddress {
136 case DistinguishedName {
137 container DistinguishedNameAddress {
138 uses LispDistinguishedNameAddress;
142 container ASAddress {
149 grouping ReencapHop {
151 uses LispSimpleAddress;
164 grouping LispLcafAddress {
165 uses LispAFIAddress {
172 reference "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-03";
176 grouping LcafSegmentAddress {
177 reference "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-08#section-4.1";
178 uses LispLcafAddress {
185 range "0 .. 16777215";
192 uses LispSimpleAddress;
196 grouping LcafTrafficEngineeringAddress {
197 reference "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-09#section-4.9";
198 uses LispLcafAddress {
213 grouping LcafListAddress {
214 reference "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-08#section-4.15.1";
215 uses LispLcafAddress {
225 uses LispSimpleAddress;
229 grouping LcafSourceDestAddress {
230 reference "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-08#section-4.11";
231 uses LispLcafAddress {
236 container srcAddress {
237 uses LispSimpleAddress;
239 container dstAddress {
240 uses LispSimpleAddress;
250 grouping LcafKeyValueAddress {
251 reference "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-08#section-4.14";
252 uses LispLcafAddress {
258 uses LispSimpleAddress;
261 uses LispSimpleAddress;
265 grouping LcafApplicationDataAddress {
266 reference "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-08#section-4.3";
267 uses LispLcafAddress {
273 uses LispSimpleAddress;
282 type inet:port-number;
285 type inet:port-number;
288 type inet:port-number;
290 leaf remotePortHigh {
291 type inet:port-number;
296 grouping LispAddress {
297 container LispAddressContainer {
300 container NoAddress {
305 container Ipv4Address {
306 uses LispIpv4Address;
310 container Ipv6Address {
311 uses LispIpv6Address;
315 container MacAddress {
319 case DistinguishedName {
320 container distinguishedName {
321 uses LispDistinguishedNameAddress;
330 container LcafSegmentAddr {
331 uses LcafSegmentAddress;
334 case LcafSourceDest {
335 container LcafSourceDestAddr {
336 uses LcafSourceDestAddress;
340 container LcafKeyValueAddressAddr {
341 uses LcafKeyValueAddress;
345 container LcafListAddr {
346 uses LcafListAddress;
349 case LcafApplicationData {
350 container LcafApplicationDataAddr {
351 uses LcafApplicationDataAddress;
354 case LcafTrafficEngineering {
355 container LcafTrafficEngineeringAddr {
356 uses LcafTrafficEngineeringAddress;
363 grouping EidRecords {
365 uses lisp-address:lisp-address;
369 grouping LocatorRecords {
381 leaf multicastPriority {
384 leaf multicastWeight {
398 uses lisp-address:lisp-address;
402 grouping EidToLocatorRecord {
415 enum NativelyForward;
424 uses lisp-address:lisp-address;
426 // locator record list
430 grouping EidToLocatorRecords {
431 list eidToLocatorRecord {
432 uses EidToLocatorRecord;
445 grouping MapRegister {
446 reference "http://tools.ietf.org/html/rfc6830#section-6.1.6 , http://tools.ietf.org/html/draft-ermagan-lisp-nat-traversal-05#section-4.3";
450 leaf xtrSiteIdPresent {
462 leaf authenticationData {
465 uses EidToLocatorRecords;
470 reference "http://tools.ietf.org/html/rfc6830#section-6.1.7 , http://tools.ietf.org/html/draft-ermagan-lisp-nat-traversal-05#section-4.3";
471 leaf xtrSiteIdPresent {
480 leaf authenticationData {
483 uses EidToLocatorRecords;
487 grouping MapRequest {
488 reference "http://tools.ietf.org/html/rfc6830#section-6.1.2";
492 leaf mapDataPresent {
510 container SourceEid {
511 uses lisp-address:lisp-address;
514 uses lisp-address:lisp-address;
518 uses EidToLocatorRecord;
523 reference "http://tools.ietf.org/html/rfc6830#section-6.1.4";
530 leaf echoNonceEnabled {
533 leaf securityEnabled {
536 uses EidToLocatorRecords;
539 typedef message-type {
549 "Map-Request control packet";
554 "Map-Reply control packet";
559 "Map-Register control packet";
564 "Map-Notify control packet";
569 "Map-Referral control packet";
574 "Info control packet";
576 enum encapsulated-control-message {
579 "Encapsulated control packet";
583 "Defines the LISP control message types";
584 reference "https://tools.ietf.org/html/rfc6830#section-6.1.1";
587 grouping MapRegisterMessage {
588 container MapRegister {
591 uses TransportAddress;
594 grouping MapRegisterNotification {
595 container MapRegister {
598 uses TransportAddress;
601 grouping MapNotifyMessage {
602 container MapNotify {
605 uses TransportAddress;
608 grouping MapNotifyNotification {
609 container MapNotify {
612 uses TransportAddress;
615 grouping MapRequestMessage {
616 container MapRequest {
619 uses TransportAddress;
622 grouping MapRequestNotification {
623 container MapRequest {
626 uses TransportAddress;
629 grouping MapReplyMessage {
633 uses TransportAddress;
636 grouping MapReplyNotification {
640 uses TransportAddress;
643 notification addMapping {
644 uses MapRegisterNotification;
647 notification gotMapNotify {
648 uses MapNotifyNotification;
651 notification requestMapping {
652 uses MapRequestNotification;
655 notification gotMapReply {
656 uses MapReplyNotification;
659 notification xtrRequestMapping {
660 uses MapRequestNotification;
663 notification xtrReplyMapping {
664 uses MapReplyNotification;