draft-ietf-lisp-yang-01.txt   draft-ietf-lisp-yang-02.txt 
Network Working Group V. Ermagan LISP Working Group V. Ermagan
Internet-Draft Cisco Systems Internet-Draft Cisco Systems
Intended status: Experimental A. Rodriguez-Natal Intended status: Experimental A. Rodriguez-Natal
Expires: June 19, 2016 F. Coras Expires: December 20, 2016 F. Coras
Technical University of Catalonia Technical University of Catalonia
C. Moberg C. Moberg
Cisco Systems Cisco Systems
A. Cabellos-Aparicio A. Cabellos-Aparicio
Technical University of Catalonia Technical University of Catalonia
F. Maino F. Maino
Cisco Systems Cisco Systems
December 17, 2015 June 18, 2016
LISP Configuration YANG Model LISP Configuration YANG Model
draft-ietf-lisp-yang-01 draft-ietf-lisp-yang-02
Abstract Abstract
This document describes a YANG data model to use with the Locator/ID This document describes a YANG data model to use with the Locator/ID
Separation Protocol (LISP). Separation Protocol (LISP).
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
skipping to change at page 1, line 39 skipping to change at page 1, line 39
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on June 19, 2016. This Internet-Draft will expire on December 20, 2016.
Copyright Notice Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the Copyright (c) 2016 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
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
skipping to change at page 5, line 52 skipping to change at page 5, line 52
"Group that defines a list of LISP locators."; "Group that defines a list of LISP locators.";
list rloc { list rloc {
key "id"; key "id";
description description
"List of routing locators"; "List of routing locators";
leaf id { leaf id {
type string; type string;
description description
"Locator id"; "Locator id";
} }
// FC need to be sure we don't use interface-name in itr
// cached mappings // cached mappings
choice address-type { choice address-type {
description description
"The address type of the locator"; "The address type of the locator";
case interface-name { case interface-name {
leaf interface { leaf interface {
type if:interface-state-ref; type if:interface-ref;
description description
"The name of the interface supporting the locator."; "The name of the interface supporting the locator.";
} }
} }
case address { case address {
container locator-address { container locator-address {
uses lcaf:lisp-address; uses lcaf:lisp-address;
description description
"The locator address provided in LISP canonincal "The locator address provided in LISP canonincal
address format."; address format.";
skipping to change at page 22, line 21 skipping to change at page 22, line 20
| +--ro dest? inet:ip-prefix | +--ro dest? inet:ip-prefix
+--ro priority? uint8 +--ro priority? uint8
+--ro weight? uint8 +--ro weight? uint8
+--ro multicast-priority? uint8 +--ro multicast-priority? uint8
+--ro multicast-weight? uint8 +--ro multicast-weight? uint8
3.2. Module Definition 3.2. Module Definition
<CODE BEGINS> file "ietf-lisp-itr@2015-07-02.yang" <CODE BEGINS> file "ietf-lisp-itr@2015-07-02.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:lisp-itr";
prefix lisp-itr; prefix lisp-itr;
import ietf-lisp { import ietf-lisp {
prefix lisp; prefix lisp;
} }
import ietf-lisp-address-types { import ietf-lisp-address-types {
prefix lcaf; prefix lcaf;
} }
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
} }
organization organization
"IETF LISP (Locator/ID Separation Protocol) Working Group"; "IETF LISP (Locator/ID Separation Protocol) Working Group";
contact contact
"lisp@ietf.org"; "lisp@ietf.org";
description description
"This YANG module defines the generic configuration "This YANG module defines the generic configuration
skipping to change at page 23, line 19 skipping to change at page 23, line 18
"Initial revision."; "Initial revision.";
reference reference
"https://tools.ietf.org/html/rfc6830"; "https://tools.ietf.org/html/rfc6830";
} }
identity itr { identity itr {
base lisp:lisp-device; base lisp:lisp-device;
description description
"LISP ITR."; "LISP ITR.";
} }
augment "/lisp:lisp/lisp:devices/lisp:device" { augment "/lisp:lisp/lisp:devices/lisp:device" {
when "lisp:type = lisp-itr:itr" { when "lisp:type = 'lisp-itr:itr'" {
description description
"Augment is valid when LISP device type is ITR."; "Augment is valid when LISP device type is ITR.";
} }
description description
"This augments LISP devices list with ITR specific "This augments LISP devices list with ITR specific
parameters."; parameters.";
container itr-cfg { container itr-cfg {
presence "LISP ITR operation enabled"; presence "LISP ITR operation enabled";
description description
"ITR configuration"; "ITR configuration";
skipping to change at page 26, line 5 skipping to change at page 26, line 4
} }
} }
container static-mappings { container static-mappings {
uses lisp:mappings; uses lisp:mappings;
description description
"EID to RLOCs mappings cache."; "EID to RLOCs mappings cache.";
} }
} }
} }
augment "/lisp:lisp-state/lisp:devices/lisp:device" { augment "/lisp:lisp-state/lisp:devices/lisp:device" {
when "lisp:type = lisp-itr:itr" { when "lisp:type = 'lisp-itr:itr'" {
description description
"Augment is valid when LISP device type is ITR."; "Augment is valid when LISP device type is ITR.";
} }
description description
"This augments LISP devices list state with ITR specific "This augments LISP devices list state with ITR specific
parameters."; parameters.";
container itr-state { container itr-state {
config false; config false;
description description
"ITR state."; "ITR state.";
skipping to change at page 30, line 10 skipping to change at page 30, line 9
| +--rw multicast-weight? uint8 | +--rw multicast-weight? uint8
+--rw record-ttl? uint32 +--rw record-ttl? uint32
+--rw want-map-notify? boolean +--rw want-map-notify? boolean
+--rw proxy-reply? boolean +--rw proxy-reply? boolean
+--rw registration-interval? uint16 +--rw registration-interval? uint16
4.2. Module Definition 4.2. Module Definition
<CODE BEGINS> file "ietf-lisp-etr@2015-07-02.yang" <CODE BEGINS> file "ietf-lisp-etr@2015-07-02.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: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;
} }
skipping to change at page 31, line 6 skipping to change at page 31, line 4
revision 2015-07-02 { revision 2015-07-02 {
description description
"Initial revision."; "Initial revision.";
reference reference
"https://tools.ietf.org/html/rfc6830"; "https://tools.ietf.org/html/rfc6830";
} }
identity etr { identity etr {
base lisp:lisp-device; base lisp:lisp-device;
description description
"LISP ETR."; "LISP ETR.";
} }
augment "/lisp:lisp/lisp:devices/lisp:device" { augment "/lisp:lisp/lisp:devices/lisp:device" {
when "lisp:type = lisp-etr:etr" { when "lisp:type = 'lisp-etr:etr'" {
description description
"Augment is valid when LISP device type is ETR."; "Augment is valid when LISP device type is ETR.";
} }
description description
"This augments LISP devices list with ETR specific "This augments LISP devices list with ETR specific
parameters."; parameters.";
container etr-cfg { container etr-cfg {
presence "LISP ETR operation enabled"; presence "LISP ETR operation enabled";
description description
"ETR configuration parameters."; "ETR configuration parameters.";
skipping to change at page 43, line 17 skipping to change at page 43, line 17
| +--ro sourc-dest-key | +--ro sourc-dest-key
| +--ro source? inet:ip-prefix | +--ro source? inet:ip-prefix
| +--ro dest? inet:ip-prefix | +--ro dest? inet:ip-prefix
+--ro priority? uint8 +--ro priority? uint8
+--ro weight? uint8 +--ro weight? uint8
+--ro multicast-priority? uint8 +--ro multicast-priority? uint8
+--ro multicast-weight? uint8 +--ro multicast-weight? uint8
5.2. Module Definition 5.2. Module Definition
<CODE BEGINS> file "ietf-lisp-mapserver@2015-07-02.yang" <CODE BEGINS> file "ietf-lisp-mapserver@2015-07-02.yang"
module ietf-lisp-mapserver { module ietf-lisp-map-server {
namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-mapserver"; namespace "urn:ietf:params:xml:ns:yang:lisp-ms";
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-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
} }
organization organization
"IETF LISP (Locator/ID Separation Protocol) Working Group"; "IETF LISP (Locator/ID Separation Protocol) Working Group";
contact contact
"lisp@ietf.org"; "lisp@ietf.org";
description description
"This YANG module defines the generic configuration "This YANG module defines the generic configuration
data for a LISP Map-Server. The module can be extended by data for a LISP Map-Server. The module can be extended by
vendors to define vendor-specific configuration parameters vendors to define vendor-specific configuration parameters
and policies. and policies.
Copyright (c) 2015 IETF Trust and the persons identified as Copyright (c) 2015 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC 6338; see This version of this YANG module is part of RFC 6338; see
the RFC itself for full legal notices. the RFC itself for full legal notices.
"; ";
revision 2015-07-02 { revision 2015-07-02 {
description description
"Initial revision."; "Initial revision.";
reference reference
"https://tools.ietf.org/html/rfc6833"; "https://tools.ietf.org/html/rfc6833";
} }
identity ms {
base lisp:lisp-device;
description
"LISP Map-Server.";
}
augment "/lisp:lisp/lisp:devices/lisp:device" {
when "lisp:type = lisp-ms:ms" {
description
"Augment is valid when LISP device type is Map-Server.";
}
description
"This augments LISP devices list with Map-Server specific
parameters.";
container map-server-cfg {
presence "LISP Map-Server operation enabled";
description
"Map-Server configuration parameters.";
container sites {
description
"Sites for which the Map-Server accepts registrations.";
list site {
key "site-id";
description
"List of sites for which the Map-Server acceptes
registrations.";
leaf site-id {
type uint64;
description
"Site identifier.";
}
//Can be augmented to have below for per site auth-key
// leaf auth-key {
// description "clear text authentication key";
// type string;
// }
container devices {
description
"Site devices registered with the Map-Server.";
list device {
key "device-id";
description
"List of site devices registered with the
Map-Server.";
leaf device-id {
type uint64;
description
"Device identifier.";
}
container auth-key {
description
"Device authentication key.";
leaf auth-key-value {
type string;
description
"Clear text authentication key";
}
leaf auth-key-type {
type lisp:auth-key-type;
description
"Authentication key type.";
}
}
container eids { identity ms {
description base lisp:lisp-device;
"EIDs registered by device."; description
list eid { "LISP Map-Server.";
key "id"; }
description
"List of EIDs registered by device."; augment "/lisp:lisp/lisp:devices/lisp:device" {
leaf id { when "lisp:type = 'lisp-ms:ms'" {
type lisp:eid-id; description
description "Augment is valid when LISP device type is Map-Server.";
"Id of the EID registered."; }
} description
container eid-address { "This augments LISP devices list with Map-Server specific
uses lcaf:lisp-address; parameters.";
description container map-server-cfg {
"EID in generic LISP address format registered presence "LISP Map-Server operation enabled";
with the Map-Server."; description
} "Map-Server configuration parameters.";
leaf more-specifics-accepted { container sites {
type boolean; description
description "Sites for which the Map-Server accepts registrations.";
"Flag indicating if more specific prefixes list site {
can be registered."; key "site-id";
} description
leaf mapping-expiration-timeout { "List of sites for which the Map-Server acceptes
type int16; registrations.";
units "seconds"; leaf site-id {
default "180"; //3 times the mapregister int type uint64;
description description
"Time before mapping is expired if no new "Site identifier.";
registrations are received."; }
} // This model can be augmented with below for per site auth-key
// Can be augmented to have below for per-eid auth-key // leaf auth-key {
// leaf auth-key { // description "clear text authentication key";
// description "clear text authentication key"; // type string;
// type string; // }
// } container devices {
} description
} "Site devices registered with the Map-Server.";
}
} list device {
} key "device-id";
} description
container static-mappings { "List of site devices registered with the
uses lisp:mappings; Map-Server.";
description leaf device-id {
"Datastore of statically registred mappings."; type uint64;
} description
choice mapping-system { "Device identifier.";
mandatory true; }
description container auth-key {
"Interface to Mapping System."; description
container ddt-mapping-system { "Device authentication key.";
presence "DDT Mapping System in use"; leaf auth-key-value {
description type string;
"DDT Mapping System interface."; description
leaf-list ddt-root { "Clear text authentication key";
type inet:ip-address; }
description leaf auth-key-type {
"List of DDT root address."; type lisp:auth-key-type;
} description
container authoritative-eids { "Authentication key type.";
description }
"Authoritative EIDs"; }
list authoritative-eid {
key "id"; container eids {
description description
"List of authoritative EIDs."; "EIDs registered by device.";
leaf id { list eid {
type lisp:eid-id; key "id";
description description
"EID id."; "List of EIDs registered by device.";
} leaf id {
container eid-address { type lisp:eid-id;
uses lcaf:lisp-address; description
description "Id of the EID registered.";
"EID in generic LISP address format."; }
} container eid-address {
} uses lcaf:lisp-address;
} description
} "EID in generic LISP address format registered
container alt-mapping-system { with the Map-Server.";
presence "ALT Mapping System in use"; }
description leaf more-specifics-accepted {
"ALT Mapping System interface."; type boolean;
// TBD description
} "Flag indicating if more specific prefixes
} can be registered.";
}
} }
augment "/lisp:lisp-state/lisp:devices/lisp:device" { leaf mapping-expiration-timeout {
when "lisp:type = lisp-ms:ms" { type int16;
description units "seconds";
"Augment is valid when LISP device type is Map-Server."; default "180"; //3 times the mapregister int
} description
description "Time before mapping is expired if no new
"This augments LISP devices list state with Map-Server registrations are received.";
specific parameters."; }
container ms-state { // This model can be augmented to have below for per-eid auth-key
config false; // leaf auth-key {
description // description "clear text authentication key";
"Map-Server state."; // type string;
container registered-mappings { // }
uses lisp:mappings; }
description }
"Datastore of registred mappings."; }
} }
} }
} }
} container static-mappings {
<CODE ENDS> uses lisp:mappings;
description
"Datastore of statically registred mappings.";
}
choice mapping-system {
mandatory true;
description
"Interface to Mapping System.";
container ddt-mapping-system {
presence "DDT Mapping System in use";
description
"DDT Mapping System interface.";
leaf-list ddt-root {
type inet:ip-address;
description
"List of DDT root address.";
}
container authoritative-eids {
description
"Authoritative EIDs";
list authoritative-eid {
key "id";
description
"List of authoritative EIDs.";
leaf id {
type lisp:eid-id;
description
"EID id.";
}
container eid-address {
uses lcaf:lisp-address;
description
"EID in generic LISP address format.";
}
}
}
}
container alt-mapping-system {
presence "ALT Mapping System in use";
description
"ALT Mapping System interface.";
// TBD
}
}
}
}
augment "/lisp:lisp-state/lisp:devices/lisp:device" {
when "lisp:type = 'lisp-ms:ms'" {
description
"Augment is valid when LISP device type is Map-Server.";
}
description
"This augments LISP devices list state with Map-Server
specific parameters.";
container ms-state {
config false;
description
"Map-Server state.";
container registered-mappings {
uses lisp:mappings;
description
"Datastore of registred mappings.";
}
}
}
}
<CODE ENDS>
6. LISP Map Resolver Module 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
skipping to change at page 48, line 20 skipping to change at page 48, line 20
+--rw (mapping-system) +--rw (mapping-system)
+--:(ddt-mapping-system) +--:(ddt-mapping-system)
| +--rw ddt-mapping-system! | +--rw ddt-mapping-system!
| +--rw ddt-root* inet:ip-address | +--rw ddt-root* inet:ip-address
+--:(alt-mapping-system) +--:(alt-mapping-system)
+--rw alt-mapping-system! +--rw alt-mapping-system!
6.2. Module Definition 6.2. Module Definition
<CODE BEGINS> file "ietf-lisp-mapresolver@2015-07-02.yang" <CODE BEGINS> file "ietf-lisp-mapresolver@2015-07-02.yang"
module ietf-lisp-mapresolver { module ietf-lisp-map-resolver {
namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-mapresolver"; namespace "urn:ietf:params:xml:ns:yang:lisp-mr";
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
skipping to change at page 49, line 15 skipping to change at page 49, line 15
"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-device; base lisp:lisp-device;
description description
"LISP Map-Resolver."; "LISP Map-Resolver.";
} }
augment "/lisp:lisp/lisp:devices/lisp:device" { augment "/lisp:lisp/lisp:devices/lisp:device" {
when "lisp:type = lisp-mr:mr" { when "lisp: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-cfg {
presence "LISP Map-Resolver operation enabled"; presence "LISP Map-Resolver operation enabled";
description description
"Map-Resolver configuration parameters."; "Map-Resolver configuration parameters.";
skipping to change at page 59, line 51 skipping to change at page 59, line 51
| +--ro dest? inet:ip-prefix | +--ro dest? inet:ip-prefix
+--ro priority? uint8 +--ro priority? uint8
+--ro weight? uint8 +--ro weight? uint8
+--ro multicast-priority? uint8 +--ro multicast-priority? uint8
+--ro multicast-weight? uint8 +--ro multicast-weight? uint8
7.2. Module Definition 7.2. Module Definition
<CODE BEGINS> file "ietf-lisp-pitr@2015-07-02.yang" <CODE BEGINS> file "ietf-lisp-pitr@2015-07-02.yang"
module ietf-lisp-pitr { module ietf-lisp-pitr {
namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-pitr"; namespace "urn:ietf:params:xml:ns:yang:lisp-pitr";
prefix lisp-pitr; prefix lisp-pitr;
import ietf-lisp { import ietf-lisp {
prefix lisp; prefix lisp;
} }
import ietf-lisp-address-types { import ietf-lisp-address-types {
prefix lcaf; prefix lcaf;
} }
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
} }
skipping to change at page 60, line 49 skipping to change at page 60, line 49
"Initial revision."; "Initial revision.";
reference reference
"https://tools.ietf.org/html/rfc6832"; "https://tools.ietf.org/html/rfc6832";
} }
identity pitr { identity pitr {
base lisp:lisp-device; base lisp:lisp-device;
description description
"LISP PITR."; "LISP PITR.";
} }
augment "/lisp:lisp/lisp:devices/lisp:device" { augment "/lisp:lisp/lisp:devices/lisp:device" {
when "lisp:type = lisp-pitr:pitr" { when "lisp:type = 'lisp-pitr:pitr'" {
description description
"Augment is valid when LISP device type is PITR."; "Augment is valid when LISP device type is PITR.";
} }
description description
"This augments LISP devices list with PITR specific "This augments LISP devices list with PITR specific
parameters."; parameters.";
container proxy-itr-cfg { container proxy-itr-cfg {
presence "LISP PITR operation enabled"; presence "LISP PITR operation enabled";
description description
skipping to change at page 62, line 17 skipping to change at page 62, line 17
} }
} }
container static-mappings{ container static-mappings{
uses lisp:mappings; uses lisp:mappings;
description description
"EID to RLOCs mappings cache."; "EID to RLOCs mappings cache.";
} }
} }
} }
augment "/lisp:lisp-state/lisp:devices/lisp:device" { augment "/lisp:lisp-state/lisp:devices/lisp:device" {
when "lisp:type = lisp-pitr:pitr" { when "lisp:type = 'lisp-pitr:pitr'" {
description description
"Augment is valid when LISP device type is PITR."; "Augment is valid when LISP device type is PITR.";
} }
description description
"This augments LISP devices list state with PITR specific "This augments LISP devices list state with PITR specific
parameters."; parameters.";
container pitr-state { container pitr-state {
config false; config false;
description description
"ITR state."; "ITR state.";
skipping to change at page 64, line 30 skipping to change at page 64, line 30
| +--rw lrs-bits? bits | +--rw lrs-bits? bits
+--:(sourc-dest-key) +--:(sourc-dest-key)
+--rw sourc-dest-key +--rw sourc-dest-key
+--rw source? inet:ip-prefix +--rw source? inet:ip-prefix
+--rw dest? inet:ip-prefix +--rw dest? inet:ip-prefix
8.2. Module Definition 8.2. Module Definition
<CODE BEGINS> file "ietf-lisp-petr@2015-07-02.yang" <CODE BEGINS> file "ietf-lisp-petr@2015-07-02.yang"
module ietf-lisp-petr { module ietf-lisp-petr {
namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-petr"; namespace "urn:ietf:params:xml:ns:yang:lisp-petr";
prefix lisp-petr; prefix lisp-petr;
import ietf-lisp { import ietf-lisp {
prefix lisp; prefix lisp;
} }
import ietf-lisp-address-types { import ietf-lisp-address-types {
prefix lcaf; prefix lcaf;
} }
organization organization
"IETF LISP (Locator/ID Separation Protocol) Working Group"; "IETF LISP (Locator/ID Separation Protocol) Working Group";
contact contact
skipping to change at page 65, line 24 skipping to change at page 65, line 24
"Initial revision."; "Initial revision.";
reference reference
"https://tools.ietf.org/html/rfc6832"; "https://tools.ietf.org/html/rfc6832";
} }
identity petr { identity petr {
base lisp:lisp-device; base lisp:lisp-device;
description description
"LISP PETR."; "LISP PETR.";
} }
augment "/lisp:lisp/lisp:devices/lisp:device" { augment "/lisp:lisp/lisp:devices/lisp:device" {
when "lisp:type = lisp-petr:petr" { when "lisp:type = 'lisp-petr:petr'" {
description description
"Augment is valid when LISP device type is PETR."; "Augment is valid when LISP device type is PETR.";
} }
description description
"This augments LISP devices list with PETR specific "This augments LISP devices list with PETR specific
parameters."; parameters.";
container proxy-etr-cfg { container proxy-etr-cfg {
presence "LISP PETR operation enabled"; presence "LISP PETR operation enabled";
description description
"Proxy ETR configuration parameters."; "Proxy ETR configuration parameters.";
skipping to change at page 66, line 25 skipping to change at page 66, line 25
essential building block used in other LISP modules. essential building block used in other LISP modules.
9.1. Module Definition 9.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 2010-09-24; revision-date 2013-07-15;
} }
import ietf-yang-types { import ietf-yang-types {
prefix yang; prefix yang;
//revision-date 2010-09-24; 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 LISP Canonical Address Formats "This YANG module defines the LISP Canonical Address Formats
(LCAF) for LISP. The module can be extended by vendors to (LCAF) for LISP. The module can be extended by vendors to
define vendor-specific parameters. define vendor-specific parameters.
skipping to change at page 71, line 27 skipping to change at page 71, line 27
leaf virtual-network-id { leaf virtual-network-id {
type instance-id-type; type instance-id-type;
description description
"Virtual Network Identifier (instance-id) of the address."; "Virtual Network Identifier (instance-id) of the address.";
} }
choice address { choice address {
description description
"Various LISP address types, including IP, MAC, and LCAF."; "Various LISP address types, including IP, MAC, and LCAF.";
leaf no-address { leaf no-address {
when "../../address-type = 'laddr:no-addr-afi'" { when "../address-type = 'laddr:no-addr-afi'" {
description description
"When AFI is 0."; "When AFI is 0.";
} }
type empty; type empty;
description description
"No address."; "No address.";
} }
leaf ipv4 { leaf ipv4 {
when "../../address-type = 'laddr:ipv4-afi'" { when "../address-type = 'laddr:ipv4-afi'" {
description description
"When AFI is IPv4."; "When AFI is IPv4.";
} }
type inet:ipv4-address; type inet:ipv4-address;
description description
"IPv4 address."; "IPv4 address.";
} }
leaf ipv4-prefix { leaf ipv4-prefix {
when "../../address-type = 'laddr:ipv4-prefix-afi'" { when "../address-type = 'laddr:ipv4-prefix-afi'" {
description description
"When AFI is IPv4."; "When AFI is IPv4.";
} }
type inet:ipv4-prefix; type inet:ipv4-prefix;
description description
"IPv4 prefix."; "IPv4 prefix.";
} }
leaf ipv6 { leaf ipv6 {
when "../../address-type = 'laddr:ipv6-afi'" { when "../address-type = 'laddr:ipv6-afi'" {
description description
"When AFI is IPv6."; "When AFI is IPv6.";
} }
type inet:ipv6-address; type inet:ipv6-address;
description description
"IPv6 address."; "IPv6 address.";
} }
leaf ipv6-prefix { leaf ipv6-prefix {
when "../../address-type = 'laddr:ipv6-prefix-afi'" { when "../address-type = 'laddr:ipv6-prefix-afi'" {
description description
"When AFI is IPv6."; "When AFI is IPv6.";
} }
type inet:ipv6-prefix; type inet:ipv6-prefix;
description description
"IPv6 address."; "IPv6 address.";
} }
leaf mac { leaf mac {
when "../../address-type = 'laddr:mac-afi'" { when "../address-type = 'laddr:mac-afi'" {
description description
"When AFI is MAC."; "When AFI is MAC.";
} }
type yang:mac-address; type yang:mac-address;
description description
"MAC address."; "MAC address.";
} }
leaf distinguished-name { leaf distinguished-name {
when "../../address-type = 'laddr:distinguished-name-afi'" { when "../address-type = 'laddr:distinguished-name-afi'" {
description description
"When AFI is distinguished-name."; "When AFI is distinguished-name.";
} }
type distinguished-name-type; type distinguished-name-type;
description description
"Distinguished Name address."; "Distinguished Name address.";
} }
leaf as-number { leaf as-number {
when "../../address-type = 'laddr:as-number-afi'" { when "../address-type = 'laddr:as-number-afi'" {
description description
"When AFI is as-number."; "When AFI is as-number.";
} }
type inet:as-number; type inet:as-number;
description description
"AS Number."; "AS Number.";
} }
container null-address { container null-address {
when "../../address-type = 'null-address-lcaf'" { when "../address-type = 'null-address-lcaf'" {
description description
"When LCAF type is null."; "When LCAF type is null.";
} }
description description
"Null body LCAF type"; "Null body LCAF type";
leaf address { leaf address {
type empty; type empty;
description description
"AFI address."; "AFI address.";
} }
} }
container afi-list { container afi-list {
when "../../address-type = 'afi-list-lcaf'" { when "../address-type = 'afi-list-lcaf'" {
description description
"When LCAF type is AFI-List."; "When LCAF type is AFI-List.";
} }
description description
"AFI-List LCAF type."; "AFI-List LCAF type.";
reference reference
"http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10
#section-4.16.1"; #section-4.16.1";
leaf-list address-list { leaf-list address-list {
type simple-address; type simple-address;
description description
"List of AFI addresses."; "List of AFI addresses.";
} }
} }
container instance-id { container instance-id {
when "../../address-type = 'instance-id-lcaf'" { when "../address-type = 'instance-id-lcaf'" {
description description
"When LCAF type is Instance-ID"; "When LCAF type is Instance-ID";
} }
description description
"Instance ID LCAF type."; "Instance ID LCAF type.";
reference reference
"http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10
#section-4.2"; #section-4.2";
leaf iid { leaf iid {
type instance-id-type; type instance-id-type;
skipping to change at page 74, line 10 skipping to change at page 74, line 10
description description
"Mask length."; "Mask length.";
} }
leaf address { leaf address {
type simple-address; type simple-address;
description description
"AFI address."; "AFI address.";
} }
} }
container as-number-lcaf { container as-number-lcaf {
when "../../address-type = 'as-number-lcaf'" { when "../address-type = 'as-number-lcaf'" {
description description
"When LCAF type is AS-Number."; "When LCAF type is AS-Number.";
} }
description description
"AS Number LCAF type."; "AS Number LCAF type.";
reference reference
"http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10
#section-4.3"; #section-4.3";
leaf as { leaf as {
type inet:as-number; type inet:as-number;
description description
"AS number."; "AS number.";
} }
leaf address { leaf address {
type simple-address; type simple-address;
description description
"AFI address."; "AFI address.";
} }
} }
container application-data { container application-data {
when "../../address-type = 'application-data-lcaf'" { when "../address-type = 'application-data-lcaf'" {
description description
"When LCAF type is Application Data."; "When LCAF type is Application Data.";
} }
description description
"Application Data LCAF type."; "Application Data LCAF type.";
reference reference
"http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10
#section-4.4"; #section-4.4";
leaf address { leaf address {
type simple-address; type simple-address;
skipping to change at page 75, line 29 skipping to change at page 75, line 29
description description
"Low end of remote port range."; "Low end of remote port range.";
} }
leaf remote-port-high { leaf remote-port-high {
type inet:port-number; type inet:port-number;
description description
"High end of remote port range."; "High end of remote port range.";
} }
} }
container geo-coordinates { container geo-coordinates {
when "../../address-type = 'geo-coordinates-lcaf'" { when "../address-type = 'geo-coordinates-lcaf'" {
description description
"When LCAF type is Geo-coordinates."; "When LCAF type is Geo-coordinates.";
} }
description description
"Geo-coordinates LCAF type."; "Geo-coordinates LCAF type.";
reference reference
"http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10
#section-4.5"; #section-4.5";
leaf latitude { leaf latitude {
type bits { type bits {
skipping to change at page 77, line 16 skipping to change at page 77, line 16
description description
"Height relative to sea level in meters."; "Height relative to sea level in meters.";
} }
leaf address { leaf address {
type simple-address; type simple-address;
description description
"AFI address."; "AFI address.";
} }
} }
container nat-traversal { container nat-traversal {
when "../../address-type = 'nat-traversal-lcaf'" { when "../address-type = 'nat-traversal-lcaf'" {
description description
"When LCAF type is NAT-Traversal."; "When LCAF type is NAT-Traversal.";
} }
description description
"NAT-Traversal LCAF type."; "NAT-Traversal LCAF type.";
reference reference
"http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10
#section-4.6"; #section-4.6";
leaf ms-udp-port { leaf ms-udp-port {
type uint16; type uint16;
skipping to change at page 78, line 9 skipping to change at page 78, line 9
description description
"Private ETR RLOC address."; "Private ETR RLOC address.";
} }
leaf-list rtr-rlocs { leaf-list rtr-rlocs {
type simple-address; type simple-address;
description description
"List of RTR RLOC addresses."; "List of RTR RLOC addresses.";
} }
} }
container explicit-locator-path { container explicit-locator-path {
when "../../address-type = 'explicit-locator-path-lcaf'" { when "../address-type = 'explicit-locator-path-lcaf'" {
description description
"When LCAF type type is Explicit Locator Path."; "When LCAF type type is Explicit Locator Path.";
} }
description description
"Explicit Locator Path LCAF type."; "Explicit Locator Path LCAF type.";
reference reference
"http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10
#section-4.9"; #section-4.9";
list hop { list hop {
key "hop-id"; key "hop-id";
skipping to change at page 79, line 7 skipping to change at page 79, line 7
"Strict bit."; "Strict bit.";
} }
} }
description description
"Flag bits per hop."; "Flag bits per hop.";
} }
} }
} }
container source-dest-key { container source-dest-key {
when "../../address-type = 'source-dest-key-lcaf'" { when "../address-type = 'source-dest-key-lcaf'" {
description description
"When LCAF type type is Source/Dest."; "When LCAF type type is Source/Dest.";
} }
description description
"Source/Dest LCAF type."; "Source/Dest LCAF type.";
reference reference
"http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10
#section-4.11"; #section-4.11";
leaf source { leaf source {
type simple-address; type simple-address;
description description
"Source address."; "Source address.";
} }
leaf dest { leaf dest {
type simple-address; type simple-address;
description description
"Destination address."; "Destination address.";
} }
} }
container key-value-address { container key-value-address {
when "../../address-type = 'key-value-address-lcaf'" { when "../address-type = 'key-value-address-lcaf'" {
description description
"When LCAF type type is Key/Value Address."; "When LCAF type type is Key/Value Address.";
} }
description description
"Key/Value Address LCAF type."; "Key/Value Address LCAF type.";
reference reference
"http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10
#section-4.11"; #section-4.11";
leaf key { leaf key {
type simple-address; type simple-address;
description description
"Address as Key."; "Address as Key.";
} }
leaf value { leaf value {
type simple-address; type simple-address;
description description
"Address as Value."; "Address as Value.";
} }
} }
container service-path { container service-path {
when "../../address-type = 'service-path-lcaf'" { when "../address-type = 'service-path-lcaf'" {
description description
"When LCAF type service path identifier."; "When LCAF type service path identifier.";
} }
description description
"Service Path LCAF type."; "Service Path LCAF type.";
reference reference
"http://tools.ietf.org/html/draft-ermagan-lisp-nsh-00"; "http://tools.ietf.org/html/draft-ermagan-lisp-nsh-00";
leaf service-path-id { leaf service-path-id {
type service-path-id-type; type service-path-id-type;
skipping to change at page 80, line 41 skipping to change at page 80, line 42
This memo includes no request to IANA. This memo includes no request to IANA.
12. Security Considerations 12. Security Considerations
Security Considerations TBD Security Considerations TBD
13. Normative References 13. Normative References
[I-D.ietf-lisp-ddt] [I-D.ietf-lisp-ddt]
Fuller, V., Lewis, D., Ermagan, V., and A. Jain, "LISP Fuller, V., Lewis, D., Ermagan, V., Jain, A., and A.
Delegated Database Tree", draft-ietf-lisp-ddt-03 (work in Smirnov, "LISP Delegated Database Tree", draft-ietf-lisp-
progress), April 2015. ddt-07 (work in progress), May 2016.
[I-D.ietf-lisp-lcaf] [I-D.ietf-lisp-lcaf]
Farinacci, D., Meyer, D., and J. Snijders, "LISP Canonical Farinacci, D., Meyer, D., and J. Snijders, "LISP Canonical
Address Format (LCAF)", draft-ietf-lisp-lcaf-11 (work in Address Format (LCAF)", draft-ietf-lisp-lcaf-13 (work in
progress), September 2015. progress), May 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>.
 End of changes. 52 change blocks. 
260 lines changed or deleted 264 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/