module ietf-lisp-etr {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-etr";
prefix lisp-etr;
// RFC Ed.: replace occurences of XXXX with actual RFC number
// and remove this note
import ietf-lisp {
prefix lisp;
reference "RFC XXXX: LISP YANG model";
}
import ietf-lisp-address-types {
prefix lcaf;
reference "RFC XXXX: LISP YANG model";
}
import ietf-inet-types {
prefix inet;
reference "RFC 6991: Common YANG Data Types";
}
import ietf-routing {
prefix "rt";
reference
"RFC 8349: A YANG Data Model for Routing Management
(NMDA version)";
}
organization
"IETF LISP (Locator/ID Separation Protocol) Working Group";
contact
"WG Web:
WG List:
Editor: Vina Ermagan
Editor: Alberto Rodriguez-Natal
Editor: Reshad Rahman
";
description
"This YANG module defines the generic parameters for a LISP
ETR. The module can be extended by vendors to define
vendor-specific parameters and policies.
Copyright (c) 2018 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 XXXX; see
the RFC itself for full legal notices.
";
reference "RFC XXXX";
revision 2019-02-23 {
description
"Initial revision.";
reference
"https://tools.ietf.org/html/rfc6830";
}
augment "/rt:routing/rt:control-plane-protocols"
+ "/rt:control-plane-protocol/lisp:lisp" {
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 {
when "../../lisp:lisp-role/lisp:lisp-role-type = 'lisp:etr'" {
description
"Container exists only when LISP device type is ETR.";
}
description
"Map-Servers that the ETR uses.";
list map-server {
key "ms-address";
description
"Each Map-Server within the list of Map-Servers.";
leaf ms-address {
type inet:ip-address;
description
"Map-Server address.";
}
uses lisp:auth-key;
}
}
container local-eids {
when "../../lisp:lisp-role/lisp:lisp-role-type = 'lisp:etr'" {
description
"Container exists only when LISP device type is ETR.";
}
description
"VPNs served by the ETR.";
list vpn {
key "instance-id";
description
"VPN for local-EIDs.";
leaf instance-id {
type leafref {
path "/rt:routing/rt:control-plane-protocols"
+ "/rt:control-plane-protocol/lisp:lisp"
+ "/lisp:vpns/lisp:vpn"
+ "/lisp:instance-id";
}
description
"VPN identifier.";
}
container eids {
description
"EIDs served by the ETR.";
list local-eid {
key "id";
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.";
}
leaf rlocs {
type leafref {
path "/rt:routing/rt:control-plane-protocols"
+ "/rt:control-plane-protocol/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.";
}
leaf want-map-notify {
type boolean;
default "true";
description
"Flag which if set in a Map-Register requests that a
Map-Notify be sent in response.";
}
leaf proxy-reply {
type boolean;
default "false";
description
"Flag which if set in a Map-Register requests that the
Map-Server proxy Map-Replies for the ETR.";
}
leaf registration-interval {
type uint16;
units "seconds";
default "60";
description
"Interval between consecutive Map-Register messages.";
}
}
}
}
}
}
}
}