draft-ietf-lisp-yang-04.txt   draft-ietf-lisp-yang-05.txt 
LISP Working Group V. Ermagan LISP Working Group V. Ermagan
Internet-Draft Cisco Systems Internet-Draft A. Rodriguez-Natal
Intended status: Experimental A. Rodriguez-Natal Intended status: Experimental F. Coras
Expires: July 11, 2017 F. Coras Expires: January 4, 2018 C. Moberg
Technical University of Catalonia R. Rahman
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
January 7, 2017 July 3, 2017
LISP Configuration YANG Model LISP YANG Model
draft-ietf-lisp-yang-04 draft-ietf-lisp-yang-05
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 38
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 July 11, 2017. This Internet-Draft will expire on January 4, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2017 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
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
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 . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.1. Module Structure . . . . . . . . . . . . . . . . . . . . 3 2.1. Module Structure . . . . . . . . . . . . . . . . . . . . 3
2.2. Module Definition . . . . . . . . . . . . . . . . . . . . 5 2.2. Module Definition . . . . . . . . . . . . . . . . . . . . 5
3. LISP-ITR Module . . . . . . . . . . . . . . . . . . . . . . . 13 3. LISP-ITR Module . . . . . . . . . . . . . . . . . . . . . . . 13
3.1. Module Structure . . . . . . . . . . . . . . . . . . . . 14 3.1. Module Structure . . . . . . . . . . . . . . . . . . . . 13
3.2. Module Definition . . . . . . . . . . . . . . . . . . . . 27 3.2. Module Definition . . . . . . . . . . . . . . . . . . . . 17
4. LISP ETR Module . . . . . . . . . . . . . . . . . . . . . . . 30 4. LISP-ETR Module . . . . . . . . . . . . . . . . . . . . . . . 20
4.1. Module Structure . . . . . . . . . . . . . . . . . . . . 31 4.1. Module Structure . . . . . . . . . . . . . . . . . . . . 20
4.2. Module Definition . . . . . . . . . . . . . . . . . . . . 33 4.2. Module Definition . . . . . . . . . . . . . . . . . . . . 22
5. LISP Map Server Module . . . . . . . . . . . . . . . . . . . 36 5. LISP-Map-Server Module . . . . . . . . . . . . . . . . . . . 26
5.1. Module Structure . . . . . . . . . . . . . . . . . . . . 36 5.1. Module Structure . . . . . . . . . . . . . . . . . . . . 26
5.2. Module Definition . . . . . . . . . . . . . . . . . . . . 42 5.2. Module Definition . . . . . . . . . . . . . . . . . . . . 32
6. LISP Map Resolver Module . . . . . . . . . . . . . . . . . . 45 6. LISP-Map-Resolver Module . . . . . . . . . . . . . . . . . . 37
6.1. Module Structure . . . . . . . . . . . . . . . . . . . . 45 6.1. Module Structure . . . . . . . . . . . . . . . . . . . . 37
6.2. Module Definition . . . . . . . . . . . . . . . . . . . . 45 6.2. Module Definition . . . . . . . . . . . . . . . . . . . . 38
7. LISP Proxy ITR Module . . . . . . . . . . . . . . . . . . . . 47 7. LISP-Address-Types Module . . . . . . . . . . . . . . . . . . 39
7.1. Module Structure . . . . . . . . . . . . . . . . . . . . 47 7.1. Module Definition . . . . . . . . . . . . . . . . . . . . 39
7.2. Module Definition . . . . . . . . . . . . . . . . . . . . 59 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 54
8. LISP Proxy ETR Module . . . . . . . . . . . . . . . . . . . . 61 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 54
8.1. Module Structure . . . . . . . . . . . . . . . . . . . . 61 10. Security Considerations . . . . . . . . . . . . . . . . . . . 54
8.2. Module Definition . . . . . . . . . . . . . . . . . . . . 63 11. Normative References . . . . . . . . . . . . . . . . . . . . 54
9. LISP Address Types . . . . . . . . . . . . . . . . . . . . . 65 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 55
9.1. Module Definition . . . . . . . . . . . . . . . . . . . . 65
10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 79
11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 79
12. Security Considerations . . . . . . . . . . . . . . . . . . . 79
13. Normative References . . . . . . . . . . . . . . . . . . . . 79
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 locator-sets +--rw locator-sets
| | +--rw locator-set* [locator-set-name] | +--rw locator-set* [locator-set-name]
| | +--rw locator-set-name string | +--rw locator-set-name string
| | +--rw (locator-type)? | +--rw (locator-type)?
| | +--:(local-interface) | +--:(local-interface)
| | | +--rw interface* [interface-ref] | | +--rw interface* [interface-ref]
| | | +--rw interface-ref if:interface-ref | | +--rw interface-ref if:interface-ref
| | | +--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
| | +--:(general-locator) | +--:(general-locator)
| | +--rw locator* [id] | +--rw locator* [id]
| | +--rw id string | +--rw id string
| | +--rw locator-address | +--rw locator-address
| | | +--rw address-type lisp-address-family-ref | | +--rw address-type lisp-address-family-ref
| | | +--rw virtual-network-id? instance-id-type | | +--rw virtual-network-id? instance-id-type
| | | +--rw (address)? | | +--rw (address)?
| | | +--:(no-address) | | +--:(no-address)
| | | | +--rw no-address? empty | | | +--rw no-address? empty
| | | +--:(ipv4) | | +--:(ipv4)
| | | | +--rw ipv4? inet:ipv4-address | | | +--rw ipv4? inet:ipv4-address
| | | +--:(ipv4-prefix) | | +--:(ipv4-prefix)
| | | | +--rw ipv4-prefix? inet:ipv4-prefix | | | +--rw ipv4-prefix? inet:ipv4-prefix
| | | +--:(ipv6) | | +--:(ipv6)
| | | | +--rw ipv6? inet:ipv6-address | | | +--rw ipv6? inet:ipv6-address
| | | +--:(ipv6-prefix) | | +--:(ipv6-prefix)
| | | | +--rw ipv6-prefix? inet: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-type | | | +--rw distinguished-name? distinguished-name-type
| | | +--:(as-number) | | +--:(as-number)
| | | | +--rw as-number? inet:as-number | | | +--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 iid? 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-lcaf) | | +--:(as-number-lcaf)
| | | | +--rw as-number-lcaf | | | +--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* [hop-id] | | | +--rw hop* [hop-id]
| | | | +--rw hop-id string | | | +--rw hop-id string
| | | | +--rw address? simple-address | | | +--rw address? simple-address
| | | | +--rw lrs-bits? bits | | | +--rw lrs-bits? bits
| | | +--:(source-dest-key) | | +--:(source-dest-key)
| | | | +--rw source-dest-key | | | +--rw source-dest-key
| | | | +--rw source? simple-address | | | +--rw source? simple-address
| | | | +--rw dest? simple-address | | | +--rw dest? simple-address
| | | +--:(key-value-address) | | +--:(key-value-address)
| | | | +--rw key-value-address | | | +--rw key-value-address
| | | | +--rw key? simple-address | | | +--rw key? simple-address
| | | | +--rw value? simple-address | | | +--rw value? simple-address
| | | +--:(service-path) | | +--:(service-path)
| | | +--rw service-path | | +--rw service-path
| | | +--rw service-path-id? service-path-id-type | | +--rw service-path-id? service-path-id-type
| | | +--rw service-index? uint8 | | +--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
| +--rw lisp-router-instances +--rw lisp-router-instances
| +--rw lisp-router-instance* [lisp-router-instance-id] +--rw lisp-router-instance* [lisp-router-instance-id]
| +--rw lisp-router-instance-id int32 +--rw lisp-router-instance-id int32
| +--rw lisp-role* [lisp-role-type] +--rw lisp-role* [lisp-role-type]
| +--rw lisp-role-type lisp-role-ref | +--rw lisp-role-type lisp-role-ref
| +--rw enabled? boolean +--rw lisp-router-id
+--ro lisp-state +--rw site-id? uint64
+--ro lisp-router-instances +--rw xtr-id? lisp:xtr-id-type
+--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@2016-06-30.yang" <CODE BEGINS> file "ietf-lisp@2017-07-01.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;
} }
import ietf-yang-types {
prefix yang;
}
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 parameters for LISP.
and operational data for LISP. The module can be extended by The module can be extended by vendors to define vendor-specific
vendors to define vendor-specific LISP configuration LISP parameters and policies.
parameters and policies.
Copyright (c) 2014 IETF Trust and the persons identified as Copyright (c) 2014 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 2016-06-30 { revision 2017-07-01 {
description description
"Initial revision."; "Initial revision.";
reference reference
"https://tools.ietf.org/html/rfc6830"; "https://tools.ietf.org/html/rfc6830";
} }
identity lisp-role { identity lisp-role {
description description
"LISP router role."; "LISP router role.";
} }
identity itr {
base lisp-role;
description
"LISP ITR.";
}
identity pitr {
base lisp-role;
description
"LISP PITR.";
}
identity etr {
base lisp-role;
description
"LISP ETR.";
}
identity petr {
base lisp-role;
description
"LISP PETR.";
}
identity mapping-system { identity mapping-system {
description description
"Mapping System interface"; "Mapping System interface";
} }
identity single-node-mapping-system { identity single-node-mapping-system {
base mapping-system; base mapping-system;
description description
"logically singular Map Server"; "logically singular Map Server";
} }
typedef mapping-system-ref { typedef mapping-system-ref {
skipping to change at page 8, line 9 skipping to change at page 8, line 22
description description
"HMAC-SHA-1-96 (RFC2404) authentication is used."; "HMAC-SHA-1-96 (RFC2404) authentication is used.";
} }
enum hmac-sha-256-128 { enum hmac-sha-256-128 {
value 2; value 2;
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 mechanisms 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";
} }
typedef xtr-id-type {
type binary {
length "16";
}
description
"128 bit xTR identifier.";
}
grouping locator-properties { grouping locator-properties {
description description
"Properties of a RLOC"; "Properties of a RLOC";
leaf priority { leaf priority {
type uint8; type uint8;
description description
"Locator priority."; "Locator priority.";
} }
leaf weight { leaf weight {
skipping to change at page 8, line 43 skipping to change at page 9, line 16
leaf multicast-weight { leaf multicast-weight {
type uint8; type uint8;
description description
"Locator's multicast weight"; "Locator's multicast weight";
} }
} }
grouping locators-grouping { grouping locators-grouping {
description description
"Group that defines a list of LISP locators."; "Group that defines a list of LISP locators.";
// vina: container?
list locator { list locator {
key "id"; key "id";
description description
"List of routing locators"; "List of routing locators";
leaf id { leaf id {
type string { type string {
length "1..64"; length "1..64";
} }
description description
"Locator id"; "Locator id";
skipping to change at page 9, line 33 skipping to change at page 10, line 4
description description
"The address type of the locator"; "The address type of the locator";
leaf interface-ref { leaf interface-ref {
type if:interface-ref; type if:interface-ref;
description description
"The name of the interface supporting the locator."; "The name of the interface supporting the locator.";
} }
uses locator-properties; uses locator-properties;
} }
} }
grouping servicing-eids-grouping { grouping mapping {
description description
"Group of EIDs serviced by the this lisp device."; "Group that defines a LISP mapping.";
container servicing-eids { container eid {
uses lcaf:lisp-address;
description description
"This node defines list of EIDs serviced by the this" "End-host Identifier (EID) to be mapped to a list of
+ " lisp device."; locators";
list servicing-eid { }
key "id"; leaf time-to-live {
description type uint32;
"List of EIDs serviced by the this lisp device."; units minutes;
leaf id { description
type lisp:eid-id; "Mapping validity period in minutes.";
}
leaf creation-time {
type yang:date-and-time;
description
"Time when the mapping was created.";
}
leaf authoritative {
type bits {
bit A {
description description
"Id of serviced EID."; "Authoritative bit.";
} }
container eid-address { }
uses lcaf:lisp-address; description
"Bit that indicates if mapping comes from an
authoritative source.";
}
leaf static {
type boolean;
default "false";
description
"This leaf should be true if the mapping is static.";
}
choice locator-list {
description
"list of locartors are either negative, or positive.";
case negative-mapping {
leaf map-reply-action {
type map-reply-action;
description description
"Serviced EID address in generic LISP address format."; "Forwarding action for a negative mapping.";
}
}
case positive-mapping {
container rlocs {
uses locators-grouping;
description
"List of locators for a positive mapping.";
} }
} }
} }
} }
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 virtual-network {
key "id"; key "vni";
description description
"List of EID to RLOCs mappings."; "Virtual network to which the mappings belong.";
leaf id { leaf vni {
type eid-id; type lcaf:instance-id-type;
description
"Id that uniquely identifies a mapping.";
}
container eid {
uses lcaf:lisp-address;
description
"End-host Identifier (EID) to be mapped to a list of
locators";
}
leaf ttl {
type uint32;
description
"Mapping validity period.";
}
leaf authoritative {
type bits {
bit A {
description
"Authoritative bit.";
}
}
description
"Bit that indicates if mapping comes from an
authoritative source.";
}
leaf static {
type boolean;
default "false";
description description
"This leaf should be true if the mapping is static."; "Virtual network identifier.";
} }
choice locator-list { container mappings {
description description
"list of locartors are either negative, or positive."; "Mappings within the virtual network.";
list mapping {
case negative-mapping { key "id";
leaf map-reply-action { description
type map-reply-action; "List of EID to RLOCs mappings.";
description leaf id {
"Forwarding action for a negative mapping."; type eid-id;
}
}
case positive-mapping {
container rlocs {
uses locators-grouping;
description description
"List of locators for a positive mapping."; "Id that uniquely identifies a mapping.";
} }
uses mapping;
} }
} }
} }
} }
/* Configuration Data */
container lisp { container lisp {
description description
"Configuration parameters for LISP subsystem."; "Parameters for the LISP subsystem.";
container locator-sets { container locator-sets {
description description
"Container that defines a named locator set which can be "Container that defines a named locator set which can be
referenced elsewhere."; referenced elsewhere.";
list locator-set { list locator-set {
key "locator-set-name"; key "locator-set-name";
description description
"Multiple locator sets can be configured."; "Multiple locator sets can be defined.";
leaf locator-set-name { leaf locator-set-name {
type string { type string {
length "1..64"; length "1..64";
} }
description description
"Locator set name"; "Locator set name";
} }
choice locator-type { choice locator-type {
description description
"Locator sets can be based on local interfaces, or "Locator sets can be based on local interfaces, or
skipping to change at page 12, line 15 skipping to change at page 12, line 35
uses locators-grouping; uses locators-grouping;
description description
"List of locators in this set based on lisp-address."; "List of locators in this set based on lisp-address.";
} }
} }
} }
} }
container lisp-router-instances { container lisp-router-instances {
description description
"Configuration of LISP router instances."; "Different LISP routers instantiated in the device";
list lisp-router-instance { list lisp-router-instance {
key "lisp-router-instance-id"; key "lisp-router-instance-id";
description description
"Each entry contains configuration of a lisp-router "Each entry contains parameters for a LISP router.";
instance.";
leaf lisp-router-instance-id { leaf lisp-router-instance-id {
type int32; type int32;
description description
"Arbitrary lisp-router id."; "Arbitrary lisp-router id.";
} }
list lisp-role { list lisp-role {
key lisp-role-type; key lisp-role-type;
description description
"List of lisp device roles such as MS, MR, ITR, "List of lisp device roles such as MS, MR, ITR,
ETR, RTR."; PITR, ETR or PETR.";
leaf lisp-role-type { leaf lisp-role-type {
type lisp-role-ref; type lisp-role-ref;
description description
"The type of LISP device - identity derived from the "The type of LISP device - identity derived from the
'lisp-device' base identity."; 'lisp-device' base identity.";
} }
leaf enabled {
type boolean;
default "true";
description
"Enable/disable the lisp-role.";
}
}
}
}
}
/* Operational state data */
container lisp-state {
config false;
description
"Operational state of the LISP subsystem.";
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
"Arbitrary lisp-router id.";
} }
list lisp-role { container lisp-router-id {
key lisp-role-type; when "../lisp-role/lisp-role-type = 'itr' or
../lisp-role/lisp-role-type = 'pitr' or
../lisp-role/lisp-role-type = 'etr' or
../lisp-role/lisp-role-type = 'petr'" {
description "Only when ITR, PITR, ETR or PETR.";
}
description description
"List of lisp device roles such as MS, MR, ITR, "Site-ID and xTR-ID of the device.";
ETR, RTR."; leaf site-id {
leaf lisp-role-type { type uint64;
type lisp-role-ref; description "Site ID";
description
"The type of LISP device - identity derived from the
'lisp-device' base identity.";
} }
leaf enabled { leaf xtr-id {
type boolean; type lisp:xtr-id-type;
default "true"; description "xTR ID";
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 14, line 8 skipping to change at page 13, line 41
<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:lisp-router-instances/lisp:lisp-router-instance/lisp:lisp-role: augment /lisp:lisp/lisp:lisp-router-instances/lisp:lisp-router-instance:
+--rw itr-cfg! +--rw itr!
+--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? -> /lisp:lisp/locator-sets/locator-set/locator-set-name +--rw itr-rlocs? -> /lisp:lisp/locator-sets/locator-set/locator-set-name
+--rw map-resolvers +--rw map-resolvers
| +--rw map-resolver* [id] | +--rw map-resolver* inet:ip-address
| +--rw id lisp:eid-id +--rw proxy-etrs
| +--rw eid-address | +--rw proxy-etr-address* inet:ip-address
| | +--rw address-type lisp-address-family-ref +--rw map-cache
| | +--rw virtual-network-id? instance-id-type +--rw virtual-network* [vni]
| | +--rw (address)? +--rw vni lcaf:instance-id-type
| | +--:(no-address) +--rw mappings
| | | +--rw no-address? empty +--rw mapping* [id]
| | +--:(ipv4) +--rw id eid-id
| | | +--rw ipv4? inet:ipv4-address +--rw eid
| | +--:(ipv4-prefix) | +--rw address-type lisp-address-family-ref
| | | +--rw ipv4-prefix? inet:ipv4-prefix | +--rw virtual-network-id? instance-id-type
| | +--:(ipv6) | +--rw (address)?
| | | +--rw ipv6? inet:ipv6-address | +--:(no-address)
| | +--:(ipv6-prefix) | | +--rw no-address? empty
| | | +--rw ipv6-prefix? inet:ipv6-prefix | +--:(ipv4)
| | +--:(mac) | | +--rw ipv4? inet:ipv4-address
| | | +--rw mac? yang:mac-address | +--:(ipv4-prefix)
| | +--:(distinguished-name) | | +--rw ipv4-prefix? inet:ipv4-prefix
| | | +--rw distinguished-name? distinguished-name-type | +--:(ipv6)
| | +--:(as-number) | | +--rw ipv6? inet:ipv6-address
| | | +--rw as-number? inet:as-number | +--:(ipv6-prefix)
| | +--:(null-address) | | +--rw ipv6-prefix? inet:ipv6-prefix
| | | +--rw null-address | +--:(mac)
| | | +--rw address? empty | | +--rw mac? yang:mac-address
| | +--:(afi-list) | +--:(distinguished-name)
| | | +--rw afi-list | | +--rw distinguished-name? distinguished-name-type
| | | +--rw address-list* simple-address | +--:(as-number)
| | +--:(instance-id) | | +--rw as-number? inet:as-number
| | | +--rw instance-id | +--:(null-address)
| | | +--rw iid? instance-id-type | | +--rw null-address
| | | +--rw mask-length? uint8 | | +--rw address? empty
| | | +--rw address? simple-address | +--:(afi-list)
| | +--:(as-number-lcaf) | | +--rw afi-list
| | | +--rw as-number-lcaf | | +--rw address-list* simple-address
| | | +--rw as? inet:as-number | +--:(instance-id)
| | | +--rw address? simple-address | | +--rw instance-id
| | +--:(application-data) | | +--rw iid? instance-id-type
| | | +--rw application-data | | +--rw mask-length? uint8
| | | +--rw address? simple-address | | +--rw address? simple-address
| | | +--rw protocol? uint8 | +--:(as-number-lcaf)
| | | +--rw ip-tos? int32 | | +--rw as-number-lcaf
| | | +--rw local-port-low? inet:port-number | | +--rw as? inet:as-number
| | | +--rw local-port-high? inet:port-number | | +--rw address? simple-address
| | | +--rw remote-port-low? inet:port-number | +--:(application-data)
| | | +--rw remote-port-high? inet:port-number | | +--rw application-data
| | +--:(geo-coordinates) | | +--rw address? simple-address
| | | +--rw geo-coordinates | | +--rw protocol? uint8
| | | +--rw latitude? bits | | +--rw ip-tos? int32
| | | +--rw latitude-degrees? uint8 | | +--rw local-port-low? inet:port-number
| | | +--rw latitude-minutes? uint8 | | +--rw local-port-high? inet:port-number
| | | +--rw latitude-seconds? uint8 | | +--rw remote-port-low? inet:port-number
| | | +--rw longitude? bits | | +--rw remote-port-high? inet:port-number
| | | +--rw longitude-degrees? uint16 | +--:(geo-coordinates)
| | | +--rw longitude-minutes? uint8 | | +--rw geo-coordinates
| | | +--rw longitude-seconds? uint8 | | +--rw latitude? bits
| | | +--rw altitude? int32 | | +--rw latitude-degrees? uint8
| | | +--rw address? simple-address | | +--rw latitude-minutes? uint8
| | +--:(nat-traversal) | | +--rw latitude-seconds? uint8
| | | +--rw nat-traversal | | +--rw longitude? bits
| | | +--rw ms-udp-port? uint16 | | +--rw longitude-degrees? uint16
| | | +--rw etr-udp-port? uint16 | | +--rw longitude-minutes? uint8
| | | +--rw global-etr-rloc? simple-address | | +--rw longitude-seconds? uint8
| | | +--rw ms-rloc? simple-address | | +--rw altitude? int32
| | | +--rw private-etr-rloc? simple-address | | +--rw address? simple-address
| | | +--rw rtr-rlocs* simple-address | +--:(nat-traversal)
| | +--:(explicit-locator-path) | | +--rw nat-traversal
| | | +--rw explicit-locator-path | | +--rw ms-udp-port? uint16
| | | +--rw hop* [hop-id] | | +--rw etr-udp-port? uint16
| | | +--rw hop-id string | | +--rw global-etr-rloc? simple-address
| | | +--rw address? simple-address | | +--rw ms-rloc? simple-address
| | | +--rw lrs-bits? bits | | +--rw private-etr-rloc? simple-address
| | +--:(source-dest-key) | | +--rw rtr-rlocs* simple-address
| | | +--rw source-dest-key | +--:(explicit-locator-path)
| | | +--rw source? simple-address | | +--rw explicit-locator-path
| | | +--rw dest? simple-address | | +--rw hop* [hop-id]
| | +--:(key-value-address) | | +--rw hop-id string
| | | +--rw key-value-address | | +--rw address? simple-address
| | | +--rw key? simple-address | | +--rw lrs-bits? bits
| | | +--rw value? simple-address | +--:(source-dest-key)
| | +--:(service-path) | | +--rw source-dest-key
| | +--rw service-path | | +--rw source? simple-address
| | +--rw service-path-id? service-path-id-type | | +--rw dest? simple-address
| | +--rw service-index? uint8 | +--:(key-value-address)
| +--rw map-resolver-address* inet:ip-address | | +--rw key-value-address
+--rw proxy-etrs | | +--rw key? simple-address
| +--rw proxy-etr* [id] | | +--rw value? simple-address
| +--rw id lisp:eid-id | +--:(service-path)
| +--rw eid-address | +--rw service-path
| | +--rw address-type lisp-address-family-ref | +--rw service-path-id? service-path-id-type
| | +--rw virtual-network-id? instance-id-type | +--rw service-index? uint8
| | +--rw (address)? +--rw time-to-live? uint32
| | +--:(no-address) +--rw creation-time? yang:date-and-time
| | | +--rw no-address? empty +--rw authoritative? bits
| | +--:(ipv4) +--rw static? boolean
| | | +--rw ipv4? inet:ipv4-address +--rw (locator-list)?
| | +--:(ipv4-prefix) +--:(negative-mapping)
| | | +--rw ipv4-prefix? inet:ipv4-prefix | +--rw map-reply-action? map-reply-action
| | +--:(ipv6) +--:(positive-mapping)
| | | +--rw ipv6? inet:ipv6-address +--rw rlocs
| | +--:(ipv6-prefix) +--rw locator* [id]
| | | +--rw ipv6-prefix? inet:ipv6-prefix +--rw id string
| | +--:(mac) +--rw locator-address
| | | +--rw mac? yang:mac-address | +--rw address-type lisp-address-family-ref
| | +--:(distinguished-name) | +--rw virtual-network-id? instance-id-type
| | | +--rw distinguished-name? distinguished-name-type | +--rw (address)?
| | +--:(as-number) | +--:(no-address)
| | | +--rw as-number? inet:as-number | | +--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 iid? instance-id-type | +--:(mac)
| | | +--rw mask-length? uint8 | | +--rw mac? yang:mac-address
| | | +--rw address? simple-address | +--:(distinguished-name)
| | +--:(as-number-lcaf) | | +--rw distinguished-name? distinguished-name-type
| | | +--rw as-number-lcaf | +--:(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* [hop-id] | | +--rw longitude-minutes? uint8
| | | +--rw hop-id string | | +--rw longitude-seconds? uint8
| | | +--rw address? simple-address | | +--rw altitude? int32
| | | +--rw lrs-bits? bits | | +--rw address? simple-address
| | +--:(source-dest-key) | +--:(nat-traversal)
| | | +--rw source-dest-key | | +--rw nat-traversal
| | | +--rw source? simple-address | | +--rw ms-udp-port? uint16
| | | +--rw dest? simple-address | | +--rw etr-udp-port? uint16
| | +--:(key-value-address) | | +--rw global-etr-rloc? simple-address
| | | +--rw key-value-address | | +--rw ms-rloc? simple-address
| | | +--rw key? simple-address | | +--rw private-etr-rloc? simple-address
| | | +--rw value? simple-address | | +--rw rtr-rlocs* simple-address
| | +--:(service-path) | +--:(explicit-locator-path)
| | +--rw service-path | | +--rw explicit-locator-path
| | +--rw service-path-id? service-path-id-type | | +--rw hop* [hop-id]
| | +--rw service-index? uint8 | | +--rw hop-id string
| +--rw proxy-etr-address* inet:ip-address | | +--rw address? simple-address
+--rw map-cache | | +--rw lrs-bits? bits
| +--rw mapping* [id] | +--:(source-dest-key)
| +--rw id eid-id | | +--rw source-dest-key
| +--rw eid | | +--rw source? simple-address
| | +--rw address-type lisp-address-family-ref | | +--rw dest? simple-address
| | +--rw virtual-network-id? instance-id-type | +--:(key-value-address)
| | +--rw (address)? | | +--rw key-value-address
| | +--:(no-address) | | +--rw key? simple-address
| | | +--rw no-address? empty | | +--rw value? simple-address
| | +--:(ipv4) | +--:(service-path)
| | | +--rw ipv4? inet:ipv4-address | +--rw service-path
| | +--:(ipv4-prefix) | +--rw service-path-id? service-path-id-type
| | | +--rw ipv4-prefix? inet:ipv4-prefix | +--rw service-index? uint8
| | +--:(ipv6) +--rw priority? uint8
| | | +--rw ipv6? inet:ipv6-address +--rw weight? uint8
| | +--:(ipv6-prefix) +--rw multicast-priority? uint8
| | | +--rw ipv6-prefix? inet:ipv6-prefix +--rw multicast-weight? uint8
| | +--:(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 ttl? uint32
| +--rw authoritative? bits
| +--rw static? boolean
| +--rw (locator-list)?
| +--:(negative-mapping)
| | +--rw map-reply-action? map-reply-action
| +--:(positive-mapping)
| +--rw rlocs
| +--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 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 map-cache
+--ro mapping* [id]
+--ro id eid-id
+--ro eid
| +--ro address-type lisp-address-family-ref
| +--ro virtual-network-id? instance-id-type
| +--ro (address)?
| +--:(no-address)
| | +--ro no-address? empty
| +--:(ipv4)
| | +--ro ipv4? inet:ipv4-address
| +--:(ipv4-prefix)
| | +--ro ipv4-prefix? inet:ipv4-prefix
| +--:(ipv6)
| | +--ro ipv6? inet:ipv6-address
| +--:(ipv6-prefix)
| | +--ro ipv6-prefix? inet:ipv6-prefix
| +--:(mac)
| | +--ro mac? yang:mac-address
| +--:(distinguished-name)
| | +--ro distinguished-name? distinguished-name-type
| +--:(as-number)
| | +--ro as-number? inet:as-number
| +--:(null-address)
| | +--ro null-address
| | +--ro address? empty
| +--:(afi-list)
| | +--ro afi-list
| | +--ro address-list* simple-address
| +--:(instance-id)
| | +--ro instance-id
| | +--ro iid? instance-id-type
| | +--ro mask-length? uint8
| | +--ro address? simple-address
| +--:(as-number-lcaf)
| | +--ro as-number-lcaf
| | +--ro as? inet:as-number
| | +--ro address? simple-address
| +--:(application-data)
| | +--ro application-data
| | +--ro address? simple-address
| | +--ro protocol? uint8
| | +--ro ip-tos? int32
| | +--ro local-port-low? inet:port-number
| | +--ro local-port-high? inet:port-number
| | +--ro remote-port-low? inet:port-number
| | +--ro remote-port-high? inet:port-number
| +--:(geo-coordinates)
| | +--ro geo-coordinates
| | +--ro latitude? bits
| | +--ro latitude-degrees? uint8
| | +--ro latitude-minutes? uint8
| | +--ro latitude-seconds? uint8
| | +--ro longitude? bits
| | +--ro longitude-degrees? uint16
| | +--ro longitude-minutes? uint8
| | +--ro longitude-seconds? uint8
| | +--ro altitude? int32
| | +--ro address? simple-address
| +--:(nat-traversal)
| | +--ro nat-traversal
| | +--ro ms-udp-port? uint16
| | +--ro etr-udp-port? uint16
| | +--ro global-etr-rloc? simple-address
| | +--ro ms-rloc? simple-address
| | +--ro private-etr-rloc? simple-address
| | +--ro rtr-rlocs* simple-address
| +--:(explicit-locator-path)
| | +--ro explicit-locator-path
| | +--ro hop* [hop-id]
| | +--ro hop-id string
| | +--ro address? simple-address
| | +--ro lrs-bits? bits
| +--:(source-dest-key)
| | +--ro source-dest-key
| | +--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 ttl? uint32
+--ro authoritative? bits
+--ro static? boolean
+--ro (locator-list)?
+--:(negative-mapping)
| +--ro map-reply-action? map-reply-action
+--:(positive-mapping)
+--ro rlocs
+--ro locator* [id]
+--ro id string
+--ro locator-address
| +--ro address-type lisp-address-family-ref
| +--ro virtual-network-id? instance-id-type
| +--ro (address)?
| +--:(no-address)
| | +--ro no-address? empty
| +--:(ipv4)
| | +--ro ipv4? inet:ipv4-address
| +--:(ipv4-prefix)
| | +--ro ipv4-prefix? inet:ipv4-prefix
| +--:(ipv6)
| | +--ro ipv6? inet:ipv6-address
| +--:(ipv6-prefix)
| | +--ro ipv6-prefix? inet:ipv6-prefix
| +--:(mac)
| | +--ro mac? yang:mac-address
| +--:(distinguished-name)
| | +--ro distinguished-name? distinguished-name-type
| +--:(as-number)
| | +--ro as-number? inet:as-number
| +--:(null-address)
| | +--ro null-address
| | +--ro address? empty
| +--:(afi-list)
| | +--ro afi-list
| | +--ro address-list* simple-address
| +--:(instance-id)
| | +--ro instance-id
| | +--ro iid? instance-id-type
| | +--ro mask-length? uint8
| | +--ro address? simple-address
| +--:(as-number-lcaf)
| | +--ro as-number-lcaf
| | +--ro as? inet:as-number
| | +--ro address? simple-address
| +--:(application-data)
| | +--ro application-data
| | +--ro address? simple-address
| | +--ro protocol? uint8
| | +--ro ip-tos? int32
| | +--ro local-port-low? inet:port-number
| | +--ro local-port-high? inet:port-number
| | +--ro remote-port-low? inet:port-number
| | +--ro remote-port-high? inet:port-number
| +--:(geo-coordinates)
| | +--ro geo-coordinates
| | +--ro latitude? bits
| | +--ro latitude-degrees? uint8
| | +--ro latitude-minutes? uint8
| | +--ro latitude-seconds? uint8
| | +--ro longitude? bits
| | +--ro longitude-degrees? uint16
| | +--ro longitude-minutes? uint8
| | +--ro longitude-seconds? uint8
| | +--ro altitude? int32
| | +--ro address? simple-address
| +--:(nat-traversal)
| | +--ro nat-traversal
| | +--ro ms-udp-port? uint16
| | +--ro etr-udp-port? uint16
| | +--ro global-etr-rloc? simple-address
| | +--ro ms-rloc? simple-address
| | +--ro private-etr-rloc? simple-address
| | +--ro rtr-rlocs* simple-address
| +--:(explicit-locator-path)
| | +--ro explicit-locator-path
| | +--ro hop* [hop-id]
| | +--ro hop-id string
| | +--ro address? simple-address
| | +--ro lrs-bits? bits
| +--:(source-dest-key)
| | +--ro source-dest-key
| | +--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 weight? uint8
+--ro multicast-priority? uint8
+--ro multicast-weight? uint8
3.2. Module Definition 3.2. Module Definition
<CODE BEGINS> file "ietf-lisp-itr@2016-06-30.yang" <CODE BEGINS> file "ietf-lisp-itr@2017-07-01.yang"
module ietf-lisp-itr { module ietf-lisp-itr {
namespace "urn:ietf:params:xml:ns:yang:ietf-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-inet-types {
prefix lcaf; prefix inet;
} }
import ietf-inet-types { organization
prefix inet; "IETF LISP (Locator/ID Separation Protocol) Working Group";
} contact
organization "lisp@ietf.org";
"IETF LISP (Locator/ID Separation Protocol) Working Group"; description
contact "This YANG module defines the generic parameters for a LISP
"lisp@ietf.org"; ITR. The module can be extended by vendors to define
description vendor-specific parameters and policies.
"This YANG module defines the generic configuration
data for a LISP ITR. 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 Copyright (c) 2015 IETF Trust and the persons identified as
the RFC itself for full legal notices. authors of the code. All rights reserved.
";
revision 2016-06-30 {
description
"Initial revision.";
reference
"https://tools.ietf.org/html/rfc6830";
}
identity itr {
base lisp:lisp-role;
description
"LISP ITR.";
}
augment "/lisp:lisp/lisp:lisp-router-instances/"
+ "lisp:lisp-router-instance/lisp:lisp-role" {
when "lisp:lisp-role-type = 'lisp-itr:itr'" {
description
"Augment is valid when LISP role type is ITR.";
}
description
"This augments LISP devices list with ITR specific
parameters.";
container itr-cfg {
presence "LISP ITR operation enabled";
description
"ITR configuration";
container rloc-probing {
presence "RLOC probing active";
description
"RLOC-probing parameters";
leaf interval {
type uint16;
units "seconds";
description
"Interval in seconds";
}
leaf retries {
type uint8;
description
"Number of retries";
}
leaf retries-interval {
type uint16;
units "seconds";
description
"Interval in seconds between retries";
}
}
leaf itr-rlocs {
type leafref {
path "/lisp:lisp/lisp:locator-sets/lisp:locator-set/"
+ "lisp:locator-set-name";
} Redistribution and use in source and binary forms, with or
description without modification, is permitted pursuant to, and subject
"Refrence to a locator set that the ITR includes in to the license terms contained in, the Simplified BSD License
Map-Requests"; set forth in Section 4.c of the IETF Trust's Legal Provisions
} Relating to IETF Documents
container map-resolvers { (http://trustee.ietf.org/license-info).
description
"The Map-Resolvers configured for the ITR.";
list map-resolver {
key "id";
min-elements 1;
description
"List of Map-Resolvers configured for the ITR.";
leaf id {
type lisp:eid-id;
description
"Id of the EID for which the Map-Server is
configured.";
}
container eid-address {
uses lcaf:lisp-address;
description
"EID for which the Map-Resolver is configured.";
}
leaf-list map-resolver-address {
type inet:ip-address;
description
"Map-Resolver RLOC address.";
}
}
}
container proxy-etrs {
description
"Proxy ETRs configured for the ITR.";
list proxy-etr {
key "id";
description
"List of PETR configured for the ITR.";
leaf id {
type lisp:eid-id;
description
"Id of the EID for which the PETR is configured.";
}
container eid-address {
uses lcaf:lisp-address;
description
"EID for which the PETR is configured.";
}
leaf-list proxy-etr-address{
type inet:ip-address;
description
"PETR RLOC address.";
}
}
}
container map-cache{
uses lisp:mappings;
description
"EID to RLOCs mappings cache.";
}
uses lisp:servicing-eids-grouping;
} This version of this YANG module is part of RFC 6338; see
} the RFC itself for full legal notices.
augment "/lisp:lisp-state/lisp:lisp-router-instances/" ";
+ "lisp:lisp-router-instance/lisp:lisp-role" { revision 2017-07-01 {
when "lisp:lisp-role-type = 'lisp-itr:itr'" { description
description "Initial revision.";
"Augment is valid when LISP role type is ITR."; reference
} "https://tools.ietf.org/html/rfc6830";
description }
"This augments LISP devices list state with ITR specific augment "/lisp:lisp/lisp:lisp-router-instances/lisp:lisp-router-instance" {
parameters."; when "lisp:lisp-role/lisp:lisp-role-type = 'lisp:itr' or
container itr-state { lisp:lisp-role/lisp:lisp-role-type = 'lisp:pitr'" {
config false; description
description "Augment is valid when LISP role type is ITR or PITR.";
"ITR state."; }
container map-cache{ description
uses lisp:mappings; "This augments LISP devices list with (P)ITR specific
description parameters.";
"EID to RLOCs mappings cache."; container itr {
} presence "LISP (P)ITR operation enabled";
} description
} "ITR parameters";
} container rloc-probing {
<CODE ENDS> presence "RLOC probing active";
description
"RLOC-probing parameters";
leaf interval {
type uint16;
units "seconds";
description
"Interval in seconds for resending the probes";
}
leaf retries {
type uint8;
description
"Number of retries for sending the probes";
}
leaf retries-interval {
type uint16;
units "seconds";
description
"Interval in seconds between retries when sending probes.
The action taken if all retries fail to receive is
impementation specific.";
}
}
leaf itr-rlocs {
type leafref {
path "/lisp:lisp/lisp:locator-sets/lisp:locator-set/"
+ "lisp:locator-set-name";
}
description
"Reference to a locator set that the (P)ITR includes in
Map-Requests";
}
container map-resolvers {
description
"Map-Resolvers that the (P)ITR uses.";
leaf-list map-resolver {
type inet:ip-address;
min-elements 1;
description
"Each Map-Resolver within the list of Map-Resolvers.";
}
}
container proxy-etrs {
when "../../lisp:lisp-role/lisp:lisp-role-type = 'lisp:itr'" {
description
"Container exists only when LISP role type is ITR";
}
description
"Proxy ETRs that the ITR uses.";
leaf-list proxy-etr-address{
type inet:ip-address;
description
"Proxy ETR RLOC address.";
}
}
container map-cache{
uses lisp:mappings;
description
"EID to RLOCs mappings cache.";
}
}
}
}
<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:lisp-router-instances/lisp:lisp-router-instance/lisp:lisp-role: augment /lisp:lisp/lisp:lisp-router-instances/lisp:lisp-router-instance:
+--rw etr-cfg! +--rw etr!
+--rw local-eids +--rw map-servers
+--rw local-eid* [id] | +--rw map-server* [ms-address]
+--rw id lisp:eid-id | +--rw ms-address inet:ip-address
+--rw eid-address | +--rw auth-key? string
| +--rw address-type lisp-address-family-ref | +--rw auth-key-type? lisp:auth-key-type
| +--rw virtual-network-id? instance-id-type +--rw local-eids
| +--rw (address)? +--rw virtual-network* [vni]
| +--:(no-address) +--rw vni lcaf:instance-id-type
| | +--rw no-address? empty +--rw eids
| +--:(ipv4) +--rw local-eid* [id]
| | +--rw ipv4? inet:ipv4-address +--rw id lisp:eid-id
| +--:(ipv4-prefix) +--rw eid-address
| | +--rw ipv4-prefix? inet:ipv4-prefix | +--rw address-type lisp-address-family-ref
| +--:(ipv6) | +--rw virtual-network-id? instance-id-type
| | +--rw ipv6? inet:ipv6-address | +--rw (address)?
| +--:(ipv6-prefix) | +--:(no-address)
| | +--rw ipv6-prefix? inet:ipv6-prefix | | +--rw no-address? empty
| +--:(mac) | +--:(ipv4)
| | +--rw mac? yang:mac-address | | +--rw ipv4? inet:ipv4-address
| +--:(distinguished-name) | +--:(ipv4-prefix)
| | +--rw distinguished-name? distinguished-name-type | | +--rw ipv4-prefix? inet:ipv4-prefix
| +--:(as-number) | +--:(ipv6)
| | +--rw as-number? inet:as-number | | +--rw ipv6? inet:ipv6-address
| +--:(null-address) | +--:(ipv6-prefix)
| | +--rw null-address | | +--rw ipv6-prefix? inet:ipv6-prefix
| | +--rw address? empty | +--:(mac)
| +--:(afi-list) | | +--rw mac? yang:mac-address
| | +--rw afi-list | +--:(distinguished-name)
| | +--rw address-list* simple-address | | +--rw distinguished-name? distinguished-name-type
| +--:(instance-id) | +--:(as-number)
| | +--rw instance-id | | +--rw as-number? inet:as-number
| | +--rw iid? instance-id-type | +--:(null-address)
| | +--rw mask-length? uint8 | | +--rw null-address
| | +--rw address? simple-address | | +--rw address? empty
| +--:(as-number-lcaf) | +--:(afi-list)
| | +--rw as-number-lcaf | | +--rw afi-list
| | +--rw as? inet:as-number | | +--rw address-list* simple-address
| | +--rw address? simple-address | +--:(instance-id)
| +--:(application-data) | | +--rw instance-id
| | +--rw application-data | | +--rw iid? instance-id-type
| | +--rw address? simple-address | | +--rw mask-length? uint8
| | +--rw protocol? uint8 | | +--rw address? simple-address
| | +--rw ip-tos? int32 | +--:(as-number-lcaf)
| | +--rw local-port-low? inet:port-number | | +--rw as-number-lcaf
| | +--rw local-port-high? inet:port-number | | +--rw as? inet:as-number
| | +--rw remote-port-low? inet:port-number | | +--rw address? simple-address
| | +--rw remote-port-high? inet:port-number | +--:(application-data)
| +--:(geo-coordinates) | | +--rw application-data
| | +--rw geo-coordinates | | +--rw address? simple-address
| | +--rw latitude? bits | | +--rw protocol? uint8
| | +--rw latitude-degrees? uint8 | | +--rw ip-tos? int32
| | +--rw latitude-minutes? uint8 | | +--rw local-port-low? inet:port-number
| | +--rw latitude-seconds? uint8 | | +--rw local-port-high? inet:port-number
| | +--rw longitude? bits | | +--rw remote-port-low? inet:port-number
| | +--rw longitude-degrees? uint16 | | +--rw remote-port-high? inet:port-number
| | +--rw longitude-minutes? uint8 | +--:(geo-coordinates)
| | +--rw longitude-seconds? uint8 | | +--rw geo-coordinates
| | +--rw altitude? int32 | | +--rw latitude? bits
| | +--rw address? simple-address | | +--rw latitude-degrees? uint8
| +--:(nat-traversal) | | +--rw latitude-minutes? uint8
| | +--rw nat-traversal | | +--rw latitude-seconds? uint8
| | +--rw ms-udp-port? uint16 | | +--rw longitude? bits
| | +--rw etr-udp-port? uint16 | | +--rw longitude-degrees? uint16
| | +--rw global-etr-rloc? simple-address | | +--rw longitude-minutes? uint8
| | +--rw ms-rloc? simple-address | | +--rw longitude-seconds? uint8
| | +--rw private-etr-rloc? simple-address | | +--rw altitude? int32
| | +--rw rtr-rlocs* simple-address | | +--rw address? simple-address
| +--:(explicit-locator-path) | +--:(nat-traversal)
| | +--rw explicit-locator-path | | +--rw nat-traversal
| | +--rw hop* [hop-id] | | +--rw ms-udp-port? uint16
| | +--rw hop-id string | | +--rw etr-udp-port? uint16
| | +--rw address? simple-address | | +--rw global-etr-rloc? simple-address
| | +--rw lrs-bits? bits | | +--rw ms-rloc? simple-address
| +--:(source-dest-key) | | +--rw private-etr-rloc? simple-address
| | +--rw source-dest-key | | +--rw rtr-rlocs* simple-address
| | +--rw source? simple-address | +--:(explicit-locator-path)
| | +--rw dest? simple-address | | +--rw explicit-locator-path
| +--:(key-value-address) | | +--rw hop* [hop-id]
| | +--rw key-value-address | | +--rw hop-id string
| | +--rw key? simple-address | | +--rw address? simple-address
| | +--rw value? simple-address | | +--rw lrs-bits? bits
| +--:(service-path) | +--:(source-dest-key)
| +--rw service-path | | +--rw source-dest-key
| +--rw service-path-id? service-path-id-type | | +--rw source? simple-address
| +--rw service-index? uint8 | | +--rw dest? simple-address
+--rw map-servers | +--:(key-value-address)
| +--rw map-server* [address] | | +--rw key-value-address
| +--rw address inet:ip-address | | +--rw key? simple-address
| +--rw auth-key? string | | +--rw value? simple-address
| +--rw auth-key-type? lisp:auth-key-type | +--:(service-path)
+--rw rlocs? -> /lisp:lisp/locator-sets/locator-set/locator-set-name | +--rw service-path
+--rw record-ttl? uint32 | +--rw service-path-id? service-path-id-type
+--rw want-map-notify? boolean | +--rw service-index? uint8
+--rw proxy-reply? boolean +--rw rlocs? -> /lisp:lisp/locator-sets/locator-set/locator-set-name
+--rw registration-interval? uint16 +--rw record-ttl? uint32
+--rw want-map-notify? boolean
+--rw proxy-reply? boolean
+--rw registration-interval? uint16
4.2. Module Definition 4.2. Module Definition
<CODE BEGINS> file "ietf-lisp-etr@2016-06-30.yang" <CODE BEGINS> file "ietf-lisp-etr@2017-07-01.yang"
module ietf-lisp-etr { module ietf-lisp-etr {
namespace "urn:ietf:params:xml:ns:yang:ietf-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 parameters for a LISP
data for a LISP ETR. The module can be extended by vendors ETR. The module can be extended by vendors to define
to define vendor-specific configuration parameters and vendor-specific 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.
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 2016-06-30 { revision 2017-07-01 {
description description
"Initial revision."; "Initial revision.";
reference reference
"https://tools.ietf.org/html/rfc6830"; "https://tools.ietf.org/html/rfc6830";
}
augment "/lisp:lisp/lisp:lisp-router-instances/lisp:lisp-router-instance" {
when "lisp:lisp-role/lisp:lisp-role-type = 'lisp:etr' or
lisp:lisp-role/lisp:lisp-role-type = 'lisp:petr'" {
description
"Augment is valid when LISP device type is (P)ETR.";
}
description
"This augments LISP devices list with (P)ETR specific
parameters.";
container etr {
presence "LISP (P)ETR operation enabled";
description
"(P)ETR parameters.";
} container map-servers {
identity etr { when "../../lisp:lisp-role/lisp:lisp-role-type = 'lisp:etr'" {
base lisp:lisp-role; description
description "Container exists only when LISP device type is ETR.";
"LISP ETR."; }
} description
augment "/lisp:lisp/lisp:lisp-router-instances/" "Map-Servers that the ETR uses.";
+ "lisp:lisp-router-instance/lisp:lisp-role" { list map-server {
when "lisp:lisp-role-type = 'lisp-etr:etr'" { key "ms-address";
description description
"Augment is valid when LISP device type is ETR."; "Each Map-Server within the list of Map-Servers.";
} leaf ms-address {
description type inet:ip-address;
"This augments LISP devices list with ETR specific description
parameters."; "Map-Server address.";
container etr-cfg { }
presence "LISP ETR operation enabled"; leaf auth-key {
description type string;
"ETR configuration parameters."; description
container local-eids { "Map-Server authentication key.";
description }
"EIDs served by the ETR."; leaf auth-key-type {
list local-eid { type lisp:auth-key-type;
key "id"; description
min-elements 1; "Map-Server authentication type.";
description }
"List of local EIDs."; }
leaf id { }
type lisp:eid-id;
description
"Unique id of local EID.";
}
container eid-address {
uses lcaf:lisp-address;
description
"EID address in generic LISP address format.";
}
container map-servers {
description
"Map-Servers configured for the ETR.";
list map-server {
key "address";
description
"List of Map-Servers configured for the ETR.";
leaf address {
type inet:ip-address;
description
"Map-Server address.";
} container local-eids {
leaf auth-key { when "../../lisp:lisp-role/lisp:lisp-role-type = 'lisp:etr'" {
type string; description
description "Container exists only when LISP device type is ETR.";
"Map-Server authentication key."; }
} description
leaf auth-key-type { "Virtual networks served by the ETR.";
type lisp:auth-key-type; list virtual-network {
description key "vni";
"Map-Server authentication type."; description
} "Virtual network for local-EIDs.";
} leaf vni {
} type lcaf:instance-id-type;
leaf rlocs { description
type leafref { "Virtual network identifier.";
path "/lisp:lisp/lisp:locator-sets/lisp:locator-set/" }
+ "lisp:locator-set-name"; container eids {
} description
description "EIDs served by the ETR.";
"Locator set mapped to this local EID."; list local-eid {
} key "id";
leaf record-ttl { min-elements 1;
type uint32; description
description "List of local EIDs.";
"Validity period of the EID to RLOCs mapping provided leaf id {
type lisp:eid-id;
description
"Unique id of local EID.";
}
container eid-address {
uses lcaf:lisp-address;
description
"EID address in generic LISP address format.";
}
leaf rlocs {
type leafref {
path "/lisp:lisp/lisp:locator-sets/lisp:locator-set/"
+ "lisp:locator-set-name";
}
description
"Locator set mapped to this local EID.";
}
leaf record-ttl {
type uint32;
units minutes;
description
"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"; 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"; 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.";
} }
}
}
}
}
}
}
} }
} <CODE ENDS>
}//etr-cfg
}//augment
}// lisp-etr
<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:lisp-router-instances/lisp:lisp-router-instance/lisp:lisp-role: augment /lisp:lisp/lisp:lisp-router-instances/lisp:lisp-router-instance:
+--rw map-server-cfg +--rw map-server!
+--rw sites +--rw sites
| +--rw site* [site-id] | +--rw site* [site-id]
| +--rw site-id uint64 | +--rw site-id uint64
| +--rw auth-key | +--rw auth-key
| | +--rw auth-key-value? string | +--rw auth-key-value? string
| | +--rw auth-key-type? lisp:auth-key-type | +--rw auth-key-type* lisp:auth-key-type
| +--rw eids +--rw virtual-network-ids
| +--rw eid* [id] | +--rw virtual-network-identifier* [vni]
| +--rw id lisp:eid-id | +--rw vni lcaf:instance-id-type
| +--rw eid-address | +--rw mappings
| | +--rw address-type lisp-address-family-ref | | +--rw mapping* [eid-id]
| | +--rw virtual-network-id? instance-id-type | | +--rw eid-id lisp:eid-id
| | +--rw (address)? | | +--rw eid-address
| | +--:(no-address) | | | +--rw address-type lisp-address-family-ref
| | | +--rw no-address? empty | | | +--rw virtual-network-id? instance-id-type
| | +--:(ipv4) | | | +--rw (address)?
| | | +--rw ipv4? inet:ipv4-address | | | +--:(no-address)
| | +--:(ipv4-prefix) | | | | +--rw no-address? empty
| | | +--rw ipv4-prefix? inet:ipv4-prefix | | | +--:(ipv4)
| | +--:(ipv6) | | | | +--rw ipv4? inet:ipv4-address
| | | +--rw ipv6? inet:ipv6-address | | | +--:(ipv4-prefix)
| | +--:(ipv6-prefix) | | | | +--rw ipv4-prefix? inet:ipv4-prefix
| | | +--rw ipv6-prefix? inet:ipv6-prefix | | | +--:(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-type | | | +--:(mac)
| | +--:(as-number) | | | | +--rw mac? yang:mac-address
| | | +--rw as-number? inet:as-number | | | +--:(distinguished-name)
| | +--:(null-address) | | | | +--rw distinguished-name? distinguished-name-type
| | | +--rw null-address | | | +--:(as-number)
| | | +--rw address? empty | | | | +--rw as-number? inet:as-number
| | +--:(afi-list) | | | +--:(null-address)
| | | +--rw afi-list | | | | +--rw null-address
| | | +--rw address-list* simple-address | | | | +--rw address? empty
| | +--:(instance-id) | | | +--:(afi-list)
| | | +--rw instance-id | | | | +--rw afi-list
| | | +--rw iid? instance-id-type | | | | +--rw address-list* simple-address
| | | +--rw mask-length? uint8 | | | +--:(instance-id)
| | | +--rw address? simple-address | | | | +--rw instance-id
| | +--:(as-number-lcaf) | | | | +--rw iid? instance-id-type
| | | +--rw as-number-lcaf | | | | +--rw mask-length? uint8
| | | +--rw as? inet:as-number | | | | +--rw address? simple-address
| | | +--rw address? simple-address | | | +--:(as-number-lcaf)
| | +--:(application-data) | | | | +--rw as-number-lcaf
| | | +--rw application-data | | | | +--rw as? inet:as-number
| | | +--rw address? simple-address | | | | +--rw address? simple-address
| | | +--rw protocol? uint8 | | | +--:(application-data)
| | | +--rw ip-tos? int32 | | | | +--rw application-data
| | | +--rw local-port-low? inet:port-number | | | | +--rw address? simple-address
| | | +--rw local-port-high? inet:port-number | | | | +--rw protocol? uint8
| | | +--rw remote-port-low? inet:port-number | | | | +--rw ip-tos? int32
| | | +--rw remote-port-high? inet:port-number | | | | +--rw local-port-low? inet:port-number
| | +--:(geo-coordinates) | | | | +--rw local-port-high? inet:port-number
| | | +--rw geo-coordinates | | | | +--rw remote-port-low? inet:port-number
| | | +--rw latitude? bits | | | | +--rw remote-port-high? inet:port-number
| | | +--rw latitude-degrees? uint8 | | | +--:(geo-coordinates)
| | | +--rw latitude-minutes? uint8 | | | | +--rw geo-coordinates
| | | +--rw latitude-seconds? uint8 | | | | +--rw latitude? bits
| | | +--rw longitude? bits | | | | +--rw latitude-degrees? uint8
| | | +--rw longitude-degrees? uint16 | | | | +--rw latitude-minutes? uint8
| | | +--rw longitude-minutes? uint8 | | | | +--rw latitude-seconds? uint8
| | | +--rw longitude-seconds? uint8 | | | | +--rw longitude? bits
| | | +--rw altitude? int32 | | | | +--rw longitude-degrees? uint16
| | | +--rw address? simple-address | | | | +--rw longitude-minutes? uint8
| | +--:(nat-traversal) | | | | +--rw longitude-seconds? uint8
| | | +--rw nat-traversal | | | | +--rw altitude? int32
| | | +--rw ms-udp-port? uint16 | | | | +--rw address? simple-address
| | | +--rw etr-udp-port? uint16 | | | +--:(nat-traversal)
| | | +--rw global-etr-rloc? simple-address | | | | +--rw nat-traversal
| | | +--rw ms-rloc? simple-address | | | | +--rw ms-udp-port? uint16
| | | +--rw private-etr-rloc? simple-address | | | | +--rw etr-udp-port? uint16
| | | +--rw rtr-rlocs* simple-address | | | | +--rw global-etr-rloc? simple-address
| | +--:(explicit-locator-path) | | | | +--rw ms-rloc? simple-address
| | | +--rw explicit-locator-path | | | | +--rw private-etr-rloc? simple-address
| | | +--rw hop* [hop-id] | | | | +--rw rtr-rlocs* simple-address
| | | +--rw hop-id string | | | +--:(explicit-locator-path)
| | | +--rw address? simple-address | | | | +--rw explicit-locator-path
| | | +--rw lrs-bits? bits | | | | +--rw hop* [hop-id]
| | +--:(source-dest-key) | | | | +--rw hop-id string
| | | +--rw source-dest-key | | | | +--rw address? simple-address
| | | +--rw source? simple-address | | | | +--rw lrs-bits? bits
| | | +--rw dest? simple-address | | | +--:(source-dest-key)
| | +--:(key-value-address) | | | | +--rw source-dest-key
| | | +--rw key-value-address | | | | +--rw source? simple-address
| | | +--rw key? simple-address | | | | +--rw dest? simple-address
| | | +--rw value? simple-address | | | +--:(key-value-address)
| | +--:(service-path) | | | | +--rw key-value-address
| | +--rw service-path | | | | +--rw key? simple-address
| | +--rw service-path-id? service-path-id-type | | | | +--rw value? simple-address
| | +--rw service-index? uint8 | | | +--:(service-path)
| +--rw more-specifics-accepted? boolean | | | +--rw service-path
| +--rw mapping-expiration-timeout? int16 | | | +--rw service-path-id? service-path-id-type
+--rw mapping-system-type? lisp:mapping-system-ref | | | +--rw service-index? uint8
augment /lisp:lisp-state/lisp:lisp-router-instances/lisp:lisp-router-instance/lisp:lisp-role: | | +--rw site-id* uint64
+--ro ms-state | | +--rw more-specifics-accepted? boolean
+--ro registered-mappings | | +--rw mapping-expiration-timeout? int16
+--ro mapping* [id] | | +--rw mapping-records
+--ro id eid-id | | +--rw mapping-record* [xtr-id]
+--ro eid | | +--rw xtr-id lisp:xtr-id-type
| +--ro address-type lisp-address-family-ref | | +--rw site-id? uint64
| +--ro virtual-network-id? instance-id-type | | +--rw eid
| +--ro (address)? | | | +--rw address-type lisp-address-family-ref
| +--:(no-address) | | | +--rw virtual-network-id? instance-id-type
| | +--ro no-address? empty | | | +--rw (address)?
| +--:(ipv4) | | | +--:(no-address)
| | +--ro ipv4? inet:ipv4-address | | | | +--rw no-address? empty
| +--:(ipv4-prefix) | | | +--:(ipv4)
| | +--ro ipv4-prefix? inet:ipv4-prefix | | | | +--rw ipv4? inet:ipv4-address
| +--:(ipv6) | | | +--:(ipv4-prefix)
| | +--ro ipv6? inet:ipv6-address | | | | +--rw ipv4-prefix? inet:ipv4-prefix
| +--:(ipv6-prefix) | | | +--:(ipv6)
| | +--ro ipv6-prefix? inet:ipv6-prefix | | | | +--rw ipv6? inet:ipv6-address
| +--:(mac) | | | +--:(ipv6-prefix)
| | +--ro mac? yang:mac-address | | | | +--rw ipv6-prefix? inet:ipv6-prefix
| +--:(distinguished-name) | | | +--:(mac)
| | +--ro distinguished-name? distinguished-name-type | | | | +--rw mac? yang:mac-address
| +--:(as-number) | | | +--:(distinguished-name)
| | +--ro as-number? inet:as-number | | | | +--rw distinguished-name? distinguished-name-type
| +--:(null-address) | | | +--:(as-number)
| | +--ro null-address | | | | +--rw as-number? inet:as-number
| | +--ro address? empty | | | +--:(null-address)
| +--:(afi-list) | | | | +--rw null-address
| | +--ro afi-list | | | | +--rw address? empty
| | +--ro address-list* simple-address | | | +--:(afi-list)
| +--:(instance-id) | | | | +--rw afi-list
| | +--ro instance-id | | | | +--rw address-list* simple-address
| | +--ro iid? instance-id-type | | | +--:(instance-id)
| | +--ro mask-length? uint8 | | | | +--rw instance-id
| | +--ro address? simple-address | | | | +--rw iid? instance-id-type
| +--:(as-number-lcaf) | | | | +--rw mask-length? uint8
| | +--ro as-number-lcaf | | | | +--rw address? simple-address
| | +--ro as? inet:as-number | | | +--:(as-number-lcaf)
| | +--ro address? simple-address | | | | +--rw as-number-lcaf
| +--:(application-data) | | | | +--rw as? inet:as-number
| | +--ro application-data | | | | +--rw address? simple-address
| | +--ro address? simple-address | | | +--:(application-data)
| | +--ro protocol? uint8 | | | | +--rw application-data
| | +--ro ip-tos? int32 | | | | +--rw address? simple-address
| | +--ro local-port-low? inet:port-number | | | | +--rw protocol? uint8
| | +--ro local-port-high? inet:port-number | | | | +--rw ip-tos? int32
| | +--ro remote-port-low? inet:port-number | | | | +--rw local-port-low? inet:port-number
| | +--ro remote-port-high? inet:port-number | | | | +--rw local-port-high? inet:port-number
| +--:(geo-coordinates) | | | | +--rw remote-port-low? inet:port-number
| | +--ro geo-coordinates | | | | +--rw remote-port-high? inet:port-number
| | +--ro latitude? bits | | | +--:(geo-coordinates)
| | +--ro latitude-degrees? uint8 | | | | +--rw geo-coordinates
| | +--ro latitude-minutes? uint8 | | | | +--rw latitude? bits
| | +--ro latitude-seconds? uint8 | | | | +--rw latitude-degrees? uint8
| | +--ro longitude? bits | | | | +--rw latitude-minutes? uint8
| | +--ro longitude-degrees? uint16 | | | | +--rw latitude-seconds? uint8
| | +--ro longitude-minutes? uint8 | | | | +--rw longitude? bits
| | +--ro longitude-seconds? uint8 | | | | +--rw longitude-degrees? uint16
| | +--ro altitude? int32 | | | | +--rw longitude-minutes? uint8
| | +--ro address? simple-address | | | | +--rw longitude-seconds? uint8
| +--:(nat-traversal) | | | | +--rw altitude? int32
| | +--ro nat-traversal | | | | +--rw address? simple-address
| | +--ro ms-udp-port? uint16 | | | +--:(nat-traversal)
| | +--ro etr-udp-port? uint16 | | | | +--rw nat-traversal
| | +--ro global-etr-rloc? simple-address | | | | +--rw ms-udp-port? uint16
| | +--ro ms-rloc? simple-address | | | | +--rw etr-udp-port? uint16
| | +--ro private-etr-rloc? simple-address | | | | +--rw global-etr-rloc? simple-address
| | +--ro rtr-rlocs* simple-address | | | | +--rw ms-rloc? simple-address
| +--:(explicit-locator-path) | | | | +--rw private-etr-rloc? simple-address
| | +--ro explicit-locator-path | | | | +--rw rtr-rlocs* simple-address
| | +--ro hop* [hop-id] | | | +--:(explicit-locator-path)
| | +--ro hop-id string | | | | +--rw explicit-locator-path
| | +--ro address? simple-address | | | | +--rw hop* [hop-id]
| | +--ro lrs-bits? bits | | | | +--rw hop-id string
| +--:(source-dest-key) | | | | +--rw address? simple-address
| | +--ro source-dest-key | | | | +--rw lrs-bits? bits
| | +--ro source? simple-address | | | +--:(source-dest-key)
| | +--ro dest? simple-address | | | | +--rw source-dest-key
| +--:(key-value-address) | | | | +--rw source? simple-address
| | +--ro key-value-address | | | | +--rw dest? simple-address
| | +--ro key? simple-address | | | +--:(key-value-address)
| | +--ro value? simple-address | | | | +--rw key-value-address
| +--:(service-path) | | | | +--rw key? simple-address
| +--ro service-path | | | | +--rw value? simple-address
| +--ro service-path-id? service-path-id-type | | | +--:(service-path)
| +--ro service-index? uint8 | | | +--rw service-path
+--ro ttl? uint32 | | | +--rw service-path-id? service-path-id-type
+--ro authoritative? bits | | | +--rw service-index? uint8
+--ro static? boolean | | +--rw time-to-live? uint32
+--ro (locator-list)? | | +--rw creation-time? yang:date-and-time
+--:(negative-mapping) | | +--rw authoritative? bits
| +--ro map-reply-action? map-reply-action | | +--rw static? boolean
+--:(positive-mapping) | | +--rw (locator-list)?
+--ro rlocs | | +--:(negative-mapping)
+--ro locator* [id] | | | +--rw map-reply-action? map-reply-action
+--ro id string | | +--:(positive-mapping)
+--ro locator-address | | +--rw rlocs
| +--ro address-type lisp-address-family-ref | | +--rw locator* [id]
| +--ro virtual-network-id? instance-id-type | | +--rw id string
| +--ro (address)? | | +--rw locator-address
| +--:(no-address) | | | +--rw address-type lisp-address-family-ref
| | +--ro no-address? empty | | | +--rw virtual-network-id? instance-id-type
| +--:(ipv4) | | | +--rw (address)?
| | +--ro ipv4? inet:ipv4-address | | | +--:(no-address)
| +--:(ipv4-prefix) | | | | +--rw no-address? empty
| | +--ro ipv4-prefix? inet:ipv4-prefix | | | +--:(ipv4)
| +--:(ipv6) | | | | +--rw ipv4? inet:ipv4-address
| | +--ro ipv6? inet:ipv6-address | | | +--:(ipv4-prefix)
| +--:(ipv6-prefix) | | | | +--rw ipv4-prefix? inet:ipv4-prefix
| | +--ro ipv6-prefix? inet:ipv6-prefix | | | +--:(ipv6)
| +--:(mac) | | | | +--rw ipv6? inet:ipv6-address
| | +--ro mac? yang:mac-address | | | +--:(ipv6-prefix)
| +--:(distinguished-name) | | | | +--rw ipv6-prefix? inet:ipv6-prefix
| | +--ro distinguished-name? distinguished-name-type | | | +--:(mac)
| +--:(as-number) | | | | +--rw mac? yang:mac-address
| | +--ro as-number? inet:as-number | | | +--:(distinguished-name)
| +--:(null-address) | | | | +--rw distinguished-name? distinguished-name-type
| | +--ro null-address | | | +--:(as-number)
| | +--ro address? empty | | | | +--rw as-number? inet:as-number
| +--:(afi-list) | | | +--:(null-address)
| | +--ro afi-list | | | | +--rw null-address
| | +--ro address-list* simple-address | | | | +--rw address? empty
| +--:(instance-id) | | | +--:(afi-list)
| | +--ro instance-id | | | | +--rw afi-list
| | +--ro iid? instance-id-type | | | | +--rw address-list* simple-address
| | +--ro mask-length? uint8 | | | +--:(instance-id)
| | +--ro address? simple-address | | | | +--rw instance-id
| +--:(as-number-lcaf) | | | | +--rw iid? instance-id-type
| | +--ro as-number-lcaf | | | | +--rw mask-length? uint8
| | +--ro as? inet:as-number | | | | +--rw address? simple-address
| | +--ro address? simple-address | | | +--:(as-number-lcaf)
| +--:(application-data) | | | | +--rw as-number-lcaf
| | +--ro application-data | | | | +--rw as? inet:as-number
| | +--ro address? simple-address | | | | +--rw address? simple-address
| | +--ro protocol? uint8 | | | +--:(application-data)
| | +--ro ip-tos? int32 | | | | +--rw application-data
| | +--ro local-port-low? inet:port-number | | | | +--rw address? simple-address
| | +--ro local-port-high? inet:port-number | | | | +--rw protocol? uint8
| | +--ro remote-port-low? inet:port-number | | | | +--rw ip-tos? int32
| | +--ro remote-port-high? inet:port-number | | | | +--rw local-port-low? inet:port-number
| +--:(geo-coordinates) | | | | +--rw local-port-high? inet:port-number
| | +--ro geo-coordinates | | | | +--rw remote-port-low? inet:port-number
| | +--ro latitude? bits | | | | +--rw remote-port-high? inet:port-number
| | +--ro latitude-degrees? uint8 | | | +--:(geo-coordinates)
| | +--ro latitude-minutes? uint8 | | | | +--rw geo-coordinates
| | +--ro latitude-seconds? uint8 | | | | +--rw latitude? bits
| | +--ro longitude? bits | | | | +--rw latitude-degrees? uint8
| | +--ro longitude-degrees? uint16 | | | | +--rw latitude-minutes? uint8
| | +--ro longitude-minutes? uint8 | | | | +--rw latitude-seconds? uint8
| | +--ro longitude-seconds? uint8 | | | | +--rw longitude? bits
| | +--ro altitude? int32 | | | | +--rw longitude-degrees? uint16
| | +--ro address? simple-address | | | | +--rw longitude-minutes? uint8
| +--:(nat-traversal) | | | | +--rw longitude-seconds? uint8
| | +--ro nat-traversal | | | | +--rw altitude? int32
| | +--ro ms-udp-port? uint16 | | | | +--rw address? simple-address
| | +--ro etr-udp-port? uint16 | | | +--:(nat-traversal)
| | +--ro global-etr-rloc? simple-address | | | | +--rw nat-traversal
| | +--ro ms-rloc? simple-address | | | | +--rw ms-udp-port? uint16
| | +--ro private-etr-rloc? simple-address | | | | +--rw etr-udp-port? uint16
| | +--ro rtr-rlocs* simple-address | | | | +--rw global-etr-rloc? simple-address
| +--:(explicit-locator-path) | | | | +--rw ms-rloc? simple-address
| | +--ro explicit-locator-path | | | | +--rw private-etr-rloc? simple-address
| | +--ro hop* [hop-id] | | | | +--rw rtr-rlocs* simple-address
| | +--ro hop-id string | | | +--:(explicit-locator-path)
| | +--ro address? simple-address | | | | +--rw explicit-locator-path
| | +--ro lrs-bits? bits | | | | +--rw hop* [hop-id]
| +--:(source-dest-key) | | | | +--rw hop-id string
| | +--ro source-dest-key | | | | +--rw address? simple-address
| | +--ro source? simple-address | | | | +--rw lrs-bits? bits
| | +--ro dest? simple-address | | | +--:(source-dest-key)
| +--:(key-value-address) | | | | +--rw source-dest-key
| | +--ro key-value-address | | | | +--rw source? simple-address
| | +--ro key? simple-address | | | | +--rw dest? simple-address
| | +--ro value? simple-address | | | +--:(key-value-address)
| +--:(service-path) | | | | +--rw key-value-address
| +--ro service-path | | | | +--rw key? simple-address
| +--ro service-path-id? service-path-id-type | | | | +--rw value? simple-address
| +--ro service-index? uint8 | | | +--:(service-path)
+--ro priority? uint8 | | | +--rw service-path
+--ro weight? uint8 | | | +--rw service-path-id? service-path-id-type
+--ro multicast-priority? uint8 | | | +--rw service-index? uint8
+--ro multicast-weight? uint8 | | +--rw priority? uint8
| | +--rw weight? uint8
| | +--rw multicast-priority? uint8
| | +--rw multicast-weight? uint8
| +--ro counters
| +--ro map-registers-in? yang:counter32
| +--ro map-registers-in-auth-failed? yang:counter32
| +--ro map-notify-records-out? yang:counter32
| +--ro proxy-reply-records-out? yang:counter32
| +--ro map-requests-forwarded-out? yang:counter32
+--rw mapping-system-type? lisp:mapping-system-ref
+--ro summary
| +--ro number-configured-sites? uint32
| +--ro number-registered-sites? uint32
| +--ro af-datum
| +--ro af-data* [address-type]
| +--ro address-type lcaf:lisp-address-family-ref
| +--ro number-configured-eids? uint32
| +--ro number-registered-eids? uint32
+--ro counters
+--ro map-registers-in? yang:counter32
+--ro map-registers-in-auth-failed? yang:counter32
+--ro map-notify-records-out? yang:counter32
+--ro proxy-reply-records-out? yang:counter32
+--ro map-requests-forwarded-out? yang:counter32
5.2. Module Definition 5.2. Module Definition
<CODE BEGINS> file "ietf-lisp-mapserver@2016-06-30.yang" <CODE BEGINS> file "ietf-lisp-mapserver@2017-07-01.yang"
module ietf-lisp-mapserver { module ietf-lisp-mapserver {
namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-mapserver"; namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-mapserver";
prefix lisp-ms; prefix lisp-ms;
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-yang-types {
prefix yang;
revision-date 2013-07-15;
}
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 parameters for a LISP
data for a LISP Map-Server. The module can be extended by Map-Server. The module can be extended by vendors to define
vendors to define vendor-specific configuration parameters vendor-specific 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 2016-06-30 { revision 2017-07-01 {
description description
"Initial revision."; "Initial revision.";
reference reference
"https://tools.ietf.org/html/rfc6833"; "https://tools.ietf.org/html/rfc6833";
} }
identity ms { identity ms {
base lisp:lisp-role; base lisp:lisp-role;
description description
"LISP Map-Server."; "LISP Map-Server.";
} }
grouping ms-counters {
description "Group that defines map-server counters.";
container counters {
config false;
description "Container for the counters";
leaf map-registers-in {
type yang:counter32;
description "Number of incoming Map-Register messages";
}
leaf map-registers-in-auth-failed {
type yang:counter32;
description
"Number of incoming Map-Register messages failed
authentication";
}
leaf map-notify-records-out {
type yang:counter32;
description
"Number of outgoing Map-Notify records";
}
leaf proxy-reply-records-out {
type yang:counter32;
description
"Number of outgoing proxy Map-Reply records";
}
leaf map-requests-forwarded-out {
type yang:counter32;
description
"Number of outgoing Map-Requests forwarded to ETR";
}
}
}
augment "/lisp:lisp/lisp:lisp-router-instances" augment "/lisp:lisp/lisp:lisp-router-instances"
+ "/lisp:lisp-router-instance/lisp:lisp-role" { + "/lisp:lisp-router-instance" {
when "lisp:lisp-role-type = 'lisp-ms:ms'" { when "lisp:lisp-role/lisp:lisp-role-type = 'lisp-ms:ms'" {
description description
"Augment is valid when LISP device type is Map-Server."; "Augment is valid when LISP device type is Map-Server.";
} }
description description
"This augments LISP devices list with Map-Server specific "This augments LISP devices list with Map-Server specific
parameters."; parameters.";
container map-server-cfg { container map-server {
presence "LISP Map-Server operation enabled";
description description
"Map-Server configuration parameters."; "Map-Server parameters.";
container sites { container sites{
description
"Sites for which the Map-Server accepts registrations.";
list site {
key "site-id";
description description
"List of sites for which the Map-Server acceptes "Sites to accept registrations from.";
registrations."; list site {
leaf site-id { key site-id;
type uint64;
description
"Site identifier.";
}
container auth-key {
description description
"Site authentication key."; "Site that can send registrations.";
leaf auth-key-value { leaf site-id {
type string; type uint64;
description description "Site ID";
"Clear text authentication key";
} }
leaf auth-key-type { container auth-key {
type lisp:auth-key-type;
description description
"Site authentication key.";
leaf auth-key-value {
type string;
description
"Clear text authentication key";
}
leaf-list auth-key-type {
type lisp:auth-key-type;
description
"Authentication key type."; "Authentication key type.";
}
} }
} }
container eids { }
container virtual-network-ids {
description
"Sites for which the Map-Server accepts registrations.";
list virtual-network-identifier {
key "vni";
description
"Virtual network instances in the Map-Server.";
leaf vni {
type lcaf:instance-id-type;
description
"Virtual network identifier.";
}
container mappings {
description description
"EIDs registered by device."; "EIDs registered by device.";
list eid { list mapping {
key "id"; key "eid-id";
description description
"List of EIDs registered by device."; "List of EIDs registered by device.";
leaf id { leaf eid-id {
type lisp:eid-id; type lisp:eid-id;
description description
"Id of the EID registered."; "Id of the EID registered.";
} }
container eid-address { container eid-address {
uses lcaf:lisp-address; uses lcaf:lisp-address;
description description
"EID in generic LISP address format registered "EID in generic LISP address format registered
with the Map-Server."; with the Map-Server.";
} }
leaf-list site-id {
type uint64;
description "Site ID";
}
leaf more-specifics-accepted { leaf more-specifics-accepted {
type boolean; type boolean;
default "false"; default "false";
description description
"Flag indicating if more specific prefixes "Flag indicating if more specific prefixes
can be registered."; can be registered.";
} }
leaf mapping-expiration-timeout { leaf mapping-expiration-timeout {
type int16; type int16;
units "seconds"; units "seconds";
default "180"; //3 times the mapregister int default "180"; //3 times the mapregister int
description description
"Time before mapping is expired if no new "Time before mapping is expired if no new
registrations are received."; registrations are received.";
} }
// This model can be augmented to have below for per-eid auth-key container mapping-records {
// leaf auth-key { description
// description "clear text authentication key"; "Datastore of registred mappings.";
// type string; list mapping-record{
// } key xtr-id;
description
"Registered mapping.";
leaf xtr-id {
type lisp:xtr-id-type;
description "xTR ID";
}
leaf site-id {
type uint64;
description "Site ID";
}
uses lisp:mapping;
}
}
} }
} }
uses ms-counters;
} }
} }
leaf mapping-system-type { leaf mapping-system-type {
type lisp:mapping-system-ref; type lisp:mapping-system-ref;
description description
"A reference to the mapping system"; "A reference to the mapping system";
} }
}
} container summary {
config false;
description "Summary state information";
leaf number-configured-sites {
type uint32;
description "Number of configured LISP sites";
}
leaf number-registered-sites {
type uint32;
description "Number of registered LISP sites";
}
container af-datum {
description "Number of configured EIDs per each AF";
augment "/lisp:lisp-state/lisp:lisp-router-instances" list af-data {
+ "/lisp:lisp-router-instance/lisp:lisp-role" { key "address-type";
when "lisp:lisp-role-type = 'lisp-ms:ms'" { description "Number of configured EIDs for this AF";
description leaf address-type {
"Augment is valid when LISP device type is Map-Server."; type lcaf:lisp-address-family-ref;
} description "AF type";
description }
"This augments LISP devices list state with Map-Server leaf number-configured-eids {
specific parameters."; type uint32;
container ms-state { description "Number of configured EIDs for this AF";
config false; }
description leaf number-registered-eids {
"Map-Server state."; type uint32;
container registered-mappings { description "Number of registered EIDs for this AF";
uses lisp:mappings; }
description }
"Datastore of registred mappings."; }
} }
uses ms-counters;
} }
} }
} }
<CODE ENDS> <CODE ENDS>
6. LISP Map Resolver Module 6. LISP-Map-Resolver Module
This module captures the configuration data model of a LISP Map This module captures the configuration data model of a LISP Map
Resolver [RFC6833]. The model also captures some operational data Resolver [RFC6833]. The model also captures some operational data
elements. elements.
6.1. Module Structure 6.1. Module Structure
module: ietf-lisp-mapresolver module: ietf-lisp-mapresolver
augment /lisp:lisp/lisp:lisp-router-instances/lisp:lisp-router-instance/lisp:lisp-role: augment /lisp:lisp/lisp:lisp-router-instances/lisp:lisp-router-instance:
+--rw map-resolver-cfg +--rw map-resolver!
+--rw mapping-system-type? lisp:mapping-system-ref +--rw mapping-system-type? lisp:mapping-system-ref
+--rw ms-address? inet:ip-address +--rw ms-address? inet:ip-address
6.2. Module Definition 6.2. Module Definition
<CODE BEGINS> file "ietf-lisp-mapresolver@2016-06-30.yang" <CODE BEGINS> file "ietf-lisp-mapresolver@2017-07-01.yang"
module ietf-lisp-mapresolver { module ietf-lisp-mapresolver {
namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-mapresolver"; namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-mapresolver";
prefix lisp-mr; prefix lisp-mr;
import ietf-lisp { import ietf-lisp {
prefix lisp; prefix lisp;
} }
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 parameters for a LISP
data for a LISP Map-Resolver. The module can be extended by Map-Resolver. The module can be extended by vendors to define
vendors to define vendor-specific configuration parameters vendor-specific 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 2016-06-30 { revision 2017-07-01 {
description description
"Initial revision."; "Initial revision.";
reference reference
"https://tools.ietf.org/html/rfc6833"; "https://tools.ietf.org/html/rfc6833";
} }
identity mr { identity mr {
base lisp:lisp-role; base lisp:lisp-role;
description description
"LISP Map-Resolver."; "LISP Map-Resolver.";
} }
augment "/lisp:lisp/lisp:lisp-router-instances" augment "/lisp:lisp/lisp:lisp-router-instances"
+"/lisp:lisp-router-instance/lisp:lisp-role" { +"/lisp:lisp-router-instance" {
when "lisp:lisp-role-type = 'lisp-mr:mr'" { when "lisp:lisp-role/lisp:lisp-role-type = 'lisp-mr:mr'" {
description description
"Augment is valid when LISP device type is Map-Resolver."; "Augment is valid when LISP device type is Map-Resolver.";
} }
description description
"This augments LISP devices list with Map-Resolver specific "This augments LISP devices list with Map-Resolver specific
parameters."; parameters.";
container map-resolver-cfg { container map-resolver {
presence "LISP Map-Resolver operation enabled";
description description
"Map-Resolver configuration parameters."; "Map-Resolver parameters.";
leaf mapping-system-type { leaf mapping-system-type {
type lisp:mapping-system-ref; type lisp:mapping-system-ref;
description description
"A reference to the mapping system"; "A reference to the mapping system";
} }
leaf ms-address { leaf ms-address {
when "../mapping-system-type = 'lisp-mr:single-node-mapping-system'"; when "../mapping-system-type='lisp-mr:single-node-mapping-system'";
type inet:ip-address; type inet:ip-address;
description description
"address to reach the Map Server when " "address to reach the Map Server when "
+ "lisp-mr:single-node-mapping-system is being used."; + "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> <CODE ENDS>
7. LISP Proxy ITR Module 7. LISP-Address-Types Module
This module captures the configuration data model of a LISP Proxy ITR
[RFC6832]. The model may also capture some operational data
elements.
7.1. Module Structure
module: ietf-lisp-pitr
augment /lisp:lisp/lisp:lisp-router-instances/lisp:lisp-router-instance/lisp:lisp-role:
+--rw proxy-itr-cfg!
+--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
+--rw map-resolvers
| +--rw map-resolver* [id]
| +--rw id lisp:eid-id
| +--rw eid
| | +--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 address* inet:ip-address
+--rw itr-rlocs? -> /lisp:lisp/locator-sets/locator-set/locator-set-name
+--rw map-cache
+--rw mapping* [id]
+--rw id eid-id
+--rw eid
| +--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 ttl? uint32
+--rw authoritative? bits
+--rw static? boolean
+--rw (locator-list)?
+--:(negative-mapping)
| +--rw map-reply-action? map-reply-action
+--:(positive-mapping)
+--rw rlocs
+--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
augment /lisp:lisp/lisp:lisp-router-instances/lisp:lisp-router-instance/lisp:lisp-role:
+--ro pitr-state
+--ro map-cache
+--ro mapping* [id]
+--ro id eid-id
+--ro eid
| +--ro address-type lisp-address-family-ref
| +--ro virtual-network-id? instance-id-type
| +--ro (address)?
| +--:(no-address)
| | +--ro no-address? empty
| +--:(ipv4)
| | +--ro ipv4? inet:ipv4-address
| +--:(ipv4-prefix)
| | +--ro ipv4-prefix? inet:ipv4-prefix
| +--:(ipv6)
| | +--ro ipv6? inet:ipv6-address
| +--:(ipv6-prefix)
| | +--ro ipv6-prefix? inet:ipv6-prefix
| +--:(mac)
| | +--ro mac? yang:mac-address
| +--:(distinguished-name)
| | +--ro distinguished-name? distinguished-name-type
| +--:(as-number)
| | +--ro as-number? inet:as-number
| +--:(null-address)
| | +--ro null-address
| | +--ro address? empty
| +--:(afi-list)
| | +--ro afi-list
| | +--ro address-list* simple-address
| +--:(instance-id)
| | +--ro instance-id
| | +--ro iid? instance-id-type
| | +--ro mask-length? uint8
| | +--ro address? simple-address
| +--:(as-number-lcaf)
| | +--ro as-number-lcaf
| | +--ro as? inet:as-number
| | +--ro address? simple-address
| +--:(application-data)
| | +--ro application-data
| | +--ro address? simple-address
| | +--ro protocol? uint8
| | +--ro ip-tos? int32
| | +--ro local-port-low? inet:port-number
| | +--ro local-port-high? inet:port-number
| | +--ro remote-port-low? inet:port-number
| | +--ro remote-port-high? inet:port-number
| +--:(geo-coordinates)
| | +--ro geo-coordinates
| | +--ro latitude? bits
| | +--ro latitude-degrees? uint8
| | +--ro latitude-minutes? uint8
| | +--ro latitude-seconds? uint8
| | +--ro longitude? bits
| | +--ro longitude-degrees? uint16
| | +--ro longitude-minutes? uint8
| | +--ro longitude-seconds? uint8
| | +--ro altitude? int32
| | +--ro address? simple-address
| +--:(nat-traversal)
| | +--ro nat-traversal
| | +--ro ms-udp-port? uint16
| | +--ro etr-udp-port? uint16
| | +--ro global-etr-rloc? simple-address
| | +--ro ms-rloc? simple-address
| | +--ro private-etr-rloc? simple-address
| | +--ro rtr-rlocs* simple-address
| +--:(explicit-locator-path)
| | +--ro explicit-locator-path
| | +--ro hop* [hop-id]
| | +--ro hop-id string
| | +--ro address? simple-address
| | +--ro lrs-bits? bits
| +--:(source-dest-key)
| | +--ro source-dest-key
| | +--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 ttl? uint32
+--ro authoritative? bits
+--ro static? boolean
+--ro (locator-list)?
+--:(negative-mapping)
| +--ro map-reply-action? map-reply-action
+--:(positive-mapping)
+--ro rlocs
+--ro locator* [id]
+--ro id string
+--ro locator-address
| +--ro address-type lisp-address-family-ref
| +--ro virtual-network-id? instance-id-type
| +--ro (address)?
| +--:(no-address)
| | +--ro no-address? empty
| +--:(ipv4)
| | +--ro ipv4? inet:ipv4-address
| +--:(ipv4-prefix)
| | +--ro ipv4-prefix? inet:ipv4-prefix
| +--:(ipv6)
| | +--ro ipv6? inet:ipv6-address
| +--:(ipv6-prefix)
| | +--ro ipv6-prefix? inet:ipv6-prefix
| +--:(mac)
| | +--ro mac? yang:mac-address
| +--:(distinguished-name)
| | +--ro distinguished-name? distinguished-name-type
| +--:(as-number)
| | +--ro as-number? inet:as-number
| +--:(null-address)
| | +--ro null-address
| | +--ro address? empty
| +--:(afi-list)
| | +--ro afi-list
| | +--ro address-list* simple-address
| +--:(instance-id)
| | +--ro instance-id
| | +--ro iid? instance-id-type
| | +--ro mask-length? uint8
| | +--ro address? simple-address
| +--:(as-number-lcaf)
| | +--ro as-number-lcaf
| | +--ro as? inet:as-number
| | +--ro address? simple-address
| +--:(application-data)
| | +--ro application-data
| | +--ro address? simple-address
| | +--ro protocol? uint8
| | +--ro ip-tos? int32
| | +--ro local-port-low? inet:port-number
| | +--ro local-port-high? inet:port-number
| | +--ro remote-port-low? inet:port-number
| | +--ro remote-port-high? inet:port-number
| +--:(geo-coordinates)
| | +--ro geo-coordinates
| | +--ro latitude? bits
| | +--ro latitude-degrees? uint8
| | +--ro latitude-minutes? uint8
| | +--ro latitude-seconds? uint8
| | +--ro longitude? bits
| | +--ro longitude-degrees? uint16
| | +--ro longitude-minutes? uint8
| | +--ro longitude-seconds? uint8
| | +--ro altitude? int32
| | +--ro address? simple-address
| +--:(nat-traversal)
| | +--ro nat-traversal
| | +--ro ms-udp-port? uint16
| | +--ro etr-udp-port? uint16
| | +--ro global-etr-rloc? simple-address
| | +--ro ms-rloc? simple-address
| | +--ro private-etr-rloc? simple-address
| | +--ro rtr-rlocs* simple-address
| +--:(explicit-locator-path)
| | +--ro explicit-locator-path
| | +--ro hop* [hop-id]
| | +--ro hop-id string
| | +--ro address? simple-address
| | +--ro lrs-bits? bits
| +--:(source-dest-key)
| | +--ro source-dest-key
| | +--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 weight? uint8
+--ro multicast-priority? uint8
+--ro multicast-weight? uint8
7.2. Module Definition
<CODE BEGINS> file "ietf-lisp-pitr@2016-06-30.yang"
module ietf-lisp-pitr {
namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-pitr";
prefix lisp-pitr;
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 PITR. 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/rfc6832";
}
identity pitr {
base lisp:lisp-role;
description
"LISP PITR.";
}
augment "/lisp:lisp/lisp:lisp-router-instances"
+ "/lisp:lisp-router-instance/lisp:lisp-role" {
when "lisp:lisp-role-type = 'lisp-pitr:pitr'" {
description
"Augment is valid when LISP device type is PITR.";
}
description
"This augments LISP devices list with PITR specific
parameters.";
container proxy-itr-cfg {
presence "LISP PITR operation enabled";
description
"Proxy-ITR configuration parameters.";
uses lisp:servicing-eids-grouping;
container map-resolvers {
description
"Map-Resolvers configured for PITR.";
list map-resolver {
key "id";
description
"List of Map-Resolvers configured for PITR.";
leaf id {
type lisp:eid-id;
description
"Id of EID for which the Map-Resolver is used.";
}
container eid {
uses lcaf:lisp-address;
description
"EID for which the Map-Resolver is used.";
}
leaf-list address {
type inet:ip-address;
min-elements 1;
description
"List of Map-Resolver's addresses.";
}
}
}
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;
description
"EID to RLOCs mappings cache.";
}
}
}
augment "/lisp:lisp/lisp:lisp-router-instances"
+ "/lisp:lisp-router-instance/lisp:lisp-role" {
when "lisp:lisp-role-type = 'lisp-pitr:pitr'" {
description
"Augment is valid when LISP device type is PITR.";
}
description
"This augments LISP devices list state with PITR specific
parameters.";
container pitr-state {
config false;
description
"ITR state.";
container map-cache {
uses lisp:mappings;
description
"EID to RLOCs mappings cache.";
}
}
}
}
<CODE ENDS>
8. LISP Proxy ETR Module
This module captures the configuration data model of a LISP Proxy ETR
[RFC6832]. The model may also capture some operational data
elements.
8.1. Module Structure
module: ietf-lisp-petr
augment /lisp:lisp/lisp:lisp-router-instances/lisp:lisp-router-instance/lisp:lisp-role:
+--rw proxy-etr-cfg!
+--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
8.2. Module Definition
<CODE BEGINS> file "ietf-lisp-petr@2016-06-30.yang"
module ietf-lisp-petr {
namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-petr";
prefix lisp-petr;
import ietf-lisp {
prefix lisp;
}
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 PETR. 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/rfc6832";
}
identity petr {
base lisp:lisp-role;
description
"LISP PETR.";
}
augment "/lisp:lisp/lisp:lisp-router-instances"
+ "/lisp:lisp-router-instance/lisp:lisp-role" {
when "lisp:lisp-role-type = 'lisp-petr:petr'" {
description
"Augment is valid when LISP device type is PETR.";
}
description
"This augments LISP devices list with PETR specific
parameters.";
container proxy-etr-cfg {
presence "LISP PETR operation enabled";
description
"Proxy ETR configuration parameters.";
uses lisp:servicing-eids-grouping;
}//proxy-etr-cfg
}
}
<CODE ENDS>
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 7.1. Module Definition
<CODE BEGINS> file "ietf-lisp-address-types@2015-11-05.yang" <CODE BEGINS> file "ietf-lisp-address-types@2015-11-05.yang"
module ietf-lisp-address-types { module ietf-lisp-address-types {
namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-address-types"; namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-address-types";
prefix laddr; prefix laddr;
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
revision-date 2013-07-15; revision-date 2013-07-15;
} }
import ietf-yang-types { import ietf-yang-types {
skipping to change at page 79, line 20 skipping to change at page 54, line 5
description description
"Service path index for NSH header"; "Service path index for NSH header";
} }
} }
} }
} }
} }
<CODE ENDS> <CODE ENDS>
10. Acknowledgments 8. Acknowledgments
The tree view and the YANG model shown in this document have been The tree view and the YANG model shown in this document have been
formated with the 'pyang' tool. formated with the 'pyang' tool.
11. IANA Considerations 9. IANA Considerations
This memo includes no request to IANA. This memo includes no request to IANA.
12. Security Considerations 10. Security Considerations
Security Considerations TBD Security Considerations TBD
13. Normative References 11. Normative References
[I-D.ietf-lisp-ddt]
Fuller, V., Lewis, D., Ermagan, V., Jain, A., and A.
Smirnov, "LISP Delegated Database Tree", draft-ietf-lisp-
ddt-08 (work in progress), September 2016.
[I-D.ietf-lisp-lcaf]
Farinacci, D., Meyer, D., and J. Snijders, "LISP Canonical
Address Format (LCAF)", draft-ietf-lisp-lcaf-22 (work in
progress), November 2016.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>. <http://www.rfc-editor.org/info/rfc2119>.
[RFC6830] Farinacci, D., Fuller, V., Meyer, D., and D. Lewis, "The [RFC6830] Farinacci, D., Fuller, V., Meyer, D., and D. Lewis, "The
Locator/ID Separation Protocol (LISP)", RFC 6830, Locator/ID Separation Protocol (LISP)", RFC 6830,
DOI 10.17487/RFC6830, January 2013, DOI 10.17487/RFC6830, January 2013,
<http://www.rfc-editor.org/info/rfc6830>. <http://www.rfc-editor.org/info/rfc6830>.
[RFC6832] Lewis, D., Meyer, D., Farinacci, D., and V. Fuller, [RFC6832] Lewis, D., Meyer, D., Farinacci, D., and V. Fuller,
"Interworking between Locator/ID Separation Protocol "Interworking between Locator/ID Separation Protocol
(LISP) and Non-LISP Sites", RFC 6832. (LISP) and Non-LISP Sites", RFC 6832,
DOI 10.17487/RFC6832, January 2013,
<http://www.rfc-editor.org/info/rfc6832>.
[RFC6833] Fuller, V. and D. Farinacci, "Locator/ID Separation [RFC6833] Fuller, V. and D. Farinacci, "Locator/ID Separation
Protocol (LISP) Map-Server Interface", RFC 6833, Protocol (LISP) Map-Server Interface", RFC 6833,
DOI 10.17487/RFC6833, January 2013, DOI 10.17487/RFC6833, January 2013,
<http://www.rfc-editor.org/info/rfc6833>. <http://www.rfc-editor.org/info/rfc6833>.
[RFC6836] Fuller, V., Farinacci, D., Meyer, D., and D. Lewis, [RFC6836] Fuller, V., Farinacci, D., Meyer, D., and D. Lewis,
"Locator/ID Separation Protocol Alternative Logical "Locator/ID Separation Protocol Alternative Logical
Topology (LISP+ALT)", RFC 6836, DOI 10.17487/RFC6836, Topology (LISP+ALT)", RFC 6836, DOI 10.17487/RFC6836,
January 2013, <http://www.rfc-editor.org/info/rfc6836>. January 2013, <http://www.rfc-editor.org/info/rfc6836>.
[RFC8060] Farinacci, D., Meyer, D., and J. Snijders, "LISP Canonical
Address Format (LCAF)", RFC 8060, DOI 10.17487/RFC8060,
February 2017, <http://www.rfc-editor.org/info/rfc8060>.
[RFC8111] Fuller, V., Lewis, D., Ermagan, V., Jain, A., and A.
Smirnov, "Locator/ID Separation Protocol Delegated
Database Tree (LISP-DDT)", RFC 8111, DOI 10.17487/RFC8111,
May 2017, <http://www.rfc-editor.org/info/rfc8111>.
Authors' Addresses Authors' Addresses
Vina Ermagan Vina Ermagan
Cisco Systems Cisco Systems
170 Tasman Drive
San Jose, CA San Jose, CA
USA USA
Email: vermagan@cisco.com Email: vermagan@cisco.com
Alberto Rodriguez-Natal Alberto Rodriguez-Natal
Technical University of Catalonia Cisco Systems
Barcelona San Jose, CA
Spain USA
Email: arnatal@ac.upc.edu Email: natal@cisco.com
Florin Coras Florin Coras
Technical University of Catalonia Cisco Systems
Barcelona San Jose, CA
Spain USA
Email: fcoras@cisco.com
Email: fcoras@ac.upc.edu
Carl Moberg Carl Moberg
Cisco Systems Cisco Systems
170 W Tasman Dr
San Jose, CA San Jose, CA
USA USA
Email: camoberg@cisco.com Email: camoberg@cisco.com
Reshad Rahman
Cisco Systems
Canada
Email: rrahman@cisco.com
Albert Cabellos-Aparicio Albert Cabellos-Aparicio
Technical University of Catalonia Technical University of Catalonia
Barcelona Barcelona
Spain Spain
Email: acabello@ac.upc.edu Email: acabello@ac.upc.edu
Fabio Maino Fabio Maino
Cisco Systems Cisco Systems
170 Tasman Drive
San Jose, CA San Jose, CA
USA USA
Email: fmaino@cisco.com Email: fmaino@cisco.com
 End of changes. 109 change blocks. 
2531 lines changed or deleted 1318 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/