draft-ietf-lisp-yang-02.txt   draft-ietf-lisp-yang-03.txt 
LISP Working Group V. Ermagan LISP Working Group V. Ermagan
Internet-Draft Cisco Systems Internet-Draft Cisco Systems
Intended status: Experimental A. Rodriguez-Natal Intended status: Experimental A. Rodriguez-Natal
Expires: December 20, 2016 F. Coras Expires: January 7, 2017 F. Coras
Technical University of Catalonia Technical University of Catalonia
C. Moberg C. Moberg
Cisco Systems Cisco Systems
A. Cabellos-Aparicio A. Cabellos-Aparicio
Technical University of Catalonia Technical University of Catalonia
F. Maino F. Maino
Cisco Systems Cisco Systems
June 18, 2016 July 6, 2016
LISP Configuration YANG Model LISP Configuration YANG Model
draft-ietf-lisp-yang-02 draft-ietf-lisp-yang-03
Abstract Abstract
This document describes a YANG data model to use with the Locator/ID This document describes a YANG data model to use with the Locator/ID
Separation Protocol (LISP). Separation Protocol (LISP).
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
skipping to change at page 1, line 39 skipping to change at page 1, line 39
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on December 20, 2016. This Internet-Draft will expire on January 7, 2017.
Copyright Notice Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the Copyright (c) 2016 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 15 skipping to change at page 2, line 15
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. LISP Module . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. LISP Module . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. Module Structure . . . . . . . . . . . . . . . . . . . . 3 2.1. Module Structure . . . . . . . . . . . . . . . . . . . . 3
2.2. Module Definition . . . . . . . . . . . . . . . . . . . . 3 2.2. Module Definition . . . . . . . . . . . . . . . . . . . . 5
3. LISP-ITR Module . . . . . . . . . . . . . . . . . . . . . . . 9 3. LISP-ITR Module . . . . . . . . . . . . . . . . . . . . . . . 13
3.1. Module Structure . . . . . . . . . . . . . . . . . . . . 9 3.1. Module Structure . . . . . . . . . . . . . . . . . . . . 14
3.2. Module Definition . . . . . . . . . . . . . . . . . . . . 22 3.2. Module Definition . . . . . . . . . . . . . . . . . . . . 27
4. LISP ETR Module . . . . . . . . . . . . . . . . . . . . . . . 26 4. LISP ETR Module . . . . . . . . . . . . . . . . . . . . . . . 30
4.1. Module Structure . . . . . . . . . . . . . . . . . . . . 26 4.1. Module Structure . . . . . . . . . . . . . . . . . . . . 31
4.2. Module Definition . . . . . . . . . . . . . . . . . . . . 30 4.2. Module Definition . . . . . . . . . . . . . . . . . . . . 33
5. LISP Map Server Module . . . . . . . . . . . . . . . . . . . 33 5. LISP Map Server Module . . . . . . . . . . . . . . . . . . . 36
5.1. Module Structure . . . . . . . . . . . . . . . . . . . . 33 5.1. Module Structure . . . . . . . . . . . . . . . . . . . . 36
5.2. Module Definition . . . . . . . . . . . . . . . . . . . . 43 5.2. Module Definition . . . . . . . . . . . . . . . . . . . . 42
6. LISP Map Resolver Module . . . . . . . . . . . . . . . . . . 47 6. LISP Map Resolver Module . . . . . . . . . . . . . . . . . . 45
6.1. Module Structure . . . . . . . . . . . . . . . . . . . . 48 6.1. Module Structure . . . . . . . . . . . . . . . . . . . . 45
6.2. Module Definition . . . . . . . . . . . . . . . . . . . . 48 6.2. Module Definition . . . . . . . . . . . . . . . . . . . . 45
7. LISP Proxy ITR Module . . . . . . . . . . . . . . . . . . . . 50 7. LISP Proxy ITR Module . . . . . . . . . . . . . . . . . . . . 47
7.1. Module Structure . . . . . . . . . . . . . . . . . . . . 50 7.1. Module Structure . . . . . . . . . . . . . . . . . . . . 47
7.2. Module Definition . . . . . . . . . . . . . . . . . . . . 59 7.2. Module Definition . . . . . . . . . . . . . . . . . . . . 59
8. LISP Proxy ETR Module . . . . . . . . . . . . . . . . . . . . 62 8. LISP Proxy ETR Module . . . . . . . . . . . . . . . . . . . . 61
8.1. Module Structure . . . . . . . . . . . . . . . . . . . . 62 8.1. Module Structure . . . . . . . . . . . . . . . . . . . . 61
8.2. Module Definition . . . . . . . . . . . . . . . . . . . . 64 8.2. Module Definition . . . . . . . . . . . . . . . . . . . . 63
9. LISP Address Types . . . . . . . . . . . . . . . . . . . . . 66 9. LISP Address Types . . . . . . . . . . . . . . . . . . . . . 65
9.1. Module Definition . . . . . . . . . . . . . . . . . . . . 66 9.1. Module Definition . . . . . . . . . . . . . . . . . . . . 65
10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 80 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 79
11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 80 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 79
12. Security Considerations . . . . . . . . . . . . . . . . . . . 80 12. Security Considerations . . . . . . . . . . . . . . . . . . . 79
13. Normative References . . . . . . . . . . . . . . . . . . . . 80 13. Normative References . . . . . . . . . . . . . . . . . . . . 79
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 81 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 80
1. Introduction 1. Introduction
The Locator/ID Separation Protocol (LISP) defines several network The Locator/ID Separation Protocol (LISP) defines several network
elements subject to be configured. This document presents the YANG elements subject to be configured. This document presents the YANG
data models required for basic configuration of all major LISP data models required for basic configuration of all major LISP
[RFC6830]elements. The models also capture some essential [RFC6830]elements. The models also capture some essential
operational data elements as well. operational data elements as well.
2. LISP Module 2. LISP Module
This module is the base LISP module that is augmented in multiple This module is the base LISP module that is augmented in multiple
models to represent various LISP device roles. models to represent various LISP device roles.
2.1. Module Structure 2.1. Module Structure
module: ietf-lisp module: ietf-lisp
+--rw lisp +--rw lisp
| +--rw devices | +--rw locator-sets
| +--rw device* [type id] | | +--rw locator-set* [locator-set-name]
| +--rw type device-ref | | +--rw locator-set-name string
| +--rw id string | | +--rw (locator-type)?
| +--rw enabled? boolean | | +--:(local-interface)
+--ro lisp-state | | | +--rw interface* [interface-ref]
+--ro devices | | | +--rw interface-ref if:interface-ref
+--ro device* [type id] | | | +--rw priority? uint8
+--ro type device-ref | | | +--rw weight? uint8
+--ro id string | | | +--rw multicast-priority? uint8
| | | +--rw multicast-weight? uint8
| | +--:(general-locator)
| | +--rw locator* [id]
| | +--rw id string
| | +--rw locator-address
| | | +--rw address-type lisp-address-family-ref
| | | +--rw virtual-network-id? instance-id-type
| | | +--rw (address)?
| | | +--:(no-address)
| | | | +--rw no-address? empty
| | | +--:(ipv4)
| | | | +--rw ipv4? inet:ipv4-address
| | | +--:(ipv4-prefix)
| | | | +--rw ipv4-prefix? inet:ipv4-prefix
| | | +--:(ipv6)
| | | | +--rw ipv6? inet:ipv6-address
| | | +--:(ipv6-prefix)
| | | | +--rw ipv6-prefix? inet:ipv6-prefix
| | | +--:(mac)
| | | | +--rw mac? yang:mac-address
| | | +--:(distinguished-name)
| | | | +--rw distinguished-name? distinguished-name-type
| | | +--:(as-number)
| | | | +--rw as-number? inet:as-number
| | | +--:(null-address)
| | | | +--rw null-address
| | | | +--rw address? empty
| | | +--:(afi-list)
| | | | +--rw afi-list
| | | | +--rw address-list* simple-address
| | | +--:(instance-id)
| | | | +--rw instance-id
| | | | +--rw iid? instance-id-type
| | | | +--rw mask-length? uint8
| | | | +--rw address? simple-address
| | | +--:(as-number-lcaf)
| | | | +--rw as-number-lcaf
| | | | +--rw as? inet:as-number
| | | | +--rw address? simple-address
| | | +--:(application-data)
| | | | +--rw application-data
| | | | +--rw address? simple-address
| | | | +--rw protocol? uint8
| | | | +--rw ip-tos? int32
| | | | +--rw local-port-low? inet:port-number
| | | | +--rw local-port-high? inet:port-number
| | | | +--rw remote-port-low? inet:port-number
| | | | +--rw remote-port-high? inet:port-number
| | | +--:(geo-coordinates)
| | | | +--rw geo-coordinates
| | | | +--rw latitude? bits
| | | | +--rw latitude-degrees? uint8
| | | | +--rw latitude-minutes? uint8
| | | | +--rw latitude-seconds? uint8
| | | | +--rw longitude? bits
| | | | +--rw longitude-degrees? uint16
| | | | +--rw longitude-minutes? uint8
| | | | +--rw longitude-seconds? uint8
| | | | +--rw altitude? int32
| | | | +--rw address? simple-address
| | | +--:(nat-traversal)
| | | | +--rw nat-traversal
| | | | +--rw ms-udp-port? uint16
| | | | +--rw etr-udp-port? uint16
| | | | +--rw global-etr-rloc? simple-address
| | | | +--rw ms-rloc? simple-address
| | | | +--rw private-etr-rloc? simple-address
| | | | +--rw rtr-rlocs* simple-address
| | | +--:(explicit-locator-path)
| | | | +--rw explicit-locator-path
| | | | +--rw hop* [hop-id]
| | | | +--rw hop-id string
| | | | +--rw address? simple-address
| | | | +--rw lrs-bits? bits
| | | +--:(source-dest-key)
| | | | +--rw source-dest-key
| | | | +--rw source? simple-address
| | | | +--rw dest? simple-address
| | | +--:(key-value-address)
| | | | +--rw key-value-address
| | | | +--rw key? simple-address
| | | | +--rw value? simple-address
| | | +--:(service-path)
| | | +--rw service-path
| | | +--rw service-path-id? service-path-id-type
| | | +--rw service-index? uint8
| | +--rw priority? uint8
| | +--rw weight? uint8
| | +--rw multicast-priority? uint8
| | +--rw multicast-weight? uint8
| +--rw lisp-router-instances
| +--rw lisp-router-instance* [lisp-router-instance-id]
| +--rw lisp-router-instance-id int32
| +--rw lisp-role* [lisp-role-type]
| +--rw lisp-role-type lisp-role-ref
| +--rw enabled? boolean
+--ro lisp-state
+--ro lisp-router-instances
+--ro lisp-router-instance* [lisp-router-instance-id]
+--ro lisp-router-instance-id int32
+--ro lisp-role* [lisp-role-type]
+--ro lisp-role-type lisp-role-ref
+--ro enabled? boolean
2.2. Module Definition 2.2. Module Definition
<CODE BEGINS> file "ietf-lisp@2014-12-19.yang" <CODE BEGINS> file "ietf-lisp@2016-06-30.yang"
module ietf-lisp { module ietf-lisp {
namespace "urn:ietf:params:xml:ns:yang:ietf-lisp"; namespace "urn:ietf:params:xml:ns:yang:ietf-lisp";
prefix lisp; prefix lisp;
import ietf-interfaces { import ietf-interfaces {
prefix if; prefix if;
} }
import ietf-lisp-address-types { import ietf-lisp-address-types {
prefix lcaf; prefix lcaf;
} }
organization organization
skipping to change at page 4, line 12 skipping to change at page 6, line 19
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC 6338; see This version of this YANG module is part of RFC 6338; see
the RFC itself for full legal notices. the RFC itself for full legal notices.
"; ";
revision 2014-12-19 { revision 2016-06-30 {
description description
"Initial revision."; "Initial revision.";
reference reference
"https://tools.ietf.org/html/rfc6830"; "https://tools.ietf.org/html/rfc6830";
} }
identity lisp-device { identity lisp-role {
description description
"LISP network device."; "LISP router role.";
} }
typedef device-ref { identity mapping-system {
description
"Mapping System interface";
}
identity single-node-mapping-system {
base mapping-system;
description
"logically singular Map Server";
}
typedef mapping-system-ref {
type identityref { type identityref {
base lisp-device; base mapping-system;
} }
description description
"LISP device reference"; "Mapping System reference";
}
typedef lisp-role-ref {
type identityref {
base lisp-role;
}
description
"LISP role reference";
} }
typedef map-reply-action { typedef map-reply-action {
type enumeration { type enumeration {
enum no-action { enum no-action {
value 0; value 0;
description description
"Mapping is kept alive and no encapsulation occurs."; "Mapping is kept alive and no encapsulation occurs.";
} }
enum natively-forward { enum natively-forward {
value 1; value 1;
skipping to change at page 5, line 40 skipping to change at page 8, line 14
description description
"HMAC-SHA-256-128 (RFC4868) authentication is used."; "HMAC-SHA-256-128 (RFC4868) authentication is used.";
} }
} }
description description
"Enumeration of the authentication mechansms supported by "Enumeration of the authentication mechansms supported by
LISP."; LISP.";
reference reference
"https://tools.ietf.org/html/rfc6830#section-6.1.6"; "https://tools.ietf.org/html/rfc6830#section-6.1.6";
} }
grouping locators {
grouping locator-properties {
description description
"Group that defines a list of LISP locators."; "Properties of a RLOC";
list rloc { leaf priority {
key "id"; type uint8;
description description
"List of routing locators"; "Locator priority.";
leaf id { }
type string; leaf weight {
description type uint8;
"Locator id"; description
} "Locator weight.";
// cached mappings }
choice address-type { leaf multicast-priority {
type uint8;
description
"Locator's multicast priority";
}
leaf multicast-weight {
type uint8;
description
"Locator's multicast weight";
}
}
grouping locators-grouping {
description
"Group that defines a list of LISP locators.";
// vina: container?
list locator {
key "id";
description description
"The address type of the locator"; "List of routing locators";
case interface-name { leaf id {
leaf interface { type string {
type if:interface-ref; length "1..64";
description
"The name of the interface supporting the locator.";
} }
description
"Locator id";
} }
case address { container locator-address {
container locator-address { uses lcaf:lisp-address;
uses lcaf:lisp-address; description
description "The locator address provided in LISP canonincal
"The locator address provided in LISP canonincal address format.";
address format.";
}
} }
uses locator-properties;
} }
leaf priority {
type uint8; }
description
"Locator priority."; grouping local-locators-grouping {
} description
leaf weight { "Group that defines a list of LISP locators.";
type uint8; list interface {
description key "interface-ref";
"Locator weight."; description
} "The address type of the locator";
leaf multicast-priority { leaf interface-ref {
type uint8; type if:interface-ref;
description description
"Locator's multicast priority"; "The name of the interface supporting the locator.";
} }
leaf multicast-weight { uses locator-properties;
type uint8; }
}
grouping servicing-eids-grouping {
description
"Group of EIDs serviced by the this lisp device.";
container servicing-eids {
description
"This node defines list of EIDs serviced by the this"
+ " lisp device.";
list servicing-eid {
key "id";
description description
"Locator's multicast weight"; "List of EIDs serviced by the this lisp device.";
leaf id {
type lisp:eid-id;
description
"Id of serviced EID.";
}
container eid-address {
uses lcaf:lisp-address;
description
"Serviced EID address in generic LISP address format.";
}
} }
} }
} }
grouping mappings { grouping mappings {
description description
"Group that defines a list of LISP mappings."; "Group that defines a list of LISP mappings.";
list mapping { list mapping {
key "id"; key "id";
description description
"List of EID to RLOCs mappings."; "List of EID to RLOCs mappings.";
skipping to change at page 7, line 32 skipping to change at page 10, line 43
type bits { type bits {
bit A { bit A {
description description
"Authoritative bit."; "Authoritative bit.";
} }
} }
description description
"Bit that indicates if mapping comes from an "Bit that indicates if mapping comes from an
authoritative source."; authoritative source.";
} }
leaf static {
type boolean;
default "false";
description
"This leaf should be true if the mapping is static.";
}
choice locator-list { choice locator-list {
description
"list of locartors are either negative, or positive.";
case negative-mapping { case negative-mapping {
leaf map-reply-action { leaf map-reply-action {
type map-reply-action; type map-reply-action;
description description
"Forwarding action for a negative mapping."; "Forwarding action for a negative mapping.";
} }
} }
case positive-mapping { case positive-mapping {
container rlocs { container rlocs {
uses locators; uses locators-grouping;
description description
"List of locators for a positive mapping."; "List of locators for a positive mapping.";
} }
} }
default "positive-mapping";
description
"Choice of locator list based on type of mapping.";
} }
} }
} }
/* Configuration Data */ /* Configuration Data */
container lisp { container lisp {
description description
"Configuration parameters for LISP subsystem."; "Configuration parameters for LISP subsystem.";
container devices {
container locator-sets {
description description
"Configuration of LISP devices."; "Container that defines a named locator set which can be
list device { referenced elsewhere.";
key "type id"; list locator-set {
key "locator-set-name";
description description
"Each entry contains configuration of a lisp-device."; "Multiple locator sets can be configured.";
leaf type { leaf locator-set-name {
type device-ref; type string {
length "1..64";
}
description description
"The type of LISP device - identity derived from the "Locator set name";
'lisp-device' base identity.";
} }
leaf id { choice locator-type {
type string;
description description
"Arbitrary device name."; "Locator sets can be based on local interfaces, or
general locators.";
case local-interface {
uses local-locators-grouping;
description
"List of locators in this set based on local
interfaces.";
}
case general-locator {
uses locators-grouping;
description
"List of locators in this set based on lisp-address.";
}
} }
leaf enabled { }
type boolean; }
default "true";
container lisp-router-instances {
description
"Configuration of LISP router instances.";
list lisp-router-instance {
key "lisp-router-instance-id";
description
"Each entry contains configuration of a lisp-router
instance.";
leaf lisp-router-instance-id {
type int32;
description description
"Enable/disable the lisp-device."; "Arbitrary lisp-router id.";
}
list lisp-role {
key lisp-role-type;
description
"List of lisp device roles such as MS, MR, ITR,
ETR, RTR.";
leaf lisp-role-type {
type lisp-role-ref;
description
"The type of LISP device - identity derived from the
'lisp-device' base identity.";
}
leaf enabled {
type boolean;
default "true";
description
"Enable/disable the lisp-role.";
}
} }
} }
} }
} }
/* Operational state data */ /* Operational state data */
container lisp-state { container lisp-state {
config false; config false;
description description
"Operational state of the LISP subsystem."; "Operational state of the LISP subsystem.";
container devices { container lisp-router-instances {
description description
"Operational state of lisp-devices."; "Configuration of LISP router instances.";
list device { list lisp-router-instance {
key "type id"; key "lisp-router-instance-id";
description description
"Each entry contains operational data of a lisp-device."; "Each entry contains configuration of a lisp-router
leaf type { instance.";
type device-ref; leaf lisp-router-instance-id {
type int32;
description description
"Type of LISP device."; "Arbitrary lisp-router id.";
} }
leaf id { list lisp-role {
type string; key lisp-role-type;
description description
"Name of LISP device."; "List of lisp device roles such as MS, MR, ITR,
ETR, RTR.";
leaf lisp-role-type {
type lisp-role-ref;
description
"The type of LISP device - identity derived from the
'lisp-device' base identity.";
}
leaf enabled {
type boolean;
default "true";
description
"Enable/disable the lisp-role.";
}
} }
} }
} }
} }
} }
<CODE ENDS> <CODE ENDS>
3. LISP-ITR Module 3. LISP-ITR Module
This module captures the configuration data model of a LISP ITR. The This module captures the configuration data model of a LISP ITR. The
model also captures some operational data elements. model also captures some operational data elements.
3.1. Module Structure 3.1. Module Structure
module: ietf-lisp-itr module: ietf-lisp-itr
skipping to change at page 9, line 26 skipping to change at page 14, line 8
<CODE ENDS> <CODE ENDS>
3. LISP-ITR Module 3. LISP-ITR Module
This module captures the configuration data model of a LISP ITR. The This module captures the configuration data model of a LISP ITR. The
model also captures some operational data elements. model also captures some operational data elements.
3.1. Module Structure 3.1. Module Structure
module: ietf-lisp-itr module: ietf-lisp-itr
augment /lisp:lisp/lisp:devices/lisp:device: augment /lisp:lisp/lisp:lisp-router-instances/lisp:lisp-router-instance/lisp:lisp-role:
+--rw itr-cfg! +--rw itr-cfg!
+--rw rloc-probing! +--rw rloc-probing!
| +--rw interval? uint16 | +--rw interval? uint16
| +--rw retries? uint8 | +--rw retries? uint8
| +--rw retries-interval? uint16 | +--rw retries-interval? uint16
+--rw itr-rlocs +--rw itr-rlocs? -> /lisp:lisp/locator-sets/locator-set/locator-set-name
| +--rw itr-rloc* [id]
| +--rw id string
| +--rw address
| +--rw afi lisp-address-family-ref
| +--rw instance-id? instance-id-type
| +--rw (address)?
| +--:(ipv4)
| | +--rw ipv4? inet:ipv4-address
| +--:(ipv6)
| | +--rw ipv6? inet:ipv6-address
| +--:(mac)
| | +--rw mac? yang:mac-address
| +--:(distinguished-name)
| | +--rw distinguished-name? distinguished-name
| +--:(lcaf)
| +--rw lcaf
| +--rw lcaf-type lcaf-ref
| +--rw (address)?
| +--:(null-address)
| | +--rw null-address
| | +--rw address? empty
| +--:(afi-list)
| | +--rw afi-list
| | +--rw address-list* simple-address
| +--:(instance-id)
| | +--rw instance-id
| | +--rw instance-id? instance-id-type
| | +--rw mask-length? uint8
| | +--rw address? simple-address
| +--:(as-number)
| | +--rw as-number
| | +--rw as? inet:as-number
| | +--rw address? simple-address
| +--:(application-data)
| | +--rw application-data
| | +--rw address? simple-address
| | +--rw protocol? uint8
| | +--rw ip-tos? int32
| | +--rw local-port-low? inet:port-number
| | +--rw local-port-high? inet:port-number
| | +--rw remote-port-low? inet:port-number
| | +--rw remote-port-high? inet:port-number
| +--:(geo-coordinates)
| | +--rw geo-coordinates
| | +--rw latitude? bits
| | +--rw latitude-degrees? uint8
| | +--rw latitude-minutes? uint8
| | +--rw latitude-seconds? uint8
| | +--rw longitude? bits
| | +--rw longitude-degrees? uint16
| | +--rw longitude-minutes? uint8
| | +--rw longitude-seconds? uint8
| | +--rw altitude? int32
| | +--rw address? simple-address
| +--:(nat-traversal)
| | +--rw nat-traversal
| | +--rw ms-udp-port? uint16
| | +--rw etr-udp-port? uint16
| | +--rw global-etr-rloc? simple-address
| | +--rw ms-rloc? simple-address
| | +--rw private-etr-rloc? simple-address
| | +--rw rtr-rlocs* simple-address
| +--:(explicit-locator-path)
| | +--rw explicit-locator-path
| | +--rw hop* [address]
| | +--rw address simple-address
| | +--rw lrs-bits? bits
| +--:(sourc-dest-key)
| +--rw sourc-dest-key
| +--rw source? inet:ip-prefix
| +--rw dest? inet:ip-prefix
+--rw local-eids
| +--rw local-eid* [id]
| +--rw id lisp:eid-id
| +--rw eid-address
| +--rw afi lisp-address-family-ref
| +--rw instance-id? instance-id-type
| +--rw (address)?
| +--:(ipv4)
| | +--rw ipv4? inet:ipv4-address
| +--:(ipv6)
| | +--rw ipv6? inet:ipv6-address
| +--:(mac)
| | +--rw mac? yang:mac-address
| +--:(distinguished-name)
| | +--rw distinguished-name? distinguished-name
| +--:(lcaf)
| +--rw lcaf
| +--rw lcaf-type lcaf-ref
| +--rw (address)?
| +--:(null-address)
| | +--rw null-address
| | +--rw address? empty
| +--:(afi-list)
| | +--rw afi-list
| | +--rw address-list* simple-address
| +--:(instance-id)
| | +--rw instance-id
| | +--rw instance-id? instance-id-type
| | +--rw mask-length? uint8
| | +--rw address? simple-address
| +--:(as-number)
| | +--rw as-number
| | +--rw as? inet:as-number
| | +--rw address? simple-address
| +--:(application-data)
| | +--rw application-data
| | +--rw address? simple-address
| | +--rw protocol? uint8
| | +--rw ip-tos? int32
| | +--rw local-port-low? inet:port-number
| | +--rw local-port-high? inet:port-number
| | +--rw remote-port-low? inet:port-number
| | +--rw remote-port-high? inet:port-number
| +--:(geo-coordinates)
| | +--rw geo-coordinates
| | +--rw latitude? bits
| | +--rw latitude-degrees? uint8
| | +--rw latitude-minutes? uint8
| | +--rw latitude-seconds? uint8
| | +--rw longitude? bits
| | +--rw longitude-degrees? uint16
| | +--rw longitude-minutes? uint8
| | +--rw longitude-seconds? uint8
| | +--rw altitude? int32
| | +--rw address? simple-address
| +--:(nat-traversal)
| | +--rw nat-traversal
| | +--rw ms-udp-port? uint16
| | +--rw etr-udp-port? uint16
| | +--rw global-etr-rloc? simple-address
| | +--rw ms-rloc? simple-address
| | +--rw private-etr-rloc? simple-address
| | +--rw rtr-rlocs* simple-address
| +--:(explicit-locator-path)
| | +--rw explicit-locator-path
| | +--rw hop* [address]
| | +--rw address simple-address
| | +--rw lrs-bits? bits
| +--:(sourc-dest-key)
| +--rw sourc-dest-key
| +--rw source? inet:ip-prefix
| +--rw dest? inet:ip-prefix
+--rw map-resolvers +--rw map-resolvers
| +--rw map-resolver* [id] | +--rw map-resolver* [id]
| +--rw id lisp:eid-id | +--rw id lisp:eid-id
| +--rw eid-address | +--rw eid-address
| | +--rw afi lisp-address-family-ref | | +--rw address-type lisp-address-family-ref
| | +--rw instance-id? instance-id-type | | +--rw virtual-network-id? instance-id-type
| | +--rw (address)? | | +--rw (address)?
| | +--:(no-address)
| | | +--rw no-address? empty
| | +--:(ipv4) | | +--:(ipv4)
| | | +--rw ipv4? inet:ipv4-address | | | +--rw ipv4? inet:ipv4-address
| | +--:(ipv4-prefix)
| | | +--rw ipv4-prefix? inet:ipv4-prefix
| | +--:(ipv6) | | +--:(ipv6)
| | | +--rw ipv6? inet:ipv6-address | | | +--rw ipv6? inet:ipv6-address
| | +--:(ipv6-prefix)
| | | +--rw ipv6-prefix? inet:ipv6-prefix
| | +--:(mac) | | +--:(mac)
| | | +--rw mac? yang:mac-address | | | +--rw mac? yang:mac-address
| | +--:(distinguished-name) | | +--:(distinguished-name)
| | | +--rw distinguished-name? distinguished-name | | | +--rw distinguished-name? distinguished-name-type
| | +--:(lcaf) | | +--:(as-number)
| | +--rw lcaf | | | +--rw as-number? inet:as-number
| | +--rw lcaf-type lcaf-ref | | +--:(null-address)
| | +--rw (address)? | | | +--rw null-address
| | +--:(null-address) | | | +--rw address? empty
| | | +--rw null-address | | +--:(afi-list)
| | | +--rw address? empty | | | +--rw afi-list
| | +--:(afi-list) | | | +--rw address-list* simple-address
| | | +--rw afi-list | | +--:(instance-id)
| | | +--rw address-list* simple-address | | | +--rw instance-id
| | +--:(instance-id) | | | +--rw iid? instance-id-type
| | | +--rw instance-id | | | +--rw mask-length? uint8
| | | +--rw instance-id? instance-id-type | | | +--rw address? simple-address
| | | +--rw mask-length? uint8 | | +--:(as-number-lcaf)
| | | +--rw address? simple-address | | | +--rw as-number-lcaf
| | +--:(as-number) | | | +--rw as? inet:as-number
| | | +--rw as-number | | | +--rw address? simple-address
| | | +--rw as? inet:as-number | | +--:(application-data)
| | | +--rw address? simple-address | | | +--rw application-data
| | +--:(application-data) | | | +--rw address? simple-address
| | | +--rw application-data | | | +--rw protocol? uint8
| | | +--rw address? simple-address | | | +--rw ip-tos? int32
| | | +--rw protocol? uint8 | | | +--rw local-port-low? inet:port-number
| | | +--rw ip-tos? int32 | | | +--rw local-port-high? inet:port-number
| | | +--rw local-port-low? inet:port-number | | | +--rw remote-port-low? inet:port-number
| | | +--rw local-port-high? inet:port-number | | | +--rw remote-port-high? inet:port-number
| | | +--rw remote-port-low? inet:port-number | | +--:(geo-coordinates)
| | | +--rw remote-port-high? inet:port-number | | | +--rw geo-coordinates
| | +--:(geo-coordinates) | | | +--rw latitude? bits
| | | +--rw geo-coordinates | | | +--rw latitude-degrees? uint8
| | | +--rw latitude? bits | | | +--rw latitude-minutes? uint8
| | | +--rw latitude-degrees? uint8 | | | +--rw latitude-seconds? uint8
| | | +--rw latitude-minutes? uint8 | | | +--rw longitude? bits
| | | +--rw latitude-seconds? uint8 | | | +--rw longitude-degrees? uint16
| | | +--rw longitude? bits | | | +--rw longitude-minutes? uint8
| | | +--rw longitude-degrees? uint16 | | | +--rw longitude-seconds? uint8
| | | +--rw longitude-minutes? uint8 | | | +--rw altitude? int32
| | | +--rw longitude-seconds? uint8 | | | +--rw address? simple-address
| | | +--rw altitude? int32 | | +--:(nat-traversal)
| | | +--rw address? simple-address | | | +--rw nat-traversal
| | +--:(nat-traversal) | | | +--rw ms-udp-port? uint16
| | | +--rw nat-traversal | | | +--rw etr-udp-port? uint16
| | | +--rw ms-udp-port? uint16 | | | +--rw global-etr-rloc? simple-address
| | | +--rw etr-udp-port? uint16 | | | +--rw ms-rloc? simple-address
| | | +--rw global-etr-rloc? simple-address | | | +--rw private-etr-rloc? simple-address
| | | +--rw ms-rloc? simple-address | | | +--rw rtr-rlocs* simple-address
| | | +--rw private-etr-rloc? simple-address | | +--:(explicit-locator-path)
| | | +--rw rtr-rlocs* simple-address | | | +--rw explicit-locator-path
| | +--:(explicit-locator-path) | | | +--rw hop* [hop-id]
| | | +--rw explicit-locator-path | | | +--rw hop-id string
| | | +--rw hop* [address] | | | +--rw address? simple-address
| | | +--rw address simple-address | | | +--rw lrs-bits? bits
| | | +--rw lrs-bits? bits | | +--:(source-dest-key)
| | +--:(sourc-dest-key) | | | +--rw source-dest-key
| | +--rw sourc-dest-key | | | +--rw source? simple-address
| | +--rw source? inet:ip-prefix | | | +--rw dest? simple-address
| | +--rw dest? inet:ip-prefix | | +--:(key-value-address)
| | | +--rw key-value-address
| | | +--rw key? simple-address
| | | +--rw value? simple-address
| | +--:(service-path)
| | +--rw service-path
| | +--rw service-path-id? service-path-id-type
| | +--rw service-index? uint8
| +--rw map-resolver-address* inet:ip-address | +--rw map-resolver-address* inet:ip-address
+--rw proxy-etrs +--rw proxy-etrs
| +--rw proxy-etr* [id] | +--rw proxy-etr* [id]
| +--rw id lisp:eid-id | +--rw id lisp:eid-id
| +--rw eid-address | +--rw eid-address
| | +--rw afi lisp-address-family-ref | | +--rw address-type lisp-address-family-ref
| | +--rw instance-id? instance-id-type | | +--rw virtual-network-id? instance-id-type
| | +--rw (address)? | | +--rw (address)?
| | +--:(no-address)
| | | +--rw no-address? empty
| | +--:(ipv4) | | +--:(ipv4)
| | | +--rw ipv4? inet:ipv4-address | | | +--rw ipv4? inet:ipv4-address
| | +--:(ipv4-prefix)
| | | +--rw ipv4-prefix? inet:ipv4-prefix
| | +--:(ipv6) | | +--:(ipv6)
| | | +--rw ipv6? inet:ipv6-address | | | +--rw ipv6? inet:ipv6-address
| | +--:(ipv6-prefix)
| | | +--rw ipv6-prefix? inet:ipv6-prefix
| | +--:(mac) | | +--:(mac)
| | | +--rw mac? yang:mac-address | | | +--rw mac? yang:mac-address
| | +--:(distinguished-name) | | +--:(distinguished-name)
| | | +--rw distinguished-name? distinguished-name | | | +--rw distinguished-name? distinguished-name-type
| | +--:(lcaf) | | +--:(as-number)
| | +--rw lcaf | | | +--rw as-number? inet:as-number
| | +--rw lcaf-type lcaf-ref | | +--:(null-address)
| | +--rw (address)? | | | +--rw null-address
| | +--:(null-address) | | | +--rw address? empty
| | | +--rw null-address | | +--:(afi-list)
| | | +--rw address? empty | | | +--rw afi-list
| | +--:(afi-list) | | | +--rw address-list* simple-address
| | | +--rw afi-list | | +--:(instance-id)
| | | +--rw address-list* simple-address | | | +--rw instance-id
| | +--:(instance-id) | | | +--rw iid? instance-id-type
| | | +--rw instance-id | | | +--rw mask-length? uint8
| | | +--rw instance-id? instance-id-type | | | +--rw address? simple-address
| | | +--rw mask-length? uint8 | | +--:(as-number-lcaf)
| | | +--rw address? simple-address | | | +--rw as-number-lcaf
| | +--:(as-number) | | | +--rw as? inet:as-number
| | | +--rw as-number | | | +--rw address? simple-address
| | | +--rw as? inet:as-number | | +--:(application-data)
| | | +--rw address? simple-address | | | +--rw application-data
| | +--:(application-data) | | | +--rw address? simple-address
| | | +--rw application-data | | | +--rw protocol? uint8
| | | +--rw address? simple-address | | | +--rw ip-tos? int32
| | | +--rw protocol? uint8 | | | +--rw local-port-low? inet:port-number
| | | +--rw ip-tos? int32 | | | +--rw local-port-high? inet:port-number
| | | +--rw local-port-low? inet:port-number | | | +--rw remote-port-low? inet:port-number
| | | +--rw local-port-high? inet:port-number | | | +--rw remote-port-high? inet:port-number
| | | +--rw remote-port-low? inet:port-number | | +--:(geo-coordinates)
| | | +--rw remote-port-high? inet:port-number | | | +--rw geo-coordinates
| | +--:(geo-coordinates) | | | +--rw latitude? bits
| | | +--rw geo-coordinates | | | +--rw latitude-degrees? uint8
| | | +--rw latitude? bits | | | +--rw latitude-minutes? uint8
| | | +--rw latitude-degrees? uint8 | | | +--rw latitude-seconds? uint8
| | | +--rw latitude-minutes? uint8 | | | +--rw longitude? bits
| | | +--rw latitude-seconds? uint8 | | | +--rw longitude-degrees? uint16
| | | +--rw longitude? bits | | | +--rw longitude-minutes? uint8
| | | +--rw longitude-degrees? uint16 | | | +--rw longitude-seconds? uint8
| | | +--rw longitude-minutes? uint8 | | | +--rw altitude? int32
| | | +--rw longitude-seconds? uint8 | | | +--rw address? simple-address
| | | +--rw altitude? int32 | | +--:(nat-traversal)
| | | +--rw address? simple-address | | | +--rw nat-traversal
| | +--:(nat-traversal) | | | +--rw ms-udp-port? uint16
| | | +--rw nat-traversal | | | +--rw etr-udp-port? uint16
| | | +--rw ms-udp-port? uint16 | | | +--rw global-etr-rloc? simple-address
| | | +--rw etr-udp-port? uint16 | | | +--rw ms-rloc? simple-address
| | | +--rw global-etr-rloc? simple-address | | | +--rw private-etr-rloc? simple-address
| | | +--rw ms-rloc? simple-address | | | +--rw rtr-rlocs* simple-address
| | | +--rw private-etr-rloc? simple-address | | +--:(explicit-locator-path)
| | | +--rw rtr-rlocs* simple-address | | | +--rw explicit-locator-path
| | +--:(explicit-locator-path) | | | +--rw hop* [hop-id]
| | | +--rw explicit-locator-path | | | +--rw hop-id string
| | | +--rw hop* [address] | | | +--rw address? simple-address
| | | +--rw address simple-address | | | +--rw lrs-bits? bits
| | | +--rw lrs-bits? bits | | +--:(source-dest-key)
| | +--:(sourc-dest-key) | | | +--rw source-dest-key
| | +--rw sourc-dest-key | | | +--rw source? simple-address
| | +--rw source? inet:ip-prefix | | | +--rw dest? simple-address
| | +--rw dest? inet:ip-prefix | | +--:(key-value-address)
| | | +--rw key-value-address
| | | +--rw key? simple-address
| | | +--rw value? simple-address
| | +--:(service-path)
| | +--rw service-path
| | +--rw service-path-id? service-path-id-type
| | +--rw service-index? uint8
| +--rw proxy-etr-address* inet:ip-address | +--rw proxy-etr-address* inet:ip-address
+--rw static-mappings +--rw map-cache
+--rw mapping* [id] | +--rw mapping* [id]
+--rw id eid-id | +--rw id eid-id
+--rw eid | +--rw eid
| +--rw afi lisp-address-family-ref | | +--rw address-type lisp-address-family-ref
| +--rw instance-id? instance-id-type | | +--rw virtual-network-id? instance-id-type
| +--rw (address)? | | +--rw (address)?
| +--:(ipv4) | | +--:(no-address)
| | +--rw ipv4? inet:ipv4-address | | | +--rw no-address? empty
| +--:(ipv6) | | +--:(ipv4)
| | +--rw ipv6? inet:ipv6-address | | | +--rw ipv4? inet:ipv4-address
| +--:(mac) | | +--:(ipv4-prefix)
| | +--rw mac? yang:mac-address | | | +--rw ipv4-prefix? inet:ipv4-prefix
| +--:(distinguished-name) | | +--:(ipv6)
| | +--rw distinguished-name? distinguished-name | | | +--rw ipv6? inet:ipv6-address
| +--:(lcaf) | | +--:(ipv6-prefix)
| +--rw lcaf | | | +--rw ipv6-prefix? inet:ipv6-prefix
| +--rw lcaf-type lcaf-ref | | +--:(mac)
| +--rw (address)? | | | +--rw mac? yang:mac-address
| +--:(null-address) | | +--:(distinguished-name)
| | +--rw null-address | | | +--rw distinguished-name? distinguished-name-type
| | +--rw address? empty | | +--:(as-number)
| +--:(afi-list) | | | +--rw as-number? inet:as-number
| | +--rw afi-list | | +--:(null-address)
| | +--rw address-list* simple-address | | | +--rw null-address
| +--:(instance-id) | | | +--rw address? empty
| | +--rw instance-id | | +--:(afi-list)
| | +--rw instance-id? instance-id-type | | | +--rw afi-list
| | +--rw mask-length? uint8 | | | +--rw address-list* simple-address
| | +--rw address? simple-address | | +--:(instance-id)
| +--:(as-number) | | | +--rw instance-id
| | +--rw as-number | | | +--rw iid? instance-id-type
| | +--rw as? inet:as-number | | | +--rw mask-length? uint8
| | +--rw address? simple-address | | | +--rw address? simple-address
| +--:(application-data) | | +--:(as-number-lcaf)
| | +--rw application-data | | | +--rw as-number-lcaf
| | +--rw address? simple-address | | | +--rw as? inet:as-number
| | +--rw protocol? uint8 | | | +--rw address? simple-address
| | +--rw ip-tos? int32 | | +--:(application-data)
| | +--rw local-port-low? inet:port-number | | | +--rw application-data
| | +--rw local-port-high? inet:port-number | | | +--rw address? simple-address
| | +--rw remote-port-low? inet:port-number | | | +--rw protocol? uint8
| | +--rw remote-port-high? inet:port-number | | | +--rw ip-tos? int32
| +--:(geo-coordinates) | | | +--rw local-port-low? inet:port-number
| | +--rw geo-coordinates | | | +--rw local-port-high? inet:port-number
| | +--rw latitude? bits | | | +--rw remote-port-low? inet:port-number
| | +--rw latitude-degrees? uint8 | | | +--rw remote-port-high? inet:port-number
| | +--rw latitude-minutes? uint8 | | +--:(geo-coordinates)
| | +--rw latitude-seconds? uint8 | | | +--rw geo-coordinates
| | +--rw longitude? bits | | | +--rw latitude? bits
| | +--rw longitude-degrees? uint16 | | | +--rw latitude-degrees? uint8
| | +--rw longitude-minutes? uint8 | | | +--rw latitude-minutes? uint8
| | +--rw longitude-seconds? uint8 | | | +--rw latitude-seconds? uint8
| | +--rw altitude? int32 | | | +--rw longitude? bits
| | +--rw address? simple-address | | | +--rw longitude-degrees? uint16
| +--:(nat-traversal) | | | +--rw longitude-minutes? uint8
| | +--rw nat-traversal | | | +--rw longitude-seconds? uint8
| | +--rw ms-udp-port? uint16 | | | +--rw altitude? int32
| | +--rw etr-udp-port? uint16 | | | +--rw address? simple-address
| | +--rw global-etr-rloc? simple-address | | +--:(nat-traversal)
| | +--rw ms-rloc? simple-address | | | +--rw nat-traversal
| | +--rw private-etr-rloc? simple-address | | | +--rw ms-udp-port? uint16
| | +--rw rtr-rlocs* simple-address | | | +--rw etr-udp-port? uint16
| +--:(explicit-locator-path) | | | +--rw global-etr-rloc? simple-address
| | +--rw explicit-locator-path | | | +--rw ms-rloc? simple-address
| | +--rw hop* [address] | | | +--rw private-etr-rloc? simple-address
| | +--rw address simple-address | | | +--rw rtr-rlocs* simple-address
| | +--rw lrs-bits? bits | | +--:(explicit-locator-path)
| +--:(sourc-dest-key) | | | +--rw explicit-locator-path
| +--rw sourc-dest-key | | | +--rw hop* [hop-id]
| +--rw source? inet:ip-prefix | | | +--rw hop-id string
| +--rw dest? inet:ip-prefix | | | +--rw address? simple-address
+--rw ttl? uint32 | | | +--rw lrs-bits? bits
+--rw authoritative? bits | | +--:(source-dest-key)
+--rw (locator-list)? | | | +--rw source-dest-key
+--:(negative-mapping) | | | +--rw source? simple-address
| +--rw map-reply-action? map-reply-action | | | +--rw dest? simple-address
+--:(positive-mapping) | | +--:(key-value-address)
+--rw rlocs | | | +--rw key-value-address
+--rw rloc* [id] | | | +--rw key? simple-address
+--rw id string | | | +--rw value? simple-address
+--rw (address-type)? | | +--:(service-path)
| +--:(interface-name) | | +--rw service-path
| | +--rw interface? if:interface-state-ref | | +--rw service-path-id? service-path-id-type
| +--:(address) | | +--rw service-index? uint8
| +--rw locator-address | +--rw ttl? uint32
| +--rw afi lisp-address-family-ref | +--rw authoritative? bits
| +--rw instance-id? instance-id-type | +--rw static? boolean
| +--rw (address)? | +--rw (locator-list)?
| +--:(ipv4) | +--:(negative-mapping)
| | +--rw ipv4? inet:ipv4-address | | +--rw map-reply-action? map-reply-action
| +--:(ipv6) | +--:(positive-mapping)
| | +--rw ipv6? inet:ipv6-address | +--rw rlocs
| +--:(mac) | +--rw locator* [id]
| | +--rw mac? yang:mac-address | +--rw id string
| +--:(distinguished-name) | +--rw locator-address
| | +--rw distinguished-name? distinguished-name | | +--rw address-type lisp-address-family-ref
| +--:(lcaf) | | +--rw virtual-network-id? instance-id-type
| +--rw lcaf | | +--rw (address)?
| +--rw lcaf-type lcaf-ref | | +--:(no-address)
| +--rw (address)? | | | +--rw no-address? empty
| +--:(null-address) | | +--:(ipv4)
| | +--rw null-address | | | +--rw ipv4? inet:ipv4-address
| | +--rw address? empty | | +--:(ipv4-prefix)
| +--:(afi-list) | | | +--rw ipv4-prefix? inet:ipv4-prefix
| | +--rw afi-list | | +--:(ipv6)
| | +--rw address-list* simple-address | | | +--rw ipv6? inet:ipv6-address
| +--:(instance-id) | | +--:(ipv6-prefix)
| | +--rw instance-id | | | +--rw ipv6-prefix? inet:ipv6-prefix
| | +--rw instance-id? instance-id-type | | +--:(mac)
| | +--rw mask-length? uint8 | | | +--rw mac? yang:mac-address
| | +--rw address? simple-address | | +--:(distinguished-name)
| +--:(as-number) | | | +--rw distinguished-name? distinguished-name-type
| | +--rw as-number | | +--:(as-number)
| | +--rw as? inet:as-number | | | +--rw as-number? inet:as-number
| | +--rw address? simple-address | | +--:(null-address)
| +--:(application-data) | | | +--rw null-address
| | +--rw application-data | | | +--rw address? empty
| | +--rw address? simple-address | | +--:(afi-list)
| | +--rw protocol? uint8 | | | +--rw afi-list
| | +--rw ip-tos? int32 | | | +--rw address-list* simple-address
| | +--rw local-port-low? inet:port-number | | +--:(instance-id)
| | +--rw local-port-high? inet:port-number | | | +--rw instance-id
| | +--rw remote-port-low? inet:port-number | | | +--rw iid? instance-id-type
| | +--rw remote-port-high? inet:port-number | | | +--rw mask-length? uint8
| +--:(geo-coordinates) | | | +--rw address? simple-address
| | +--rw geo-coordinates | | +--:(as-number-lcaf)
| | +--rw latitude? bits | | | +--rw as-number-lcaf
| | +--rw latitude-degrees? uint8 | | | +--rw as? inet:as-number
| | +--rw latitude-minutes? uint8 | | | +--rw address? simple-address
| | +--rw latitude-seconds? uint8 | | +--:(application-data)
| | +--rw longitude? bits | | | +--rw application-data
| | +--rw longitude-degrees? uint16 | | | +--rw address? simple-address
| | +--rw longitude-minutes? uint8 | | | +--rw protocol? uint8
| | +--rw longitude-seconds? uint8 | | | +--rw ip-tos? int32
| | +--rw altitude? int32 | | | +--rw local-port-low? inet:port-number
| | +--rw address? simple-address | | | +--rw local-port-high? inet:port-number
| +--:(nat-traversal) | | | +--rw remote-port-low? inet:port-number
| | +--rw nat-traversal | | | +--rw remote-port-high? inet:port-number
| | +--rw ms-udp-port? uint16 | | +--:(geo-coordinates)
| | +--rw etr-udp-port? uint16 | | | +--rw geo-coordinates
| | +--rw global-etr-rloc? simple-address | | | +--rw latitude? bits
| | +--rw ms-rloc? simple-address | | | +--rw latitude-degrees? uint8
| | +--rw private-etr-rloc? simple-address | | | +--rw latitude-minutes? uint8
| | +--rw rtr-rlocs* simple-address | | | +--rw latitude-seconds? uint8
| +--:(explicit-locator-path) | | | +--rw longitude? bits
| | +--rw explicit-locator-path | | | +--rw longitude-degrees? uint16
| | +--rw hop* [address] | | | +--rw longitude-minutes? uint8
| | +--rw address simple-address | | | +--rw longitude-seconds? uint8
| | +--rw lrs-bits? bits | | | +--rw altitude? int32
| +--:(sourc-dest-key) | | | +--rw address? simple-address
| +--rw sourc-dest-key | | +--:(nat-traversal)
| +--rw source? inet:ip-prefix | | | +--rw nat-traversal
| +--rw dest? inet:ip-prefix | | | +--rw ms-udp-port? uint16
+--rw priority? uint8 | | | +--rw etr-udp-port? uint16
+--rw weight? uint8 | | | +--rw global-etr-rloc? simple-address
+--rw multicast-priority? uint8 | | | +--rw ms-rloc? simple-address
+--rw multicast-weight? uint8 | | | +--rw private-etr-rloc? simple-address
augment /lisp:lisp-state/lisp:devices/lisp:device: | | | +--rw rtr-rlocs* simple-address
| | +--:(explicit-locator-path)
| | | +--rw explicit-locator-path
| | | +--rw hop* [hop-id]
| | | +--rw hop-id string
| | | +--rw address? simple-address
| | | +--rw lrs-bits? bits
| | +--:(source-dest-key)
| | | +--rw source-dest-key
| | | +--rw source? simple-address
| | | +--rw dest? simple-address
| | +--:(key-value-address)
| | | +--rw key-value-address
| | | +--rw key? simple-address
| | | +--rw value? simple-address
| | +--:(service-path)
| | +--rw service-path
| | +--rw service-path-id? service-path-id-type
| | +--rw service-index? uint8
| +--rw priority? uint8
| +--rw weight? uint8
| +--rw multicast-priority? uint8
| +--rw multicast-weight? uint8
+--rw servicing-eids
+--rw servicing-eid* [id]
+--rw id lisp:eid-id
+--rw eid-address
+--rw address-type lisp-address-family-ref
+--rw virtual-network-id? instance-id-type
+--rw (address)?
+--:(no-address)
| +--rw no-address? empty
+--:(ipv4)
| +--rw ipv4? inet:ipv4-address
+--:(ipv4-prefix)
| +--rw ipv4-prefix? inet:ipv4-prefix
+--:(ipv6)
| +--rw ipv6? inet:ipv6-address
+--:(ipv6-prefix)
| +--rw ipv6-prefix? inet:ipv6-prefix
+--:(mac)
| +--rw mac? yang:mac-address
+--:(distinguished-name)
| +--rw distinguished-name? distinguished-name-type
+--:(as-number)
| +--rw as-number? inet:as-number
+--:(null-address)
| +--rw null-address
| +--rw address? empty
+--:(afi-list)
| +--rw afi-list
| +--rw address-list* simple-address
+--:(instance-id)
| +--rw instance-id
| +--rw iid? instance-id-type
| +--rw mask-length? uint8
| +--rw address? simple-address
+--:(as-number-lcaf)
| +--rw as-number-lcaf
| +--rw as? inet:as-number
| +--rw address? simple-address
+--:(application-data)
| +--rw application-data
| +--rw address? simple-address
| +--rw protocol? uint8
| +--rw ip-tos? int32
| +--rw local-port-low? inet:port-number
| +--rw local-port-high? inet:port-number
| +--rw remote-port-low? inet:port-number
| +--rw remote-port-high? inet:port-number
+--:(geo-coordinates)
| +--rw geo-coordinates
| +--rw latitude? bits
| +--rw latitude-degrees? uint8
| +--rw latitude-minutes? uint8
| +--rw latitude-seconds? uint8
| +--rw longitude? bits
| +--rw longitude-degrees? uint16
| +--rw longitude-minutes? uint8
| +--rw longitude-seconds? uint8
| +--rw altitude? int32
| +--rw address? simple-address
+--:(nat-traversal)
| +--rw nat-traversal
| +--rw ms-udp-port? uint16
| +--rw etr-udp-port? uint16
| +--rw global-etr-rloc? simple-address
| +--rw ms-rloc? simple-address
| +--rw private-etr-rloc? simple-address
| +--rw rtr-rlocs* simple-address
+--:(explicit-locator-path)
| +--rw explicit-locator-path
| +--rw hop* [hop-id]
| +--rw hop-id string
| +--rw address? simple-address
| +--rw lrs-bits? bits
+--:(source-dest-key)
| +--rw source-dest-key
| +--rw source? simple-address
| +--rw dest? simple-address
+--:(key-value-address)
| +--rw key-value-address
| +--rw key? simple-address
| +--rw value? simple-address
+--:(service-path)
+--rw service-path
+--rw service-path-id? service-path-id-type
+--rw service-index? uint8
augment /lisp:lisp-state/lisp:lisp-router-instances/lisp:lisp-router-instance/lisp:lisp-role:
+--ro itr-state +--ro itr-state
+--ro learned-mappings +--ro map-cache
+--ro mapping* [id] +--ro mapping* [id]
+--ro id eid-id +--ro id eid-id
+--ro eid +--ro eid
| +--ro afi lisp-address-family-ref | +--ro address-type lisp-address-family-ref
| +--ro instance-id? instance-id-type | +--ro virtual-network-id? instance-id-type
| +--ro (address)? | +--ro (address)?
| +--:(no-address)
| | +--ro no-address? empty
| +--:(ipv4) | +--:(ipv4)
| | +--ro ipv4? inet:ipv4-address | | +--ro ipv4? inet:ipv4-address
| +--:(ipv4-prefix)
| | +--ro ipv4-prefix? inet:ipv4-prefix
| +--:(ipv6) | +--:(ipv6)
| | +--ro ipv6? inet:ipv6-address | | +--ro ipv6? inet:ipv6-address
| +--:(ipv6-prefix)
| | +--ro ipv6-prefix? inet:ipv6-prefix
| +--:(mac) | +--:(mac)
| | +--ro mac? yang:mac-address | | +--ro mac? yang:mac-address
| +--:(distinguished-name) | +--:(distinguished-name)
| | +--ro distinguished-name? distinguished-name | | +--ro distinguished-name? distinguished-name-type
| +--:(lcaf) | +--:(as-number)
| +--ro lcaf | | +--ro as-number? inet:as-number
| +--ro lcaf-type lcaf-ref | +--:(null-address)
| +--ro (address)? | | +--ro null-address
| +--:(null-address) | | +--ro address? empty
| | +--ro null-address | +--:(afi-list)
| | +--ro address? empty | | +--ro afi-list
| +--:(afi-list) | | +--ro address-list* simple-address
| | +--ro afi-list | +--:(instance-id)
| | +--ro address-list* simple-address | | +--ro instance-id
| +--:(instance-id) | | +--ro iid? instance-id-type
| | +--ro instance-id | | +--ro mask-length? uint8
| | +--ro instance-id? instance-id-type | | +--ro address? simple-address
| | +--ro mask-length? uint8 | +--:(as-number-lcaf)
| | +--ro address? simple-address | | +--ro as-number-lcaf
| +--:(as-number) | | +--ro as? inet:as-number
| | +--ro as-number | | +--ro address? simple-address
| | +--ro as? inet:as-number | +--:(application-data)
| | +--ro address? simple-address | | +--ro application-data
| +--:(application-data) | | +--ro address? simple-address
| | +--ro application-data | | +--ro protocol? uint8
| | +--ro address? simple-address | | +--ro ip-tos? int32
| | +--ro protocol? uint8 | | +--ro local-port-low? inet:port-number
| | +--ro ip-tos? int32 | | +--ro local-port-high? inet:port-number
| | +--ro local-port-low? inet:port-number | | +--ro remote-port-low? inet:port-number
| | +--ro local-port-high? inet:port-number | | +--ro remote-port-high? inet:port-number
| | +--ro remote-port-low? inet:port-number | +--:(geo-coordinates)
| | +--ro remote-port-high? inet:port-number | | +--ro geo-coordinates
| +--:(geo-coordinates) | | +--ro latitude? bits
| | +--ro geo-coordinates | | +--ro latitude-degrees? uint8
| | +--ro latitude? bits | | +--ro latitude-minutes? uint8
| | +--ro latitude-degrees? uint8 | | +--ro latitude-seconds? uint8
| | +--ro latitude-minutes? uint8 | | +--ro longitude? bits
| | +--ro latitude-seconds? uint8 | | +--ro longitude-degrees? uint16
| | +--ro longitude? bits | | +--ro longitude-minutes? uint8
| | +--ro longitude-degrees? uint16 | | +--ro longitude-seconds? uint8
| | +--ro longitude-minutes? uint8 | | +--ro altitude? int32
| | +--ro longitude-seconds? uint8 | | +--ro address? simple-address
| | +--ro altitude? int32 | +--:(nat-traversal)
| | +--ro address? simple-address | | +--ro nat-traversal
| +--:(nat-traversal) | | +--ro ms-udp-port? uint16
| | +--ro nat-traversal | | +--ro etr-udp-port? uint16
| | +--ro ms-udp-port? uint16 | | +--ro global-etr-rloc? simple-address
| | +--ro etr-udp-port? uint16 | | +--ro ms-rloc? simple-address
| | +--ro global-etr-rloc? simple-address | | +--ro private-etr-rloc? simple-address
| | +--ro ms-rloc? simple-address | | +--ro rtr-rlocs* simple-address
| | +--ro private-etr-rloc? simple-address | +--:(explicit-locator-path)
| | +--ro rtr-rlocs* simple-address | | +--ro explicit-locator-path
| +--:(explicit-locator-path) | | +--ro hop* [hop-id]
| | +--ro explicit-locator-path | | +--ro hop-id string
| | +--ro hop* [address] | | +--ro address? simple-address
| | +--ro address simple-address | | +--ro lrs-bits? bits
| | +--ro lrs-bits? bits | +--:(source-dest-key)
| +--:(sourc-dest-key) | | +--ro source-dest-key
| +--ro sourc-dest-key | | +--ro source? simple-address
| +--ro source? inet:ip-prefix | | +--ro dest? simple-address
| +--ro dest? inet:ip-prefix | +--:(key-value-address)
| | +--ro key-value-address
| | +--ro key? simple-address
| | +--ro value? simple-address
| +--:(service-path)
| +--ro service-path
| +--ro service-path-id? service-path-id-type
| +--ro service-index? uint8
+--ro ttl? uint32 +--ro ttl? uint32
+--ro authoritative? bits +--ro authoritative? bits
+--ro static? boolean
+--ro (locator-list)? +--ro (locator-list)?
+--:(negative-mapping) +--:(negative-mapping)
| +--ro map-reply-action? map-reply-action | +--ro map-reply-action? map-reply-action
+--:(positive-mapping) +--:(positive-mapping)
+--ro rlocs +--ro rlocs
+--ro rloc* [id] +--ro locator* [id]
+--ro id string +--ro id string
+--ro (address-type)? +--ro locator-address
| +--:(interface-name) | +--ro address-type lisp-address-family-ref
| | +--ro interface? if:interface-state-ref | +--ro virtual-network-id? instance-id-type
| +--:(address) | +--ro (address)?
| +--ro locator-address | +--:(no-address)
| +--ro afi lisp-address-family-ref | | +--ro no-address? empty
| +--ro instance-id? instance-id-type | +--:(ipv4)
| +--ro (address)? | | +--ro ipv4? inet:ipv4-address
| +--:(ipv4) | +--:(ipv4-prefix)
| | +--ro ipv4? inet:ipv4-address | | +--ro ipv4-prefix? inet:ipv4-prefix
| +--:(ipv6) | +--:(ipv6)
| | +--ro ipv6? inet:ipv6-address | | +--ro ipv6? inet:ipv6-address
| +--:(mac) | +--:(ipv6-prefix)
| | +--ro mac? yang:mac-address | | +--ro ipv6-prefix? inet:ipv6-prefix
| +--:(distinguished-name) | +--:(mac)
| | +--ro distinguished-name? distinguished-name | | +--ro mac? yang:mac-address
| +--:(lcaf) | +--:(distinguished-name)
| +--ro lcaf | | +--ro distinguished-name? distinguished-name-type
| +--ro lcaf-type lcaf-ref | +--:(as-number)
| +--ro (address)? | | +--ro as-number? inet:as-number
| +--:(null-address) | +--:(null-address)
| | +--ro null-address | | +--ro null-address
| | +--ro address? empty | | +--ro address? empty
| +--:(afi-list) | +--:(afi-list)
| | +--ro afi-list | | +--ro afi-list
| | +--ro address-list* simple-address | | +--ro address-list* simple-address
| +--:(instance-id) | +--:(instance-id)
| | +--ro instance-id | | +--ro instance-id
| | +--ro instance-id? instance-id-type | | +--ro iid? instance-id-type
| | +--ro mask-length? uint8 | | +--ro mask-length? uint8
| | +--ro address? simple-address | | +--ro address? simple-address
| +--:(as-number) | +--:(as-number-lcaf)
| | +--ro as-number | | +--ro as-number-lcaf
| | +--ro as? inet:as-number | | +--ro as? inet:as-number
| | +--ro address? simple-address | | +--ro address? simple-address
| +--:(application-data) | +--:(application-data)
| | +--ro application-data | | +--ro application-data
| | +--ro address? simple-address | | +--ro address? simple-address
| | +--ro protocol? uint8 | | +--ro protocol? uint8
| | +--ro ip-tos? int32 | | +--ro ip-tos? int32
| | +--ro local-port-low? inet:port-number | | +--ro local-port-low? inet:port-number
| | +--ro local-port-high? inet:port-number | | +--ro local-port-high? inet:port-number
| | +--ro remote-port-low? inet:port-number | | +--ro remote-port-low? inet:port-number
| | +--ro remote-port-high? inet:port-number | | +--ro remote-port-high? inet:port-number
| +--:(geo-coordinates) | +--:(geo-coordinates)
| | +--ro geo-coordinates | | +--ro geo-coordinates
| | +--ro latitude? bits | | +--ro latitude? bits
| | +--ro latitude-degrees? uint8 | | +--ro latitude-degrees? uint8
| | +--ro latitude-minutes? uint8 | | +--ro latitude-minutes? uint8
| | +--ro latitude-seconds? uint8 | | +--ro latitude-seconds? uint8
| | +--ro longitude? bits | | +--ro longitude? bits
| | +--ro longitude-degrees? uint16 | | +--ro longitude-degrees? uint16
| | +--ro longitude-minutes? uint8 | | +--ro longitude-minutes? uint8
| | +--ro longitude-seconds? uint8 | | +--ro longitude-seconds? uint8
| | +--ro altitude? int32 | | +--ro altitude? int32
| | +--ro address? simple-address | | +--ro address? simple-address
| +--:(nat-traversal) | +--:(nat-traversal)
| | +--ro nat-traversal | | +--ro nat-traversal
| | +--ro ms-udp-port? uint16 | | +--ro ms-udp-port? uint16
| | +--ro etr-udp-port? uint16 | | +--ro etr-udp-port? uint16
| | +--ro global-etr-rloc? simple-address | | +--ro global-etr-rloc? simple-address
| | +--ro ms-rloc? simple-address | | +--ro ms-rloc? simple-address
| | +--ro private-etr-rloc? simple-address | | +--ro private-etr-rloc? simple-address
| | +--ro rtr-rlocs* simple-address | | +--ro rtr-rlocs* simple-address
| +--:(explicit-locator-path) | +--:(explicit-locator-path)
| | +--ro explicit-locator-path | | +--ro explicit-locator-path
| | +--ro hop* [address] | | +--ro hop* [hop-id]
| | +--ro address simple-address | | +--ro hop-id string
| | +--ro lrs-bits? bits | | +--ro address? simple-address
| +--:(sourc-dest-key) | | +--ro lrs-bits? bits
| +--ro sourc-dest-key | +--:(source-dest-key)
| +--ro source? inet:ip-prefix | | +--ro source-dest-key
| +--ro dest? inet:ip-prefix | | +--ro source? simple-address
| | +--ro dest? simple-address
| +--:(key-value-address)
| | +--ro key-value-address
| | +--ro key? simple-address
| | +--ro value? simple-address
| +--:(service-path)
| +--ro service-path
| +--ro service-path-id? service-path-id-type
| +--ro service-index? uint8
+--ro priority? uint8 +--ro priority? uint8
+--ro weight? uint8 +--ro weight? uint8
+--ro multicast-priority? uint8 +--ro multicast-priority? uint8
+--ro multicast-weight? uint8 +--ro multicast-weight? uint8
3.2. Module Definition 3.2. Module Definition
<CODE BEGINS> file "ietf-lisp-itr@2015-07-02.yang" <CODE BEGINS> file "ietf-lisp-itr@2016-06-30.yang"
module ietf-lisp-itr { module ietf-lisp-itr {
namespace "urn:ietf:params:xml:ns:yang:lisp-itr"; namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-itr";
prefix lisp-itr; prefix lisp-itr;
import ietf-lisp { import ietf-lisp {
prefix lisp; prefix lisp;
} }
import ietf-lisp-address-types { import ietf-lisp-address-types {
prefix lcaf; prefix lcaf;
} }
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
} }
organization organization
"IETF LISP (Locator/ID Separation Protocol) Working Group"; "IETF LISP (Locator/ID Separation Protocol) Working Group";
contact contact
"lisp@ietf.org"; "lisp@ietf.org";
description description
"This YANG module defines the generic configuration "This YANG module defines the generic configuration
data for a LISP ITR. The module can be extended by vendors data for a LISP ITR. The module can be extended by vendors
to define vendor-specific configuration parameters and to define vendor-specific configuration parameters and
policies. policies.
Copyright (c) 2015 IETF Trust and the persons identified as Copyright (c) 2015 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
skipping to change at page 23, line 6 skipping to change at page 27, line 50
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC 6338; see This version of this YANG module is part of RFC 6338; see
the RFC itself for full legal notices. the RFC itself for full legal notices.
"; ";
revision 2015-07-02 { revision 2016-06-30 {
description description
"Initial revision."; "Initial revision.";
reference reference
"https://tools.ietf.org/html/rfc6830"; "https://tools.ietf.org/html/rfc6830";
} }
identity itr { identity itr {
base lisp:lisp-device; base lisp:lisp-role;
description description
"LISP ITR."; "LISP ITR.";
} }
augment "/lisp:lisp/lisp:devices/lisp:device" { augment "/lisp:lisp/lisp:lisp-router-instances/"
when "lisp:type = 'lisp-itr:itr'" { + "lisp:lisp-router-instance/lisp:lisp-role" {
when "lisp:lisp-role-type = 'lisp-itr:itr'" {
description description
"Augment is valid when LISP device type is ITR."; "Augment is valid when LISP role type is ITR.";
} }
description description
"This augments LISP devices list with ITR specific "This augments LISP devices list with ITR specific
parameters."; parameters.";
container itr-cfg { container itr-cfg {
presence "LISP ITR operation enabled"; presence "LISP ITR operation enabled";
description description
"ITR configuration"; "ITR configuration";
container rloc-probing { container rloc-probing {
presence "RLOC probing active"; presence "RLOC probing active";
skipping to change at page 23, line 51 skipping to change at page 28, line 48
description description
"Number of retries"; "Number of retries";
} }
leaf retries-interval { leaf retries-interval {
type uint16; type uint16;
units "seconds"; units "seconds";
description description
"Interval in seconds between retries"; "Interval in seconds between retries";
} }
} }
container itr-rlocs { leaf itr-rlocs {
description type leafref {
"List of RLOCs of the ITR included in Map-Requests"; path "/lisp:lisp/lisp:locator-sets/lisp:locator-set/"
list itr-rloc { + "lisp:locator-set-name";
key "id";
description
"ITR's list of RLOCs.";
leaf id {
type string;
description
"Unique RLOC id.";
}
container address {
uses lcaf:lisp-address;
description
"RLOC address in generic LISP address format.";
}
} }
}
container local-eids {
description description
"Container for an ITR's local list of EIDs"; "Refrence to a locator set that the ITR includes in
list local-eid { Map-Requests";
key "id";
min-elements 1;
description
"List of EIDs from which the ITR forwards traffic.";
leaf id {
type lisp:eid-id;
description
"Unique EID ID";
}
container eid-address {
uses lcaf:lisp-address;
description
"Addres in generic LISP address format";
}
}
} }
container map-resolvers { container map-resolvers {
description description
"The Map-Resolvers configured for the ITR."; "The Map-Resolvers configured for the ITR.";
list map-resolver { list map-resolver {
key "id"; key "id";
min-elements 1; min-elements 1;
description description
"List of Map-Resolvers configured for the ITR."; "List of Map-Resolvers configured for the ITR.";
leaf id { leaf id {
skipping to change at page 25, line 44 skipping to change at page 30, line 11
description description
"EID for which the PETR is configured."; "EID for which the PETR is configured.";
} }
leaf-list proxy-etr-address{ leaf-list proxy-etr-address{
type inet:ip-address; type inet:ip-address;
description description
"PETR RLOC address."; "PETR RLOC address.";
} }
} }
} }
container static-mappings { container map-cache{
uses lisp:mappings; uses lisp:mappings;
description description
"EID to RLOCs mappings cache."; "EID to RLOCs mappings cache.";
} }
uses lisp:servicing-eids-grouping;
} }
} }
augment "/lisp:lisp-state/lisp:devices/lisp:device" { augment "/lisp:lisp-state/lisp:lisp-router-instances/"
when "lisp:type = 'lisp-itr:itr'" { + "lisp:lisp-router-instance/lisp:lisp-role" {
when "lisp:lisp-role-type = 'lisp-itr:itr'" {
description description
"Augment is valid when LISP device type is ITR."; "Augment is valid when LISP role type is ITR.";
} }
description description
"This augments LISP devices list state with ITR specific "This augments LISP devices list state with ITR specific
parameters."; parameters.";
container itr-state { container itr-state {
config false; config false;
description description
"ITR state."; "ITR state.";
container learned-mappings { container map-cache{
uses lisp:mappings; uses lisp:mappings;
description description
"EID to RLOCs mappings cache."; "EID to RLOCs mappings cache.";
} }
} }
} }
} }
<CODE ENDS> <CODE ENDS>
4. LISP ETR Module 4. LISP ETR Module
This module captures the configuration data model of a LISP ETR. The This module captures the configuration data model of a LISP ETR. The
model also captures some operational data elements. model also captures some operational data elements.
4.1. Module Structure 4.1. Module Structure
module: ietf-lisp-etr module: ietf-lisp-etr
augment /lisp:lisp/lisp:devices/lisp:device: augment /lisp:lisp/lisp:lisp-router-instances/lisp:lisp-router-instance/lisp:lisp-role:
+--rw etr-cfg! +--rw etr-cfg!
+--rw local-eids +--rw local-eids
+--rw local-eid* [id] +--rw local-eid* [id]
+--rw id lisp:eid-id +--rw id lisp:eid-id
+--rw eid-address +--rw eid-address
| +--rw afi lisp-address-family-ref | +--rw address-type lisp-address-family-ref
| +--rw instance-id? instance-id-type | +--rw virtual-network-id? instance-id-type
| +--rw (address)? | +--rw (address)?
| +--:(no-address)
| | +--rw no-address? empty
| +--:(ipv4) | +--:(ipv4)
| | +--rw ipv4? inet:ipv4-address | | +--rw ipv4? inet:ipv4-address
| +--:(ipv4-prefix)
| | +--rw ipv4-prefix? inet:ipv4-prefix
| +--:(ipv6) | +--:(ipv6)
| | +--rw ipv6? inet:ipv6-address | | +--rw ipv6? inet:ipv6-address
| +--:(ipv6-prefix)
| | +--rw ipv6-prefix? inet:ipv6-prefix
| +--:(mac) | +--:(mac)
| | +--rw mac? yang:mac-address | | +--rw mac? yang:mac-address
| +--:(distinguished-name) | +--:(distinguished-name)
| | +--rw distinguished-name? distinguished-name | | +--rw distinguished-name? distinguished-name-type
| +--:(lcaf) | +--:(as-number)
| +--rw lcaf | | +--rw as-number? inet:as-number
| +--rw lcaf-type lcaf-ref | +--:(null-address)
| +--rw (address)? | | +--rw null-address
| +--:(null-address) | | +--rw address? empty
| | +--rw null-address | +--:(afi-list)
| | +--rw address? empty | | +--rw afi-list
| +--:(afi-list) | | +--rw address-list* simple-address
| | +--rw afi-list | +--:(instance-id)
| | +--rw address-list* simple-address | | +--rw instance-id
| +--:(instance-id) | | +--rw iid? instance-id-type
| | +--rw instance-id | | +--rw mask-length? uint8
| | +--rw instance-id? instance-id-type | | +--rw address? simple-address
| | +--rw mask-length? uint8 | +--:(as-number-lcaf)
| | +--rw address? simple-address | | +--rw as-number-lcaf
| +--:(as-number) | | +--rw as? inet:as-number
| | +--rw as-number | | +--rw address? simple-address
| | +--rw as? inet:as-number | +--:(application-data)
| | +--rw address? simple-address | | +--rw application-data
| +--:(application-data) | | +--rw address? simple-address
| | +--rw application-data | | +--rw protocol? uint8
| | +--rw address? simple-address | | +--rw ip-tos? int32
| | +--rw protocol? uint8 | | +--rw local-port-low? inet:port-number
| | +--rw ip-tos? int32 | | +--rw local-port-high? inet:port-number
| | +--rw local-port-low? inet:port-number | | +--rw remote-port-low? inet:port-number
| | +--rw local-port-high? inet:port-number | | +--rw remote-port-high? inet:port-number
| | +--rw remote-port-low? inet:port-number | +--:(geo-coordinates)
| | +--rw remote-port-high? inet:port-number | | +--rw geo-coordinates
| +--:(geo-coordinates) | | +--rw latitude? bits
| | +--rw geo-coordinates | | +--rw latitude-degrees? uint8
| | +--rw latitude? bits | | +--rw latitude-minutes? uint8
| | +--rw latitude-degrees? uint8 | | +--rw latitude-seconds? uint8
| | +--rw latitude-minutes? uint8 | | +--rw longitude? bits
| | +--rw latitude-seconds? uint8 | | +--rw longitude-degrees? uint16
| | +--rw longitude? bits | | +--rw longitude-minutes? uint8
| | +--rw longitude-degrees? uint16 | | +--rw longitude-seconds? uint8
| | +--rw longitude-minutes? uint8 | | +--rw altitude? int32
| | +--rw longitude-seconds? uint8 | | +--rw address? simple-address
| | +--rw altitude? int32 | +--:(nat-traversal)
| | +--rw address? simple-address | | +--rw nat-traversal
| +--:(nat-traversal) | | +--rw ms-udp-port? uint16
| | +--rw nat-traversal | | +--rw etr-udp-port? uint16
| | +--rw ms-udp-port? uint16 | | +--rw global-etr-rloc? simple-address
| | +--rw etr-udp-port? uint16 | | +--rw ms-rloc? simple-address
| | +--rw global-etr-rloc? simple-address | | +--rw private-etr-rloc? simple-address
| | +--rw ms-rloc? simple-address | | +--rw rtr-rlocs* simple-address
| | +--rw private-etr-rloc? simple-address | +--:(explicit-locator-path)
| | +--rw rtr-rlocs* simple-address | | +--rw explicit-locator-path
| +--:(explicit-locator-path) | | +--rw hop* [hop-id]
| | +--rw explicit-locator-path | | +--rw hop-id string
| | +--rw hop* [address] | | +--rw address? simple-address
| | +--rw address simple-address | | +--rw lrs-bits? bits
| | +--rw lrs-bits? bits | +--:(source-dest-key)
| +--:(sourc-dest-key) | | +--rw source-dest-key
| +--rw sourc-dest-key | | +--rw source? simple-address
| +--rw source? inet:ip-prefix | | +--rw dest? simple-address
| +--rw dest? inet:ip-prefix | +--:(key-value-address)
| | +--rw key-value-address
| | +--rw key? simple-address
| | +--rw value? simple-address
| +--:(service-path)
| +--rw service-path
| +--rw service-path-id? service-path-id-type
| +--rw service-index? uint8
+--rw map-servers +--rw map-servers
| +--rw map-server* [address] | +--rw map-server* [address]
| +--rw address inet:ip-address | +--rw address inet:ip-address
| +--rw auth-key? string | +--rw auth-key? string
| +--rw auth-key-type? lisp:auth-key-type | +--rw auth-key-type? lisp:auth-key-type
+--rw rlocs +--rw rlocs? -> /lisp:lisp/locator-sets/locator-set/locator-set-name
| +--rw rloc* [id]
| +--rw id string
| +--rw (address-type)?
| | +--:(interface-name)
| | | +--rw interface? if:interface-state-ref
| | +--:(address)
| | +--rw locator-address
| | +--rw afi lisp-address-family-ref
| | +--rw instance-id? instance-id-type
| | +--rw (address)?
| | +--:(ipv4)
| | | +--rw ipv4? inet:ipv4-address
| | +--:(ipv6)
| | | +--rw ipv6? inet:ipv6-address
| | +--:(mac)
| | | +--rw mac? yang:mac-address
| | +--:(distinguished-name)
| | | +--rw distinguished-name? distinguished-name
| | +--:(lcaf)
| | +--rw lcaf
| | +--rw lcaf-type lcaf-ref
| | +--rw (address)?
| | +--:(null-address)
| | | +--rw null-address
| | | +--rw address? empty
| | +--:(afi-list)
| | | +--rw afi-list
| | | +--rw address-list* simple-address
| | +--:(instance-id)
| | | +--rw instance-id
| | | +--rw instance-id? instance-id-type
| | | +--rw mask-length? uint8
| | | +--rw address? simple-address
| | +--:(as-number)
| | | +--rw as-number
| | | +--rw as? inet:as-number
| | | +--rw address? simple-address
| | +--:(application-data)
| | | +--rw application-data
| | | +--rw address? simple-address
| | | +--rw protocol? uint8
| | | +--rw ip-tos? int32
| | | +--rw local-port-low? inet:port-number
| | | +--rw local-port-high? inet:port-number
| | | +--rw remote-port-low? inet:port-number
| | | +--rw remote-port-high? inet:port-number
| | +--:(geo-coordinates)
| | | +--rw geo-coordinates
| | | +--rw latitude? bits
| | | +--rw latitude-degrees? uint8
| | | +--rw latitude-minutes? uint8
| | | +--rw latitude-seconds? uint8
| | | +--rw longitude? bits
| | | +--rw longitude-degrees? uint16
| | | +--rw longitude-minutes? uint8
| | | +--rw longitude-seconds? uint8
| | | +--rw altitude? int32
| | | +--rw address? simple-address
| | +--:(nat-traversal)
| | | +--rw nat-traversal
| | | +--rw ms-udp-port? uint16
| | | +--rw etr-udp-port? uint16
| | | +--rw global-etr-rloc? simple-address
| | | +--rw ms-rloc? simple-address
| | | +--rw private-etr-rloc? simple-address
| | | +--rw rtr-rlocs* simple-address
| | +--:(explicit-locator-path)
| | | +--rw explicit-locator-path
| | | +--rw hop* [address]
| | | +--rw address simple-address
| | | +--rw lrs-bits? bits
| | +--:(sourc-dest-key)
| | +--rw sourc-dest-key
| | +--rw source? inet:ip-prefix
| | +--rw dest? inet:ip-prefix
| +--rw priority? uint8
| +--rw weight? uint8
| +--rw multicast-priority? uint8
| +--rw multicast-weight? uint8
+--rw record-ttl? uint32 +--rw record-ttl? uint32
+--rw want-map-notify? boolean +--rw want-map-notify? boolean
+--rw proxy-reply? boolean +--rw proxy-reply? boolean
+--rw registration-interval? uint16 +--rw registration-interval? uint16
4.2. Module Definition 4.2. Module Definition
<CODE BEGINS> file "ietf-lisp-etr@2015-07-02.yang" <CODE BEGINS> file "ietf-lisp-etr@2016-06-30.yang"
module ietf-lisp-etr { module ietf-lisp-etr {
namespace "urn:ietf:params:xml:ns:yang:lisp-etr"; namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-etr";
prefix lisp-etr; prefix lisp-etr;
import ietf-lisp { import ietf-lisp {
prefix lisp; prefix lisp;
} }
import ietf-lisp-address-types { import ietf-lisp-address-types {
prefix lcaf; prefix lcaf;
} }
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
} }
organization organization
"IETF LISP (Locator/ID Separation Protocol) Working Group"; "IETF LISP (Locator/ID Separation Protocol) Working Group";
contact contact
"lisp@ietf.org"; "lisp@ietf.org";
description description
"This YANG module defines the generic configuration "This YANG module defines the generic configuration
data for a LISP ETR. The module can be extended by vendors data for a LISP ETR. The module can be extended by vendors
to define vendor-specific configuration parameters and to define vendor-specific configuration parameters and
policies. policies.
Copyright (c) 2015 IETF Trust and the persons identified as Copyright (c) 2015 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
skipping to change at page 30, line 43 skipping to change at page 33, line 47
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC 6338; see This version of this YANG module is part of RFC 6338; see
the RFC itself for full legal notices. the RFC itself for full legal notices.
"; ";
revision 2015-07-02 { revision 2016-06-30 {
description description
"Initial revision."; "Initial revision.";
reference reference
"https://tools.ietf.org/html/rfc6830"; "https://tools.ietf.org/html/rfc6830";
} }
identity etr { identity etr {
base lisp:lisp-device; base lisp:lisp-role;
description description
"LISP ETR."; "LISP ETR.";
} }
augment "/lisp:lisp/lisp:devices/lisp:device" { augment "/lisp:lisp/lisp:lisp-router-instances/"
when "lisp:type = 'lisp-etr:etr'" { + "lisp:lisp-router-instance/lisp:lisp-role" {
when "lisp:lisp-role-type = 'lisp-etr:etr'" {
description description
"Augment is valid when LISP device type is ETR."; "Augment is valid when LISP device type is ETR.";
} }
description description
"This augments LISP devices list with ETR specific "This augments LISP devices list with ETR specific
parameters."; parameters.";
container etr-cfg { container etr-cfg {
presence "LISP ETR operation enabled"; presence "LISP ETR operation enabled";
description description
"ETR configuration parameters."; "ETR configuration parameters.";
skipping to change at page 32, line 11 skipping to change at page 35, line 18
description description
"Map-Server authentication key."; "Map-Server authentication key.";
} }
leaf auth-key-type { leaf auth-key-type {
type lisp:auth-key-type; type lisp:auth-key-type;
description description
"Map-Server authentication type."; "Map-Server authentication type.";
} }
} }
} }
container rlocs { leaf rlocs {
uses lisp:locators; type leafref {
path "/lisp:lisp/lisp:locator-sets/lisp:locator-set/"
+ "lisp:locator-set-name";
}
description description
"Locators mapped to local EID."; "Locator set mapped to this local EID.";
} }
leaf record-ttl { leaf record-ttl {
type uint32; type uint32;
description description
"Validity period of the EID to RLOCs mapping provided "Validity period of the EID to RLOCs mapping provided
in Map-Replies."; in Map-Replies.";
} }
leaf want-map-notify { leaf want-map-notify {
type boolean; type boolean;
default "true";
description description
"Flag which if set in a Map-Register requests that a "Flag which if set in a Map-Register requests that a
Map-Notify be sent in response."; Map-Notify be sent in response.";
} }
leaf proxy-reply { leaf proxy-reply {
type boolean; type boolean;
default "false";
description description
"Flag which if set in a Map-Register requests that the "Flag which if set in a Map-Register requests that the
Map-Server proxy Map-Replies for the ETR."; Map-Server proxy Map-Replies for the ETR.";
} }
leaf registration-interval { leaf registration-interval {
type uint16; type uint16;
units "seconds"; units "seconds";
default "60"; default "60";
description description
"Interval between consecutive Map-Register messages."; "Interval between consecutive Map-Register messages.";
skipping to change at page 32, line 41 skipping to change at page 36, line 4
"Flag which if set in a Map-Register requests that the "Flag which if set in a Map-Register requests that the
Map-Server proxy Map-Replies for the ETR."; Map-Server proxy Map-Replies for the ETR.";
} }
leaf registration-interval { leaf registration-interval {
type uint16; type uint16;
units "seconds"; units "seconds";
default "60"; default "60";
description description
"Interval between consecutive Map-Register messages."; "Interval between consecutive Map-Register messages.";
} }
} }
} }
} }//etr-cfg
} }//augment
} }// lisp-etr
<CODE ENDS> <CODE ENDS>
5. LISP Map Server Module 5. LISP Map Server Module
This module captures the configuration data model of a LISP Map This module captures the configuration data model of a LISP Map
Server [RFC6833]. The model also captures some operational data Server [RFC6833]. The model also captures some operational data
elements. elements.
5.1. Module Structure 5.1. Module Structure
module: ietf-lisp-mapserver module: ietf-lisp-mapserver
augment /lisp:lisp/lisp:devices/lisp:device: augment /lisp:lisp/lisp:lisp-router-instances/lisp:lisp-router-instance/lisp:lisp-role:
+--rw map-server-cfg! +--rw map-server-cfg
+--rw sites +--rw sites
| +--rw site* [site-id] | +--rw site* [site-id]
| +--rw site-id uint64 | +--rw site-id uint64
| +--rw devices | +--rw auth-key
| +--rw device* [device-id] | | +--rw auth-key-value? string
| +--rw device-id uint64 | | +--rw auth-key-type? lisp:auth-key-type
| +--rw auth-key | +--rw eids
| | +--rw auth-key-value? string | +--rw eid* [id]
| | +--rw auth-key-type? lisp:auth-key-type | +--rw id lisp:eid-id
| +--rw eids | +--rw eid-address
| +--rw eid* [id] | | +--rw address-type lisp-address-family-ref
| +--rw id lisp:eid-id | | +--rw virtual-network-id? instance-id-type
| +--rw eid-address | | +--rw (address)?
| | +--rw afi lisp-address-family-ref | | +--:(no-address)
| | +--rw instance-id? instance-id-type | | | +--rw no-address? empty
| | +--rw (address)? | | +--:(ipv4)
| | +--:(ipv4) | | | +--rw ipv4? inet:ipv4-address
| | | +--rw ipv4? inet:ipv4-address | | +--:(ipv4-prefix)
| | +--:(ipv6) | | | +--rw ipv4-prefix? inet:ipv4-prefix
| | | +--rw ipv6? inet:ipv6-address | | +--:(ipv6)
| | +--:(mac) | | | +--rw ipv6? inet:ipv6-address
| | | +--rw mac? yang:mac-address | | +--:(ipv6-prefix)
| | +--:(distinguished-name) | | | +--rw ipv6-prefix? inet:ipv6-prefix
| | | +--rw distinguished-name? distinguished-name | | +--:(mac)
| | +--:(lcaf) | | | +--rw mac? yang:mac-address
| | +--rw lcaf | | +--:(distinguished-name)
| | +--rw lcaf-type lcaf-ref | | | +--rw distinguished-name? distinguished-name-type
| | +--rw (address)? | | +--:(as-number)
| | +--:(null-address) | | | +--rw as-number? inet:as-number
| | | +--rw null-address | | +--:(null-address)
| | | +--rw address? empty | | | +--rw null-address
| | +--:(afi-list) | | | +--rw address? empty
| | | +--rw afi-list | | +--:(afi-list)
| | | +--rw address-list* simple-address | | | +--rw afi-list
| | +--:(instance-id) | | | +--rw address-list* simple-address
| | | +--rw instance-id | | +--:(instance-id)
| | | +--rw instance-id? instance-id-type | | | +--rw instance-id
| | | +--rw mask-length? uint8 | | | +--rw iid? instance-id-type
| | | +--rw address? simple-address | | | +--rw mask-length? uint8
| | +--:(as-number) | | | +--rw address? simple-address
| | | +--rw as-number | | +--:(as-number-lcaf)
| | | +--rw as? inet:as-number | | | +--rw as-number-lcaf
| | | +--rw address? simple-address | | | +--rw as? inet:as-number
| | +--:(application-data) | | | +--rw address? simple-address
| | | +--rw application-data | | +--:(application-data)
| | | +--rw address? simple-address | | | +--rw application-data
| | | +--rw protocol? uint8 | | | +--rw address? simple-address
| | | +--rw ip-tos? int32 | | | +--rw protocol? uint8
| | | +--rw local-port-low? inet:port-number | | | +--rw ip-tos? int32
| | | +--rw local-port-high? inet:port-number | | | +--rw local-port-low? inet:port-number
| | | +--rw remote-port-low? inet:port-number | | | +--rw local-port-high? inet:port-number
| | | +--rw remote-port-high? inet:port-number | | | +--rw remote-port-low? inet:port-number
| | +--:(geo-coordinates) | | | +--rw remote-port-high? inet:port-number
| | | +--rw geo-coordinates | | +--:(geo-coordinates)
| | | +--rw latitude? bits | | | +--rw geo-coordinates
| | | +--rw latitude-degrees? uint8 | | | +--rw latitude? bits
| | | +--rw latitude-minutes? uint8 | | | +--rw latitude-degrees? uint8
| | | +--rw latitude-seconds? uint8 | | | +--rw latitude-minutes? uint8
| | | +--rw longitude? bits | | | +--rw latitude-seconds? uint8
| | | +--rw longitude-degrees? uint16 | | | +--rw longitude? bits
| | | +--rw longitude-minutes? uint8 | | | +--rw longitude-degrees? uint16
| | | +--rw longitude-seconds? uint8 | | | +--rw longitude-minutes? uint8
| | | +--rw altitude? int32 | | | +--rw longitude-seconds? uint8
| | | +--rw address? simple-address | | | +--rw altitude? int32
| | +--:(nat-traversal) | | | +--rw address? simple-address
| | | +--rw nat-traversal | | +--:(nat-traversal)
| | | +--rw ms-udp-port? uint16 | | | +--rw nat-traversal
| | | +--rw etr-udp-port? uint16 | | | +--rw ms-udp-port? uint16
| | | +--rw global-etr-rloc? simple-address | | | +--rw etr-udp-port? uint16
| | | +--rw ms-rloc? simple-address | | | +--rw global-etr-rloc? simple-address
| | | +--rw private-etr-rloc? simple-address | | | +--rw ms-rloc? simple-address
| | | +--rw rtr-rlocs* simple-address | | | +--rw private-etr-rloc? simple-address
| | +--:(explicit-locator-path) | | | +--rw rtr-rlocs* simple-address
| | | +--rw explicit-locator-path | | +--:(explicit-locator-path)
| | | +--rw hop* [address] | | | +--rw explicit-locator-path
| | | +--rw address simple-address | | | +--rw hop* [hop-id]
| | | +--rw lrs-bits? bits | | | +--rw hop-id string
| | +--:(sourc-dest-key) | | | +--rw address? simple-address
| | +--rw sourc-dest-key | | | +--rw lrs-bits? bits
| | +--rw source? inet:ip-prefix | | +--:(source-dest-key)
| | +--rw dest? inet:ip-prefix | | | +--rw source-dest-key
| +--rw more-specifics-accepted? boolean | | | +--rw source? simple-address
| +--rw mapping-expiration-timeout? int16 | | | +--rw dest? simple-address
+--rw static-mappings | | +--:(key-value-address)
| +--rw mapping* [id] | | | +--rw key-value-address
| +--rw id eid-id | | | +--rw key? simple-address
| +--rw eid | | | +--rw value? simple-address
| | +--rw afi lisp-address-family-ref | | +--:(service-path)
| | +--rw instance-id? instance-id-type | | +--rw service-path
| | +--rw (address)? | | +--rw service-path-id? service-path-id-type
| | +--:(ipv4) | | +--rw service-index? uint8
| | | +--rw ipv4? inet:ipv4-address | +--rw more-specifics-accepted? boolean
| | +--:(ipv6) | +--rw mapping-expiration-timeout? int16
| | | +--rw ipv6? inet:ipv6-address +--rw mapping-system-type? lisp:mapping-system-ref
| | +--:(mac) augment /lisp:lisp-state/lisp:lisp-router-instances/lisp:lisp-router-instance/lisp:lisp-role:
| | | +--rw mac? yang:mac-address
| | +--:(distinguished-name)
| | | +--rw distinguished-name? distinguished-name
| | +--:(lcaf)
| | +--rw lcaf
| | +--rw lcaf-type lcaf-ref
| | +--rw (address)?
| | +--:(null-address)
| | | +--rw null-address
| | | +--rw address? empty
| | +--:(afi-list)
| | | +--rw afi-list
| | | +--rw address-list* simple-address
| | +--:(instance-id)
| | | +--rw instance-id
| | | +--rw instance-id? instance-id-type
| | | +--rw mask-length? uint8
| | | +--rw address? simple-address
| | +--:(as-number)
| | | +--rw as-number
| | | +--rw as? inet:as-number
| | | +--rw address? simple-address
| | +--:(application-data)
| | | +--rw application-data
| | | +--rw address? simple-address
| | | +--rw protocol? uint8
| | | +--rw ip-tos? int32
| | | +--rw local-port-low? inet:port-number
| | | +--rw local-port-high? inet:port-number
| | | +--rw remote-port-low? inet:port-number
| | | +--rw remote-port-high? inet:port-number
| | +--:(geo-coordinates)
| | | +--rw geo-coordinates
| | | +--rw latitude? bits
| | | +--rw latitude-degrees? uint8
| | | +--rw latitude-minutes? uint8
| | | +--rw latitude-seconds? uint8
| | | +--rw longitude? bits
| | | +--rw longitude-degrees? uint16
| | | +--rw longitude-minutes? uint8
| | | +--rw longitude-seconds? uint8
| | | +--rw altitude? int32
| | | +--rw address? simple-address
| | +--:(nat-traversal)
| | | +--rw nat-traversal
| | | +--rw ms-udp-port? uint16
| | | +--rw etr-udp-port? uint16
| | | +--rw global-etr-rloc? simple-address
| | | +--rw ms-rloc? simple-address
| | | +--rw private-etr-rloc? simple-address
| | | +--rw rtr-rlocs* simple-address
| | +--:(explicit-locator-path)
| | | +--rw explicit-locator-path
| | | +--rw hop* [address]
| | | +--rw address simple-address
| | | +--rw lrs-bits? bits
| | +--:(sourc-dest-key)
| | +--rw sourc-dest-key
| | +--rw source? inet:ip-prefix
| | +--rw dest? inet:ip-prefix
| +--rw ttl? uint32
| +--rw authoritative? bits
| +--rw (locator-list)?
| +--:(negative-mapping)
| | +--rw map-reply-action? map-reply-action
| +--:(positive-mapping)
| +--rw rlocs
| +--rw rloc* [id]
| +--rw id string
| +--rw (address-type)?
| | +--:(interface-name)
| | | +--rw interface? if:interface-state-ref
| | +--:(address)
| | +--rw locator-address
| | +--rw afi lisp-address-family-ref
| | +--rw instance-id? instance-id-type
| | +--rw (address)?
| | +--:(ipv4)
| | | +--rw ipv4? inet:ipv4-address
| | +--:(ipv6)
| | | +--rw ipv6? inet:ipv6-address
| | +--:(mac)
| | | +--rw mac? yang:mac-address
| | +--:(distinguished-name)
| | | +--rw distinguished-name? distinguished-name
| | +--:(lcaf)
| | +--rw lcaf
| | +--rw lcaf-type lcaf-ref
| | +--rw (address)?
| | +--:(null-address)
| | | +--rw null-address
| | | +--rw address? empty
| | +--:(afi-list)
| | | +--rw afi-list
| | | +--rw address-list* simple-address
| | +--:(instance-id)
| | | +--rw instance-id
| | | +--rw instance-id? instance-id-type
| | | +--rw mask-length? uint8
| | | +--rw address? simple-address
| | +--:(as-number)
| | | +--rw as-number
| | | +--rw as? inet:as-number
| | | +--rw address? simple-address
| | +--:(application-data)
| | | +--rw application-data
| | | +--rw address? simple-address
| | | +--rw protocol? uint8
| | | +--rw ip-tos? int32
| | | +--rw local-port-low? inet:port-number
| | | +--rw local-port-high? inet:port-number
| | | +--rw remote-port-low? inet:port-number
| | | +--rw remote-port-high? inet:port-number
| | +--:(geo-coordinates)
| | | +--rw geo-coordinates
| | | +--rw latitude? bits
| | | +--rw latitude-degrees? uint8
| | | +--rw latitude-minutes? uint8
| | | +--rw latitude-seconds? uint8
| | | +--rw longitude? bits
| | | +--rw longitude-degrees? uint16
| | | +--rw longitude-minutes? uint8
| | | +--rw longitude-seconds? uint8
| | | +--rw altitude? int32
| | | +--rw address? simple-address
| | +--:(nat-traversal)
| | | +--rw nat-traversal
| | | +--rw ms-udp-port? uint16
| | | +--rw etr-udp-port? uint16
| | | +--rw global-etr-rloc? simple-address
| | | +--rw ms-rloc? simple-address
| | | +--rw private-etr-rloc? simple-address
| | | +--rw rtr-rlocs* simple-address
| | +--:(explicit-locator-path)
| | | +--rw explicit-locator-path
| | | +--rw hop* [address]
| | | +--rw address simple-address
| | | +--rw lrs-bits? bits
| | +--:(sourc-dest-key)
| | +--rw sourc-dest-key
| | +--rw source? inet:ip-prefix
| | +--rw dest? inet:ip-prefix
| +--rw priority? uint8
| +--rw weight? uint8
| +--rw multicast-priority? uint8
| +--rw multicast-weight? uint8
+--rw (mapping-system)
+--:(ddt-mapping-system)
| +--rw ddt-mapping-system!
| +--rw ddt-root* inet:ip-address
| +--rw authoritative-eids
| +--rw authoritative-eid* [id]
| +--rw id lisp:eid-id
| +--rw eid-address
| +--rw afi lisp-address-family-ref
| +--rw instance-id? instance-id-type
| +--rw (address)?
| +--:(ipv4)
| | +--rw ipv4? inet:ipv4-address
| +--:(ipv6)
| | +--rw ipv6? inet:ipv6-address
| +--:(mac)
| | +--rw mac? yang:mac-address
| +--:(distinguished-name)
| | +--rw distinguished-name? distinguished-name
| +--:(lcaf)
| +--rw lcaf
| +--rw lcaf-type lcaf-ref
| +--rw (address)?
| +--:(null-address)
| | +--rw null-address
| | +--rw address? empty
| +--:(afi-list)
| | +--rw afi-list
| | +--rw address-list* simple-address
| +--:(instance-id)
| | +--rw instance-id
| | +--rw instance-id? instance-id-type
| | +--rw mask-length? uint8
| | +--rw address? simple-address
| +--:(as-number)
| | +--rw as-number
| | +--rw as? inet:as-number
| | +--rw address? simple-address
| +--:(application-data)
| | +--rw application-data
| | +--rw address? simple-address
| | +--rw protocol? uint8
| | +--rw ip-tos? int32
| | +--rw local-port-low? inet:port-number
| | +--rw local-port-high? inet:port-number
| | +--rw remote-port-low? inet:port-number
| | +--rw remote-port-high? inet:port-number
| +--:(geo-coordinates)
| | +--rw geo-coordinates
| | +--rw latitude? bits
| | +--rw latitude-degrees? uint8
| | +--rw latitude-minutes? uint8
| | +--rw latitude-seconds? uint8
| | +--rw longitude? bits
| | +--rw longitude-degrees? uint16
| | +--rw longitude-minutes? uint8
| | +--rw longitude-seconds? uint8
| | +--rw altitude? int32
| | +--rw address? simple-address
| +--:(nat-traversal)
| | +--rw nat-traversal
| | +--rw ms-udp-port? uint16
| | +--rw etr-udp-port? uint16
| | +--rw global-etr-rloc? simple-address
| | +--rw ms-rloc? simple-address
| | +--rw private-etr-rloc? simple-address
| | +--rw rtr-rlocs* simple-address
| +--:(explicit-locator-path)
| | +--rw explicit-locator-path
| | +--rw hop* [address]
| | +--rw address simple-address
| | +--rw lrs-bits? bits
| +--:(sourc-dest-key)
| +--rw sourc-dest-key
| +--rw source? inet:ip-prefix
| +--rw dest? inet:ip-prefix
+--:(alt-mapping-system)
+--rw alt-mapping-system!
augment /lisp:lisp-state/lisp:devices/lisp:device:
+--ro ms-state +--ro ms-state
+--ro registered-mappings +--ro registered-mappings
+--ro mapping* [id] +--ro mapping* [id]
+--ro id eid-id +--ro id eid-id
+--ro eid +--ro eid
| +--ro afi lisp-address-family-ref | +--ro address-type lisp-address-family-ref
| +--ro instance-id? instance-id-type | +--ro virtual-network-id? instance-id-type
| +--ro (address)? | +--ro (address)?
| +--:(no-address)
| | +--ro no-address? empty
| +--:(ipv4) | +--:(ipv4)
| | +--ro ipv4? inet:ipv4-address | | +--ro ipv4? inet:ipv4-address
| +--:(ipv4-prefix)
| | +--ro ipv4-prefix? inet:ipv4-prefix
| +--:(ipv6) | +--:(ipv6)
| | +--ro ipv6? inet:ipv6-address | | +--ro ipv6? inet:ipv6-address
| +--:(ipv6-prefix)
| | +--ro ipv6-prefix? inet:ipv6-prefix
| +--:(mac) | +--:(mac)
| | +--ro mac? yang:mac-address | | +--ro mac? yang:mac-address
| +--:(distinguished-name) | +--:(distinguished-name)
| | +--ro distinguished-name? distinguished-name | | +--ro distinguished-name? distinguished-name-type
| +--:(lcaf) | +--:(as-number)
| +--ro lcaf | | +--ro as-number? inet:as-number
| +--ro lcaf-type lcaf-ref | +--:(null-address)
| +--ro (address)? | | +--ro null-address
| +--:(null-address) | | +--ro address? empty
| | +--ro null-address | +--:(afi-list)
| | +--ro address? empty | | +--ro afi-list
| +--:(afi-list) | | +--ro address-list* simple-address
| | +--ro afi-list | +--:(instance-id)
| | +--ro address-list* simple-address | | +--ro instance-id
| +--:(instance-id) | | +--ro iid? instance-id-type
| | +--ro instance-id | | +--ro mask-length? uint8
| | +--ro instance-id? instance-id-type | | +--ro address? simple-address
| | +--ro mask-length? uint8 | +--:(as-number-lcaf)
| | +--ro address? simple-address | | +--ro as-number-lcaf
| +--:(as-number) | | +--ro as? inet:as-number
| | +--ro as-number | | +--ro address? simple-address
| | +--ro as? inet:as-number | +--:(application-data)
| | +--ro address? simple-address | | +--ro application-data
| +--:(application-data) | | +--ro address? simple-address
| | +--ro application-data | | +--ro protocol? uint8
| | +--ro address? simple-address | | +--ro ip-tos? int32
| | +--ro protocol? uint8 | | +--ro local-port-low? inet:port-number
| | +--ro ip-tos? int32 | | +--ro local-port-high? inet:port-number
| | +--ro local-port-low? inet:port-number | | +--ro remote-port-low? inet:port-number
| | +--ro local-port-high? inet:port-number | | +--ro remote-port-high? inet:port-number
| | +--ro remote-port-low? inet:port-number | +--:(geo-coordinates)
| | +--ro remote-port-high? inet:port-number | | +--ro geo-coordinates
| +--:(geo-coordinates) | | +--ro latitude? bits
| | +--ro geo-coordinates | | +--ro latitude-degrees? uint8
| | +--ro latitude? bits | | +--ro latitude-minutes? uint8
| | +--ro latitude-degrees? uint8 | | +--ro latitude-seconds? uint8
| | +--ro latitude-minutes? uint8 | | +--ro longitude? bits
| | +--ro latitude-seconds? uint8 | | +--ro longitude-degrees? uint16
| | +--ro longitude? bits | | +--ro longitude-minutes? uint8
| | +--ro longitude-degrees? uint16 | | +--ro longitude-seconds? uint8
| | +--ro longitude-minutes? uint8 | | +--ro altitude? int32
| | +--ro longitude-seconds? uint8 | | +--ro address? simple-address
| | +--ro altitude? int32 | +--:(nat-traversal)
| | +--ro address? simple-address | | +--ro nat-traversal
| +--:(nat-traversal) | | +--ro ms-udp-port? uint16
| | +--ro nat-traversal | | +--ro etr-udp-port? uint16
| | +--ro ms-udp-port? uint16 | | +--ro global-etr-rloc? simple-address
| | +--ro etr-udp-port? uint16 | | +--ro ms-rloc? simple-address
| | +--ro global-etr-rloc? simple-address | | +--ro private-etr-rloc? simple-address
| | +--ro ms-rloc? simple-address | | +--ro rtr-rlocs* simple-address
| | +--ro private-etr-rloc? simple-address | +--:(explicit-locator-path)
| | +--ro rtr-rlocs* simple-address | | +--ro explicit-locator-path
| +--:(explicit-locator-path) | | +--ro hop* [hop-id]
| | +--ro explicit-locator-path | | +--ro hop-id string
| | +--ro hop* [address] | | +--ro address? simple-address
| | +--ro address simple-address | | +--ro lrs-bits? bits
| | +--ro lrs-bits? bits | +--:(source-dest-key)
| +--:(sourc-dest-key) | | +--ro source-dest-key
| +--ro sourc-dest-key | | +--ro source? simple-address
| +--ro source? inet:ip-prefix | | +--ro dest? simple-address
| +--ro dest? inet:ip-prefix | +--:(key-value-address)
| | +--ro key-value-address
| | +--ro key? simple-address
| | +--ro value? simple-address
| +--:(service-path)
| +--ro service-path
| +--ro service-path-id? service-path-id-type
| +--ro service-index? uint8
+--ro ttl? uint32 +--ro ttl? uint32
+--ro authoritative? bits +--ro authoritative? bits
+--ro static? boolean
+--ro (locator-list)? +--ro (locator-list)?
+--:(negative-mapping) +--:(negative-mapping)
| +--ro map-reply-action? map-reply-action | +--ro map-reply-action? map-reply-action
+--:(positive-mapping) +--:(positive-mapping)
+--ro rlocs +--ro rlocs
+--ro rloc* [id] +--ro locator* [id]
+--ro id string +--ro id string
+--ro (address-type)? +--ro locator-address
| +--:(interface-name) | +--ro address-type lisp-address-family-ref
| | +--ro interface? if:interface-state-ref | +--ro virtual-network-id? instance-id-type
| +--:(address) | +--ro (address)?
| +--ro locator-address | +--:(no-address)
| +--ro afi lisp-address-family-ref | | +--ro no-address? empty
| +--ro instance-id? instance-id-type | +--:(ipv4)
| +--ro (address)? | | +--ro ipv4? inet:ipv4-address
| +--:(ipv4) | +--:(ipv4-prefix)
| | +--ro ipv4? inet:ipv4-address | | +--ro ipv4-prefix? inet:ipv4-prefix
| +--:(ipv6) | +--:(ipv6)
| | +--ro ipv6? inet:ipv6-address | | +--ro ipv6? inet:ipv6-address
| +--:(mac) | +--:(ipv6-prefix)
| | +--ro mac? yang:mac-address | | +--ro ipv6-prefix? inet:ipv6-prefix
| +--:(distinguished-name) | +--:(mac)
| | +--ro distinguished-name? distinguished-name | | +--ro mac? yang:mac-address
| +--:(lcaf) | +--:(distinguished-name)
| +--ro lcaf | | +--ro distinguished-name? distinguished-name-type
| +--ro lcaf-type lcaf-ref | +--:(as-number)
| +--ro (address)? | | +--ro as-number? inet:as-number
| +--:(null-address) | +--:(null-address)
| | +--ro null-address | | +--ro null-address
| | +--ro address? empty | | +--ro address? empty
| +--:(afi-list) | +--:(afi-list)
| | +--ro afi-list | | +--ro afi-list
| | +--ro address-list* simple-address | | +--ro address-list* simple-address
| +--:(instance-id) | +--:(instance-id)
| | +--ro instance-id | | +--ro instance-id
| | +--ro instance-id? instance-id-type | | +--ro iid? instance-id-type
| | +--ro mask-length? uint8 | | +--ro mask-length? uint8
| | +--ro address? simple-address | | +--ro address? simple-address
| +--:(as-number) | +--:(as-number-lcaf)
| | +--ro as-number | | +--ro as-number-lcaf
| | +--ro as? inet:as-number | | +--ro as? inet:as-number
| | +--ro address? simple-address | | +--ro address? simple-address
| +--:(application-data) | +--:(application-data)
| | +--ro application-data | | +--ro application-data
| | +--ro address? simple-address | | +--ro address? simple-address
| | +--ro protocol? uint8 | | +--ro protocol? uint8
| | +--ro ip-tos? int32 | | +--ro ip-tos? int32
| | +--ro local-port-low? inet:port-number | | +--ro local-port-low? inet:port-number
| | +--ro local-port-high? inet:port-number | | +--ro local-port-high? inet:port-number
| | +--ro remote-port-low? inet:port-number | | +--ro remote-port-low? inet:port-number
| | +--ro remote-port-high? inet:port-number | | +--ro remote-port-high? inet:port-number
| +--:(geo-coordinates) | +--:(geo-coordinates)
| | +--ro geo-coordinates | | +--ro geo-coordinates
| | +--ro latitude? bits | | +--ro latitude? bits
| | +--ro latitude-degrees? uint8 | | +--ro latitude-degrees? uint8
| | +--ro latitude-minutes? uint8 | | +--ro latitude-minutes? uint8
| | +--ro latitude-seconds? uint8 | | +--ro latitude-seconds? uint8
| | +--ro longitude? bits | | +--ro longitude? bits
| | +--ro longitude-degrees? uint16 | | +--ro longitude-degrees? uint16
| | +--ro longitude-minutes? uint8 | | +--ro longitude-minutes? uint8
| | +--ro longitude-seconds? uint8 | | +--ro longitude-seconds? uint8
| | +--ro altitude? int32 | | +--ro altitude? int32
| | +--ro address? simple-address | | +--ro address? simple-address
| +--:(nat-traversal) | +--:(nat-traversal)
| | +--ro nat-traversal | | +--ro nat-traversal
| | +--ro ms-udp-port? uint16 | | +--ro ms-udp-port? uint16
| | +--ro etr-udp-port? uint16 | | +--ro etr-udp-port? uint16
| | +--ro global-etr-rloc? simple-address | | +--ro global-etr-rloc? simple-address
| | +--ro ms-rloc? simple-address | | +--ro ms-rloc? simple-address
| | +--ro private-etr-rloc? simple-address | | +--ro private-etr-rloc? simple-address
| | +--ro rtr-rlocs* simple-address | | +--ro rtr-rlocs* simple-address
| +--:(explicit-locator-path) | +--:(explicit-locator-path)
| | +--ro explicit-locator-path | | +--ro explicit-locator-path
| | +--ro hop* [address] | | +--ro hop* [hop-id]
| | +--ro address simple-address | | +--ro hop-id string
| | +--ro lrs-bits? bits | | +--ro address? simple-address
| +--:(sourc-dest-key) | | +--ro lrs-bits? bits
| +--ro sourc-dest-key | +--:(source-dest-key)
| +--ro source? inet:ip-prefix | | +--ro source-dest-key
| +--ro dest? inet:ip-prefix | | +--ro source? simple-address
| | +--ro dest? simple-address
| +--:(key-value-address)
| | +--ro key-value-address
| | +--ro key? simple-address
| | +--ro value? simple-address
| +--:(service-path)
| +--ro service-path
| +--ro service-path-id? service-path-id-type
| +--ro service-index? uint8
+--ro priority? uint8 +--ro priority? uint8
+--ro weight? uint8 +--ro weight? uint8
+--ro multicast-priority? uint8 +--ro multicast-priority? uint8
+--ro multicast-weight? uint8 +--ro multicast-weight? uint8
5.2. Module Definition 5.2. Module Definition
<CODE BEGINS> file "ietf-lisp-mapserver@2015-07-02.yang" <CODE BEGINS> file "ietf-lisp-mapserver@2016-06-30.yang"
module ietf-lisp-map-server { module ietf-lisp-mapserver {
namespace "urn:ietf:params:xml:ns:yang:lisp-ms"; namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-mapserver";
prefix lisp-ms; prefix lisp-ms;
import ietf-lisp {
prefix lisp;
}
import ietf-lisp-address-types {
prefix lcaf;
}
import ietf-inet-types {
prefix inet;
}
organization
"IETF LISP (Locator/ID Separation Protocol) Working Group";
contact
"lisp@ietf.org";
description
"This YANG module defines the generic configuration
data for a LISP Map-Server. The module can be extended by
vendors to define vendor-specific configuration parameters
and policies.
Copyright (c) 2015 IETF Trust and the persons identified as
authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents
(http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC 6338; see
the RFC itself for full legal notices.
";
revision 2015-07-02 {
description
"Initial revision.";
reference
"https://tools.ietf.org/html/rfc6833";
}
identity ms {
base lisp:lisp-device;
description
"LISP Map-Server.";
}
augment "/lisp:lisp/lisp:devices/lisp:device" {
when "lisp:type = 'lisp-ms:ms'" {
description
"Augment is valid when LISP device type is Map-Server.";
}
description
"This augments LISP devices list with Map-Server specific
parameters.";
container map-server-cfg {
presence "LISP Map-Server operation enabled";
description
"Map-Server configuration parameters.";
container sites {
description
"Sites for which the Map-Server accepts registrations.";
list site {
key "site-id";
description
"List of sites for which the Map-Server acceptes
registrations.";
leaf site-id {
type uint64;
description
"Site identifier.";
}
// This model can be augmented with below for per site auth-key
// leaf auth-key {
// description "clear text authentication key";
// type string;
// }
container devices {
description
"Site devices registered with the Map-Server.";
list device {
key "device-id";
description
"List of site devices registered with the
Map-Server.";
leaf device-id {
type uint64;
description
"Device identifier.";
}
container auth-key {
description
"Device authentication key.";
leaf auth-key-value {
type string;
description
"Clear text authentication key";
}
leaf auth-key-type {
type lisp:auth-key-type;
description
"Authentication key type.";
}
}
container eids {
description
"EIDs registered by device.";
list eid {
key "id";
description
"List of EIDs registered by device.";
leaf id {
type lisp:eid-id;
description
"Id of the EID registered.";
}
container eid-address {
uses lcaf:lisp-address;
description
"EID in generic LISP address format registered
with the Map-Server.";
}
leaf more-specifics-accepted {
type boolean;
description
"Flag indicating if more specific prefixes
can be registered.";
}
leaf mapping-expiration-timeout {
type int16;
units "seconds";
default "180"; //3 times the mapregister int
description
"Time before mapping is expired if no new
registrations are received.";
}
// This model can be augmented to have below for per-eid auth-key
// leaf auth-key {
// description "clear text authentication key";
// type string;
// }
}
}
}
}
}
}
container static-mappings {
uses lisp:mappings;
description
"Datastore of statically registred mappings.";
}
choice mapping-system {
mandatory true;
description
"Interface to Mapping System.";
container ddt-mapping-system {
presence "DDT Mapping System in use";
description
"DDT Mapping System interface.";
leaf-list ddt-root {
type inet:ip-address;
description
"List of DDT root address.";
}
container authoritative-eids {
description
"Authoritative EIDs";
list authoritative-eid {
key "id";
description
"List of authoritative EIDs.";
leaf id {
type lisp:eid-id;
description
"EID id.";
}
container eid-address {
uses lcaf:lisp-address;
description
"EID in generic LISP address format.";
}
}
}
}
container alt-mapping-system {
presence "ALT Mapping System in use";
description
"ALT Mapping System interface.";
// TBD
}
}
}
}
augment "/lisp:lisp-state/lisp:devices/lisp:device" {
when "lisp:type = 'lisp-ms:ms'" {
description
"Augment is valid when LISP device type is Map-Server.";
}
description
"This augments LISP devices list state with Map-Server
specific parameters.";
container ms-state {
config false;
description
"Map-Server state.";
container registered-mappings {
uses lisp:mappings;
description
"Datastore of registred mappings.";
}
}
}
}
<CODE ENDS>
6. LISP Map Resolver Module
This module captures the configuration data model of a LISP Map
Resolver [RFC6833]. The model also captures some operational data
elements.
6.1. Module Structure
module: ietf-lisp-mapresolver
augment /lisp:lisp/lisp:devices/lisp:device:
+--rw map-resolver-cfg!
+--rw (mapping-system)
+--:(ddt-mapping-system)
| +--rw ddt-mapping-system!
| +--rw ddt-root* inet:ip-address
+--:(alt-mapping-system)
+--rw alt-mapping-system!
6.2. Module Definition
<CODE BEGINS> file "ietf-lisp-mapresolver@2015-07-02.yang"
module ietf-lisp-map-resolver {
namespace "urn:ietf:params:xml:ns:yang:lisp-mr";
prefix lisp-mr;
import ietf-lisp { import ietf-lisp {
prefix lisp; prefix lisp;
} }
import ietf-inet-types { import ietf-lisp-address-types {
prefix inet; prefix lcaf;
} }
organization organization
"IETF LISP (Locator/ID Separation Protocol) Working Group"; "IETF LISP (Locator/ID Separation Protocol) Working Group";
contact contact
"lisp@ietf.org"; "lisp@ietf.org";
description description
"This YANG module defines the generic configuration "This YANG module defines the generic configuration
data for a LISP Map-Resolver. The module can be extended by data for a LISP Map-Server. The module can be extended by
vendors to define vendor-specific configuration parameters vendors to define vendor-specific configuration parameters
and policies. and policies.
Copyright (c) 2015 IETF Trust and the persons identified as Copyright (c) 2015 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC 6338; see This version of this YANG module is part of RFC 6338; see
the RFC itself for full legal notices. the RFC itself for full legal notices.
"; ";
revision 2015-07-02 {
revision 2016-06-30 {
description description
"Initial revision."; "Initial revision.";
reference reference
"https://tools.ietf.org/html/rfc6833"; "https://tools.ietf.org/html/rfc6833";
} }
identity mr {
base lisp:lisp-device; identity ms {
description base lisp:lisp-role;
"LISP Map-Resolver."; description
"LISP Map-Server.";
} }
augment "/lisp:lisp/lisp:devices/lisp:device" {
when "lisp:type = 'lisp-mr:mr'" { augment "/lisp:lisp/lisp:lisp-router-instances"
+ "/lisp:lisp-router-instance/lisp:lisp-role" {
when "lisp:lisp-role-type = 'lisp-ms:ms'" {
description description
"Augment is valid when LISP device type is Map-Resolver."; "Augment is valid when LISP device type is Map-Server.";
} }
description description
"This augments LISP devices list with Map-Resolver specific "This augments LISP devices list with Map-Server specific
parameters."; parameters.";
container map-resolver-cfg { container map-server-cfg {
presence "LISP Map-Resolver operation enabled";
description description
"Map-Resolver configuration parameters."; "Map-Server configuration parameters.";
choice mapping-system { container sites {
mandatory true;
description description
"Mapping system interface."; "Sites for which the Map-Server accepts registrations.";
container ddt-mapping-system { list site {
presence "DDT Mapping System in use"; key "site-id";
description description
"DDT mapping system interface."; "List of sites for which the Map-Server acceptes
leaf-list ddt-root { registrations.";
type inet:ip-address; leaf site-id {
type uint64;
description description
"List of DDT root addresses."; "Site identifier.";
}
container auth-key {
description
"Site authentication key.";
leaf auth-key-value {
type string;
description
"Clear text authentication key";
}
leaf auth-key-type {
type lisp:auth-key-type;
description
"Authentication key type.";
}
}
container eids {
description
"EIDs registered by device.";
list eid {
key "id";
description
"List of EIDs registered by device.";
leaf id {
type lisp:eid-id;
description
"Id of the EID registered.";
}
container eid-address {
uses lcaf:lisp-address;
description
"EID in generic LISP address format registered
with the Map-Server.";
}
leaf more-specifics-accepted {
type boolean;
default "false";
description
"Flag indicating if more specific prefixes
can be registered.";
}
leaf mapping-expiration-timeout {
type int16;
units "seconds";
default "180"; //3 times the mapregister int
description
"Time before mapping is expired if no new
registrations are received.";
}
// This model can be augmented to have below for per-eid auth-key
// leaf auth-key {
// description "clear text authentication key";
// type string;
// }
}
} }
} }
container alt-mapping-system{ }
presence "ALT Mapping System in use"; leaf mapping-system-type {
description type lisp:mapping-system-ref;
"ALT mapping system interface."; description
// TBD "A reference to the mapping system";
} }
}
}
augment "/lisp:lisp-state/lisp:lisp-router-instances"
+ "/lisp:lisp-router-instance/lisp:lisp-role" {
when "lisp:lisp-role-type = 'lisp-ms:ms'" {
description
"Augment is valid when LISP device type is Map-Server.";
}
description
"This augments LISP devices list state with Map-Server
specific parameters.";
container ms-state {
config false;
description
"Map-Server state.";
container registered-mappings {
uses lisp:mappings;
description
"Datastore of registred mappings.";
} }
} }
} }
} }
<CODE ENDS> <CODE ENDS>
6. LISP Map Resolver Module
This module captures the configuration data model of a LISP Map
Resolver [RFC6833]. The model also captures some operational data
elements.
6.1. Module Structure
module: ietf-lisp-mapresolver
augment /lisp:lisp/lisp:lisp-router-instances/lisp:lisp-router-instance/lisp:lisp-role:
+--rw map-resolver-cfg
+--rw mapping-system-type? lisp:mapping-system-ref
+--rw ms-address? inet:ip-address
6.2. Module Definition
<CODE BEGINS> file "ietf-lisp-mapresolver@2016-06-30.yang"
module ietf-lisp-mapresolver {
namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-mapresolver";
prefix lisp-mr;
import ietf-lisp {
prefix lisp;
}
import ietf-inet-types {
prefix inet;
}
organization
"IETF LISP (Locator/ID Separation Protocol) Working Group";
contact
"lisp@ietf.org";
description
"This YANG module defines the generic configuration
data for a LISP Map-Resolver. The module can be extended by
vendors to define vendor-specific configuration parameters
and policies.
Copyright (c) 2015 IETF Trust and the persons identified as
authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents
(http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC 6338; see
the RFC itself for full legal notices.
";
revision 2016-06-30 {
description
"Initial revision.";
reference
"https://tools.ietf.org/html/rfc6833";
}
identity mr {
base lisp:lisp-role;
description
"LISP Map-Resolver.";
}
augment "/lisp:lisp/lisp:lisp-router-instances"
+"/lisp:lisp-router-instance/lisp:lisp-role" {
when "lisp:lisp-role-type = 'lisp-mr:mr'" {
description
"Augment is valid when LISP device type is Map-Resolver.";
}
description
"This augments LISP devices list with Map-Resolver specific
parameters.";
container map-resolver-cfg {
description
"Map-Resolver configuration parameters.";
leaf mapping-system-type {
type lisp:mapping-system-ref;
description
"A reference to the mapping system";
}
leaf ms-address {
when "../mapping-system-type = 'lisp-mr:single-node-mapping-system'";
type inet:ip-address;
description
"address to reach the Map Server when "
+ "lisp-mr:single-node-mapping-system is being used.";
}
}//map-resolver-cfg
}//aug
// TBD Operational model/container
// container cached-mappings {
// config false;
// uses mappings;
// }
}
<CODE ENDS>
7. LISP Proxy ITR Module 7. LISP Proxy ITR Module
This module captures the configuration data model of a LISP Proxy ITR This module captures the configuration data model of a LISP Proxy ITR
[RFC6832]. The model may also capture some operational data [RFC6832]. The model may also capture some operational data
elements. elements.
7.1. Module Structure 7.1. Module Structure
module: ietf-lisp-pitr module: ietf-lisp-pitr
augment /lisp:lisp/lisp:devices/lisp:device: augment /lisp:lisp/lisp:lisp-router-instances/lisp:lisp-router-instance/lisp:lisp-role:
+--rw proxy-itr-cfg! +--rw proxy-itr-cfg!
+--rw servicing-eids +--rw servicing-eids
| +--rw eid* [id] | +--rw servicing-eid* [id]
| +--rw id lisp:eid-id | +--rw id lisp:eid-id
| +--rw eid-address | +--rw eid-address
| +--rw afi lisp-address-family-ref | +--rw address-type lisp-address-family-ref
| +--rw instance-id? instance-id-type | +--rw virtual-network-id? instance-id-type
| +--rw (address)? | +--rw (address)?
| +--:(no-address)
| | +--rw no-address? empty
| +--:(ipv4) | +--:(ipv4)
| | +--rw ipv4? inet:ipv4-address | | +--rw ipv4? inet:ipv4-address
| +--:(ipv4-prefix)
| | +--rw ipv4-prefix? inet:ipv4-prefix
| +--:(ipv6) | +--:(ipv6)
| | +--rw ipv6? inet:ipv6-address | | +--rw ipv6? inet:ipv6-address
| +--:(ipv6-prefix)
| | +--rw ipv6-prefix? inet:ipv6-prefix
| +--:(mac) | +--:(mac)
| | +--rw mac? yang:mac-address | | +--rw mac? yang:mac-address
| +--:(distinguished-name) | +--:(distinguished-name)
| | +--rw distinguished-name? distinguished-name | | +--rw distinguished-name? distinguished-name-type
| +--:(lcaf) | +--:(as-number)
| +--rw lcaf | | +--rw as-number? inet:as-number
| +--rw lcaf-type lcaf-ref | +--:(null-address)
| +--rw (address)? | | +--rw null-address
| +--:(null-address) | | +--rw address? empty
| | +--rw null-address | +--:(afi-list)
| | +--rw address? empty | | +--rw afi-list
| +--:(afi-list) | | +--rw address-list* simple-address
| | +--rw afi-list | +--:(instance-id)
| | +--rw address-list* simple-address | | +--rw instance-id
| +--:(instance-id) | | +--rw iid? instance-id-type
| | +--rw instance-id | | +--rw mask-length? uint8
| | +--rw instance-id? instance-id-type | | +--rw address? simple-address
| | +--rw mask-length? uint8 | +--:(as-number-lcaf)
| | +--rw address? simple-address | | +--rw as-number-lcaf
| +--:(as-number) | | +--rw as? inet:as-number
| | +--rw as-number | | +--rw address? simple-address
| | +--rw as? inet:as-number | +--:(application-data)
| | +--rw address? simple-address | | +--rw application-data
| +--:(application-data) | | +--rw address? simple-address
| | +--rw application-data | | +--rw protocol? uint8
| | +--rw address? simple-address | | +--rw ip-tos? int32
| | +--rw protocol? uint8 | | +--rw local-port-low? inet:port-number
| | +--rw ip-tos? int32 | | +--rw local-port-high? inet:port-number
| | +--rw local-port-low? inet:port-number | | +--rw remote-port-low? inet:port-number
| | +--rw local-port-high? inet:port-number | | +--rw remote-port-high? inet:port-number
| | +--rw remote-port-low? inet:port-number | +--:(geo-coordinates)
| | +--rw remote-port-high? inet:port-number | | +--rw geo-coordinates
| +--:(geo-coordinates) | | +--rw latitude? bits
| | +--rw geo-coordinates | | +--rw latitude-degrees? uint8
| | +--rw latitude? bits | | +--rw latitude-minutes? uint8
| | +--rw latitude-degrees? uint8 | | +--rw latitude-seconds? uint8
| | +--rw latitude-minutes? uint8 | | +--rw longitude? bits
| | +--rw latitude-seconds? uint8 | | +--rw longitude-degrees? uint16
| | +--rw longitude? bits | | +--rw longitude-minutes? uint8
| | +--rw longitude-degrees? uint16 | | +--rw longitude-seconds? uint8
| | +--rw longitude-minutes? uint8 | | +--rw altitude? int32
| | +--rw longitude-seconds? uint8 | | +--rw address? simple-address
| | +--rw altitude? int32 | +--:(nat-traversal)
| | +--rw address? simple-address | | +--rw nat-traversal
| +--:(nat-traversal) | | +--rw ms-udp-port? uint16
| | +--rw nat-traversal | | +--rw etr-udp-port? uint16
| | +--rw ms-udp-port? uint16 | | +--rw global-etr-rloc? simple-address
| | +--rw etr-udp-port? uint16 | | +--rw ms-rloc? simple-address
| | +--rw global-etr-rloc? simple-address | | +--rw private-etr-rloc? simple-address
| | +--rw ms-rloc? simple-address | | +--rw rtr-rlocs* simple-address
| | +--rw private-etr-rloc? simple-address | +--:(explicit-locator-path)
| | +--rw rtr-rlocs* simple-address | | +--rw explicit-locator-path
| +--:(explicit-locator-path) | | +--rw hop* [hop-id]
| | +--rw explicit-locator-path | | +--rw hop-id string
| | +--rw hop* [address] | | +--rw address? simple-address
| | +--rw address simple-address | | +--rw lrs-bits? bits
| | +--rw lrs-bits? bits | +--:(source-dest-key)
| +--:(sourc-dest-key) | | +--rw source-dest-key
| +--rw sourc-dest-key | | +--rw source? simple-address
| +--rw source? inet:ip-prefix | | +--rw dest? simple-address
| +--rw dest? inet:ip-prefix | +--:(key-value-address)
| | +--rw key-value-address
| | +--rw key? simple-address
| | +--rw value? simple-address
| +--:(service-path)
| +--rw service-path
| +--rw service-path-id? service-path-id-type
| +--rw service-index? uint8
+--rw map-resolvers +--rw map-resolvers
| +--rw map-resolver* [id] | +--rw map-resolver* [id]
| +--rw id lisp:eid-id | +--rw id lisp:eid-id
| +--rw eid | +--rw eid
| | +--rw afi lisp-address-family-ref | | +--rw address-type lisp-address-family-ref
| | +--rw instance-id? instance-id-type | | +--rw virtual-network-id? instance-id-type
| | +--rw (address)? | | +--rw (address)?
| | +--:(no-address)
| | | +--rw no-address? empty
| | +--:(ipv4) | | +--:(ipv4)
| | | +--rw ipv4? inet:ipv4-address | | | +--rw ipv4? inet:ipv4-address
| | +--:(ipv4-prefix)
| | | +--rw ipv4-prefix? inet:ipv4-prefix
| | +--:(ipv6) | | +--:(ipv6)
| | | +--rw ipv6? inet:ipv6-address | | | +--rw ipv6? inet:ipv6-address
| | +--:(ipv6-prefix)
| | | +--rw ipv6-prefix? inet:ipv6-prefix
| | +--:(mac) | | +--:(mac)
| | | +--rw mac? yang:mac-address | | | +--rw mac? yang:mac-address
| | +--:(distinguished-name) | | +--:(distinguished-name)
| | | +--rw distinguished-name? distinguished-name | | | +--rw distinguished-name? distinguished-name-type
| | +--:(lcaf) | | +--:(as-number)
| | +--rw lcaf | | | +--rw as-number? inet:as-number
| | +--rw lcaf-type lcaf-ref | | +--:(null-address)
| | +--rw (address)? | | | +--rw null-address
| | +--:(null-address) | | | +--rw address? empty
| | | +--rw null-address | | +--:(afi-list)
| | | +--rw address? empty | | | +--rw afi-list
| | +--:(afi-list) | | | +--rw address-list* simple-address
| | | +--rw afi-list | | +--:(instance-id)
| | | +--rw address-list* simple-address | | | +--rw instance-id
| | +--:(instance-id) | | | +--rw iid? instance-id-type
| | | +--rw instance-id | | | +--rw mask-length? uint8
| | | +--rw instance-id? instance-id-type | | | +--rw address? simple-address
| | | +--rw mask-length? uint8 | | +--:(as-number-lcaf)
| | | +--rw address? simple-address | | | +--rw as-number-lcaf
| | +--:(as-number) | | | +--rw as? inet:as-number
| | | +--rw as-number | | | +--rw address? simple-address
| | | +--rw as? inet:as-number | | +--:(application-data)
| | | +--rw address? simple-address | | | +--rw application-data
| | +--:(application-data) | | | +--rw address? simple-address
| | | +--rw application-data | | | +--rw protocol? uint8
| | | +--rw address? simple-address | | | +--rw ip-tos? int32
| | | +--rw protocol? uint8 | | | +--rw local-port-low? inet:port-number
| | | +--rw ip-tos? int32 | | | +--rw local-port-high? inet:port-number
| | | +--rw local-port-low? inet:port-number | | | +--rw remote-port-low? inet:port-number
| | | +--rw local-port-high? inet:port-number | | | +--rw remote-port-high? inet:port-number
| | | +--rw remote-port-low? inet:port-number | | +--:(geo-coordinates)
| | | +--rw remote-port-high? inet:port-number | | | +--rw geo-coordinates
| | +--:(geo-coordinates) | | | +--rw latitude? bits
| | | +--rw geo-coordinates | | | +--rw latitude-degrees? uint8
| | | +--rw latitude? bits | | | +--rw latitude-minutes? uint8
| | | +--rw latitude-degrees? uint8 | | | +--rw latitude-seconds? uint8
| | | +--rw latitude-minutes? uint8 | | | +--rw longitude? bits
| | | +--rw latitude-seconds? uint8 | | | +--rw longitude-degrees? uint16
| | | +--rw longitude? bits | | | +--rw longitude-minutes? uint8
| | | +--rw longitude-degrees? uint16 | | | +--rw longitude-seconds? uint8
| | | +--rw longitude-minutes? uint8 | | | +--rw altitude? int32
| | | +--rw longitude-seconds? uint8 | | | +--rw address? simple-address
| | | +--rw altitude? int32 | | +--:(nat-traversal)
| | | +--rw address? simple-address | | | +--rw nat-traversal
| | +--:(nat-traversal) | | | +--rw ms-udp-port? uint16
| | | +--rw nat-traversal | | | +--rw etr-udp-port? uint16
| | | +--rw ms-udp-port? uint16 | | | +--rw global-etr-rloc? simple-address
| | | +--rw etr-udp-port? uint16 | | | +--rw ms-rloc? simple-address
| | | +--rw global-etr-rloc? simple-address | | | +--rw private-etr-rloc? simple-address
| | | +--rw ms-rloc? simple-address | | | +--rw rtr-rlocs* simple-address
| | | +--rw private-etr-rloc? simple-address | | +--:(explicit-locator-path)
| | | +--rw rtr-rlocs* simple-address | | | +--rw explicit-locator-path
| | +--:(explicit-locator-path) | | | +--rw hop* [hop-id]
| | | +--rw explicit-locator-path | | | +--rw hop-id string
| | | +--rw hop* [address] | | | +--rw address? simple-address
| | | +--rw address simple-address | | | +--rw lrs-bits? bits
| | | +--rw lrs-bits? bits | | +--:(source-dest-key)
| | +--:(sourc-dest-key) | | | +--rw source-dest-key
| | +--rw sourc-dest-key | | | +--rw source? simple-address
| | +--rw source? inet:ip-prefix | | | +--rw dest? simple-address
| | +--rw dest? inet:ip-prefix | | +--:(key-value-address)
| | | +--rw key-value-address
| | | +--rw key? simple-address
| | | +--rw value? simple-address
| | +--:(service-path)
| | +--rw service-path
| | +--rw service-path-id? service-path-id-type
| | +--rw service-index? uint8
| +--rw address* inet:ip-address | +--rw address* inet:ip-address
+--rw static-mappings +--rw itr-rlocs? -> /lisp:lisp/locator-sets/locator-set/locator-set-name
+--rw map-cache
+--rw mapping* [id] +--rw mapping* [id]
+--rw id eid-id +--rw id eid-id
+--rw eid +--rw eid
| +--rw afi lisp-address-family-ref | +--rw address-type lisp-address-family-ref
| +--rw instance-id? instance-id-type | +--rw virtual-network-id? instance-id-type
| +--rw (address)? | +--rw (address)?
| +--:(no-address)
| | +--rw no-address? empty
| +--:(ipv4) | +--:(ipv4)
| | +--rw ipv4? inet:ipv4-address | | +--rw ipv4? inet:ipv4-address
| +--:(ipv4-prefix)
| | +--rw ipv4-prefix? inet:ipv4-prefix
| +--:(ipv6) | +--:(ipv6)
| | +--rw ipv6? inet:ipv6-address | | +--rw ipv6? inet:ipv6-address
| +--:(ipv6-prefix)
| | +--rw ipv6-prefix? inet:ipv6-prefix
| +--:(mac) | +--:(mac)
| | +--rw mac? yang:mac-address | | +--rw mac? yang:mac-address
| +--:(distinguished-name) | +--:(distinguished-name)
| | +--rw distinguished-name? distinguished-name | | +--rw distinguished-name? distinguished-name-type
| +--:(lcaf) | +--:(as-number)
| +--rw lcaf | | +--rw as-number? inet:as-number
| +--rw lcaf-type lcaf-ref | +--:(null-address)
| +--rw (address)? | | +--rw null-address
| +--:(null-address) | | +--rw address? empty
| | +--rw null-address | +--:(afi-list)
| | +--rw address? empty | | +--rw afi-list
| +--:(afi-list) | | +--rw address-list* simple-address
| | +--rw afi-list | +--:(instance-id)
| | +--rw address-list* simple-address | | +--rw instance-id
| +--:(instance-id) | | +--rw iid? instance-id-type
| | +--rw instance-id | | +--rw mask-length? uint8
| | +--rw instance-id? instance-id-type | | +--rw address? simple-address
| | +--rw mask-length? uint8 | +--:(as-number-lcaf)
| | +--rw address? simple-address | | +--rw as-number-lcaf
| +--:(as-number) | | +--rw as? inet:as-number
| | +--rw as-number | | +--rw address? simple-address
| | +--rw as? inet:as-number | +--:(application-data)
| | +--rw address? simple-address | | +--rw application-data
| +--:(application-data) | | +--rw address? simple-address
| | +--rw application-data | | +--rw protocol? uint8
| | +--rw address? simple-address | | +--rw ip-tos? int32
| | +--rw protocol? uint8 | | +--rw local-port-low? inet:port-number
| | +--rw ip-tos? int32 | | +--rw local-port-high? inet:port-number
| | +--rw local-port-low? inet:port-number | | +--rw remote-port-low? inet:port-number
| | +--rw local-port-high? inet:port-number | | +--rw remote-port-high? inet:port-number
| | +--rw remote-port-low? inet:port-number | +--:(geo-coordinates)
| | +--rw remote-port-high? inet:port-number | | +--rw geo-coordinates
| +--:(geo-coordinates) | | +--rw latitude? bits
| | +--rw geo-coordinates | | +--rw latitude-degrees? uint8
| | +--rw latitude? bits | | +--rw latitude-minutes? uint8
| | +--rw latitude-degrees? uint8 | | +--rw latitude-seconds? uint8
| | +--rw latitude-minutes? uint8 | | +--rw longitude? bits
| | +--rw latitude-seconds? uint8 | | +--rw longitude-degrees? uint16
| | +--rw longitude? bits | | +--rw longitude-minutes? uint8
| | +--rw longitude-degrees? uint16 | | +--rw longitude-seconds? uint8
| | +--rw longitude-minutes? uint8 | | +--rw altitude? int32
| | +--rw longitude-seconds? uint8 | | +--rw address? simple-address
| | +--rw altitude? int32 | +--:(nat-traversal)
| | +--rw address? simple-address | | +--rw nat-traversal
| +--:(nat-traversal) | | +--rw ms-udp-port? uint16
| | +--rw nat-traversal | | +--rw etr-udp-port? uint16
| | +--rw ms-udp-port? uint16 | | +--rw global-etr-rloc? simple-address
| | +--rw etr-udp-port? uint16 | | +--rw ms-rloc? simple-address
| | +--rw global-etr-rloc? simple-address | | +--rw private-etr-rloc? simple-address
| | +--rw ms-rloc? simple-address | | +--rw rtr-rlocs* simple-address
| | +--rw private-etr-rloc? simple-address | +--:(explicit-locator-path)
| | +--rw rtr-rlocs* simple-address | | +--rw explicit-locator-path
| +--:(explicit-locator-path) | | +--rw hop* [hop-id]
| | +--rw explicit-locator-path | | +--rw hop-id string
| | +--rw hop* [address] | | +--rw address? simple-address
| | +--rw address simple-address | | +--rw lrs-bits? bits
| | +--rw lrs-bits? bits | +--:(source-dest-key)
| +--:(sourc-dest-key) | | +--rw source-dest-key
| +--rw sourc-dest-key | | +--rw source? simple-address
| +--rw source? inet:ip-prefix | | +--rw dest? simple-address
| +--rw dest? inet:ip-prefix | +--:(key-value-address)
| | +--rw key-value-address
| | +--rw key? simple-address
| | +--rw value? simple-address
| +--:(service-path)
| +--rw service-path
| +--rw service-path-id? service-path-id-type
| +--rw service-index? uint8
+--rw ttl? uint32 +--rw ttl? uint32
+--rw authoritative? bits +--rw authoritative? bits
+--rw static? boolean
+--rw (locator-list)? +--rw (locator-list)?
+--:(negative-mapping) +--:(negative-mapping)
| +--rw map-reply-action? map-reply-action | +--rw map-reply-action? map-reply-action
+--:(positive-mapping) +--:(positive-mapping)
+--rw rlocs +--rw rlocs
+--rw rloc* [id] +--rw locator* [id]
+--rw id string +--rw id string
+--rw (address-type)? +--rw locator-address
| +--:(interface-name) | +--rw address-type lisp-address-family-ref
| | +--rw interface? if:interface-state-ref | +--rw virtual-network-id? instance-id-type
| +--:(address) | +--rw (address)?
| +--rw locator-address | +--:(no-address)
| +--rw afi lisp-address-family-ref | | +--rw no-address? empty
| +--rw instance-id? instance-id-type | +--:(ipv4)
| +--rw (address)? | | +--rw ipv4? inet:ipv4-address
| +--:(ipv4) | +--:(ipv4-prefix)
| | +--rw ipv4? inet:ipv4-address | | +--rw ipv4-prefix? inet:ipv4-prefix
| +--:(ipv6) | +--:(ipv6)
| | +--rw ipv6? inet:ipv6-address | | +--rw ipv6? inet:ipv6-address
| +--:(mac) | +--:(ipv6-prefix)
| | +--rw mac? yang:mac-address | | +--rw ipv6-prefix? inet:ipv6-prefix
| +--:(distinguished-name) | +--:(mac)
| | +--rw distinguished-name? distinguished-name | | +--rw mac? yang:mac-address
| +--:(lcaf) | +--:(distinguished-name)
| +--rw lcaf | | +--rw distinguished-name? distinguished-name-type
| +--rw lcaf-type lcaf-ref | +--:(as-number)
| +--rw (address)? | | +--rw as-number? inet:as-number
| +--:(null-address) | +--:(null-address)
| | +--rw null-address | | +--rw null-address
| | +--rw address? empty | | +--rw address? empty
| +--:(afi-list) | +--:(afi-list)
| | +--rw afi-list | | +--rw afi-list
| | +--rw address-list* simple-address | | +--rw address-list* simple-address
| +--:(instance-id) | +--:(instance-id)
| | +--rw instance-id | | +--rw instance-id
| | +--rw instance-id? instance-id-type | | +--rw iid? instance-id-type
| | +--rw mask-length? uint8 | | +--rw mask-length? uint8
| | +--rw address? simple-address | | +--rw address? simple-address
| +--:(as-number) | +--:(as-number-lcaf)
| | +--rw as-number | | +--rw as-number-lcaf
| | +--rw as? inet:as-number | | +--rw as? inet:as-number
| | +--rw address? simple-address | | +--rw address? simple-address
| +--:(application-data) | +--:(application-data)
| | +--rw application-data | | +--rw application-data
| | +--rw address? simple-address | | +--rw address? simple-address
| | +--rw protocol? uint8 | | +--rw protocol? uint8
| | +--rw ip-tos? int32 | | +--rw ip-tos? int32
| | +--rw local-port-low? inet:port-number | | +--rw local-port-low? inet:port-number
| | +--rw local-port-high? inet:port-number | | +--rw local-port-high? inet:port-number
| | +--rw remote-port-low? inet:port-number | | +--rw remote-port-low? inet:port-number
| | +--rw remote-port-high? inet:port-number | | +--rw remote-port-high? inet:port-number
| +--:(geo-coordinates) | +--:(geo-coordinates)
| | +--rw geo-coordinates | | +--rw geo-coordinates
| | +--rw latitude? bits | | +--rw latitude? bits
| | +--rw latitude-degrees? uint8 | | +--rw latitude-degrees? uint8
| | +--rw latitude-minutes? uint8 | | +--rw latitude-minutes? uint8
| | +--rw latitude-seconds? uint8 | | +--rw latitude-seconds? uint8
| | +--rw longitude? bits | | +--rw longitude? bits
| | +--rw longitude-degrees? uint16 | | +--rw longitude-degrees? uint16
| | +--rw longitude-minutes? uint8 | | +--rw longitude-minutes? uint8
| | +--rw longitude-seconds? uint8 | | +--rw longitude-seconds? uint8
| | +--rw altitude? int32 | | +--rw altitude? int32
| | +--rw address? simple-address | | +--rw address? simple-address
| +--:(nat-traversal) | +--:(nat-traversal)
| | +--rw nat-traversal | | +--rw nat-traversal
| | +--rw ms-udp-port? uint16 | | +--rw ms-udp-port? uint16
| | +--rw etr-udp-port? uint16 | | +--rw etr-udp-port? uint16
| | +--rw global-etr-rloc? simple-address | | +--rw global-etr-rloc? simple-address
| | +--rw ms-rloc? simple-address | | +--rw ms-rloc? simple-address
| | +--rw private-etr-rloc? simple-address | | +--rw private-etr-rloc? simple-address
| | +--rw rtr-rlocs* simple-address | | +--rw rtr-rlocs* simple-address
| +--:(explicit-locator-path) | +--:(explicit-locator-path)
| | +--rw explicit-locator-path | | +--rw explicit-locator-path
| | +--rw hop* [address] | | +--rw hop* [hop-id]
| | +--rw address simple-address | | +--rw hop-id string
| | +--rw lrs-bits? bits | | +--rw address? simple-address
| +--:(sourc-dest-key) | | +--rw lrs-bits? bits
| +--rw sourc-dest-key | +--:(source-dest-key)
| +--rw source? inet:ip-prefix | | +--rw source-dest-key
| +--rw dest? inet:ip-prefix | | +--rw source? simple-address
| | +--rw dest? simple-address
| +--:(key-value-address)
| | +--rw key-value-address
| | +--rw key? simple-address
| | +--rw value? simple-address
| +--:(service-path)
| +--rw service-path
| +--rw service-path-id? service-path-id-type
| +--rw service-index? uint8
+--rw priority? uint8 +--rw priority? uint8
+--rw weight? uint8 +--rw weight? uint8
+--rw multicast-priority? uint8 +--rw multicast-priority? uint8
+--rw multicast-weight? uint8 +--rw multicast-weight? uint8
augment /lisp:lisp-state/lisp:devices/lisp:device: augment /lisp:lisp/lisp:lisp-router-instances/lisp:lisp-router-instance/lisp:lisp-role:
+--ro pitr-state +--ro pitr-state
+--ro learned-mappings +--ro map-cache
+--ro mapping* [id] +--ro mapping* [id]
+--ro id eid-id +--ro id eid-id
+--ro eid +--ro eid
| +--ro afi lisp-address-family-ref | +--ro address-type lisp-address-family-ref
| +--ro instance-id? instance-id-type | +--ro virtual-network-id? instance-id-type
| +--ro (address)? | +--ro (address)?
| +--:(no-address)
| | +--ro no-address? empty
| +--:(ipv4) | +--:(ipv4)
| | +--ro ipv4? inet:ipv4-address | | +--ro ipv4? inet:ipv4-address
| +--:(ipv4-prefix)
| | +--ro ipv4-prefix? inet:ipv4-prefix
| +--:(ipv6) | +--:(ipv6)
| | +--ro ipv6? inet:ipv6-address | | +--ro ipv6? inet:ipv6-address
| +--:(ipv6-prefix)
| | +--ro ipv6-prefix? inet:ipv6-prefix
| +--:(mac) | +--:(mac)
| | +--ro mac? yang:mac-address | | +--ro mac? yang:mac-address
| +--:(distinguished-name) | +--:(distinguished-name)
| | +--ro distinguished-name? distinguished-name | | +--ro distinguished-name? distinguished-name-type
| +--:(lcaf) | +--:(as-number)
| +--ro lcaf | | +--ro as-number? inet:as-number
| +--ro lcaf-type lcaf-ref | +--:(null-address)
| +--ro (address)? | | +--ro null-address
| +--:(null-address) | | +--ro address? empty
| | +--ro null-address | +--:(afi-list)
| | +--ro address? empty | | +--ro afi-list
| +--:(afi-list) | | +--ro address-list* simple-address
| | +--ro afi-list | +--:(instance-id)
| | +--ro address-list* simple-address | | +--ro instance-id
| +--:(instance-id) | | +--ro iid? instance-id-type
| | +--ro instance-id | | +--ro mask-length? uint8
| | +--ro instance-id? instance-id-type | | +--ro address? simple-address
| | +--ro mask-length? uint8 | +--:(as-number-lcaf)
| | +--ro address? simple-address | | +--ro as-number-lcaf
| +--:(as-number) | | +--ro as? inet:as-number
| | +--ro as-number | | +--ro address? simple-address
| | +--ro as? inet:as-number | +--:(application-data)
| | +--ro address? simple-address | | +--ro application-data
| +--:(application-data) | | +--ro address? simple-address
| | +--ro application-data | | +--ro protocol? uint8
| | +--ro address? simple-address | | +--ro ip-tos? int32
| | +--ro protocol? uint8 | | +--ro local-port-low? inet:port-number
| | +--ro ip-tos? int32 | | +--ro local-port-high? inet:port-number
| | +--ro local-port-low? inet:port-number | | +--ro remote-port-low? inet:port-number
| | +--ro local-port-high? inet:port-number | | +--ro remote-port-high? inet:port-number
| | +--ro remote-port-low? inet:port-number | +--:(geo-coordinates)
| | +--ro remote-port-high? inet:port-number | | +--ro geo-coordinates
| +--:(geo-coordinates) | | +--ro latitude? bits
| | +--ro geo-coordinates | | +--ro latitude-degrees? uint8
| | +--ro latitude? bits | | +--ro latitude-minutes? uint8
| | +--ro latitude-degrees? uint8 | | +--ro latitude-seconds? uint8
| | +--ro latitude-minutes? uint8 | | +--ro longitude? bits
| | +--ro latitude-seconds? uint8 | | +--ro longitude-degrees? uint16
| | +--ro longitude? bits | | +--ro longitude-minutes? uint8
| | +--ro longitude-degrees? uint16 | | +--ro longitude-seconds? uint8
| | +--ro longitude-minutes? uint8 | | +--ro altitude? int32
| | +--ro longitude-seconds? uint8 | | +--ro address? simple-address
| | +--ro altitude? int32 | +--:(nat-traversal)
| | +--ro address? simple-address | | +--ro nat-traversal
| +--:(nat-traversal) | | +--ro ms-udp-port? uint16
| | +--ro nat-traversal | | +--ro etr-udp-port? uint16
| | +--ro ms-udp-port? uint16 | | +--ro global-etr-rloc? simple-address
| | +--ro etr-udp-port? uint16 | | +--ro ms-rloc? simple-address
| | +--ro global-etr-rloc? simple-address | | +--ro private-etr-rloc? simple-address
| | +--ro ms-rloc? simple-address | | +--ro rtr-rlocs* simple-address
| | +--ro private-etr-rloc? simple-address | +--:(explicit-locator-path)
| | +--ro rtr-rlocs* simple-address | | +--ro explicit-locator-path
| +--:(explicit-locator-path) | | +--ro hop* [hop-id]
| | +--ro explicit-locator-path | | +--ro hop-id string
| | +--ro hop* [address] | | +--ro address? simple-address
| | +--ro address simple-address | | +--ro lrs-bits? bits
| | +--ro lrs-bits? bits | +--:(source-dest-key)
| +--:(sourc-dest-key) | | +--ro source-dest-key
| +--ro sourc-dest-key | | +--ro source? simple-address
| +--ro source? inet:ip-prefix | | +--ro dest? simple-address
| +--ro dest? inet:ip-prefix | +--:(key-value-address)
| | +--ro key-value-address
| | +--ro key? simple-address
| | +--ro value? simple-address
| +--:(service-path)
| +--ro service-path
| +--ro service-path-id? service-path-id-type
| +--ro service-index? uint8
+--ro ttl? uint32 +--ro ttl? uint32
+--ro authoritative? bits +--ro authoritative? bits
+--ro static? boolean
+--ro (locator-list)? +--ro (locator-list)?
+--:(negative-mapping) +--:(negative-mapping)
| +--ro map-reply-action? map-reply-action | +--ro map-reply-action? map-reply-action
+--:(positive-mapping) +--:(positive-mapping)
+--ro rlocs +--ro rlocs
+--ro rloc* [id] +--ro locator* [id]
+--ro id string +--ro id string
+--ro (address-type)? +--ro locator-address
| +--:(interface-name) | +--ro address-type lisp-address-family-ref
| | +--ro interface? if:interface-state-ref | +--ro virtual-network-id? instance-id-type
| +--:(address) | +--ro (address)?
| +--ro locator-address | +--:(no-address)
| +--ro afi lisp-address-family-ref | | +--ro no-address? empty
| +--ro instance-id? instance-id-type | +--:(ipv4)
| +--ro (address)? | | +--ro ipv4? inet:ipv4-address
| +--:(ipv4) | +--:(ipv4-prefix)
| | +--ro ipv4? inet:ipv4-address | | +--ro ipv4-prefix? inet:ipv4-prefix
| +--:(ipv6) | +--:(ipv6)
| | +--ro ipv6? inet:ipv6-address | | +--ro ipv6? inet:ipv6-address
| +--:(mac) | +--:(ipv6-prefix)
| | +--ro mac? yang:mac-address | | +--ro ipv6-prefix? inet:ipv6-prefix
| +--:(distinguished-name) | +--:(mac)
| | +--ro distinguished-name? distinguished-name | | +--ro mac? yang:mac-address
| +--:(lcaf) | +--:(distinguished-name)
| +--ro lcaf | | +--ro distinguished-name? distinguished-name-type
| +--ro lcaf-type lcaf-ref | +--:(as-number)
| +--ro (address)? | | +--ro as-number? inet:as-number
| +--:(null-address) | +--:(null-address)
| | +--ro null-address | | +--ro null-address
| | +--ro address? empty | | +--ro address? empty
| +--:(afi-list) | +--:(afi-list)
| | +--ro afi-list | | +--ro afi-list
| | +--ro address-list* simple-address | | +--ro address-list* simple-address
| +--:(instance-id) | +--:(instance-id)
| | +--ro instance-id | | +--ro instance-id
| | +--ro instance-id? instance-id-type | | +--ro iid? instance-id-type
| | +--ro mask-length? uint8 | | +--ro mask-length? uint8
| | +--ro address? simple-address | | +--ro address? simple-address
| +--:(as-number) | +--:(as-number-lcaf)
| | +--ro as-number | | +--ro as-number-lcaf
| | +--ro as? inet:as-number | | +--ro as? inet:as-number
| | +--ro address? simple-address | | +--ro address? simple-address
| +--:(application-data) | +--:(application-data)
| | +--ro application-data | | +--ro application-data
| | +--ro address? simple-address | | +--ro address? simple-address
| | +--ro protocol? uint8 | | +--ro protocol? uint8
| | +--ro ip-tos? int32 | | +--ro ip-tos? int32
| | +--ro local-port-low? inet:port-number | | +--ro local-port-low? inet:port-number
| | +--ro local-port-high? inet:port-number | | +--ro local-port-high? inet:port-number
| | +--ro remote-port-low? inet:port-number | | +--ro remote-port-low? inet:port-number
| | +--ro remote-port-high? inet:port-number | | +--ro remote-port-high? inet:port-number
| +--:(geo-coordinates) | +--:(geo-coordinates)
| | +--ro geo-coordinates | | +--ro geo-coordinates
| | +--ro latitude? bits | | +--ro latitude? bits
| | +--ro latitude-degrees? uint8 | | +--ro latitude-degrees? uint8
| | +--ro latitude-minutes? uint8 | | +--ro latitude-minutes? uint8
| | +--ro latitude-seconds? uint8 | | +--ro latitude-seconds? uint8
| | +--ro longitude? bits | | +--ro longitude? bits
| | +--ro longitude-degrees? uint16 | | +--ro longitude-degrees? uint16
| | +--ro longitude-minutes? uint8 | | +--ro longitude-minutes? uint8
| | +--ro longitude-seconds? uint8 | | +--ro longitude-seconds? uint8
| | +--ro altitude? int32 | | +--ro altitude? int32
| | +--ro address? simple-address | | +--ro address? simple-address
| +--:(nat-traversal) | +--:(nat-traversal)
| | +--ro nat-traversal | | +--ro nat-traversal
| | +--ro ms-udp-port? uint16 | | +--ro ms-udp-port? uint16
| | +--ro etr-udp-port? uint16 | | +--ro etr-udp-port? uint16
| | +--ro global-etr-rloc? simple-address | | +--ro global-etr-rloc? simple-address
| | +--ro ms-rloc? simple-address | | +--ro ms-rloc? simple-address
| | +--ro private-etr-rloc? simple-address | | +--ro private-etr-rloc? simple-address
| | +--ro rtr-rlocs* simple-address | | +--ro rtr-rlocs* simple-address
| +--:(explicit-locator-path) | +--:(explicit-locator-path)
| | +--ro explicit-locator-path | | +--ro explicit-locator-path
| | +--ro hop* [address] | | +--ro hop* [hop-id]
| | +--ro address simple-address | | +--ro hop-id string
| | +--ro lrs-bits? bits | | +--ro address? simple-address
| +--:(sourc-dest-key) | | +--ro lrs-bits? bits
| +--ro sourc-dest-key | +--:(source-dest-key)
| +--ro source? inet:ip-prefix | | +--ro source-dest-key
| +--ro dest? inet:ip-prefix | | +--ro source? simple-address
| | +--ro dest? simple-address
| +--:(key-value-address)
| | +--ro key-value-address
| | +--ro key? simple-address
| | +--ro value? simple-address
| +--:(service-path)
| +--ro service-path
| +--ro service-path-id? service-path-id-type
| +--ro service-index? uint8
+--ro priority? uint8 +--ro priority? uint8
+--ro weight? uint8 +--ro weight? uint8
+--ro multicast-priority? uint8 +--ro multicast-priority? uint8
+--ro multicast-weight? uint8 +--ro multicast-weight? uint8
7.2. Module Definition 7.2. Module Definition
<CODE BEGINS> file "ietf-lisp-pitr@2015-07-02.yang" <CODE BEGINS> file "ietf-lisp-pitr@2016-06-30.yang"
module ietf-lisp-pitr { module ietf-lisp-pitr {
namespace "urn:ietf:params:xml:ns:yang:lisp-pitr"; namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-pitr";
prefix lisp-pitr; prefix lisp-pitr;
import ietf-lisp { import ietf-lisp {
prefix lisp; prefix lisp;
} }
import ietf-lisp-address-types { import ietf-lisp-address-types {
prefix lcaf; prefix lcaf;
} }
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
} }
organization organization
"IETF LISP (Locator/ID Separation Protocol) Working Group"; "IETF LISP (Locator/ID Separation Protocol) Working Group";
contact contact
"lisp@ietf.org"; "lisp@ietf.org";
description description
"This YANG module defines the generic configuration "This YANG module defines the generic configuration
data for a LISP PITR. The module can be extended by vendors data for a LISP PITR. The module can be extended by vendors
to define vendor-specific configuration parameters and to define vendor-specific configuration parameters and
policies. policies.
Copyright (c) 2015 IETF Trust and the persons identified as Copyright (c) 2015 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
skipping to change at page 60, line 37 skipping to change at page 59, line 43
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC 6338; see This version of this YANG module is part of RFC 6338; see
the RFC itself for full legal notices. the RFC itself for full legal notices.
"; ";
revision 2015-07-02 { revision 2016-06-30 {
description description
"Initial revision."; "Initial revision.";
reference reference
"https://tools.ietf.org/html/rfc6832"; "https://tools.ietf.org/html/rfc6832";
} }
identity pitr { identity pitr {
base lisp:lisp-device; base lisp:lisp-role;
description description
"LISP PITR."; "LISP PITR.";
} }
augment "/lisp:lisp/lisp:devices/lisp:device" { augment "/lisp:lisp/lisp:lisp-router-instances"
when "lisp:type = 'lisp-pitr:pitr'" { + "/lisp:lisp-router-instance/lisp:lisp-role" {
when "lisp:lisp-role-type = 'lisp-pitr:pitr'" {
description description
"Augment is valid when LISP device type is PITR."; "Augment is valid when LISP device type is PITR.";
} }
description description
"This augments LISP devices list with PITR specific "This augments LISP devices list with PITR specific
parameters."; parameters.";
container proxy-itr-cfg { container proxy-itr-cfg {
presence "LISP PITR operation enabled"; presence "LISP PITR operation enabled";
description description
"Proxy-ITR configuration parameters."; "Proxy-ITR configuration parameters.";
container servicing-eids {
description uses lisp:servicing-eids-grouping;
"EIDs serviced by the PITR.";
list eid {
key "id";
description
"List of EIDs serviced by the PITR.";
leaf id {
type lisp:eid-id;
description
"Id of serviced EID.";
}
container eid-address {
uses lcaf:lisp-address;
description
"Serviced EID address in generic LISP address format.";
}
}
}
container map-resolvers { container map-resolvers {
description description
"Map-Resolvers configured for PITR."; "Map-Resolvers configured for PITR.";
list map-resolver { list map-resolver {
key "id"; key "id";
description description
"List of Map-Resolvers configured for PITR."; "List of Map-Resolvers configured for PITR.";
leaf id { leaf id {
type lisp:eid-id; type lisp:eid-id;
skipping to change at page 62, line 9 skipping to change at page 60, line 47
"EID for which the Map-Resolver is used."; "EID for which the Map-Resolver is used.";
} }
leaf-list address { leaf-list address {
type inet:ip-address; type inet:ip-address;
min-elements 1; min-elements 1;
description description
"List of Map-Resolver's addresses."; "List of Map-Resolver's addresses.";
} }
} }
} }
container static-mappings{ leaf itr-rlocs {
type leafref {
path "/lisp:lisp/lisp:locator-sets/lisp:locator-set/"
+ "lisp:locator-set-name";
}
description
"Refrence to a locator set that the PITR includes in
Map-Requests";
}
container map-cache{
uses lisp:mappings; uses lisp:mappings;
description description
"EID to RLOCs mappings cache."; "EID to RLOCs mappings cache.";
} }
} }
} }
augment "/lisp:lisp-state/lisp:devices/lisp:device" { augment "/lisp:lisp/lisp:lisp-router-instances"
when "lisp:type = 'lisp-pitr:pitr'" { + "/lisp:lisp-router-instance/lisp:lisp-role" {
when "lisp:lisp-role-type = 'lisp-pitr:pitr'" {
description description
"Augment is valid when LISP device type is PITR."; "Augment is valid when LISP device type is PITR.";
} }
description description
"This augments LISP devices list state with PITR specific "This augments LISP devices list state with PITR specific
parameters."; parameters.";
container pitr-state { container pitr-state {
config false; config false;
description description
"ITR state."; "ITR state.";
container learned-mappings { container map-cache {
uses lisp:mappings; uses lisp:mappings;
description description
"EID to RLOCs mappings cache."; "EID to RLOCs mappings cache.";
} }
} }
} }
} }
<CODE ENDS> <CODE ENDS>
8. LISP Proxy ETR Module 8. LISP Proxy ETR Module
This module captures the configuration data model of a LISP Proxy ETR This module captures the configuration data model of a LISP Proxy ETR
[RFC6832]. The model may also capture some operational data [RFC6832]. The model may also capture some operational data
elements. elements.
8.1. Module Structure 8.1. Module Structure
module: ietf-lisp-petr module: ietf-lisp-petr
augment /lisp:lisp/lisp:devices/lisp:device: augment /lisp:lisp/lisp:lisp-router-instances/lisp:lisp-router-instance/lisp:lisp-role:
+--rw proxy-etr-cfg! +--rw proxy-etr-cfg!
+--rw servicing-eids +--rw servicing-eids
+--rw eid* [id] +--rw servicing-eid* [id]
+--rw id lisp:eid-id +--rw id lisp:eid-id
+--rw eid-address +--rw eid-address
+--rw afi lisp-address-family-ref +--rw address-type lisp-address-family-ref
+--rw instance-id? instance-id-type +--rw virtual-network-id? instance-id-type
+--rw (address)? +--rw (address)?
+--:(no-address)
| +--rw no-address? empty
+--:(ipv4) +--:(ipv4)
| +--rw ipv4? inet:ipv4-address | +--rw ipv4? inet:ipv4-address
+--:(ipv4-prefix)
| +--rw ipv4-prefix? inet:ipv4-prefix
+--:(ipv6) +--:(ipv6)
| +--rw ipv6? inet:ipv6-address | +--rw ipv6? inet:ipv6-address
+--:(ipv6-prefix)
| +--rw ipv6-prefix? inet:ipv6-prefix
+--:(mac) +--:(mac)
| +--rw mac? yang:mac-address | +--rw mac? yang:mac-address
+--:(distinguished-name) +--:(distinguished-name)
| +--rw distinguished-name? distinguished-name | +--rw distinguished-name? distinguished-name-type
+--:(lcaf) +--:(as-number)
+--rw lcaf | +--rw as-number? inet:as-number
+--rw lcaf-type lcaf-ref +--:(null-address)
+--rw (address)? | +--rw null-address
+--:(null-address) | +--rw address? empty
| +--rw null-address +--:(afi-list)
| +--rw address? empty | +--rw afi-list
+--:(afi-list) | +--rw address-list* simple-address
| +--rw afi-list +--:(instance-id)
| +--rw address-list* simple-address | +--rw instance-id
+--:(instance-id) | +--rw iid? instance-id-type
| +--rw instance-id | +--rw mask-length? uint8
| +--rw instance-id? instance-id-type | +--rw address? simple-address
| +--rw mask-length? uint8 +--:(as-number-lcaf)
| +--rw address? simple-address | +--rw as-number-lcaf
+--:(as-number) | +--rw as? inet:as-number
| +--rw as-number | +--rw address? simple-address
| +--rw as? inet:as-number +--:(application-data)
| +--rw address? simple-address | +--rw application-data
+--:(application-data) | +--rw address? simple-address
| +--rw application-data | +--rw protocol? uint8
| +--rw address? simple-address | +--rw ip-tos? int32
| +--rw protocol? uint8 | +--rw local-port-low? inet:port-number
| +--rw ip-tos? int32 | +--rw local-port-high? inet:port-number
| +--rw local-port-low? inet:port-number | +--rw remote-port-low? inet:port-number
| +--rw local-port-high? inet:port-number | +--rw remote-port-high? inet:port-number
| +--rw remote-port-low? inet:port-number +--:(geo-coordinates)
| +--rw remote-port-high? inet:port-number | +--rw geo-coordinates
+--:(geo-coordinates) | +--rw latitude? bits
| +--rw geo-coordinates | +--rw latitude-degrees? uint8
| +--rw latitude? bits | +--rw latitude-minutes? uint8
| +--rw latitude-degrees? uint8 | +--rw latitude-seconds? uint8
| +--rw latitude-minutes? uint8 | +--rw longitude? bits
| +--rw latitude-seconds? uint8 | +--rw longitude-degrees? uint16
| +--rw longitude? bits | +--rw longitude-minutes? uint8
| +--rw longitude-degrees? uint16 | +--rw longitude-seconds? uint8
| +--rw longitude-minutes? uint8 | +--rw altitude? int32
| +--rw longitude-seconds? uint8 | +--rw address? simple-address
| +--rw altitude? int32 +--:(nat-traversal)
| +--rw address? simple-address | +--rw nat-traversal
+--:(nat-traversal) | +--rw ms-udp-port? uint16
| +--rw nat-traversal | +--rw etr-udp-port? uint16
| +--rw ms-udp-port? uint16 | +--rw global-etr-rloc? simple-address
| +--rw etr-udp-port? uint16 | +--rw ms-rloc? simple-address
| +--rw global-etr-rloc? simple-address | +--rw private-etr-rloc? simple-address
| +--rw ms-rloc? simple-address | +--rw rtr-rlocs* simple-address
| +--rw private-etr-rloc? simple-address +--:(explicit-locator-path)
| +--rw rtr-rlocs* simple-address | +--rw explicit-locator-path
+--:(explicit-locator-path) | +--rw hop* [hop-id]
| +--rw explicit-locator-path | +--rw hop-id string
| +--rw hop* [address] | +--rw address? simple-address
| +--rw address simple-address | +--rw lrs-bits? bits
| +--rw lrs-bits? bits +--:(source-dest-key)
+--:(sourc-dest-key) | +--rw source-dest-key
+--rw sourc-dest-key | +--rw source? simple-address
+--rw source? inet:ip-prefix | +--rw dest? simple-address
+--rw dest? inet:ip-prefix +--:(key-value-address)
| +--rw key-value-address
| +--rw key? simple-address
| +--rw value? simple-address
+--:(service-path)
+--rw service-path
+--rw service-path-id? service-path-id-type
+--rw service-index? uint8
8.2. Module Definition 8.2. Module Definition
<CODE BEGINS> file "ietf-lisp-petr@2015-07-02.yang" <CODE BEGINS> file "ietf-lisp-petr@2016-06-30.yang"
module ietf-lisp-petr { module ietf-lisp-petr {
namespace "urn:ietf:params:xml:ns:yang:lisp-petr"; namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-petr";
prefix lisp-petr; prefix lisp-petr;
import ietf-lisp { import ietf-lisp {
prefix lisp; prefix lisp;
} }
import ietf-lisp-address-types {
prefix lcaf;
}
organization organization
"IETF LISP (Locator/ID Separation Protocol) Working Group"; "IETF LISP (Locator/ID Separation Protocol) Working Group";
contact contact
"lisp@ietf.org"; "lisp@ietf.org";
description description
"This YANG module defines the generic configuration "This YANG module defines the generic configuration
data for a LISP PETR. The module can be extended by vendors to data for a LISP PETR. The module can be extended by vendors to
define vendor-specific configuration parameters and policies. define vendor-specific configuration parameters and policies.
Copyright (c) 2015 IETF Trust and the persons identified as Copyright (c) 2015 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC 6338; see This version of this YANG module is part of RFC 6338; see
the RFC itself for full legal notices. the RFC itself for full legal notices.
"; ";
revision 2015-07-02 { revision 2016-06-30 {
description description
"Initial revision."; "Initial revision.";
reference reference
"https://tools.ietf.org/html/rfc6832"; "https://tools.ietf.org/html/rfc6832";
} }
identity petr { identity petr {
base lisp:lisp-device; base lisp:lisp-role;
description description
"LISP PETR."; "LISP PETR.";
} }
augment "/lisp:lisp/lisp:devices/lisp:device" { augment "/lisp:lisp/lisp:lisp-router-instances"
when "lisp:type = 'lisp-petr:petr'" { + "/lisp:lisp-router-instance/lisp:lisp-role" {
when "lisp:lisp-role-type = 'lisp-petr:petr'" {
description description
"Augment is valid when LISP device type is PETR."; "Augment is valid when LISP device type is PETR.";
} }
description description
"This augments LISP devices list with PETR specific "This augments LISP devices list with PETR specific
parameters."; parameters.";
container proxy-etr-cfg { container proxy-etr-cfg {
presence "LISP PETR operation enabled"; presence "LISP PETR operation enabled";
description description
"Proxy ETR configuration parameters."; "Proxy ETR configuration parameters.";
container servicing-eids {
description
"EIDs serviced by the PETR.";
list eid {
key "id";
description
"List of EIDs serviced by the PETR.";
leaf id {
type lisp:eid-id;
description
"Id of serviced EID.";
}
container eid-address {
uses lcaf:lisp-address;
description
"Serviced EID in generic LISP address format.";
}
} uses lisp:servicing-eids-grouping;
} }//proxy-etr-cfg
}
} }
} }
<CODE ENDS> <CODE ENDS>
9. LISP Address Types 9. LISP Address Types
This module captures the various LISP address types, and is an This module captures the various LISP address types, and is an
essential building block used in other LISP modules. essential building block used in other LISP modules.
9.1. Module Definition 9.1. Module Definition
skipping to change at page 72, line 52 skipping to change at page 71, line 44
leaf as-number { leaf as-number {
when "../address-type = 'laddr:as-number-afi'" { when "../address-type = 'laddr:as-number-afi'" {
description description
"When AFI is as-number."; "When AFI is as-number.";
} }
type inet:as-number; type inet:as-number;
description description
"AS Number."; "AS Number.";
} }
container null-address { container null-address {
when "../address-type = 'null-address-lcaf'" { when "../address-type = 'laddr:null-address-lcaf'" {
description description
"When LCAF type is null."; "When LCAF type is null.";
} }
description description
"Null body LCAF type"; "Null body LCAF type";
leaf address { leaf address {
type empty; type empty;
description description
"AFI address."; "AFI address.";
} }
} }
container afi-list { container afi-list {
when "../address-type = 'afi-list-lcaf'" { when "../address-type = 'laddr:afi-list-lcaf'" {
description description
"When LCAF type is AFI-List."; "When LCAF type is AFI-List.";
} }
description description
"AFI-List LCAF type."; "AFI-List LCAF type.";
reference reference
"http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10
#section-4.16.1"; #section-4.16.1";
leaf-list address-list { leaf-list address-list {
type simple-address; type simple-address;
description description
"List of AFI addresses."; "List of AFI addresses.";
} }
} }
container instance-id { container instance-id {
when "../address-type = 'instance-id-lcaf'" { when "../address-type = 'laddr:instance-id-lcaf'" {
description description
"When LCAF type is Instance-ID"; "When LCAF type is Instance-ID";
} }
description description
"Instance ID LCAF type."; "Instance ID LCAF type.";
reference reference
"http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10
#section-4.2"; #section-4.2";
leaf iid { leaf iid {
type instance-id-type; type instance-id-type;
skipping to change at page 74, line 10 skipping to change at page 72, line 51
description description
"Mask length."; "Mask length.";
} }
leaf address { leaf address {
type simple-address; type simple-address;
description description
"AFI address."; "AFI address.";
} }
} }
container as-number-lcaf { container as-number-lcaf {
when "../address-type = 'as-number-lcaf'" { when "../address-type = 'laddr:as-number-lcaf'" {
description description
"When LCAF type is AS-Number."; "When LCAF type is AS-Number.";
} }
description description
"AS Number LCAF type."; "AS Number LCAF type.";
reference reference
"http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10
#section-4.3"; #section-4.3";
leaf as { leaf as {
type inet:as-number; type inet:as-number;
description description
"AS number."; "AS number.";
} }
leaf address { leaf address {
type simple-address; type simple-address;
description description
"AFI address."; "AFI address.";
} }
} }
container application-data { container application-data {
when "../address-type = 'application-data-lcaf'" { when "../address-type = 'laddr:application-data-lcaf'" {
description description
"When LCAF type is Application Data."; "When LCAF type is Application Data.";
} }
description description
"Application Data LCAF type."; "Application Data LCAF type.";
reference reference
"http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10
#section-4.4"; #section-4.4";
leaf address { leaf address {
type simple-address; type simple-address;
skipping to change at page 75, line 29 skipping to change at page 74, line 23
description description
"Low end of remote port range."; "Low end of remote port range.";
} }
leaf remote-port-high { leaf remote-port-high {
type inet:port-number; type inet:port-number;
description description
"High end of remote port range."; "High end of remote port range.";
} }
} }
container geo-coordinates { container geo-coordinates {
when "../address-type = 'geo-coordinates-lcaf'" { when "../address-type = 'laddr:geo-coordinates-lcaf'" {
description description
"When LCAF type is Geo-coordinates."; "When LCAF type is Geo-coordinates.";
} }
description description
"Geo-coordinates LCAF type."; "Geo-coordinates LCAF type.";
reference reference
"http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10
#section-4.5"; #section-4.5";
leaf latitude { leaf latitude {
type bits { type bits {
skipping to change at page 77, line 16 skipping to change at page 76, line 9
description description
"Height relative to sea level in meters."; "Height relative to sea level in meters.";
} }
leaf address { leaf address {
type simple-address; type simple-address;
description description
"AFI address."; "AFI address.";
} }
} }
container nat-traversal { container nat-traversal {
when "../address-type = 'nat-traversal-lcaf'" { when "../address-type = 'laddr:nat-traversal-lcaf'" {
description description
"When LCAF type is NAT-Traversal."; "When LCAF type is NAT-Traversal.";
} }
description description
"NAT-Traversal LCAF type."; "NAT-Traversal LCAF type.";
reference reference
"http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10
#section-4.6"; #section-4.6";
leaf ms-udp-port { leaf ms-udp-port {
type uint16; type uint16;
skipping to change at page 78, line 9 skipping to change at page 76, line 50
description description
"Private ETR RLOC address."; "Private ETR RLOC address.";
} }
leaf-list rtr-rlocs { leaf-list rtr-rlocs {
type simple-address; type simple-address;
description description
"List of RTR RLOC addresses."; "List of RTR RLOC addresses.";
} }
} }
container explicit-locator-path { container explicit-locator-path {
when "../address-type = 'explicit-locator-path-lcaf'" { when "../address-type = 'laddr:explicit-locator-path-lcaf'" {
description description
"When LCAF type type is Explicit Locator Path."; "When LCAF type type is Explicit Locator Path.";
} }
description description
"Explicit Locator Path LCAF type."; "Explicit Locator Path LCAF type.";
reference reference
"http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10
#section-4.9"; #section-4.9";
list hop { list hop {
key "hop-id"; key "hop-id";
ordered-by user; ordered-by user;
description description
"List of locator hops forming the explicit path."; "List of locator hops forming the explicit path.";
leaf hop-id { leaf hop-id {
type string; type string {
length "1..64";
}
description description
"Unique identifier for the hop."; "Unique identifier for the hop.";
} }
leaf address { leaf address {
type simple-address; type simple-address;
description description
"AFI address."; "AFI address.";
} }
leaf lrs-bits { leaf lrs-bits {
type bits{ type bits{
skipping to change at page 79, line 4 skipping to change at page 77, line 47
} }
bit strict { bit strict {
description description
"Strict bit."; "Strict bit.";
} }
} }
description description
"Flag bits per hop."; "Flag bits per hop.";
} }
} }
} }
container source-dest-key { container source-dest-key {
when "../address-type = 'source-dest-key-lcaf'" { when "../address-type = 'laddr:source-dest-key-lcaf'" {
description description
"When LCAF type type is Source/Dest."; "When LCAF type type is Source/Dest.";
} }
description description
"Source/Dest LCAF type."; "Source/Dest LCAF type.";
reference reference
"http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10
#section-4.11"; #section-4.11";
leaf source { leaf source {
type simple-address; type simple-address;
description description
"Source address."; "Source address.";
skipping to change at page 79, line 28 skipping to change at page 78, line 23
description description
"Source address."; "Source address.";
} }
leaf dest { leaf dest {
type simple-address; type simple-address;
description description
"Destination address."; "Destination address.";
} }
} }
container key-value-address { container key-value-address {
when "../address-type = 'key-value-address-lcaf'" { when "../address-type = 'laddr:key-value-address-lcaf'" {
description description
"When LCAF type type is Key/Value Address."; "When LCAF type type is Key/Value Address.";
} }
description description
"Key/Value Address LCAF type."; "Key/Value Address LCAF type.";
reference reference
"http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10
#section-4.11"; #section-4.11";
leaf key { leaf key {
type simple-address; type simple-address;
description description
"Address as Key."; "Address as Key.";
} }
leaf value { leaf value {
type simple-address; type simple-address;
description description
"Address as Value."; "Address as Value.";
} }
} }
container service-path { container service-path {
when "../address-type = 'service-path-lcaf'" { when "../address-type = 'laddr:service-path-lcaf'" {
description description
"When LCAF type service path identifier."; "When LCAF type service path identifier.";
} }
description description
"Service Path LCAF type."; "Service Path LCAF type.";
reference reference
"http://tools.ietf.org/html/draft-ermagan-lisp-nsh-00"; "http://tools.ietf.org/html/draft-ermagan-lisp-nsh-00";
leaf service-path-id { leaf service-path-id {
type service-path-id-type; type service-path-id-type;
description description
"Service path identifier for the path for NSH header"; "Service path identifier for the path for NSH header";
} }
leaf service-index { leaf service-index {
 End of changes. 216 change blocks. 
2179 lines changed or deleted 2120 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/