| < 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.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||