module ietf-lisp-mapserver {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-mapserver";
prefix lisp-ms;
// 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-yang-types {
prefix yang;
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
Map-Server. 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-03-05 {
description
"Initial revision.";
reference
"https://tools.ietf.org/html/rfc6833";
}
identity ms {
base lisp:lisp-role;
description
"LISP Map-Server.";
}
grouping ms-counters {
description "Grouping that defines map-server counters.";
container counters {
config false;
description "Container for the counters";
leaf map-registers-in {
type yang:counter64;
description "Number of incoming Map-Register messages";
}
leaf map-registers-in-auth-failed {
type yang:counter64;
description
"Number of incoming Map-Register messages failed
authentication";
}
leaf map-notify-records-out {
type yang:counter64;
description
"Number of outgoing Map-Notify records";
}
leaf proxy-reply-records-out {
type yang:counter64;
description
"Number of outgoing proxy Map-Reply records";
}
leaf map-requests-forwarded-out {
type yang:counter64;
description
"Number of outgoing Map-Requests forwarded to ETR";
}
}
}
augment "/rt:routing/rt:control-plane-protocols"
+ "/rt:control-plane-protocol/lisp:lisp" {
when "lisp:lisp-role/lisp:lisp-role-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 {
presence "LISP Map-Server operation enabled";
description
"Map-Server parameters.";
container sites{
description
"Sites to accept registrations from.";
list site {
key site-id;
description
"Site that can send registrations.";
leaf site-id {
type uint64;
description "Site ID";
}
uses lisp:auth-key;
list xtr-ids {
key xtr-id;
description "xTR-ID specific configuration.";
leaf xtr-id {
type uint64;
description "xTR ID";
}
uses lisp:auth-key;
}
}
}
container vpns {
description
"VPNs for which the Map-Server accepts registrations.";
list vpn {
key "instance-id";
description
"VPN instances in the Map-Server.";
leaf instance-id {
type lcaf:instance-id-type;
description
"VPN identifier.";
}
container mappings {
description
"EIDs registered by device.";
list mapping {
key "eid-id";
description
"List of EIDs registered by device.";
leaf eid-id {
type lisp:eid-id;
description
"Id of the EID registered.";
}
container eid-address {
uses lcaf:lisp-address;
description
"EID in generic LISP address format registered
with the Map-Server.";
}
leaf-list site-id {
type uint64;
description "Site ID";
}
leaf more-specifics-accepted {
type boolean;
default "false";
description
"Flag indicating if more specific prefixes
can be registered.";
}
leaf mapping-expiration-timeout {
type int16;
units "seconds";
default "180"; //3 times the mapregister int
description
"Time before mapping is expired if no new
registrations are received.";
}
leaf first-registration-time {
type yang:date-and-time;
config false;
description
"Time at which the first registration for this EID
was received";
}
leaf last-registration-time {
type yang:date-and-time;
config false;
description
"Time at which the last registration for this EID
was received";
}
container mapping-records {
description
"Datastore of registered mappings.";
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 {
type lisp:mapping-system-ref;
description
"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";
list af-data {
key "address-type";
description "Number of configured EIDs for this AF";
leaf address-type {
type lcaf:lisp-address-family-ref;
description "AF type";
}
leaf number-configured-eids {
type uint32;
description "Number of configured EIDs for this AF";
}
leaf number-registered-eids {
type uint32;
description "Number of registered EIDs for this AF";
}
}
}
}
uses ms-counters;
}
}
}