draft-ietf-lisp-yang-07.txt | draft-ietf-lisp-yang-08.txt | |||
---|---|---|---|---|
LISP Working Group V. Ermagan | LISP Working Group V. Ermagan | |||
Internet-Draft A. Rodriguez-Natal | Internet-Draft A. Rodriguez-Natal | |||
Intended status: Experimental F. Coras | Intended status: Experimental F. Coras | |||
Expires: September 6, 2018 C. Moberg | Expires: December 31, 2018 C. Moberg | |||
R. Rahman | R. Rahman | |||
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 | |||
March 5, 2018 | June 29, 2018 | |||
LISP YANG Model | LISP YANG Model | |||
draft-ietf-lisp-yang-07 | draft-ietf-lisp-yang-08 | |||
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). | |||
The YANG modules in this document conform to the Network Management | The YANG modules in this document conform to the Network Management | |||
Datastore Architecture (NMDA). | Datastore Architecture (NMDA). | |||
Status of This Memo | Status of This Memo | |||
skipping to change at page 1, line 41 ¶ | skipping to change at page 1, line 41 ¶ | |||
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 https://datatracker.ietf.org/drafts/current/. | Drafts is at https://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 September 6, 2018. | This Internet-Draft will expire on December 31, 2018. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2018 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 | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://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 . . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | |||
1.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 3 | ||||
2. LISP Module . . . . . . . . . . . . . . . . . . . . . . . . . 3 | ||||
2.1. Module Structure . . . . . . . . . . . . . . . . . . . . 3 | 2.1. Module Structure . . . . . . . . . . . . . . . . . . . . 3 | |||
2.2. Module Definition . . . . . . . . . . . . . . . . . . . . 5 | 2.2. Module Definition . . . . . . . . . . . . . . . . . . . . 6 | |||
3. LISP-ITR Module . . . . . . . . . . . . . . . . . . . . . . . 13 | 3. LISP-ITR Module . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
3.1. Module Structure . . . . . . . . . . . . . . . . . . . . 14 | 3.1. Module Structure . . . . . . . . . . . . . . . . . . . . 16 | |||
3.2. Module Definition . . . . . . . . . . . . . . . . . . . . 18 | 3.2. Module Definition . . . . . . . . . . . . . . . . . . . . 21 | |||
4. LISP-ETR Module . . . . . . . . . . . . . . . . . . . . . . . 21 | 4. LISP-ETR Module . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
4.1. Module Structure . . . . . . . . . . . . . . . . . . . . 21 | 4.1. Module Structure . . . . . . . . . . . . . . . . . . . . 25 | |||
4.2. Module Definition . . . . . . . . . . . . . . . . . . . . 23 | 4.2. Module Definition . . . . . . . . . . . . . . . . . . . . 27 | |||
5. LISP-Map-Server Module . . . . . . . . . . . . . . . . . . . 27 | 5. LISP-Map-Server Module . . . . . . . . . . . . . . . . . . . 31 | |||
5.1. Module Structure . . . . . . . . . . . . . . . . . . . . 27 | 5.1. Module Structure . . . . . . . . . . . . . . . . . . . . 32 | |||
5.2. Module Definition . . . . . . . . . . . . . . . . . . . . 33 | 5.2. Module Definition . . . . . . . . . . . . . . . . . . . . 40 | |||
6. LISP-Map-Resolver Module . . . . . . . . . . . . . . . . . . 39 | 6. LISP-Map-Resolver Module . . . . . . . . . . . . . . . . . . 46 | |||
6.1. Module Structure . . . . . . . . . . . . . . . . . . . . 39 | 6.1. Module Structure . . . . . . . . . . . . . . . . . . . . 46 | |||
6.2. Module Definition . . . . . . . . . . . . . . . . . . . . 39 | 6.2. Module Definition . . . . . . . . . . . . . . . . . . . . 47 | |||
7. LISP-Address-Types Module . . . . . . . . . . . . . . . . . . 41 | 7. LISP-Address-Types Module . . . . . . . . . . . . . . . . . . 49 | |||
7.1. Module Definition . . . . . . . . . . . . . . . . . . . . 41 | 7.1. Module Definition . . . . . . . . . . . . . . . . . . . . 49 | |||
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 55 | 7.2. Data Model examples . . . . . . . . . . . . . . . . . . . 63 | |||
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 55 | 7.2.1. LISP protocol instance . . . . . . . . . . . . . . . 64 | |||
10. Security Considerations . . . . . . . . . . . . . . . . . . . 56 | 7.2.2. LISP ITR . . . . . . . . . . . . . . . . . . . . . . 65 | |||
11. Normative References . . . . . . . . . . . . . . . . . . . . 56 | 7.2.3. LISP ETR . . . . . . . . . . . . . . . . . . . . . . 65 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 56 | 7.2.4. LISP Map-Server . . . . . . . . . . . . . . . . . . . 67 | |||
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 68 | ||||
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 68 | ||||
10. Security Considerations . . . . . . . . . . . . . . . . . . . 70 | ||||
11. Normative References . . . . . . . . . . . . . . . . . . . . 70 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 71 | ||||
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. | |||
1.1. Requirements Language | ||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | ||||
document are to be interpreted as described in BCP 14 [RFC2119] | ||||
[RFC8174] when, and only when, they appear in all capitals, as shown | ||||
here. | ||||
1.2. Tree Diagrams | ||||
This document uses the graphical representation of data models | ||||
defined in [RFC8340]. | ||||
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 | augment /rt:routing/rt:control-plane-protocols | |||
+--rw locator-sets | /rt:control-plane-protocol: | |||
| +--rw locator-set* [locator-set-name] | +--rw lisp | |||
| +--rw locator-set-name string | +--rw locator-sets | |||
| +--rw (locator-type)? | | +--rw locator-set* [locator-set-name] | |||
| +--:(local-interface) | | +--rw locator-set-name string | |||
| | +--rw interface* [interface-ref] | | +--rw (locator-type)? | |||
| | +--rw interface-ref if:interface-ref | | +--:(local-interface) | |||
| | +--rw priority? uint8 | | | +--rw interface* [interface-ref] | |||
| | +--rw weight? uint8 | | | +--rw interface-ref if:interface-ref | |||
| | +--rw multicast-priority? uint8 | | | +--rw priority? uint8 | |||
| | +--rw multicast-weight? uint8 | | | +--rw weight? uint8 | |||
| +--:(general-locator) | | | +--rw multicast-priority? uint8 | |||
| +--rw locator* [id] | | | +--rw multicast-weight? uint8 | |||
| +--rw id string | | +--:(general-locator) | |||
| +--rw locator-address | | +--rw locator* [id] | |||
| | +--rw address-type lisp-address-family-ref | | +--rw id string | |||
| | +--rw virtual-network-id? instance-id-type | | +--rw locator-address | |||
| | +--rw (address)? | | | +--rw address-type | |||
| | +--:(no-address) | | | | lisp-address-family-ref | |||
| | | +--rw no-address? empty | | | +--rw virtual-network-id? | |||
| | +--:(ipv4) | | | | instance-id-type | |||
| | | +--rw ipv4? inet:ipv4-address | | | +--rw (address)? | |||
| | +--:(ipv4-prefix) | | | +--:(no-address) | |||
| | | +--rw ipv4-prefix? inet:ipv4-prefix | | | | +--rw no-address? empty | |||
| | +--:(ipv6) | | | +--:(ipv4) | |||
| | | +--rw ipv6? inet:ipv6-address | | | | +--rw ipv4? | |||
| | +--:(ipv6-prefix) | | | | inet:ipv4-address | |||
| | | +--rw ipv6-prefix? inet:ipv6-prefix | | | +--:(ipv4-prefix) | |||
| | +--:(mac) | | | | +--rw ipv4-prefix? | |||
| | | +--rw mac? yang:mac-address | | | | inet:ipv4-prefix | |||
| | +--:(distinguished-name) | | | +--:(ipv6) | |||
| | | +--rw distinguished-name? distinguished-name-type | | | | +--rw ipv6? | |||
| | +--:(as-number) | | | | inet:ipv6-address | |||
| | | +--rw as-number? inet:as-number | | | +--:(ipv6-prefix) | |||
| | +--:(null-address) | | | | +--rw ipv6-prefix? | |||
| | | +--rw null-address | | | | inet:ipv6-prefix | |||
| | | +--rw address? empty | | | +--:(mac) | |||
| | +--:(afi-list) | | | | +--rw mac? | |||
| | | +--rw afi-list | | | | yang:mac-address | |||
| | | +--rw address-list* simple-address | | | +--:(distinguished-name) | |||
| | +--:(instance-id) | | | | +--rw distinguished-name? | |||
| | | +--rw instance-id | | | | distinguished-name-type | |||
| | | +--rw iid? instance-id-type | | | +--:(as-number) | |||
| | | +--rw mask-length? uint8 | | | | +--rw as-number? | |||
| | | +--rw address? simple-address | | | | inet:as-number | |||
| | +--:(as-number-lcaf) | | | +--:(null-address) | |||
| | | +--rw as-number-lcaf | | | | +--rw null-address | |||
| | | +--rw as? inet:as-number | | | | +--rw address? empty | |||
| | | +--rw address? simple-address | | | +--:(afi-list) | |||
| | +--:(application-data) | | | | +--rw afi-list | |||
| | | +--rw application-data | | | | +--rw address-list* | |||
| | | +--rw address? simple-address | | | | simple-address | |||
| | | +--rw protocol? uint8 | | | +--:(instance-id) | |||
| | | +--rw ip-tos? int32 | | | | +--rw instance-id | |||
| | | +--rw local-port-low? inet:port-number | | | | +--rw iid? | |||
| | | +--rw local-port-high? inet:port-number | | | | | instance-id-type | |||
| | | +--rw remote-port-low? inet:port-number | | | | +--rw mask-length? uint8 | |||
| | | +--rw remote-port-high? inet:port-number | | | | +--rw address? simple-address | |||
| | +--:(geo-coordinates) | | | +--:(as-number-lcaf) | |||
| | | +--rw geo-coordinates | | | | +--rw as-number-lcaf | |||
| | | +--rw latitude? bits | | | | +--rw as? inet:as-number | |||
| | | +--rw latitude-degrees? uint8 | | | | +--rw address? simple-address | |||
| | | +--rw latitude-minutes? uint8 | | | +--:(application-data) | |||
| | | +--rw latitude-seconds? uint8 | | | | +--rw application-data | |||
| | | +--rw longitude? bits | | | | +--rw address? | |||
| | | +--rw longitude-degrees? uint16 | | | | | simple-address | |||
| | | +--rw longitude-minutes? uint8 | | | | +--rw protocol? uint8 | |||
| | | +--rw longitude-seconds? uint8 | | | | +--rw ip-tos? int32 | |||
| | | +--rw altitude? int32 | | | | +--rw local-port-low? | |||
| | | +--rw address? simple-address | | | | | inet:port-number | |||
| | +--:(nat-traversal) | | | | +--rw local-port-high? | |||
| | | +--rw nat-traversal | | | | | inet:port-number | |||
| | | +--rw ms-udp-port? uint16 | | | | +--rw remote-port-low? | |||
| | | +--rw etr-udp-port? uint16 | | | | | inet:port-number | |||
| | | +--rw global-etr-rloc? simple-address | | | | +--rw remote-port-high? | |||
| | | +--rw ms-rloc? simple-address | | | | inet:port-number | |||
| | | +--rw private-etr-rloc? simple-address | | | +--:(geo-coordinates) | |||
| | | +--rw rtr-rlocs* simple-address | | | | +--rw geo-coordinates | |||
| | +--:(explicit-locator-path) | | | | +--rw latitude? bits | |||
| | | +--rw explicit-locator-path | | | | +--rw latitude-degrees? uint8 | |||
| | | +--rw hop* [hop-id] | | | | +--rw latitude-minutes? uint8 | |||
| | | +--rw hop-id string | | | | +--rw latitude-seconds? uint8 | |||
| | | +--rw address? simple-address | | | | +--rw longitude? bits | |||
| | | +--rw lrs-bits? bits | | | | +--rw longitude-degrees? uint16 | |||
| | +--:(source-dest-key) | | | | +--rw longitude-minutes? uint8 | |||
| | | +--rw source-dest-key | | | | +--rw longitude-seconds? uint8 | |||
| | | +--rw source? simple-address | | | | +--rw altitude? int32 | |||
| | | +--rw dest? simple-address | | | | +--rw address? | |||
| | +--:(key-value-address) | | | | simple-address | |||
| | | +--rw key-value-address | | | +--:(nat-traversal) | |||
| | | +--rw key? simple-address | | | | +--rw nat-traversal | |||
| | | +--rw value? simple-address | | | | +--rw ms-udp-port? uint16 | |||
| | +--:(service-path) | | | | +--rw etr-udp-port? uint16 | |||
| | +--rw service-path | | | | +--rw global-etr-rloc? | |||
| | +--rw service-path-id? service-path-id-type | | | | | simple-address | |||
| | +--rw service-index? uint8 | | | | +--rw ms-rloc? | |||
| +--rw priority? uint8 | | | | | simple-address | |||
| +--rw weight? uint8 | | | | +--rw private-etr-rloc? | |||
| +--rw multicast-priority? uint8 | | | | | simple-address | |||
| +--rw multicast-weight? uint8 | | | | +--rw rtr-rlocs* | |||
+--rw lisp-router-instances | | | | simple-address | |||
+--rw lisp-router-instance* [lisp-router-instance-id] | | | +--:(explicit-locator-path) | |||
+--rw lisp-router-instance-id int32 | | | | +--rw explicit-locator-path | |||
+--rw lisp-role* [lisp-role-type] | | | | +--rw hop* [hop-id] | |||
| +--rw lisp-role-type lisp-role-ref | | | | +--rw hop-id string | |||
+--rw lisp-router-id | | | | +--rw address? simple-address | |||
+--rw site-id? uint64 | | | | +--rw lrs-bits? bits | |||
+--rw xtr-id? lisp:xtr-id-type | | | +--:(source-dest-key) | |||
| | | +--rw source-dest-key | ||||
| | | +--rw source? simple-address | ||||
| | | +--rw dest? simple-address | ||||
| | +--:(key-value-address) | ||||
| | | +--rw key-value-address | ||||
| | | +--rw key? simple-address | ||||
| | | +--rw value? simple-address | ||||
| | +--:(service-path) | ||||
| | +--rw service-path | ||||
| | +--rw service-path-id? | ||||
| | | service-path-id-type | ||||
| | +--rw service-index? uint8 | ||||
| +--rw priority? uint8 | ||||
| +--rw weight? uint8 | ||||
| +--rw multicast-priority? uint8 | ||||
| +--rw multicast-weight? uint8 | ||||
+--rw lisp-role* [lisp-role-type] | ||||
| +--rw lisp-role-type lisp-role-ref | ||||
+--rw lisp-router-id | ||||
| +--rw site-id? uint64 | ||||
| +--rw xtr-id? lisp:xtr-id-type | ||||
+--rw virtual-networks | ||||
+--rw virtual-network* [vni] | ||||
+--rw vni lcaf:instance-id-type | ||||
+--rw ni-name? | ||||
-> /ni:network-instances/network-instance/name | ||||
2.2. Module Definition | 2.2. Module Definition | |||
<CODE BEGINS> file "ietf-lisp@2018-03-05.yang" | <CODE BEGINS> file "ietf-lisp@2018-06-29.yang" | |||
module ietf-lisp { | module ietf-lisp { | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-lisp"; | yang-version 1.1; | |||
prefix lisp; | ||||
import ietf-interfaces { | ||||
prefix if; | ||||
} | ||||
import ietf-lisp-address-types { | ||||
prefix lcaf; | ||||
} | ||||
import ietf-yang-types { | ||||
prefix yang; | ||||
} | ||||
organization | ||||
"IETF LISP (Locator/ID Separation Protocol) Working Group"; | ||||
contact | ||||
"WG Web: <http://tools.ietf.org/wg/lisp/> | ||||
WG List: <mailto:lisp@ietf.org> | ||||
Editor: Vina Ermagan | namespace "urn:ietf:params:xml:ns:yang:ietf-lisp"; | |||
<mailto:vermagan@cisco.com> | ||||
Editor: Alberto Rodriguez-Natal | prefix lisp; | |||
<mailto:natal@cisco.com> | ||||
Editor: Reshad Rahman | import ietf-interfaces { | |||
<mailto:rrahman@cisco.com>"; | prefix if; | |||
description | reference | |||
"This YANG module defines the generic parameters for LISP. | "RFC 8343: A YANG Data Model for Interface Management"; | |||
} | ||||
// RFC Ed.: replace occurences of XXXX with actual RFC number | ||||
// and remove this note | ||||
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)"; | ||||
} | ||||
import ietf-network-instance { | ||||
prefix "ni"; | ||||
// RFC Ed.: replace occurences of YYYY with actual RFC number | ||||
// of draft-ietf-rtgwg-ni-model and remove this note | ||||
reference | ||||
"RFC YYYY: YANG Model for Network Instances"; | ||||
} | ||||
The module can be extended by vendors to define vendor-specific | organization | |||
LISP parameters and policies. | "IETF LISP (Locator/ID Separation Protocol) Working Group"; | |||
contact | ||||
"WG Web: <http://tools.ietf.org/wg/lisp/> | ||||
WG List: <mailto:lisp@ietf.org> | ||||
Copyright (c) 2018 IETF Trust and the persons identified as | Editor: Vina Ermagan | |||
authors of the code. All rights reserved. | <mailto:vermagan@cisco.com> | |||
Redistribution and use in source and binary forms, with or | Editor: Alberto Rodriguez-Natal | |||
without modification, is permitted pursuant to, and subject | <mailto:natal@cisco.com> | |||
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 | Editor: Reshad Rahman | |||
the RFC itself for full legal notices. | <mailto:rrahman@cisco.com>"; | |||
"; | description | |||
// RFC Ed.: replace XXXX with actual RFC number and remove | "This YANG module defines the generic parameters for LISP. | |||
// this note | The module can be extended by vendors to define vendor-specific | |||
reference "RFC XXXX"; | LISP parameters and policies. | |||
revision 2018-03-05 { | Copyright (c) 2018 IETF Trust and the persons identified as | |||
description | authors of the code. All rights reserved. | |||
"Initial revision."; | ||||
reference | Redistribution and use in source and binary forms, with or | |||
"https://tools.ietf.org/html/rfc6830"; | without modification, is permitted pursuant to, and subject | |||
} | to the license terms contained in, the Simplified BSD License | |||
identity lisp-role { | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
description | Relating to IETF Documents | |||
"LISP router role."; | (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 2018-06-29 { | ||||
description | ||||
"Initial revision."; | ||||
reference | ||||
"https://tools.ietf.org/html/rfc6830"; | ||||
} | ||||
/* | ||||
* Identity definitions | ||||
*/ | ||||
identity lisp { | ||||
base "rt:control-plane-protocol"; | ||||
description "LISP protocol."; | ||||
reference | ||||
"RFC 6830: The Locator/ID Separation Protocol (LISP)."; | ||||
} | ||||
identity lisp-role { | ||||
description | ||||
"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 { | ||||
description | ||||
"Mapping System interface"; | ||||
} | ||||
identity single-node-mapping-system { | ||||
base mapping-system; | ||||
description | ||||
"logically singular Map Server"; | ||||
} | ||||
typedef mapping-system-ref { | ||||
type identityref { | ||||
base mapping-system; | ||||
} | } | |||
identity itr { | description | |||
"Mapping System reference"; | ||||
} | ||||
typedef lisp-role-ref { | ||||
type identityref { | ||||
base lisp-role; | base lisp-role; | |||
description | ||||
"LISP ITR."; | ||||
} | } | |||
identity pitr { | description | |||
base lisp-role; | "LISP role reference"; | |||
description | } | |||
"LISP PITR."; | typedef map-reply-action { | |||
type enumeration { | ||||
enum no-action { | ||||
value 0; | ||||
description | ||||
"Mapping is kept alive and no encapsulation occurs."; | ||||
} | ||||
enum natively-forward { | ||||
value 1; | ||||
description | ||||
"Matching packets are not encapsulated or dropped but | ||||
natively forwarded."; | ||||
} | ||||
enum send-map-request { | ||||
value 2; | ||||
description | ||||
"Matching packets invoke Map-Requests."; | ||||
} | ||||
enum drop { | ||||
value 3; | ||||
description | ||||
"Matching packets are dropped."; | ||||
} | ||||
} | } | |||
identity etr { | description | |||
base lisp-role; | "Defines the lisp map-cache ACT type"; | |||
description | reference "https://tools.ietf.org/html/rfc6830#section-6.1.4"; | |||
"LISP ETR."; | } | |||
typedef eid-id { | ||||
type string; | ||||
description | ||||
"Type encoding of lisp-addresses to be generally used in EID | ||||
keyed lists."; | ||||
} | ||||
typedef auth-key-type { | ||||
type enumeration { | ||||
enum none { | ||||
value 0; | ||||
description | ||||
"No authentication."; | ||||
} | ||||
enum hmac-sha-1-96 { | ||||
value 1; | ||||
description | ||||
"HMAC-SHA-1-96 (RFC2404) authentication is used."; | ||||
} | ||||
enum hmac-sha-256-128 { | ||||
value 2; | ||||
description | ||||
"HMAC-SHA-256-128 (RFC4868) authentication is used."; | ||||
} | ||||
} | } | |||
identity petr { | description | |||
base lisp-role; | "Enumeration of the authentication mechanisms supported by | |||
description | LISP."; | |||
"LISP PETR."; | reference | |||
"https://tools.ietf.org/html/rfc6830#section-6.1.6"; | ||||
} | ||||
typedef xtr-id-type { | ||||
type binary { | ||||
length "16"; | ||||
} | } | |||
identity mapping-system { | description | |||
"128 bit xTR identifier."; | ||||
} | ||||
grouping locator-properties { | ||||
description | ||||
"Properties of a RLOC"; | ||||
leaf priority { | ||||
type uint8; | ||||
description | description | |||
"Mapping System interface"; | "Locator priority."; | |||
} | } | |||
identity single-node-mapping-system { | leaf weight { | |||
base mapping-system; | type uint8; | |||
description | description | |||
"logically singular Map Server"; | "Locator weight."; | |||
} | } | |||
typedef mapping-system-ref { | leaf multicast-priority { | |||
type identityref { | type uint8; | |||
base mapping-system; | ||||
} | ||||
description | description | |||
"Mapping System reference"; | "Locator's multicast priority"; | |||
} | } | |||
leaf multicast-weight { | ||||
typedef lisp-role-ref { | type uint8; | |||
type identityref { | ||||
base lisp-role; | ||||
} | ||||
description | description | |||
"LISP role reference"; | "Locator's multicast weight"; | |||
} | } | |||
typedef map-reply-action { | ||||
type enumeration { | } | |||
enum no-action { | ||||
value 0; | grouping locators-grouping { | |||
description | description | |||
"Mapping is kept alive and no encapsulation occurs."; | "Group that defines a list of LISP locators."; | |||
} | list locator { | |||
enum natively-forward { | key "id"; | |||
value 1; | description | |||
"List of routing locators"; | ||||
leaf id { | ||||
type string { | ||||
length "1..64"; | ||||
} | ||||
description | description | |||
"Matching packets are not encapsulated or dropped but | "Locator id"; | |||
natively forwarded."; | ||||
} | } | |||
enum send-map-request { | container locator-address { | |||
value 2; | uses lcaf:lisp-address; | |||
description | description | |||
"Matching packets invoke Map-Requests."; | "The locator address provided in LISP canonincal | |||
address format."; | ||||
} | } | |||
enum drop { | uses locator-properties; | |||
value 3; | } | |||
description | ||||
"Matching packets are dropped."; | ||||
} | } | |||
grouping local-locators-grouping { | ||||
description | ||||
"Group that defines a list of LISP locators."; | ||||
list interface { | ||||
key "interface-ref"; | ||||
description | ||||
"The address type of the locator"; | ||||
leaf interface-ref { | ||||
type if:interface-ref; | ||||
description | ||||
"The name of the interface supporting the locator."; | ||||
} | } | |||
uses locator-properties; | ||||
} | ||||
} | ||||
grouping mapping { | ||||
description | ||||
"Group that defines a LISP mapping."; | ||||
container eid { | ||||
uses lcaf:lisp-address; | ||||
description | description | |||
"Defines the lisp map-cache ACT type"; | "End-host Identifier (EID) to be mapped to a list of | |||
reference "https://tools.ietf.org/html/rfc6830#section-6.1.4"; | locators"; | |||
} | } | |||
typedef eid-id { | leaf time-to-live { | |||
type string; | type uint32; | |||
units minutes; | ||||
description | description | |||
"Type encoding of lisp-addresses to be generally used in EID | "Mapping validity period in minutes."; | |||
keyed lists."; | ||||
} | } | |||
typedef auth-key-type { | leaf creation-time { | |||
type enumeration { | type yang:date-and-time; | |||
enum none { | config false; | |||
value 0; | ||||
description | ||||
"No authentication."; | ||||
} | ||||
enum hmac-sha-1-96 { | ||||
value 1; | ||||
description | ||||
"HMAC-SHA-1-96 (RFC2404) authentication is used."; | ||||
} | ||||
enum hmac-sha-256-128 { | ||||
value 2; | ||||
description | ||||
"HMAC-SHA-256-128 (RFC4868) authentication is used."; | ||||
} | ||||
} | ||||
description | description | |||
"Enumeration of the authentication mechanisms supported by | "Time when the mapping was created."; | |||
LISP."; | ||||
reference | ||||
"https://tools.ietf.org/html/rfc6830#section-6.1.6"; | ||||
} | } | |||
typedef xtr-id-type { | leaf authoritative { | |||
type binary { | type bits { | |||
length "16"; | bit A { | |||
description | ||||
"Authoritative bit."; | ||||
} | ||||
} | } | |||
description | description | |||
"128 bit xTR identifier."; | "Bit that indicates if mapping comes from an | |||
authoritative source."; | ||||
} | } | |||
leaf static { | ||||
grouping locator-properties { | type boolean; | |||
default "false"; | ||||
description | description | |||
"Properties of a RLOC"; | "This leaf should be true if the mapping is static."; | |||
leaf priority { | ||||
type uint8; | ||||
description | ||||
"Locator priority."; | ||||
} | ||||
leaf weight { | ||||
type uint8; | ||||
description | ||||
"Locator weight."; | ||||
} | ||||
leaf multicast-priority { | ||||
type uint8; | ||||
description | ||||
"Locator's multicast priority"; | ||||
} | ||||
leaf multicast-weight { | ||||
type uint8; | ||||
description | ||||
"Locator's multicast weight"; | ||||
} | ||||
} | } | |||
choice locator-list { | ||||
grouping locators-grouping { | ||||
description | description | |||
"Group that defines a list of LISP locators."; | "list of locartors are either negative, or positive."; | |||
list locator { | case negative-mapping { | |||
key "id"; | leaf map-reply-action { | |||
type map-reply-action; | ||||
description | description | |||
"List of routing locators"; | "Forwarding action for a negative mapping."; | |||
leaf id { | ||||
type string { | ||||
length "1..64"; | ||||
} | ||||
description | ||||
"Locator id"; | ||||
} | ||||
container locator-address { | ||||
uses lcaf:lisp-address; | ||||
description | ||||
"The locator address provided in LISP canonincal | ||||
address format."; | ||||
} | ||||
uses locator-properties; | ||||
} | } | |||
} | ||||
} | case positive-mapping { | |||
container rlocs { | ||||
grouping local-locators-grouping { | uses locators-grouping; | |||
description | ||||
"Group that defines a list of LISP locators."; | ||||
list interface { | ||||
key "interface-ref"; | ||||
description | ||||
"The address type of the locator"; | ||||
leaf interface-ref { | ||||
type if:interface-ref; | ||||
description | description | |||
"The name of the interface supporting the locator."; | "List of locators for a positive mapping."; | |||
} | } | |||
uses locator-properties; | ||||
} | } | |||
} | } | |||
} | ||||
grouping mapping { | grouping mappings { | |||
description | ||||
"Group that defines a list of LISP mappings."; | ||||
list virtual-network { | ||||
key "vni"; | ||||
description | description | |||
"Group that defines a LISP mapping."; | "Virtual network to which the mappings belong."; | |||
container eid { | leaf vni { | |||
uses lcaf:lisp-address; | type lcaf:instance-id-type; | |||
description | ||||
"End-host Identifier (EID) to be mapped to a list of | ||||
locators"; | ||||
} | ||||
leaf time-to-live { | ||||
type uint32; | ||||
units minutes; | ||||
description | ||||
"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 | ||||
"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."; | |||
case negative-mapping { | list mapping { | |||
leaf map-reply-action { | key "id"; | |||
type map-reply-action; | description | |||
description | "List of EID to RLOCs mappings."; | |||
"Forwarding action for a negative mapping."; | leaf id { | |||
} | 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; | ||||
} | } | |||
} | } | |||
} | } | |||
} | ||||
grouping mappings { | augment "/rt:routing/rt:control-plane-protocols" | |||
+ "/rt:control-plane-protocol" { | ||||
when "derived-from-or-self(rt:type, 'lisp:lisp')" { | ||||
description | description | |||
"Group that defines a list of LISP mappings."; | "This augmentation is only valid for a control-plane protocol | |||
list virtual-network { | instance of LISP."; | |||
key "vni"; | ||||
description | ||||
"Virtual network to which the mappings belong."; | ||||
leaf vni { | ||||
type lcaf:instance-id-type; | ||||
description | ||||
"Virtual network identifier."; | ||||
} | ||||
container mappings { | ||||
description | ||||
"Mappings within the virtual network."; | ||||
list mapping { | ||||
key "id"; | ||||
description | ||||
"List of EID to RLOCs mappings."; | ||||
leaf id { | ||||
type eid-id; | ||||
description | ||||
"Id that uniquely identifies a mapping."; | ||||
} | ||||
uses mapping; | ||||
} | ||||
} | ||||
} | ||||
} | } | |||
description "LISP protocol ietf-routing module | ||||
control-plane-protocol augmentation."; | ||||
container lisp { | container lisp { | |||
description | description | |||
"Parameters for the 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 { | |||
skipping to change at page 12, line 48 ¶ | skipping to change at page 14, line 39 ¶ | |||
} | } | |||
case general-locator { | case general-locator { | |||
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 { | list lisp-role { | |||
description | key lisp-role-type; | |||
"Different LISP routers instantiated in the device"; | ||||
list lisp-router-instance { | ||||
key "lisp-router-instance-id"; | ||||
description | description | |||
"Each entry contains parameters for a LISP router."; | "List of lisp device roles such as MS, MR, ITR, | |||
leaf lisp-router-instance-id { | PITR, ETR or PETR."; | |||
type int32; | leaf lisp-role-type { | |||
type lisp-role-ref; | ||||
description | description | |||
"Arbitrary lisp-router id."; | "The type of LISP device - identity derived from the | |||
'lisp-device' base identity."; | ||||
} | } | |||
list lisp-role { | } | |||
key lisp-role-type; | ||||
container lisp-router-id { | ||||
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 | ||||
"Site-ID and xTR-ID of the device."; | ||||
leaf site-id { | ||||
type uint64; | ||||
description "Site ID"; | ||||
} | ||||
leaf xtr-id { | ||||
type lisp:xtr-id-type; | ||||
description "xTR ID"; | ||||
} | ||||
} | ||||
container virtual-networks { | ||||
description "Virtual networks"; | ||||
list virtual-network { | ||||
key vni; | ||||
description "List of virtual networks"; | ||||
leaf vni { | ||||
type lcaf:instance-id-type; | ||||
description | description | |||
"List of lisp device roles such as MS, MR, ITR, | "Virtual network identifier"; | |||
PITR, ETR or PETR."; | ||||
leaf lisp-role-type { | ||||
type lisp-role-ref; | ||||
description | ||||
"The type of LISP device - identity derived from the | ||||
'lisp-device' base identity."; | ||||
} | ||||
} | } | |||
container lisp-router-id { | leaf ni-name { | |||
when "../lisp-role/lisp-role-type = 'itr' or | type leafref { | |||
../lisp-role/lisp-role-type = 'pitr' or | path "/ni:network-instances/ni:network-instance/ni:name"; | |||
../lisp-role/lisp-role-type = 'etr' or | ||||
../lisp-role/lisp-role-type = 'petr'" { | ||||
description "Only when ITR, PITR, ETR or PETR."; | ||||
} | } | |||
description | description | |||
"Site-ID and xTR-ID of the device."; | "Name of Network Instance (e.g. VRF) to which a VNI is | |||
leaf site-id { | bound. Each VNI is bound to a different Network | |||
type uint64; | Instance"; | |||
description "Site ID"; | ||||
} | ||||
leaf xtr-id { | ||||
type lisp:xtr-id-type; | ||||
description "xTR ID"; | ||||
} | ||||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
<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: | augment /rt:routing/rt:control-plane-protocols | |||
+--rw itr! | /rt:control-plane-protocol/lisp:lisp: | |||
+--rw rloc-probing! | +--rw itr! | |||
| +--rw interval? uint16 | +--rw rloc-probing! | |||
| +--rw retries? uint8 | | +--rw interval? uint16 | |||
| +--rw retries-interval? uint16 | | +--rw retries? uint8 | |||
+--rw itr-rlocs? -> /lisp:lisp/locator-sets/locator-set/locator-set-name | | +--rw retries-interval? uint16 | |||
+--rw map-resolvers | +--rw itr-rlocs? leafref | |||
| +--rw map-resolver* inet:ip-address | +--rw map-resolvers | |||
+--rw proxy-etrs | | +--rw map-resolver* inet:ip-address | |||
| +--rw proxy-etr-address* inet:ip-address | +--rw proxy-etrs | |||
+--rw map-cache | | +--rw proxy-etr-address* inet:ip-address | |||
+--rw virtual-network* [vni] | +--rw map-cache | |||
+--rw vni lcaf:instance-id-type | +--ro size? uint32 | |||
+--rw mappings | +--ro limit? uint32 | |||
+--rw mapping* [id] | +--rw virtual-network* [vni] | |||
+--rw id eid-id | +--rw vni lcaf:instance-id-type | |||
+--rw eid | +--rw mappings | |||
| +--rw address-type lisp-address-family-ref | +--rw mapping* [id] | |||
| +--rw virtual-network-id? instance-id-type | +--rw id eid-id | |||
| +--rw (address)? | +--rw eid | |||
| +--:(no-address) | | +--rw address-type | |||
| | +--rw no-address? empty | | | lisp-address-family-ref | |||
| +--:(ipv4) | | +--rw virtual-network-id? | |||
| | +--rw ipv4? inet:ipv4-address | | | instance-id-type | |||
| +--:(ipv4-prefix) | | +--rw (address)? | |||
| | +--rw ipv4-prefix? inet:ipv4-prefix | | +--:(no-address) | |||
| +--:(ipv6) | | | +--rw no-address? empty | |||
| | +--rw ipv6? inet:ipv6-address | | +--:(ipv4) | |||
| +--:(ipv6-prefix) | | | +--rw ipv4? | |||
| | +--rw ipv6-prefix? inet:ipv6-prefix | | | inet:ipv4-address | |||
| +--:(mac) | | +--:(ipv4-prefix) | |||
| | +--rw mac? yang:mac-address | | | +--rw ipv4-prefix? | |||
| +--:(distinguished-name) | | | inet:ipv4-prefix | |||
| | +--rw distinguished-name? distinguished-name-type | | +--:(ipv6) | |||
| +--:(as-number) | | | +--rw ipv6? | |||
| | +--rw as-number? inet:as-number | | | inet:ipv6-address | |||
| +--:(null-address) | | +--:(ipv6-prefix) | |||
| | +--rw null-address | | | +--rw ipv6-prefix? | |||
| | +--rw address? empty | | | inet:ipv6-prefix | |||
| +--:(afi-list) | | +--:(mac) | |||
| | +--rw afi-list | | | +--rw mac? | |||
| | +--rw address-list* simple-address | | | yang:mac-address | |||
| +--:(instance-id) | | +--:(distinguished-name) | |||
| | +--rw instance-id | | | +--rw distinguished-name? | |||
| | +--rw iid? instance-id-type | | | distinguished-name-type | |||
| | +--rw mask-length? uint8 | | +--:(as-number) | |||
| | +--rw address? simple-address | | | +--rw as-number? | |||
| +--:(as-number-lcaf) | | | inet:as-number | |||
| | +--rw as-number-lcaf | | +--:(null-address) | |||
| | +--rw as? inet:as-number | | | +--rw null-address | |||
| | +--rw address? simple-address | | | +--rw address? empty | |||
| +--:(application-data) | | +--:(afi-list) | |||
| | +--rw application-data | | | +--rw afi-list | |||
| | +--rw address? simple-address | | | +--rw address-list* simple-address | |||
| | +--rw protocol? uint8 | | +--:(instance-id) | |||
| | +--rw ip-tos? int32 | | | +--rw instance-id | |||
| | +--rw local-port-low? inet:port-number | | | +--rw iid? instance-id-type | |||
| | +--rw local-port-high? inet:port-number | | | +--rw mask-length? uint8 | |||
| | +--rw remote-port-low? inet:port-number | | | +--rw address? simple-address | |||
| | +--rw remote-port-high? inet:port-number | | +--:(as-number-lcaf) | |||
| +--:(geo-coordinates) | | | +--rw as-number-lcaf | |||
| | +--rw geo-coordinates | | | +--rw as? inet:as-number | |||
| | +--rw latitude? bits | | | +--rw address? simple-address | |||
| | +--rw latitude-degrees? uint8 | | +--:(application-data) | |||
| | +--rw latitude-minutes? uint8 | | | +--rw application-data | |||
| | +--rw latitude-seconds? uint8 | | | +--rw address? | |||
| | +--rw longitude? bits | | | | simple-address | |||
| | +--rw longitude-degrees? uint16 | | | +--rw protocol? uint8 | |||
| | +--rw longitude-minutes? uint8 | | | +--rw ip-tos? int32 | |||
| | +--rw longitude-seconds? uint8 | | | +--rw local-port-low? | |||
| | +--rw altitude? int32 | | | | inet:port-number | |||
| | +--rw address? simple-address | | | +--rw local-port-high? | |||
| +--:(nat-traversal) | | | | inet:port-number | |||
| | +--rw nat-traversal | | | +--rw remote-port-low? | |||
| | +--rw ms-udp-port? uint16 | | | | inet:port-number | |||
| | +--rw etr-udp-port? uint16 | | | +--rw remote-port-high? | |||
| | +--rw global-etr-rloc? simple-address | | | inet:port-number | |||
| | +--rw ms-rloc? simple-address | | +--:(geo-coordinates) | |||
| | +--rw private-etr-rloc? simple-address | | | +--rw geo-coordinates | |||
| | +--rw rtr-rlocs* simple-address | | | +--rw latitude? bits | |||
| +--:(explicit-locator-path) | | | +--rw latitude-degrees? uint8 | |||
| | +--rw explicit-locator-path | | | +--rw latitude-minutes? uint8 | |||
| | +--rw hop* [hop-id] | | | +--rw latitude-seconds? uint8 | |||
| | +--rw hop-id string | | | +--rw longitude? bits | |||
| | +--rw address? simple-address | | | +--rw longitude-degrees? uint16 | |||
| | +--rw lrs-bits? bits | | | +--rw longitude-minutes? uint8 | |||
| +--:(source-dest-key) | | | +--rw longitude-seconds? uint8 | |||
| | +--rw source-dest-key | | | +--rw altitude? int32 | |||
| | +--rw source? simple-address | | | +--rw address? | |||
| | +--rw dest? simple-address | | | simple-address | |||
| +--:(key-value-address) | | +--:(nat-traversal) | |||
| | +--rw key-value-address | | | +--rw nat-traversal | |||
| | +--rw key? simple-address | | | +--rw ms-udp-port? uint16 | |||
| | +--rw value? simple-address | | | +--rw etr-udp-port? uint16 | |||
| +--:(service-path) | | | +--rw global-etr-rloc? | |||
| +--rw service-path | | | | simple-address | |||
| +--rw service-path-id? service-path-id-type | | | +--rw ms-rloc? | |||
| +--rw service-index? uint8 | | | | simple-address | |||
+--rw time-to-live? uint32 | | | +--rw private-etr-rloc? | |||
+--rw creation-time? yang:date-and-time | | | | simple-address | |||
+--rw authoritative? bits | | | +--rw rtr-rlocs* | |||
+--rw static? boolean | | | simple-address | |||
+--rw (locator-list)? | | +--:(explicit-locator-path) | |||
+--:(negative-mapping) | | | +--rw explicit-locator-path | |||
| +--rw map-reply-action? map-reply-action | | | +--rw hop* [hop-id] | |||
+--:(positive-mapping) | | | +--rw hop-id string | |||
+--rw rlocs | | | +--rw address? simple-address | |||
+--rw locator* [id] | | | +--rw lrs-bits? bits | |||
+--rw id string | | +--:(source-dest-key) | |||
+--rw locator-address | | | +--rw source-dest-key | |||
| +--rw address-type lisp-address-family-ref | | | +--rw source? simple-address | |||
| +--rw virtual-network-id? instance-id-type | | | +--rw dest? simple-address | |||
| +--rw (address)? | | +--:(key-value-address) | |||
| +--:(no-address) | | | +--rw key-value-address | |||
| | +--rw no-address? empty | | | +--rw key? simple-address | |||
| +--:(ipv4) | | | +--rw value? simple-address | |||
| | +--rw ipv4? inet:ipv4-address | | +--:(service-path) | |||
| +--:(ipv4-prefix) | | +--rw service-path | |||
| | +--rw ipv4-prefix? inet:ipv4-prefix | | +--rw service-path-id? | |||
| +--:(ipv6) | | | service-path-id-type | |||
| | +--rw ipv6? inet:ipv6-address | | +--rw service-index? uint8 | |||
| +--:(ipv6-prefix) | +--rw time-to-live? uint32 | |||
| | +--rw ipv6-prefix? inet:ipv6-prefix | +--ro creation-time? yang:date-and-time | |||
| +--:(mac) | +--rw authoritative? bits | |||
| | +--rw mac? yang:mac-address | +--rw static? boolean | |||
| +--:(distinguished-name) | +--rw (locator-list)? | |||
| | +--rw distinguished-name? distinguished-name-type | +--:(negative-mapping) | |||
| +--:(as-number) | | +--rw map-reply-action? map-reply-action | |||
| | +--rw as-number? inet:as-number | +--:(positive-mapping) | |||
| +--:(null-address) | +--rw rlocs | |||
| | +--rw null-address | +--rw locator* [id] | |||
| | +--rw address? empty | +--rw id string | |||
| +--:(afi-list) | +--rw locator-address | |||
| | +--rw afi-list | | +--rw address-type | |||
| | +--rw address-list* simple-address | | | lisp-address-family-ref | |||
| +--:(instance-id) | | +--rw virtual-network-id? | |||
| | +--rw instance-id | | | instance-id-type | |||
| | +--rw iid? instance-id-type | | +--rw (address)? | |||
| | +--rw mask-length? uint8 | | +--:(no-address) | |||
| | +--rw address? simple-address | | | +--rw no-address? | |||
| +--:(as-number-lcaf) | | | empty | |||
| | +--rw as-number-lcaf | | +--:(ipv4) | |||
| | +--rw as? inet:as-number | | | +--rw ipv4? | |||
| | +--rw address? simple-address | | | inet:ipv4-address | |||
| +--:(application-data) | | +--:(ipv4-prefix) | |||
| | +--rw application-data | | | +--rw ipv4-prefix? | |||
| | +--rw address? simple-address | | | inet:ipv4-prefix | |||
| | +--rw protocol? uint8 | | +--:(ipv6) | |||
| | +--rw ip-tos? int32 | | | +--rw ipv6? | |||
| | +--rw local-port-low? inet:port-number | | | inet:ipv6-address | |||
| | +--rw local-port-high? inet:port-number | | +--:(ipv6-prefix) | |||
| | +--rw remote-port-low? inet:port-number | | | +--rw ipv6-prefix? | |||
| | +--rw remote-port-high? inet:port-number | | | inet:ipv6-prefix | |||
| +--:(geo-coordinates) | | +--:(mac) | |||
| | +--rw geo-coordinates | | | +--rw mac? | |||
| | +--rw latitude? bits | | | yang:mac-address | |||
| | +--rw latitude-degrees? uint8 | | +--:(distinguished-name) | |||
| | +--rw latitude-minutes? uint8 | | | +--rw distinguished-name? | |||
| | +--rw latitude-seconds? uint8 | | | distinguished-name-type | |||
| | +--rw longitude? bits | | +--:(as-number) | |||
| | +--rw longitude-degrees? uint16 | | | +--rw as-number? | |||
| | +--rw longitude-minutes? uint8 | | | inet:as-number | |||
| | +--rw longitude-seconds? uint8 | | +--:(null-address) | |||
| | +--rw altitude? int32 | | | +--rw null-address | |||
| | +--rw address? simple-address | | | +--rw address? empty | |||
| +--:(nat-traversal) | | +--:(afi-list) | |||
| | +--rw nat-traversal | | | +--rw afi-list | |||
| | +--rw ms-udp-port? uint16 | | | +--rw address-list* | |||
| | +--rw etr-udp-port? uint16 | | | simple-address | |||
| | +--rw global-etr-rloc? simple-address | | +--:(instance-id) | |||
| | +--rw ms-rloc? simple-address | | | +--rw instance-id | |||
| | +--rw private-etr-rloc? simple-address | | | +--rw iid? | |||
| | +--rw rtr-rlocs* simple-address | | | | instance-id-type | |||
| +--:(explicit-locator-path) | | | +--rw mask-length? uint8 | |||
| | +--rw explicit-locator-path | | | +--rw address? | |||
| | +--rw hop* [hop-id] | | | simple-address | |||
| | +--rw hop-id string | | +--:(as-number-lcaf) | |||
| | +--rw address? simple-address | | | +--rw as-number-lcaf | |||
| | +--rw lrs-bits? bits | | | +--rw as? | |||
| +--:(source-dest-key) | | | | inet:as-number | |||
| | +--rw source-dest-key | | | +--rw address? | |||
| | +--rw source? simple-address | | | simple-address | |||
| | +--rw dest? simple-address | | +--:(application-data) | |||
| +--:(key-value-address) | | | +--rw application-data | |||
| | +--rw key-value-address | | | +--rw address? | |||
| | +--rw key? simple-address | | | | simple-address | |||
| | +--rw value? simple-address | | | +--rw protocol? | |||
| +--:(service-path) | | | | uint8 | |||
| +--rw service-path | | | +--rw ip-tos? | |||
| +--rw service-path-id? service-path-id-type | | | | int32 | |||
| +--rw service-index? uint8 | | | +--rw local-port-low? | |||
+--rw priority? uint8 | | | | inet:port-number | |||
+--rw weight? uint8 | | | +--rw local-port-high? | |||
+--rw multicast-priority? uint8 | | | | inet:port-number | |||
+--rw multicast-weight? uint8 | | | +--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 | ||||
3.2. Module Definition | 3.2. Module Definition | |||
<CODE BEGINS> file "ietf-lisp-itr@2018-03-05.yang" | <CODE BEGINS> file "ietf-lisp-itr@2018-06-29.yang" | |||
module ietf-lisp-itr { | module ietf-lisp-itr { | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-itr"; | yang-version 1.1; | |||
prefix lisp-itr; | ||||
import ietf-lisp { | ||||
prefix lisp; | ||||
} | ||||
import ietf-inet-types { | ||||
prefix inet; | ||||
} | ||||
organization | ||||
"IETF LISP (Locator/ID Separation Protocol) Working Group"; | ||||
contact | ||||
"WG Web: <http://tools.ietf.org/wg/lisp/> | ||||
WG List: <mailto:lisp@ietf.org> | ||||
Editor: Vina Ermagan | namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-itr"; | |||
<mailto:vermagan@cisco.com> | ||||
Editor: Alberto Rodriguez-Natal | prefix lisp-itr; | |||
<mailto:natal@cisco.com> | ||||
Editor: Reshad Rahman | // RFC Ed.: replace occurences of XXXX with actual RFC number | |||
<mailto:rrahman@cisco.com>"; | // and remove this note | |||
description | import ietf-lisp { | |||
"This YANG module defines the generic parameters for a LISP | prefix lisp; | |||
ITR. The module can be extended by vendors to define | reference "RFC XXXX: LISP YANG model"; | |||
vendor-specific parameters and policies. | } | |||
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)"; | ||||
} | ||||
Copyright (c) 2018 IETF Trust and the persons identified as | organization | |||
authors of the code. All rights reserved. | "IETF LISP (Locator/ID Separation Protocol) Working Group"; | |||
contact | ||||
"WG Web: <http://tools.ietf.org/wg/lisp/> | ||||
WG List: <mailto:lisp@ietf.org> | ||||
Redistribution and use in source and binary forms, with or | Editor: Vina Ermagan | |||
without modification, is permitted pursuant to, and subject | <mailto:vermagan@cisco.com> | |||
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. | ||||
"; | ||||
// RFC Ed.: replace XXXX with actual RFC number and remove | ||||
// this note | ||||
reference "RFC XXXX"; | ||||
revision 2018-03-05 { | Editor: Alberto Rodriguez-Natal | |||
<mailto:natal@cisco.com> | ||||
Editor: Reshad Rahman | ||||
<mailto:rrahman@cisco.com>"; | ||||
description | description | |||
"Initial revision."; | "This YANG module defines the generic parameters for a LISP | |||
reference | ITR. The module can be extended by vendors to define | |||
"https://tools.ietf.org/html/rfc6830"; | vendor-specific parameters and policies. | |||
} | ||||
augment "/lisp:lisp/lisp:lisp-router-instances/lisp:lisp-router-instance" { | Copyright (c) 2018 IETF Trust and the persons identified as | |||
when "lisp:lisp-role/lisp:lisp-role-type = 'lisp:itr' or | authors of the code. All rights reserved. | |||
lisp:lisp-role/lisp:lisp-role-type = 'lisp:pitr'" { | ||||
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 2018-06-29 { | ||||
description | description | |||
"Augment is valid when LISP role type is ITR or PITR."; | "Initial revision."; | |||
reference | ||||
"https://tools.ietf.org/html/rfc6830"; | ||||
} | } | |||
description | augment "/rt:routing/rt:control-plane-protocols" | |||
"This augments LISP devices list with (P)ITR specific | + "/rt:control-plane-protocol/lisp:lisp" { | |||
parameters."; | when "lisp:lisp-role/lisp:lisp-role-type = 'lisp:itr' or | |||
container itr { | lisp:lisp-role/lisp:lisp-role-type = 'lisp:pitr'" { | |||
presence "LISP (P)ITR operation enabled"; | description | |||
"Augment is valid when LISP role type is ITR or PITR."; | ||||
} | ||||
description | description | |||
"ITR parameters"; | "This augments LISP devices list with (P)ITR specific | |||
container rloc-probing { | parameters."; | |||
presence "RLOC probing active"; | container itr { | |||
presence "LISP (P)ITR operation enabled"; | ||||
description | description | |||
"RLOC-probing parameters"; | "ITR parameters"; | |||
leaf interval { | container rloc-probing { | |||
type uint16; | presence "RLOC probing active"; | |||
units "seconds"; | ||||
description | ||||
"Interval in seconds for resending the probes"; | ||||
} | ||||
leaf retries { | ||||
type uint8; | ||||
description | description | |||
"Number of retries for sending the probes"; | "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 retries-interval { | leaf itr-rlocs { | |||
type uint16; | type leafref { | |||
units "seconds"; | path "/rt:routing/rt:control-plane-protocols" | |||
+ "/rt:control-plane-protocol/lisp:lisp" | ||||
+ "/lisp:locator-sets/lisp:locator-set" | ||||
+ "/lisp:locator-set-name"; | ||||
} | ||||
description | description | |||
"Interval in seconds between retries when sending probes. | "Reference to a locator set that the (P)ITR includes in | |||
The action taken if all retries fail to receive is | Map-Requests"; | |||
impementation specific."; | ||||
} | ||||
} | ||||
leaf itr-rlocs { | ||||
type leafref { | ||||
path "/lisp:lisp/lisp:locator-sets/lisp:locator-set/" | ||||
+ "lisp:locator-set-name"; | ||||
} | } | |||
description | container map-resolvers { | |||
"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 | description | |||
"Each Map-Resolver within the list of Map-Resolvers."; | "Map-Resolvers that the (P)ITR uses."; | |||
leaf-list map-resolver { | ||||
type inet:ip-address; | ||||
description | ||||
"Each Map-Resolver within the list of Map-Resolvers."; | ||||
} | ||||
} | } | |||
} | container proxy-etrs { | |||
container proxy-etrs { | when "../../lisp:lisp-role/lisp:lisp-role-type = 'lisp:itr'" { | |||
when "../../lisp:lisp-role/lisp:lisp-role-type = 'lisp:itr'" { | description | |||
"Container exists only when LISP role type is ITR"; | ||||
} | ||||
description | description | |||
"Container exists only when LISP role type is ITR"; | "Proxy ETRs that the ITR uses."; | |||
leaf-list proxy-etr-address{ | ||||
type inet:ip-address; | ||||
description | ||||
"Proxy ETR RLOC address."; | ||||
} | ||||
} | } | |||
description | container map-cache { | |||
"Proxy ETRs that the ITR uses."; | leaf size { | |||
leaf-list proxy-etr-address{ | type uint32; | |||
type inet:ip-address; | config false; | |||
description | ||||
"Current number of entries in the EID-to-RLOC map-cache"; | ||||
} | ||||
leaf limit { | ||||
type uint32; | ||||
config false; | ||||
description | ||||
"Maximum permissible number of entries in the EID-to-RLOC | ||||
map-cache"; | ||||
} | ||||
uses lisp:mappings; | ||||
description | description | |||
"Proxy ETR RLOC address."; | "EID to RLOCs mappings cache."; | |||
} | } | |||
} | ||||
container map-cache{ | ||||
uses lisp:mappings; | ||||
description | ||||
"EID to RLOCs mappings cache."; | ||||
} | } | |||
} | } | |||
} | } | |||
} | <CODE ENDS> | |||
<CODE ENDS> | ||||
4. LISP-ETR Module | 4. LISP-ETR Module | |||
This module captures the configuration data model of a LISP ETR. The | This module captures the configuration data model of a LISP ETR. The | |||
model also captures some operational data elements. | model also captures some operational data elements. | |||
4.1. Module Structure | 4.1. Module Structure | |||
module: ietf-lisp-etr | module: ietf-lisp-etr | |||
augment /lisp:lisp/lisp:lisp-router-instances/lisp:lisp-router-instance: | augment /rt:routing/rt:control-plane-protocols | |||
+--rw etr! | /rt:control-plane-protocol/lisp:lisp: | |||
+--rw map-servers | +--rw etr! | |||
| +--rw map-server* [ms-address] | +--rw map-servers | |||
| +--rw ms-address inet:ip-address | | +--rw map-server* [ms-address] | |||
| +--rw auth-key? string | | +--rw ms-address inet:ip-address | |||
| +--rw auth-key-type? lisp:auth-key-type | | +--rw auth-key? string | |||
+--rw local-eids | | +--rw auth-key-type? lisp:auth-key-type | |||
+--rw virtual-network* [vni] | +--rw local-eids | |||
+--rw vni lcaf:instance-id-type | +--rw virtual-network* [vni] | |||
+--rw eids | +--rw vni lcaf:instance-id-type | |||
+--rw local-eid* [id] | +--rw eids | |||
+--rw id lisp:eid-id | +--rw local-eid* [id] | |||
+--rw eid-address | +--rw id lisp:eid-id | |||
| +--rw address-type lisp-address-family-ref | +--rw eid-address | |||
| +--rw virtual-network-id? instance-id-type | | +--rw address-type | |||
| +--rw (address)? | | | lisp-address-family-ref | |||
| +--:(no-address) | | +--rw virtual-network-id? | |||
| | +--rw no-address? empty | | | 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? | |||
| | +--rw ipv6? inet:ipv6-address | | | inet:ipv4-address | |||
| +--:(ipv6-prefix) | | +--:(ipv4-prefix) | |||
| | +--rw ipv6-prefix? inet:ipv6-prefix | | | +--rw ipv4-prefix? | |||
| +--:(mac) | | | inet:ipv4-prefix | |||
| | +--rw mac? yang:mac-address | | +--:(ipv6) | |||
| +--:(distinguished-name) | | | +--rw ipv6? | |||
| | +--rw distinguished-name? distinguished-name-type | | | inet:ipv6-address | |||
| +--:(as-number) | | +--:(ipv6-prefix) | |||
| | +--rw as-number? inet:as-number | | | +--rw ipv6-prefix? | |||
| +--:(null-address) | | | inet:ipv6-prefix | |||
| | +--rw null-address | | +--:(mac) | |||
| | +--rw address? empty | | | +--rw mac? | |||
| +--:(afi-list) | | | yang:mac-address | |||
| | +--rw afi-list | | +--:(distinguished-name) | |||
| | +--rw address-list* simple-address | | | +--rw distinguished-name? | |||
| +--:(instance-id) | | | distinguished-name-type | |||
| | +--rw instance-id | | +--:(as-number) | |||
| | +--rw iid? instance-id-type | | | +--rw as-number? | |||
| | +--rw mask-length? uint8 | | | inet:as-number | |||
| | +--rw address? simple-address | | +--:(null-address) | |||
| +--:(as-number-lcaf) | | | +--rw null-address | |||
| | +--rw as-number-lcaf | | | +--rw address? empty | |||
| | +--rw as? inet:as-number | | +--:(afi-list) | |||
| | +--rw address? simple-address | | | +--rw afi-list | |||
| +--:(application-data) | | | +--rw address-list* simple-address | |||
| | +--rw application-data | | +--:(instance-id) | |||
| | +--rw address? simple-address | | | +--rw instance-id | |||
| | +--rw protocol? uint8 | | | +--rw iid? instance-id-type | |||
| | +--rw ip-tos? int32 | | | +--rw mask-length? uint8 | |||
| | +--rw local-port-low? inet:port-number | | | +--rw address? simple-address | |||
| | +--rw local-port-high? inet:port-number | | +--:(as-number-lcaf) | |||
| | +--rw remote-port-low? inet:port-number | | | +--rw as-number-lcaf | |||
| | +--rw remote-port-high? inet:port-number | | | +--rw as? inet:as-number | |||
| +--:(geo-coordinates) | | | +--rw address? simple-address | |||
| | +--rw geo-coordinates | | +--:(application-data) | |||
| | +--rw latitude? bits | | | +--rw application-data | |||
| | +--rw latitude-degrees? uint8 | | | +--rw address? | |||
| | +--rw latitude-minutes? uint8 | | | | simple-address | |||
| | +--rw latitude-seconds? uint8 | | | +--rw protocol? uint8 | |||
| | +--rw longitude? bits | | | +--rw ip-tos? int32 | |||
| | +--rw longitude-degrees? uint16 | | | +--rw local-port-low? | |||
| | +--rw longitude-minutes? uint8 | | | | inet:port-number | |||
| | +--rw longitude-seconds? uint8 | | | +--rw local-port-high? | |||
| | +--rw altitude? int32 | | | | inet:port-number | |||
| | +--rw address? simple-address | | | +--rw remote-port-low? | |||
| +--:(nat-traversal) | | | | inet:port-number | |||
| | +--rw nat-traversal | | | +--rw remote-port-high? | |||
| | +--rw ms-udp-port? uint16 | | | inet:port-number | |||
| | +--rw etr-udp-port? uint16 | | +--:(geo-coordinates) | |||
| | +--rw global-etr-rloc? simple-address | | | +--rw geo-coordinates | |||
| | +--rw ms-rloc? simple-address | | | +--rw latitude? bits | |||
| | +--rw private-etr-rloc? simple-address | | | +--rw latitude-degrees? uint8 | |||
| | +--rw rtr-rlocs* simple-address | | | +--rw latitude-minutes? uint8 | |||
| +--:(explicit-locator-path) | | | +--rw latitude-seconds? uint8 | |||
| | +--rw explicit-locator-path | | | +--rw longitude? bits | |||
| | +--rw hop* [hop-id] | | | +--rw longitude-degrees? uint16 | |||
| | +--rw hop-id string | | | +--rw longitude-minutes? uint8 | |||
| | +--rw address? simple-address | | | +--rw longitude-seconds? uint8 | |||
| | +--rw lrs-bits? bits | | | +--rw altitude? int32 | |||
| +--:(source-dest-key) | | | +--rw address? | |||
| | +--rw source-dest-key | | | simple-address | |||
| | +--rw source? simple-address | | +--:(nat-traversal) | |||
| | +--rw dest? simple-address | | | +--rw nat-traversal | |||
| +--:(key-value-address) | | | +--rw ms-udp-port? uint16 | |||
| | +--rw key-value-address | | | +--rw etr-udp-port? uint16 | |||
| | +--rw key? simple-address | | | +--rw global-etr-rloc? | |||
| | +--rw value? simple-address | | | | simple-address | |||
| +--:(service-path) | | | +--rw ms-rloc? | |||
| +--rw service-path | | | | simple-address | |||
| +--rw service-path-id? service-path-id-type | | | +--rw private-etr-rloc? | |||
| +--rw service-index? uint8 | | | | simple-address | |||
+--rw rlocs? -> /lisp:lisp/locator-sets/locator-set/locator-set-name | | | +--rw rtr-rlocs* | |||
+--rw record-ttl? uint32 | | | simple-address | |||
+--rw want-map-notify? boolean | | +--:(explicit-locator-path) | |||
+--rw proxy-reply? boolean | | | +--rw explicit-locator-path | |||
+--rw registration-interval? uint16 | | | +--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 rlocs? leafref | ||||
+--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@2018-03-05.yang" | <CODE BEGINS> file "ietf-lisp-etr@2018-06-29.yang" | |||
module ietf-lisp-etr { | module ietf-lisp-etr { | |||
yang-version 1.1; | ||||
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; | |||
// RFC Ed.: replace occurences of XXXX with actual RFC number | ||||
// and remove this note | ||||
import ietf-lisp { | import ietf-lisp { | |||
prefix lisp; | prefix lisp; | |||
reference "RFC XXXX: LISP YANG model"; | ||||
} | } | |||
import ietf-lisp-address-types { | import ietf-lisp-address-types { | |||
prefix lcaf; | prefix lcaf; | |||
reference "RFC XXXX: LISP YANG model"; | ||||
} | } | |||
import ietf-inet-types { | import ietf-inet-types { | |||
prefix inet; | 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 | organization | |||
"IETF LISP (Locator/ID Separation Protocol) Working Group"; | "IETF LISP (Locator/ID Separation Protocol) Working Group"; | |||
contact | contact | |||
"WG Web: <http://tools.ietf.org/wg/lisp/> | "WG Web: <http://tools.ietf.org/wg/lisp/> | |||
WG List: <mailto:lisp@ietf.org> | WG List: <mailto:lisp@ietf.org> | |||
Editor: Vina Ermagan | Editor: Vina Ermagan | |||
<mailto:vermagan@cisco.com> | <mailto:vermagan@cisco.com> | |||
Editor: Alberto Rodriguez-Natal | Editor: Alberto Rodriguez-Natal | |||
skipping to change at page 24, line 16 ¶ | skipping to change at page 29, line 9 ¶ | |||
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 XXXX; see | This version of this YANG module is part of RFC XXXX; see | |||
the RFC itself for full legal notices. | the RFC itself for full legal notices. | |||
"; | "; | |||
// RFC Ed.: replace XXXX with actual RFC number and remove | ||||
// this note | ||||
reference "RFC XXXX"; | reference "RFC XXXX"; | |||
revision 2018-03-05 { | revision 2018-06-29 { | |||
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" { | augment "/rt:routing/rt:control-plane-protocols" | |||
+ "/rt:control-plane-protocol/lisp:lisp" { | ||||
when "lisp:lisp-role/lisp:lisp-role-type = 'lisp:etr' or | when "lisp:lisp-role/lisp:lisp-role-type = 'lisp:etr' or | |||
lisp:lisp-role/lisp:lisp-role-type = 'lisp:petr'" { | lisp:lisp-role/lisp:lisp-role-type = 'lisp:petr'" { | |||
description | description | |||
"Augment is valid when LISP device type is (P)ETR."; | "Augment is valid when LISP device type is (P)ETR."; | |||
} | } | |||
description | description | |||
"This augments LISP devices list with (P)ETR specific | "This augments LISP devices list with (P)ETR specific | |||
parameters."; | parameters."; | |||
container etr { | container etr { | |||
presence "LISP (P)ETR operation enabled"; | presence "LISP (P)ETR operation enabled"; | |||
skipping to change at page 26, line 9 ¶ | skipping to change at page 30, line 50 ¶ | |||
description | description | |||
"Unique id of local EID."; | "Unique id of local EID."; | |||
} | } | |||
container eid-address { | container eid-address { | |||
uses lcaf:lisp-address; | uses lcaf:lisp-address; | |||
description | description | |||
"EID address in generic LISP address format."; | "EID address in generic LISP address format."; | |||
} | } | |||
leaf rlocs { | leaf rlocs { | |||
type leafref { | type leafref { | |||
path "/lisp:lisp/lisp:locator-sets/lisp:locator-set/" | path "/rt:routing/rt:control-plane-protocols" | |||
+ "lisp:locator-set-name"; | + "/rt:control-plane-protocol/lisp:lisp" | |||
+ "/lisp:locator-sets/lisp:locator-set" | ||||
+ "/lisp:locator-set-name"; | ||||
} | } | |||
description | description | |||
"Locator set mapped to this local EID."; | "Locator set mapped to this local EID."; | |||
} | } | |||
leaf record-ttl { | leaf record-ttl { | |||
type uint32; | type uint32; | |||
units minutes; | units minutes; | |||
description | description | |||
"Validity period of the EID to RLOCs mapping provided | "Validity period of the EID to RLOCs mapping provided | |||
in Map-Replies."; | in Map-Replies."; | |||
skipping to change at page 27, line 4 ¶ | skipping to change at page 31, line 46 ¶ | |||
"Interval between consecutive Map-Register messages."; | "Interval between consecutive Map-Register messages."; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
<CODE ENDS> | <CODE ENDS> | |||
5. LISP-Map-Server Module | 5. LISP-Map-Server Module | |||
This module captures the configuration data model of a LISP Map | This module captures the configuration data model of a LISP Map | |||
Server [RFC6833]. The model also captures some operational data | Server [RFC6833]. The model also captures some operational data | |||
elements. | elements. | |||
5.1. Module Structure | 5.1. Module Structure | |||
module: ietf-lisp-mapserver | module: ietf-lisp-mapserver | |||
augment /lisp:lisp/lisp:lisp-router-instances/lisp:lisp-router-instance: | augment /rt:routing/rt:control-plane-protocols | |||
/rt:control-plane-protocol/lisp:lisp: | ||||
+--rw map-server! | +--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 virtual-network-ids | +--rw virtual-network-ids | |||
| +--rw virtual-network-identifier* [vni] | | +--rw virtual-network-identifier* [vni] | |||
| +--rw vni lcaf:instance-id-type | | +--rw vni lcaf:instance-id-type | |||
| +--rw mappings | | +--rw mappings | |||
| | +--rw mapping* [eid-id] | | | +--rw mapping* [eid-id] | |||
| | +--rw eid-id lisp:eid-id | | | +--rw eid-id lisp:eid-id | |||
| | +--rw eid-address | | | +--rw eid-address | |||
| | | +--rw address-type lisp-address-family-ref | | | | +--rw address-type | |||
| | | +--rw virtual-network-id? instance-id-type | | | | | lisp-address-family-ref | |||
| | | +--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? | |||
| | | | +--rw local-port-high? inet:port-number | | | | | | inet:port-number | |||
| | | | +--rw remote-port-low? inet:port-number | | | | | +--rw local-port-high? | |||
| | | | +--rw remote-port-high? inet:port-number | | | | | | inet:port-number | |||
| | | | +--rw remote-port-low? | ||||
| | | | | 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? | |||
| | | | +--rw ms-rloc? simple-address | | | | | | simple-address | |||
| | | | +--rw private-etr-rloc? simple-address | | | | | +--rw ms-rloc? | |||
| | | | +--rw rtr-rlocs* simple-address | | | | | | simple-address | |||
| | | | +--rw private-etr-rloc? | ||||
| | | | | 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 site-id* uint64 | | | +--rw site-id* uint64 | |||
| | +--rw more-specifics-accepted? boolean | | | +--rw more-specifics-accepted? boolean | |||
| | +--rw mapping-expiration-timeout? int16 | | | +--rw mapping-expiration-timeout? int16 | |||
| | +--ro first-registration-time? | ||||
| | | yang:date-and-time | ||||
| | +--ro last-registration-time? | ||||
| | | yang:date-and-time | ||||
| | +--rw mapping-records | | | +--rw mapping-records | |||
| | +--rw mapping-record* [xtr-id] | | | +--rw mapping-record* [xtr-id] | |||
| | +--rw xtr-id lisp:xtr-id-type | | | +--rw xtr-id | |||
| | +--rw site-id? uint64 | | | | lisp:xtr-id-type | |||
| | +--rw site-id? uint64 | ||||
| | +--rw eid | | | +--rw eid | |||
| | | +--rw address-type lisp-address-family-ref | | | | +--rw address-type | |||
| | | +--rw virtual-network-id? instance-id-type | | | | | lisp-address-family-ref | |||
| | | +--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? | |||
| | | | +--rw local-port-high? inet:port-number | | | | | | inet:port-number | |||
| | | | +--rw remote-port-low? inet:port-number | | | | | +--rw local-port-high? | |||
| | | | +--rw remote-port-high? inet:port-number | | | | | | inet:port-number | |||
| | | | +--rw remote-port-low? | ||||
| | | | | 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? | |||
| | | | +--rw ms-rloc? simple-address | | | | | | simple-address | |||
| | | | +--rw private-etr-rloc? simple-address | | | | | +--rw ms-rloc? | |||
| | | | +--rw rtr-rlocs* simple-address | | | | | | simple-address | |||
| | | | +--rw private-etr-rloc? | ||||
| | | | | 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 time-to-live? uint32 | | | +--rw time-to-live? uint32 | |||
| | +--rw creation-time? yang:date-and-time | | | +--ro creation-time? | |||
| | +--rw authoritative? bits | | | | yang:date-and-time | |||
| | +--rw static? boolean | | | +--rw authoritative? bits | |||
| | +--rw static? boolean | ||||
| | +--rw (locator-list)? | | | +--rw (locator-list)? | |||
| | +--:(negative-mapping) | | | +--:(negative-mapping) | |||
| | | +--rw map-reply-action? map-reply-action | | | | +--rw map-reply-action? | |||
| | | map-reply-action | ||||
| | +--:(positive-mapping) | | | +--:(positive-mapping) | |||
| | +--rw rlocs | | | +--rw rlocs | |||
| | +--rw 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 | |||
| | | +--rw virtual-network-id? instance-id-type | | | | | lisp-address-family-ref | |||
| | | +--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? | |||
| | | | +--rw mask-length? uint8 | | | | | | instance-id-type | |||
| | | | +--rw address? simple-address | | | | | +--rw mask-length? | |||
| | | | | uint8 | ||||
| | | | +--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? | |||
| | | | +--rw address? simple-address | | | | | | inet:as-number | |||
| | | | +--rw address? | ||||
| | | | simple-address | ||||
| | | +--:(application-data) | | | | +--:(application-data) | |||
| | | | +--rw application-data | | | | | +--rw application-data | |||
| | | | +--rw address? simple-address | | | | | +--rw address? | |||
| | | | +--rw protocol? uint8 | | | | | | simple-address | |||
| | | | +--rw ip-tos? int32 | | | | | +--rw protocol? | |||
| | | | +--rw local-port-low? inet:port-number | | | | | | uint8 | |||
| | | | +--rw local-port-high? inet:port-number | | | | | +--rw ip-tos? | |||
| | | | +--rw remote-port-low? inet:port-number | | | | | | int32 | |||
| | | | +--rw remote-port-high? inet:port-number | | | | | +--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) | | | | +--:(geo-coordinates) | |||
| | | | +--rw geo-coordinates | | | | | +--rw geo-coordinates | |||
| | | | +--rw latitude? bits | | | | | +--rw latitude? | |||
| | | | +--rw latitude-degrees? uint8 | | | | | | bits | |||
| | | | +--rw latitude-minutes? uint8 | | | | | +--rw latitude-degrees? | |||
| | | | +--rw latitude-seconds? uint8 | | | | | | uint8 | |||
| | | | +--rw longitude? bits | | | | | +--rw latitude-minutes? | |||
| | | | +--rw longitude-degrees? uint16 | | | | | | uint8 | |||
| | | | +--rw longitude-minutes? uint8 | | | | | +--rw latitude-seconds? | |||
| | | | +--rw longitude-seconds? uint8 | | | | | | uint8 | |||
| | | | +--rw altitude? int32 | | | | | +--rw longitude? | |||
| | | | +--rw address? simple-address | | | | | | bits | |||
| | | | +--rw longitude-degrees? | ||||
| | | | | uint16 | ||||
| | | | +--rw longitude-minutes? | ||||
| | | | | uint8 | ||||
| | | | +--rw longitude-seconds? | ||||
| | | | | uint8 | ||||
| | | | +--rw altitude? | ||||
| | | | | int32 | ||||
| | | | +--rw address? | ||||
| | | | simple-address | ||||
| | | +--:(nat-traversal) | | | | +--:(nat-traversal) | |||
| | | | +--rw nat-traversal | | | | | +--rw nat-traversal | |||
| | | | +--rw ms-udp-port? uint16 | | | | | +--rw ms-udp-port? | |||
| | | | +--rw etr-udp-port? uint16 | | | | | | uint16 | |||
| | | | +--rw global-etr-rloc? simple-address | | | | | +--rw etr-udp-port? | |||
| | | | +--rw ms-rloc? simple-address | | | | | | uint16 | |||
| | | | +--rw private-etr-rloc? simple-address | | | | | +--rw global-etr-rloc? | |||
| | | | +--rw rtr-rlocs* simple-address | | | | | | simple-address | |||
| | | | +--rw ms-rloc? | ||||
| | | | | simple-address | ||||
| | | | +--rw private-etr-rloc? | ||||
| | | | | 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 | |||
| | | | +--rw address? simple-address | | | | | | string | |||
| | | | +--rw lrs-bits? bits | | | | | +--rw address? | |||
| | | | | simple-address | ||||
| | | | +--rw lrs-bits? | ||||
| | | | bits | ||||
| | | +--:(source-dest-key) | | | | +--:(source-dest-key) | |||
| | | | +--rw source-dest-key | | | | | +--rw source-dest-key | |||
| | | | +--rw source? simple-address | | | | | +--rw source? | |||
| | | | +--rw dest? simple-address | | | | | | 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? | |||
| | | | +--rw value? simple-address | | | | | | 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? | |||
| | | +--rw service-index? uint8 | | | | | service-path-id-type | |||
| | +--rw priority? uint8 | | | | +--rw service-index? | |||
| | +--rw weight? uint8 | | | | uint8 | |||
| | +--rw multicast-priority? uint8 | | | +--rw priority? | |||
| | +--rw multicast-weight? uint8 | | | | uint8 | |||
| | +--rw weight? | ||||
| | | uint8 | ||||
| | +--rw multicast-priority? | ||||
| | | uint8 | ||||
| | +--rw multicast-weight? | ||||
| | uint8 | ||||
| +--ro counters | | +--ro counters | |||
| +--ro map-registers-in? yang:counter32 | | +--ro map-registers-in? yang:counter64 | |||
| +--ro map-registers-in-auth-failed? yang:counter32 | | +--ro map-registers-in-auth-failed? yang:counter64 | |||
| +--ro map-notify-records-out? yang:counter32 | | +--ro map-notify-records-out? yang:counter64 | |||
| +--ro proxy-reply-records-out? yang:counter32 | | +--ro proxy-reply-records-out? yang:counter64 | |||
| +--ro map-requests-forwarded-out? yang:counter32 | | +--ro map-requests-forwarded-out? yang:counter64 | |||
+--rw mapping-system-type? lisp:mapping-system-ref | +--rw mapping-system-type? lisp:mapping-system-ref | |||
+--ro summary | +--ro summary | |||
| +--ro number-configured-sites? uint32 | | +--ro number-configured-sites? uint32 | |||
| +--ro number-registered-sites? uint32 | | +--ro number-registered-sites? uint32 | |||
| +--ro af-datum | | +--ro af-datum | |||
| +--ro af-data* [address-type] | | +--ro af-data* [address-type] | |||
| +--ro address-type lcaf:lisp-address-family-ref | | +--ro address-type | |||
| | lcaf:lisp-address-family-ref | ||||
| +--ro number-configured-eids? uint32 | | +--ro number-configured-eids? uint32 | |||
| +--ro number-registered-eids? uint32 | | +--ro number-registered-eids? uint32 | |||
+--ro counters | +--ro counters | |||
+--ro map-registers-in? yang:counter32 | +--ro map-registers-in? yang:counter64 | |||
+--ro map-registers-in-auth-failed? yang:counter32 | +--ro map-registers-in-auth-failed? yang:counter64 | |||
+--ro map-notify-records-out? yang:counter32 | +--ro map-notify-records-out? yang:counter64 | |||
+--ro proxy-reply-records-out? yang:counter32 | +--ro proxy-reply-records-out? yang:counter64 | |||
+--ro map-requests-forwarded-out? yang:counter32 | +--ro map-requests-forwarded-out? yang:counter64 | |||
5.2. Module Definition | 5.2. Module Definition | |||
<CODE BEGINS> file "ietf-lisp-mapserver@2018-03-05.yang" | <CODE BEGINS> file "ietf-lisp-mapserver@2018-06-29.yang" | |||
module ietf-lisp-mapserver { | module ietf-lisp-mapserver { | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-mapserver"; | yang-version 1.1; | |||
prefix lisp-ms; | ||||
import ietf-lisp { | ||||
prefix lisp; | ||||
} | ||||
import ietf-lisp-address-types { | ||||
prefix lcaf; | ||||
} | ||||
import ietf-yang-types { | ||||
prefix yang; | ||||
revision-date 2013-07-15; | ||||
} | ||||
organization | namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-mapserver"; | |||
"IETF LISP (Locator/ID Separation Protocol) Working Group"; | ||||
contact | ||||
"WG Web: <http://tools.ietf.org/wg/lisp/> | ||||
WG List: <mailto:lisp@ietf.org> | ||||
Editor: Vina Ermagan | ||||
<mailto:vermagan@cisco.com> | ||||
Editor: Alberto Rodriguez-Natal | prefix lisp-ms; | |||
<mailto:natal@cisco.com> | ||||
Editor: Reshad Rahman | // RFC Ed.: replace occurences of XXXX with actual RFC number | |||
<mailto:rrahman@cisco.com>"; | // and remove this note | |||
description | import ietf-lisp { | |||
"This YANG module defines the generic parameters for a LISP | prefix lisp; | |||
Map-Server. The module can be extended by vendors to define | reference "RFC XXXX: LISP YANG model"; | |||
vendor-specific parameters and policies. | } | |||
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)"; | ||||
} | ||||
Copyright (c) 2018 IETF Trust and the persons identified as | organization | |||
authors of the code. All rights reserved. | "IETF LISP (Locator/ID Separation Protocol) Working Group"; | |||
contact | ||||
"WG Web: <http://tools.ietf.org/wg/lisp/> | ||||
WG List: <mailto:lisp@ietf.org> | ||||
Redistribution and use in source and binary forms, with or | Editor: Vina Ermagan | |||
without modification, is permitted pursuant to, and subject | <mailto:vermagan@cisco.com> | |||
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 | Editor: Alberto Rodriguez-Natal | |||
the RFC itself for full legal notices. | <mailto:natal@cisco.com> | |||
"; | ||||
// RFC Ed.: replace XXXX with actual RFC number and remove | ||||
// this note | ||||
reference "RFC XXXX"; | ||||
revision 2018-03-05 { | Editor: Reshad Rahman | |||
description | <mailto:rrahman@cisco.com>"; | |||
"Initial revision."; | description | |||
reference | "This YANG module defines the generic parameters for a LISP | |||
"https://tools.ietf.org/html/rfc6833"; | Map-Server. The module can be extended by vendors to define | |||
} | vendor-specific parameters and policies. | |||
identity ms { | Copyright (c) 2018 IETF Trust and the persons identified as | |||
base lisp:lisp-role; | authors of the code. All rights reserved. | |||
description | ||||
"LISP Map-Server."; | ||||
} | ||||
grouping ms-counters { | Redistribution and use in source and binary forms, with or | |||
description "Group that defines map-server counters."; | without modification, is permitted pursuant to, and subject | |||
container counters { | to the license terms contained in, the Simplified BSD License | |||
config false; | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
description "Container for the counters"; | Relating to IETF Documents | |||
leaf map-registers-in { | (http://trustee.ietf.org/license-info). | |||
type yang:counter64; | ||||
description "Number of incoming Map-Register messages"; | ||||
} | ||||
leaf map-registers-in-auth-failed { | This version of this YANG module is part of RFC XXXX; see | |||
type yang:counter64; | the RFC itself for full legal notices. | |||
description | "; | |||
"Number of incoming Map-Register messages failed | ||||
authentication"; | ||||
} | ||||
leaf map-notify-records-out { | reference "RFC XXXX"; | |||
type yang:counter64; | ||||
description | ||||
"Number of outgoing Map-Notify records"; | ||||
} | ||||
leaf proxy-reply-records-out { | revision 2018-06-29 { | |||
type yang:counter64; | description | |||
description | "Initial revision."; | |||
"Number of outgoing proxy Map-Reply records"; | reference | |||
} | "https://tools.ietf.org/html/rfc6833"; | |||
} | ||||
leaf map-requests-forwarded-out { | identity ms { | |||
type yang:counter64; | base lisp:lisp-role; | |||
description | description | |||
"Number of outgoing Map-Requests forwarded to ETR"; | "LISP Map-Server."; | |||
} | } | |||
} | ||||
} | ||||
augment "/lisp:lisp/lisp:lisp-router-instances" | grouping ms-counters { | |||
+ "/lisp:lisp-router-instance" { | description "Group that defines map-server counters."; | |||
when "lisp:lisp-role/lisp:lisp-role-type = 'lisp-ms:ms'" { | container counters { | |||
description | config false; | |||
"Augment is valid when LISP device type is Map-Server."; | description "Container for the counters"; | |||
} | ||||
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 { | leaf map-registers-in { | |||
key site-id; | type yang:counter64; | |||
description | description "Number of incoming Map-Register messages"; | |||
"Site that can send registrations."; | } | |||
leaf site-id { | ||||
type uint64; | ||||
description "Site ID"; | ||||
} | ||||
container auth-key { | ||||
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."; | ||||
} | ||||
} | ||||
} | ||||
} | ||||
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 | ||||
"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."; | ||||
} | ||||
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 { | leaf map-registers-in-auth-failed { | |||
config false; | type yang:counter64; | |||
description "Summary state information"; | description | |||
"Number of incoming Map-Register messages failed | ||||
authentication"; | ||||
} | ||||
leaf number-configured-sites { | leaf map-notify-records-out { | |||
type uint32; | type yang:counter64; | |||
description "Number of configured LISP sites"; | description | |||
} | "Number of outgoing Map-Notify records"; | |||
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 { | leaf proxy-reply-records-out { | |||
key "address-type"; | type yang:counter64; | |||
description "Number of configured EIDs for this AF"; | description | |||
leaf address-type { | "Number of outgoing proxy Map-Reply records"; | |||
type lcaf:lisp-address-family-ref; | } | |||
description "AF type"; | ||||
} | leaf map-requests-forwarded-out { | |||
leaf number-configured-eids { | type yang:counter64; | |||
type uint32; | description | |||
description "Number of configured EIDs for this AF"; | "Number of outgoing Map-Requests forwarded to ETR"; | |||
} | } | |||
leaf number-registered-eids { | } | |||
type uint32; | } | |||
description "Number of registered EIDs for this AF"; | ||||
} | 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 | |||
uses ms-counters; | "Augment is valid when LISP device type is Map-Server."; | |||
} | } | |||
} | description | |||
} | "This augments LISP devices list with Map-Server specific | |||
<CODE ENDS> | 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"; | ||||
} | ||||
container auth-key { | ||||
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."; | ||||
} | ||||
} | ||||
} | ||||
} | ||||
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 | ||||
"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; | ||||
} | ||||
} | ||||
} | ||||
<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: | augment /rt:routing/rt:control-plane-protocols | |||
+--rw map-resolver! | /rt:control-plane-protocol/lisp:lisp: | |||
+--rw mapping-system-type? lisp:mapping-system-ref | +--rw map-resolver! | |||
+--rw ms-address? inet:ip-address | +--rw mapping-system-type? lisp:mapping-system-ref | |||
+--rw ms-address? inet:ip-address | ||||
6.2. Module Definition | 6.2. Module Definition | |||
<CODE BEGINS> file "ietf-lisp-mapresolver@2018-03-05.yang" | <CODE BEGINS> file "ietf-lisp-mapresolver@2018-06-29.yang" | |||
module ietf-lisp-mapresolver { | module ietf-lisp-mapresolver { | |||
yang-version 1.1; | ||||
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; | |||
// RFC Ed.: replace occurences of XXXX with actual RFC number | ||||
// and remove this note | ||||
import ietf-lisp { | import ietf-lisp { | |||
prefix lisp; | prefix lisp; | |||
reference "RFC XXXX: LISP YANG model"; | ||||
} | } | |||
import ietf-inet-types { | import ietf-inet-types { | |||
prefix inet; | 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 | organization | |||
"IETF LISP (Locator/ID Separation Protocol) Working Group"; | "IETF LISP (Locator/ID Separation Protocol) Working Group"; | |||
contact | contact | |||
"WG Web: <http://tools.ietf.org/wg/lisp/> | "WG Web: <http://tools.ietf.org/wg/lisp/> | |||
WG List: <mailto:lisp@ietf.org> | WG List: <mailto:lisp@ietf.org> | |||
Editor: Vina Ermagan | Editor: Vina Ermagan | |||
<mailto:vermagan@cisco.com> | <mailto:vermagan@cisco.com> | |||
skipping to change at page 40, line 15 ¶ | skipping to change at page 48, line 15 ¶ | |||
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 XXXX; see | This version of this YANG module is part of RFC XXXX; see | |||
the RFC itself for full legal notices. | the RFC itself for full legal notices. | |||
"; | "; | |||
// RFC Ed.: replace XXXX with actual RFC number and remove | ||||
// this note | ||||
reference "RFC XXXX"; | reference "RFC XXXX"; | |||
revision 2018-05-03 { | revision 2018-06-29 { | |||
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" | ||||
+"/lisp:lisp-router-instance" { | augment "/rt:routing/rt:control-plane-protocols" | |||
+ "/rt:control-plane-protocol/lisp:lisp" { | ||||
when "lisp:lisp-role/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 { | container map-resolver { | |||
presence "LISP Map-Resolver operation enabled"; | presence "LISP Map-Resolver operation enabled"; | |||
description | description | |||
"Map-Resolver 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: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."; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
<CODE ENDS> | <CODE ENDS> | |||
7. LISP-Address-Types Module | 7. LISP-Address-Types Module | |||
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. | |||
7.1. Module Definition | 7.1. Module Definition | |||
<CODE BEGINS> file "ietf-lisp-address-types@2018-03-05.yang" | <CODE BEGINS> file "ietf-lisp-address-types@2018-06-29.yang" | |||
module ietf-lisp-address-types { | module ietf-lisp-address-types { | |||
yang-version 1.1; | ||||
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; | reference "RFC 6991: Common YANG Data Types"; | |||
} | } | |||
import ietf-yang-types { | import ietf-yang-types { | |||
prefix yang; | prefix yang; | |||
revision-date 2013-07-15; | reference "RFC 6991: Common YANG Data Types"; | |||
} | } | |||
organization | organization | |||
"IETF LISP (Locator/ID Separation Protocol) Working Group"; | "IETF LISP (Locator/ID Separation Protocol) Working Group"; | |||
contact | contact | |||
"WG Web: <http://tools.ietf.org/wg/lisp/> | "WG Web: <http://tools.ietf.org/wg/lisp/> | |||
WG List: <mailto:lisp@ietf.org> | WG List: <mailto:lisp@ietf.org> | |||
Editor: Vina Ermagan | Editor: Vina Ermagan | |||
<mailto:vermagan@cisco.com> | <mailto:vermagan@cisco.com> | |||
Editor: Alberto Rodriguez-Natal | Editor: Alberto Rodriguez-Natal | |||
skipping to change at page 42, line 20 ¶ | skipping to change at page 50, line 24 ¶ | |||
(http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
This version of this YANG module is part of RFC XXXX; see | This version of this YANG module is part of RFC XXXX; see | |||
the RFC itself for full legal notices. | the RFC itself for full legal notices. | |||
"; | "; | |||
// RFC Ed.: replace XXXX with actual RFC number and remove | // RFC Ed.: replace XXXX with actual RFC number and remove | |||
// this note | // this note | |||
reference "RFC XXXX"; | reference "RFC XXXX"; | |||
revision 2018-03-05 { | revision 2018-06-29 { | |||
description | description | |||
"Initial revision."; | "Initial revision."; | |||
reference | reference | |||
"http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10"; | "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10"; | |||
} | } | |||
identity lisp-address-family { | identity lisp-address-family { | |||
description | description | |||
"Base identity from which identities describing LISP address | "Base identity from which identities describing LISP address | |||
families are derived."; | families are derived."; | |||
} | } | |||
identity no-address-afi { | identity no-address-afi { | |||
base lisp-address-family; | base lisp-address-family; | |||
description | description | |||
"IANA Reserved."; | "IANA Reserved."; | |||
} | } | |||
identity ipv4-afi { | identity ipv4-afi { | |||
base lisp-address-family; | base lisp-address-family; | |||
description | description | |||
"IANA IPv4 address family."; | "IANA IPv4 address family."; | |||
} | } | |||
identity ipv4-prefix-afi { | identity ipv4-prefix-afi { | |||
base lisp-address-family; | base lisp-address-family; | |||
description | description | |||
"IANA IPv4 address family prefix."; | "IANA IPv4 address family prefix."; | |||
} | } | |||
skipping to change at page 46, line 41 ¶ | skipping to change at page 54, line 46 ¶ | |||
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-address-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 | |||
skipping to change at page 55, line 41 ¶ | skipping to change at page 63, line 45 ¶ | |||
type uint8; | type uint8; | |||
description | description | |||
"Service path index for NSH header"; | "Service path index for NSH header"; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
<CODE ENDS> | <CODE ENDS> | |||
7.2. Data Model examples | ||||
This section presents some simple and illustrative examples on how to | ||||
configure LISP. | ||||
7.2.1. LISP protocol instance | ||||
The following is an example configuration for a LISP protocol | ||||
instance with the name "LISP1". There are also 2 VNIs configured. | ||||
<?xml version="1.0" encoding="UTF-8"?> | ||||
<config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> | ||||
<network-instances xmlns="urn:ietf:params:xml:ns:yang:ietf-network-instance"> | ||||
<network-instance> | ||||
<name>VRF-BLUE</name> | ||||
<vrf-root/> | ||||
<enabled>true</enabled> | ||||
</network-instance> | ||||
<network-instance> | ||||
<name>VRF-RED</name> | ||||
<vrf-root/> | ||||
<enabled>true</enabled> | ||||
</network-instance> | ||||
</network-instances> | ||||
<routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> | ||||
<control-plane-protocols> | ||||
<control-plane-protocol> | ||||
<type xmlns:lisp="urn:ietf:params:xml:ns:yang:ietf-lisp"> | ||||
lisp:lisp | ||||
</type> | ||||
<name>LISP1</name> | ||||
<lisp xmlns="urn:ietf:params:xml:ns:yang:ietf-lisp"> | ||||
<virtual-networks> | ||||
<virtual-network> | ||||
<vni>1000</vni> | ||||
<ni-name>VRF-BLUE</ni-name> | ||||
</virtual-network> | ||||
<virtual-network> | ||||
<vni>2000</vni> | ||||
<ni-name>VRF-RED</ni-name> | ||||
</virtual-network> | ||||
</virtual-networks> | ||||
</lisp> | ||||
</control-plane-protocol> | ||||
</control-plane-protocols> | ||||
</routing> | ||||
</config> | ||||
7.2.2. LISP ITR | ||||
The following is an example configuration for ITR functionality under | ||||
"LISP1". There are 2 Map-Resolvers configured. | ||||
<?xml version="1.0" encoding="UTF-8"?> | ||||
<config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> | ||||
<routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> | ||||
<control-plane-protocols> | ||||
<control-plane-protocol> | ||||
<type xmlns:lisp="urn:ietf:params:xml:ns:yang:ietf-lisp"> | ||||
lisp:lisp | ||||
</type> | ||||
<name>LISP1</name> | ||||
<lisp xmlns="urn:ietf:params:xml:ns:yang:ietf-lisp"> | ||||
<lisp-role> | ||||
<lisp-role-type>itr</lisp-role-type> | ||||
</lisp-role> | ||||
<itr xmlns="urn:ietf:params:xml:ns:yang:ietf-lisp-itr"> | ||||
<map-resolvers> | ||||
<map-resolver>2001:db8:203:0:113::1</map-resolver> | ||||
<map-resolver>2001:db8:204:0:113::1</map-resolver> | ||||
</map-resolvers> | ||||
</itr> | ||||
</lisp> | ||||
</control-plane-protocol> | ||||
</control-plane-protocols> | ||||
</routing> | ||||
</config> | ||||
7.2.3. LISP ETR | ||||
The following is an example configuration for ETR functionality under | ||||
"LISP1". There are 2 Map-Servers and 2 local EIDs configured. | ||||
<?xml version="1.0" encoding="UTF-8"?> | ||||
<config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> | ||||
<routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> | ||||
<control-plane-protocols> | ||||
<control-plane-protocol> | ||||
<type xmlns:lisp="urn:ietf:params:xml:ns:yang:ietf-lisp"> | ||||
lisp:lisp | ||||
</type> | ||||
<name>LISP1</name> | ||||
<lisp xmlns="urn:ietf:params:xml:ns:yang:ietf-lisp"> | ||||
<lisp-role> | ||||
<lisp-role-type>etr</lisp-role-type> | ||||
</lisp-role> | ||||
<lisp-router-id> | ||||
<site-id>1</site-id> | ||||
</lisp-router-id> | ||||
<etr xmlns="urn:ietf:params:xml:ns:yang:ietf-lisp-etr"> | ||||
<map-servers> | ||||
<map-server> | ||||
<ms-address>2001:db8:203:0:113::1</ms-address> | ||||
<auth-key>*Kye^$$1#gb91U04zpa!</auth-key> | ||||
<auth-key-type>hmac-sha-256-128</auth-key-type> | ||||
</map-server> | ||||
<map-server> | ||||
<ms-address>2001:db8:204:0:113::1</ms-address> | ||||
<auth-key>*Kye^$$1#gb91U04zpa!</auth-key> | ||||
<auth-key-type>hmac-sha-256-128</auth-key-type> | ||||
</map-server> | ||||
</map-servers> | ||||
<local-eids> | ||||
<virtual-network> | ||||
<vni>1000</vni> | ||||
<eids> | ||||
<local-eid> | ||||
<id>2001:db8:400:0:100::0</id> | ||||
<eid-address> | ||||
<address-type xmlns:laddr= | ||||
"urn:ietf:params:xml:ns:yang:ietf-lisp-address-types"> | ||||
laddr:ipv6-prefix-afi | ||||
</address-type> | ||||
<ipv6-prefix>2001:db8:400:0:100::/80</ipv6-prefix> | ||||
</eid-address> | ||||
</local-eid> | ||||
</eids> | ||||
</virtual-network> | ||||
<virtual-network> | ||||
<vni>2000</vni> | ||||
<eids> | ||||
<local-eid> | ||||
<id>2001:db8:800:0:200::0</id> | ||||
<eid-address> | ||||
<address-type xmlns:laddr= | ||||
"urn:ietf:params:xml:ns:yang:ietf-lisp-address-types"> | ||||
laddr:ipv6-prefix-afi | ||||
</address-type> | ||||
<ipv6-prefix>2001:db8:800:0:200::/80</ipv6-prefix> | ||||
</eid-address> | ||||
</local-eid> | ||||
</eids> | ||||
</virtual-network> | ||||
</local-eids> | ||||
</etr> | ||||
</lisp> | ||||
</control-plane-protocol> | ||||
</control-plane-protocols> | ||||
</routing> | ||||
</config> | ||||
7.2.4. LISP Map-Server | ||||
The following is an example configuration for Map-Server | ||||
functionality under "LISP1". There are 2 mappings configured. | ||||
<config xmlns="http://tail-f.com/ns/config/1.0"> | ||||
<routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> | ||||
<control-plane-protocols> | ||||
<control-plane-protocol> | ||||
<type xmlns:lisp="urn:ietf:params:xml:ns:yang:ietf-lisp"> | ||||
lisp:lisp | ||||
</type> | ||||
<name>LISP1</name> | ||||
<lisp xmlns="urn:ietf:params:xml:ns:yang:ietf-lisp"> | ||||
<lisp-role> | ||||
<lisp-role-type xmlns:lisp-ms= | ||||
"urn:ietf:params:xml:ns:yang:ietf-lisp-mapserver"> | ||||
lisp-ms:ms | ||||
</lisp-role-type> | ||||
</lisp-role> | ||||
<map-server xmlns="urn:ietf:params:xml:ns:yang:ietf-lisp-mapserver"> | ||||
<sites> | ||||
<site> | ||||
<site-id>1</site-id> | ||||
<auth-key> | ||||
<auth-key-value>*Kye^$$1#gb91U04zpa!</auth-key-value> | ||||
<auth-key-type>hmac-sha-256-128</auth-key-type> | ||||
</auth-key> | ||||
</site> | ||||
</sites> | ||||
<virtual-network-ids> | ||||
<virtual-network-identifier> | ||||
<vni>1000</vni> | ||||
<mappings> | ||||
<mapping> | ||||
<eid-id>1</eid-id> | ||||
<eid-address> | ||||
<address-type xmlns:laddr= | ||||
"urn:ietf:params:xml:ns:yang:ietf-lisp-address-types"> | ||||
laddr:ipv6-prefix-afi | ||||
</address-type> | ||||
<ipv6-prefix>2001:db8:400:0:100::/80</ipv6-prefix> | ||||
</eid-address> | ||||
</mapping> | ||||
</mappings> | ||||
</virtual-network-identifier> | ||||
<virtual-network-identifier> | ||||
<vni>2000</vni> | ||||
<mappings> | ||||
<mapping> | ||||
<eid-id>1</eid-id> | ||||
<eid-address> | ||||
<address-type xmlns:laddr= | ||||
"urn:ietf:params:xml:ns:yang:ietf-lisp-address-types"> | ||||
laddr:ipv6-prefix-afi | ||||
</address-type> | ||||
<ipv6-prefix>2001:db8:800:0:200::/80</ipv6-prefix> | ||||
</eid-address> | ||||
</mapping> | ||||
</mappings> | ||||
</virtual-network-identifier> | ||||
</virtual-network-ids> | ||||
</map-server> | ||||
</lisp> | ||||
</control-plane-protocol> | ||||
</control-plane-protocols> | ||||
</routing> | ||||
</config> | ||||
8. 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. | |||
9. IANA Considerations | 9. IANA Considerations | |||
This memo includes no request to IANA. | The IANA is requested to as assign a new namespace URI from the IETF | |||
XML registry. | ||||
This document registers the following namesace URIs in the IETF XML | ||||
registry [RFC3688]: | ||||
-------------------------------------------------------------------- | ||||
URI: urn:ietf:params:xml:ns:yang:ietf-lisp | ||||
Registrant Contact: The IESG. | ||||
XML: N/A, the requested URI is an XML namespace. | ||||
-------------------------------------------------------------------- | ||||
-------------------------------------------------------------------- | ||||
URI: urn:ietf:params:xml:ns:yang:ietf-lisp-itr | ||||
Registrant Contact: The IESG. | ||||
XML: N/A, the requested URI is an XML namespace. | ||||
-------------------------------------------------------------------- | ||||
-------------------------------------------------------------------- | ||||
URI: urn:ietf:params:xml:ns:yang:ietf-lisp-etr | ||||
Registrant Contact: The IESG. | ||||
XML: N/A, the requested URI is an XML namespace. | ||||
-------------------------------------------------------------------- | ||||
-------------------------------------------------------------------- | ||||
URI: urn:ietf:params:xml:ns:yang:ietf-lisp-mapserver | ||||
Registrant Contact: The IESG. | ||||
XML: N/A, the requested URI is an XML namespace. | ||||
-------------------------------------------------------------------- | ||||
-------------------------------------------------------------------- | ||||
URI: urn:ietf:params:xml:ns:yang:ietf-lisp-mapresolver | ||||
Registrant Contact: The IESG. | ||||
XML: N/A, the requested URI is an XML namespace. | ||||
-------------------------------------------------------------------- | ||||
-------------------------------------------------------------------- | ||||
URI: urn:ietf:params:xml:ns:yang:ietf-lisp-address-types | ||||
Registrant Contact: The IESG. | ||||
XML: N/A, the requested URI is an XML namespace. | ||||
-------------------------------------------------------------------- | ||||
10. Security Considerations | 10. Security Considerations | |||
Security Considerations TBD | Security Considerations TBD | |||
11. Normative References | 11. Normative References | |||
[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, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | ||||
DOI 10.17487/RFC3688, January 2004, | ||||
<https://www.rfc-editor.org/info/rfc3688>. | ||||
[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, | |||
<https://www.rfc-editor.org/info/rfc6830>. | <https://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, | DOI 10.17487/RFC6832, January 2013, | |||
<https://www.rfc-editor.org/info/rfc6832>. | <https://www.rfc-editor.org/info/rfc6832>. | |||
skipping to change at page 56, line 46 ¶ | skipping to change at page 71, line 19 ¶ | |||
[RFC8060] Farinacci, D., Meyer, D., and J. Snijders, "LISP Canonical | [RFC8060] Farinacci, D., Meyer, D., and J. Snijders, "LISP Canonical | |||
Address Format (LCAF)", RFC 8060, DOI 10.17487/RFC8060, | Address Format (LCAF)", RFC 8060, DOI 10.17487/RFC8060, | |||
February 2017, <https://www.rfc-editor.org/info/rfc8060>. | February 2017, <https://www.rfc-editor.org/info/rfc8060>. | |||
[RFC8111] Fuller, V., Lewis, D., Ermagan, V., Jain, A., and A. | [RFC8111] Fuller, V., Lewis, D., Ermagan, V., Jain, A., and A. | |||
Smirnov, "Locator/ID Separation Protocol Delegated | Smirnov, "Locator/ID Separation Protocol Delegated | |||
Database Tree (LISP-DDT)", RFC 8111, DOI 10.17487/RFC8111, | Database Tree (LISP-DDT)", RFC 8111, DOI 10.17487/RFC8111, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8111>. | May 2017, <https://www.rfc-editor.org/info/rfc8111>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | ||||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | ||||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | ||||
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | ||||
BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | ||||
<https://www.rfc-editor.org/info/rfc8340>. | ||||
[RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for | ||||
Routing Management (NMDA Version)", RFC 8349, | ||||
DOI 10.17487/RFC8349, March 2018, | ||||
<https://www.rfc-editor.org/info/rfc8349>. | ||||
Authors' Addresses | Authors' Addresses | |||
Vina Ermagan | Vina Ermagan | |||
Cisco Systems | Cisco Systems | |||
San Jose, CA | San Jose, CA | |||
USA | USA | |||
Email: vermagan@cisco.com | Email: vermagan@cisco.com | |||
Alberto Rodriguez-Natal | Alberto Rodriguez-Natal | |||
Cisco Systems | Cisco Systems | |||
San Jose, CA | San Jose, CA | |||
End of changes. 217 change blocks. | ||||
1224 lines changed or deleted | 1924 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |