| < draft-ietf-lisp-yang-15.txt | draft-ietf-lisp-yang-16.txt > | |||
|---|---|---|---|---|
| LISP Working Group V. Ermagan | LISP Working Group V. Ermagan | |||
| Internet-Draft Google | Internet-Draft Google | |||
| Intended status: Experimental A. Rodriguez-Natal | Intended status: Experimental A. Rodriguez-Natal | |||
| Expires: August 26, 2021 F. Coras | Expires: 25 February 2022 F. Coras | |||
| Cisco Systems | Cisco Systems | |||
| C. Moberg | C. Moberg | |||
| Avassa | Avassa | |||
| R. Rahman | R. Rahman | |||
| A. Cabellos-Aparicio | A. Cabellos-Aparicio | |||
| Technical University of Catalonia | Technical University of Catalonia | |||
| F. Maino | F. Maino | |||
| Cisco Systems | Cisco Systems | |||
| February 22, 2021 | 24 August 2021 | |||
| LISP YANG Model | LISP YANG Model | |||
| draft-ietf-lisp-yang-15 | draft-ietf-lisp-yang-16 | |||
| 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 44 ¶ | skipping to change at page 1, line 44 ¶ | |||
| 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 August 26, 2021. | This Internet-Draft will expire on 25 February 2022. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 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/ | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | license-info) in effect on the date of publication of this document. | |||
| publication of this document. Please review these documents | Please review these documents carefully, as they describe your rights | |||
| carefully, as they describe your rights and restrictions with respect | and restrictions with respect to this document. Code Components | |||
| to this document. Code Components extracted from this document must | extracted from this document must include Simplified BSD License text | |||
| include Simplified BSD License text as described in Section 4.e of | as described in Section 4.e of the Trust Legal Provisions and are | |||
| the Trust Legal Provisions and are provided without warranty as | provided without warranty as described in the Simplified BSD License. | |||
| described in the Simplified BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | |||
| 1.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 3 | 1.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.3. Prefixes . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1.3. Prefixes . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. LISP Module . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. LISP Module . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.1. Module Structure . . . . . . . . . . . . . . . . . . . . 4 | 2.1. Module Structure . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.2. Module Definition . . . . . . . . . . . . . . . . . . . . 7 | 2.2. Module Definition . . . . . . . . . . . . . . . . . . . . 7 | |||
| 3. LISP-ITR Module . . . . . . . . . . . . . . . . . . . . . . . 18 | 3. LISP-ITR Module . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 3.1. Module Structure . . . . . . . . . . . . . . . . . . . . 18 | 3.1. Module Structure . . . . . . . . . . . . . . . . . . . . 19 | |||
| 3.2. Module Definition . . . . . . . . . . . . . . . . . . . . 24 | 3.2. Module Definition . . . . . . . . . . . . . . . . . . . . 24 | |||
| 4. LISP-ETR Module . . . . . . . . . . . . . . . . . . . . . . . 27 | 4. LISP-ETR Module . . . . . . . . . . . . . . . . . . . . . . . 28 | |||
| 4.1. Module Structure . . . . . . . . . . . . . . . . . . . . 27 | 4.1. Module Structure . . . . . . . . . . . . . . . . . . . . 28 | |||
| 4.2. Module Definition . . . . . . . . . . . . . . . . . . . . 30 | 4.2. Module Definition . . . . . . . . . . . . . . . . . . . . 30 | |||
| 5. LISP-Map-Server Module . . . . . . . . . . . . . . . . . . . 34 | 5. LISP-Map-Server Module . . . . . . . . . . . . . . . . . . . 34 | |||
| 5.1. Module Structure . . . . . . . . . . . . . . . . . . . . 34 | 5.1. Module Structure . . . . . . . . . . . . . . . . . . . . 34 | |||
| 5.2. Module Definition . . . . . . . . . . . . . . . . . . . . 43 | 5.2. Module Definition . . . . . . . . . . . . . . . . . . . . 43 | |||
| 6. LISP-Map-Resolver Module . . . . . . . . . . . . . . . . . . 49 | 6. LISP-Map-Resolver Module . . . . . . . . . . . . . . . . . . 49 | |||
| 6.1. Module Structure . . . . . . . . . . . . . . . . . . . . 49 | 6.1. Module Structure . . . . . . . . . . . . . . . . . . . . 50 | |||
| 6.2. Module Definition . . . . . . . . . . . . . . . . . . . . 49 | 6.2. Module Definition . . . . . . . . . . . . . . . . . . . . 50 | |||
| 7. LISP-Address-Types Module . . . . . . . . . . . . . . . . . . 51 | 7. LISP-Address-Types Module . . . . . . . . . . . . . . . . . . 52 | |||
| 7.1. Module Definition . . . . . . . . . . . . . . . . . . . . 51 | 7.1. Module Definition . . . . . . . . . . . . . . . . . . . . 52 | |||
| 7.2. Data Model examples . . . . . . . . . . . . . . . . . . . 66 | 7.2. Data Model examples . . . . . . . . . . . . . . . . . . . 67 | |||
| 7.2.1. LISP protocol instance . . . . . . . . . . . . . . . 66 | 7.2.1. LISP protocol instance . . . . . . . . . . . . . . . 67 | |||
| 7.2.2. LISP ITR . . . . . . . . . . . . . . . . . . . . . . 68 | 7.2.2. LISP ITR . . . . . . . . . . . . . . . . . . . . . . 69 | |||
| 7.2.3. LISP ETR . . . . . . . . . . . . . . . . . . . . . . 68 | 7.2.3. LISP ETR . . . . . . . . . . . . . . . . . . . . . . 69 | |||
| 7.2.4. LISP Map-Server . . . . . . . . . . . . . . . . . . . 71 | 7.2.4. LISP Map-Server . . . . . . . . . . . . . . . . . . . 72 | |||
| 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 72 | 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 73 | |||
| 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 72 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 73 | |||
| 10. Security Considerations . . . . . . . . . . . . . . . . . . . 75 | 10. Security Considerations . . . . . . . . . . . . . . . . . . . 77 | |||
| 11. Normative References . . . . . . . . . . . . . . . . . . . . 78 | 11. Normative References . . . . . . . . . . . . . . . . . . . . 80 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 81 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 82 | |||
| 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 | 1.1. Requirements Language | |||
| skipping to change at page 3, line 31 ¶ | skipping to change at page 4, line 5 ¶ | |||
| 1.2. Tree Diagrams | 1.2. Tree Diagrams | |||
| This document uses the graphical representation of data models | This document uses the graphical representation of data models | |||
| defined in [RFC8340]. | defined in [RFC8340]. | |||
| 1.3. Prefixes | 1.3. Prefixes | |||
| The table below provides a summary of the prefixes used by this | The table below provides a summary of the prefixes used by this | |||
| document. | document. | |||
| +----------+-------------------------+------------------------------+ | +==========+=========================+===========+ | |||
| | Prefix | YANG module | Reference | | | Prefix | YANG module | Reference | | |||
| +----------+-------------------------+------------------------------+ | +==========+=========================+===========+ | |||
| | lisp | ietf-lisp | Section 2 | | | lisp | ietf-lisp | Section 2 | | |||
| | if | ietf-interfaces | [RFC8343] | | +----------+-------------------------+-----------+ | |||
| | lisp-at | ietf-lisp-address-types | Section 7 | | | if | ietf-interfaces | [RFC8343] | | |||
| | yang | ietf-yang-types | [RFC6991] | | +----------+-------------------------+-----------+ | |||
| | rt | ietf-routing | [RFC8022] | | | lisp-at | ietf-lisp-address-types | Section 7 | | |||
| | ni | ietf-network-instance | [RFC8529] | | +----------+-------------------------+-----------+ | |||
| | lisp-itr | ietf-lisp-itr | Section 3 | | | yang | ietf-yang-types | [RFC6991] | | |||
| | inet | ietf-inet-types | [RFC6991] | | +----------+-------------------------+-----------+ | |||
| | lisp-etr | ietf-lisp-etr | Section 4 | | | rt | ietf-routing | [RFC8022] | | |||
| | lisp-ms | ietf-lisp-mapserver | Section 5 | | +----------+-------------------------+-----------+ | |||
| | lisp-mr | ietf-lisp-mapresolver | Section 6 | | | ni | ietf-network-instance | [RFC8529] | | |||
| +----------+-------------------------+------------------------------+ | +----------+-------------------------+-----------+ | |||
| | lisp-itr | ietf-lisp-itr | Section 3 | | ||||
| +----------+-------------------------+-----------+ | ||||
| | inet | ietf-inet-types | [RFC6991] | | ||||
| +----------+-------------------------+-----------+ | ||||
| | lisp-etr | ietf-lisp-etr | Section 4 | | ||||
| +----------+-------------------------+-----------+ | ||||
| | lisp-ms | ietf-lisp-mapserver | Section 5 | | ||||
| +----------+-------------------------+-----------+ | ||||
| | lisp-mr | ietf-lisp-mapresolver | Section 6 | | ||||
| +----------+-------------------------+-----------+ | ||||
| Table 1: Prefixes and corresponding YANG modules | Table 1: Prefixes and corresponding YANG modules | |||
| 2. LISP Module | 2. LISP Module | |||
| This is the base LISP module. It is further augmented by the LISP | This is the base LISP module. It is further augmented by the LISP | |||
| device role specific modules defined elsewhere in this document. | device role specific modules defined elsewhere in this document. | |||
| 2.1. Module Structure | 2.1. Module Structure | |||
| skipping to change at page 51, line 39 ¶ | skipping to change at page 52, line 30 ¶ | |||
| } | } | |||
| <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@2021-02-22.yang" | <CODE BEGINS> file "ietf-lisp-address-types@2021-02-22.yang" | |||
| module ietf-lisp-address-types { | module ietf-lisp-address-types { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-address-types"; | ||||
| prefix lisp-at; | namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-address-types"; | |||
| import ietf-inet-types { | prefix lisp-at; | |||
| prefix inet; | ||||
| reference "RFC 6991: Common YANG Data Types"; | ||||
| } | ||||
| import ietf-yang-types { | ||||
| prefix yang; | ||||
| reference "RFC 6991: Common YANG Data Types"; | ||||
| } | ||||
| organization | import ietf-inet-types { | |||
| "IETF LISP (Locator/ID Separation Protocol) Working Group"; | prefix inet; | |||
| contact | reference "RFC 6991: Common YANG Data Types"; | |||
| "WG Web: <http://tools.ietf.org/wg/lisp/> | } | |||
| WG List: <mailto:lisp@ietf.org> | import ietf-yang-types { | |||
| prefix yang; | ||||
| reference "RFC 6991: Common YANG Data Types"; | ||||
| } | ||||
| Editor: Vina Ermagan | organization | |||
| <mailto:ermagan@gmail.com> | "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:ermagan@gmail.com> | ||||
| Editor: Alberto Rodriguez-Natal | Editor: Alberto Rodriguez-Natal | |||
| <mailto:natal@cisco.com> | <mailto:natal@cisco.com> | |||
| Editor: Reshad Rahman | Editor: Reshad Rahman | |||
| <mailto:reshad@yahoo.com>"; | <mailto:reshad@yahoo.com>"; | |||
| description | description | |||
| "This YANG module defines the LISP Canonical Address Formats | "This YANG module defines the LISP Canonical Address Formats | |||
| (LCAF) for LISP. The module can be extended by vendors to | (LCAF) for LISP. The module can be extended by vendors to | |||
| define vendor-specific parameters. | define vendor-specific parameters. | |||
| Copyright (c) 2018 IETF Trust and the persons identified as | Copyright (c) 2018 IETF Trust and the persons identified as | |||
| authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
| to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC 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 2021-02-22 { | revision 2021-02-22 { | |||
| description | description | |||
| "Initial revision."; | "Initial revision."; | |||
| reference | reference | |||
| "RC8060: LISP Canonical Address Format (LCAF)"; | "RC8060: LISP Canonical Address Format (LCAF)"; | |||
| } | } | |||
| 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; | ||||
| description | ||||
| "IANA Reserved."; | ||||
| } | ||||
| identity ipv4-afi { | ||||
| base lisp-address-family; | ||||
| description | ||||
| "IANA IPv4 address family."; | ||||
| } | ||||
| identity ipv4-prefix-afi { | ||||
| base lisp-address-family; | ||||
| description | ||||
| "IANA IPv4 address family prefix."; | ||||
| } | ||||
| identity ipv6-afi { | ||||
| base lisp-address-family; | ||||
| description | ||||
| "IANA IPv6 address family."; | ||||
| } | ||||
| identity ipv6-prefix-afi { | ||||
| base lisp-address-family; | ||||
| description | ||||
| "IANA IPv6 address family prefix."; | ||||
| } | ||||
| identity mac-afi { | ||||
| base lisp-address-family; | ||||
| description | ||||
| "IANA MAC address family."; | ||||
| } | ||||
| identity distinguished-name-afi { | ||||
| base lisp-address-family; | ||||
| description | ||||
| "IANA Distinguished Name address family."; | ||||
| } | ||||
| identity as-number-afi { | ||||
| base lisp-address-family; | base lisp-address-family; | |||
| description | description | |||
| "IANA AS Number address family."; | "IANA Reserved."; | |||
| } | ||||
| identity lcaf { | ||||
| base lisp-address-family; | ||||
| description | ||||
| "IANA LISP Canonical Address Format address family."; | ||||
| } | ||||
| identity null-address-lcaf { | ||||
| base lcaf; | ||||
| description | ||||
| "Null body LCAF type."; | ||||
| } | ||||
| identity afi-list-lcaf { | ||||
| base lcaf; | ||||
| description | ||||
| "AFI-List LCAF type."; | ||||
| } | ||||
| identity instance-id-lcaf { | ||||
| base lcaf; | ||||
| description | ||||
| "Instance-ID LCAF type."; | ||||
| } | ||||
| identity as-number-lcaf { | ||||
| base lcaf; | ||||
| description | ||||
| "AS Number LCAF type."; | ||||
| } | ||||
| identity application-data-lcaf { | ||||
| base lcaf; | ||||
| description | ||||
| "Application Data LCAF type."; | ||||
| } | ||||
| identity geo-coordinates-lcaf { | ||||
| base lcaf; | ||||
| description | ||||
| "Geo-coordinates LCAF type."; | ||||
| } | ||||
| identity opaque-key-lcaf { | ||||
| base lcaf; | ||||
| description | ||||
| "Opaque Key LCAF type."; | ||||
| } | ||||
| identity nat-traversal-lcaf { | ||||
| base lcaf; | ||||
| description | ||||
| "NAT-Traversal LCAF type."; | ||||
| } | ||||
| identity nonce-locator-lcaf { | ||||
| base lcaf; | ||||
| description | ||||
| "Nonce-Locator LCAF type."; | ||||
| } | ||||
| identity multicast-info-lcaf { | ||||
| base lcaf; | ||||
| description | ||||
| "Multicast Info LCAF type."; | ||||
| } | ||||
| identity explicit-locator-path-lcaf { | ||||
| base lcaf; | ||||
| description | ||||
| "Explicit Locator Path LCAF type."; | ||||
| } | ||||
| identity security-key-lcaf { | ||||
| base lcaf; | ||||
| description | ||||
| "Security Key LCAF type."; | ||||
| } | ||||
| identity source-dest-key-lcaf { | ||||
| base lcaf; | ||||
| description | ||||
| "Source/Dest LCAF type."; | ||||
| } | ||||
| identity replication-list-lcaf { | ||||
| base lcaf; | ||||
| description | ||||
| "Replication-List LCAF type."; | ||||
| } | ||||
| identity json-data-model-lcaf { | ||||
| base lcaf; | ||||
| description | ||||
| "JSON Data Model LCAF type."; | ||||
| } | ||||
| identity key-value-address-lcaf { | ||||
| base lcaf; | ||||
| description | ||||
| "Key/Value Address LCAF type."; | ||||
| } | ||||
| identity encapsulation-format-lcaf { | ||||
| base lcaf; | ||||
| description | ||||
| "Encapsulation Format LCAF type."; | ||||
| } | ||||
| identity service-path-lcaf { | ||||
| base lcaf; | ||||
| description | ||||
| "Service Path LCAF type."; | ||||
| } | ||||
| typedef instance-id-type { | ||||
| type uint32 { | ||||
| range "0..16777215"; | ||||
| } | } | |||
| description | identity ipv4-afi { | |||
| "Defines the range of values for an Instance ID."; | base lisp-address-family; | |||
| } | description | |||
| typedef service-path-id-type { | "IANA IPv4 address family."; | |||
| type uint32 { | ||||
| range "0..16777215"; | ||||
| } | } | |||
| description | identity ipv4-prefix-afi { | |||
| "Defines the range of values for a Service Path ID."; | base lisp-address-family; | |||
| } | description | |||
| typedef distinguished-name-type { | "IANA IPv4 address family prefix."; | |||
| type string; | ||||
| description | ||||
| "Distinguished Name address."; | ||||
| reference | ||||
| "http://www.iana.org/assignments/address-family-numbers/ | ||||
| address-family-numbers.xhtml"; | ||||
| } | ||||
| typedef simple-address { | ||||
| type union { | ||||
| type inet:ip-address; | ||||
| type inet:ip-prefix; | ||||
| type yang:mac-address; | ||||
| type distinguished-name-type; | ||||
| type inet:as-number; | ||||
| } | } | |||
| description | identity ipv6-afi { | |||
| "Union of address types that can be part of LCAFs."; | ||||
| } | ||||
| typedef lisp-address-family-ref { | ||||
| type identityref { | ||||
| base lisp-address-family; | base lisp-address-family; | |||
| description | ||||
| "IANA IPv6 address family."; | ||||
| } | } | |||
| description | identity ipv6-prefix-afi { | |||
| "LISP address family reference."; | base lisp-address-family; | |||
| } | description | |||
| typedef lcaf-ref { | "IANA IPv6 address family prefix."; | |||
| type identityref { | } | |||
| identity mac-afi { | ||||
| base lisp-address-family; | ||||
| description | ||||
| "IANA MAC address family."; | ||||
| } | ||||
| identity distinguished-name-afi { | ||||
| base lisp-address-family; | ||||
| description | ||||
| "IANA Distinguished Name address family."; | ||||
| } | ||||
| identity as-number-afi { | ||||
| base lisp-address-family; | ||||
| description | ||||
| "IANA AS Number address family."; | ||||
| } | ||||
| identity lcaf { | ||||
| base lisp-address-family; | ||||
| description | ||||
| "IANA LISP Canonical Address Format address family."; | ||||
| } | ||||
| identity null-address-lcaf { | ||||
| base lcaf; | base lcaf; | |||
| description | ||||
| "Null body LCAF type."; | ||||
| } | } | |||
| description | identity afi-list-lcaf { | |||
| "LCAF types reference."; | base lcaf; | |||
| } | description | |||
| "AFI-List LCAF type."; | ||||
| grouping lisp-address { | } | |||
| description | identity instance-id-lcaf { | |||
| "Generic LISP address."; | base lcaf; | |||
| leaf address-type { | ||||
| type lisp-address-family-ref; | ||||
| mandatory true; | ||||
| description | description | |||
| "Type of the LISP address."; | "Instance-ID LCAF type."; | |||
| } | } | |||
| choice address { | identity as-number-lcaf { | |||
| base lcaf; | ||||
| description | description | |||
| "Various LISP address types, including IP, MAC, and LCAF."; | "AS Number LCAF type."; | |||
| } | ||||
| leaf no-address { | identity application-data-lcaf { | |||
| when "../address-type = 'lisp-at:no-address-afi'" { | base lcaf; | |||
| description | description | |||
| "When AFI is 0."; | "Application Data LCAF type."; | |||
| } | } | |||
| type empty; | identity geo-coordinates-lcaf { | |||
| description | base lcaf; | |||
| "No address."; | description | |||
| } | "Geo-coordinates LCAF type."; | |||
| leaf ipv4 { | } | |||
| when "../address-type = 'lisp-at:ipv4-afi'" { | identity opaque-key-lcaf { | |||
| description | base lcaf; | |||
| "When AFI is IPv4."; | description | |||
| } | "Opaque Key LCAF type."; | |||
| type inet:ipv4-address; | } | |||
| description | identity nat-traversal-lcaf { | |||
| "IPv4 address."; | base lcaf; | |||
| } | description | |||
| leaf ipv4-prefix { | "NAT-Traversal LCAF type."; | |||
| when "../address-type = 'lisp-at:ipv4-prefix-afi'" { | } | |||
| description | identity nonce-locator-lcaf { | |||
| "When AFI is IPv4."; | base lcaf; | |||
| } | description | |||
| type inet:ipv4-prefix; | "Nonce-Locator LCAF type."; | |||
| description | } | |||
| "IPv4 prefix."; | identity multicast-info-lcaf { | |||
| } | base lcaf; | |||
| leaf ipv6 { | description | |||
| when "../address-type = 'lisp-at:ipv6-afi'" { | "Multicast Info LCAF type."; | |||
| description | } | |||
| "When AFI is IPv6."; | identity explicit-locator-path-lcaf { | |||
| } | base lcaf; | |||
| type inet:ipv6-address; | description | |||
| description | "Explicit Locator Path LCAF type."; | |||
| "IPv6 address."; | } | |||
| identity security-key-lcaf { | ||||
| base lcaf; | ||||
| description | ||||
| "Security Key LCAF type."; | ||||
| } | ||||
| identity source-dest-key-lcaf { | ||||
| base lcaf; | ||||
| description | ||||
| "Source/Dest LCAF type."; | ||||
| } | ||||
| identity replication-list-lcaf { | ||||
| base lcaf; | ||||
| description | ||||
| "Replication-List LCAF type."; | ||||
| } | ||||
| identity json-data-model-lcaf { | ||||
| base lcaf; | ||||
| description | ||||
| "JSON Data Model LCAF type."; | ||||
| } | ||||
| identity key-value-address-lcaf { | ||||
| base lcaf; | ||||
| description | ||||
| "Key/Value Address LCAF type."; | ||||
| } | ||||
| identity encapsulation-format-lcaf { | ||||
| base lcaf; | ||||
| description | ||||
| "Encapsulation Format LCAF type."; | ||||
| } | ||||
| identity service-path-lcaf { | ||||
| base lcaf; | ||||
| description | ||||
| "Service Path LCAF type."; | ||||
| } | ||||
| typedef instance-id-type { | ||||
| type uint32 { | ||||
| range "0..16777215"; | ||||
| } | } | |||
| leaf ipv6-prefix { | description | |||
| when "../address-type = 'lisp-at:ipv6-prefix-afi'" { | "Defines the range of values for an Instance ID."; | |||
| description | } | |||
| "When AFI is IPv6."; | typedef service-path-id-type { | |||
| type uint32 { | ||||
| } | range "0..16777215"; | |||
| type inet:ipv6-prefix; | ||||
| description | ||||
| "IPv6 address."; | ||||
| } | } | |||
| leaf mac { | description | |||
| when "../address-type = 'lisp-at:mac-afi'" { | "Defines the range of values for a Service Path ID."; | |||
| description | } | |||
| "When AFI is MAC."; | typedef distinguished-name-type { | |||
| } | type string; | |||
| description | ||||
| "Distinguished Name address."; | ||||
| reference | ||||
| "http://www.iana.org/assignments/address-family-numbers/ | ||||
| address-family-numbers.xhtml"; | ||||
| } | ||||
| typedef simple-address { | ||||
| type union { | ||||
| type inet:ip-address; | ||||
| type inet:ip-prefix; | ||||
| type yang:mac-address; | type yang:mac-address; | |||
| description | ||||
| "MAC address."; | ||||
| } | ||||
| leaf distinguished-name { | ||||
| when "../address-type = 'lisp-at:distinguished-name-afi'" { | ||||
| description | ||||
| "When AFI is distinguished-name."; | ||||
| } | ||||
| type distinguished-name-type; | type distinguished-name-type; | |||
| description | ||||
| "Distinguished Name address."; | ||||
| } | ||||
| leaf as-number { | ||||
| when "../address-type = 'lisp-at:as-number-afi'" { | ||||
| description | ||||
| "When AFI is as-number."; | ||||
| } | ||||
| type inet:as-number; | type inet:as-number; | |||
| } | ||||
| description | ||||
| "Union of address types that can be part of LCAFs."; | ||||
| } | ||||
| typedef lisp-address-family-ref { | ||||
| type identityref { | ||||
| base lisp-address-family; | ||||
| } | ||||
| description | ||||
| "LISP address family reference."; | ||||
| } | ||||
| typedef lcaf-ref { | ||||
| type identityref { | ||||
| base lcaf; | ||||
| } | ||||
| description | ||||
| "LCAF types reference."; | ||||
| } | ||||
| grouping lisp-address { | ||||
| description | ||||
| "Generic LISP address."; | ||||
| leaf address-type { | ||||
| type lisp-address-family-ref; | ||||
| mandatory true; | ||||
| description | description | |||
| "AS Number."; | "Type of the LISP address."; | |||
| } | } | |||
| container null-address { | choice address { | |||
| when "../address-type = 'lisp-at:null-address-lcaf'" { | ||||
| description | ||||
| "When LCAF type is null."; | ||||
| } | ||||
| description | description | |||
| "Null body LCAF type"; | "Various LISP address types, including IP, MAC, and LCAF."; | |||
| leaf address { | ||||
| leaf no-address { | ||||
| when "../address-type = 'lisp-at:no-address-afi'" { | ||||
| description | ||||
| "When AFI is 0."; | ||||
| } | ||||
| type empty; | type empty; | |||
| description | description | |||
| "AFI address."; | "No address."; | |||
| } | } | |||
| } | leaf ipv4 { | |||
| container afi-list { | when "../address-type = 'lisp-at:ipv4-afi'" { | |||
| when "../address-type = 'lisp-at:afi-list-lcaf'" { | description | |||
| "When AFI is IPv4."; | ||||
| } | ||||
| type inet:ipv4-address; | ||||
| description | description | |||
| "When LCAF type is AFI-List."; | "IPv4 address."; | |||
| } | } | |||
| description | leaf ipv4-prefix { | |||
| "AFI-List LCAF type."; | when "../address-type = 'lisp-at:ipv4-prefix-afi'" { | |||
| reference | description | |||
| "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | "When AFI is IPv4."; | |||
| #section-4.16.1"; | } | |||
| leaf-list address-list { | type inet:ipv4-prefix; | |||
| type simple-address; | ||||
| description | description | |||
| "List of AFI addresses."; | "IPv4 prefix."; | |||
| } | } | |||
| } | leaf ipv6 { | |||
| container instance-id { | when "../address-type = 'lisp-at:ipv6-afi'" { | |||
| when "../address-type = 'lisp-at:instance-id-lcaf'" { | description | |||
| "When AFI is IPv6."; | ||||
| } | ||||
| type inet:ipv6-address; | ||||
| description | description | |||
| "When LCAF type is Instance ID as per RFC8060."; | "IPv6 address."; | |||
| } | } | |||
| description | leaf ipv6-prefix { | |||
| "Instance ID LCAF type."; | when "../address-type = 'lisp-at:ipv6-prefix-afi'" { | |||
| reference | description | |||
| "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | "When AFI is IPv6."; | |||
| #section-4.2"; | } | |||
| leaf instance-id { | type inet:ipv6-prefix; | |||
| type instance-id-type; | ||||
| description | description | |||
| "Instance ID value."; | "IPv6 address."; | |||
| } | } | |||
| leaf mask-length { | leaf mac { | |||
| type uint8; | when "../address-type = 'lisp-at:mac-afi'" { | |||
| description | description | |||
| "Mask length."; | "When AFI is MAC."; | |||
| } | } | |||
| leaf address { | type yang:mac-address; | |||
| type simple-address; | ||||
| description | description | |||
| "AFI address."; | "MAC address."; | |||
| } | } | |||
| } | leaf distinguished-name { | |||
| container as-number-lcaf { | when "../address-type = 'lisp-at:distinguished-name-afi'" { | |||
| when "../address-type = 'lisp-at:as-number-lcaf'" { | description | |||
| "When AFI is distinguished-name."; | ||||
| } | ||||
| type distinguished-name-type; | ||||
| description | description | |||
| "When LCAF type is AS-Number."; | "Distinguished Name address."; | |||
| } | } | |||
| description | leaf as-number { | |||
| "AS Number LCAF type."; | when "../address-type = 'lisp-at:as-number-afi'" { | |||
| reference | description | |||
| "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | "When AFI is as-number."; | |||
| #section-4.3"; | } | |||
| leaf as { | ||||
| type inet:as-number; | type inet:as-number; | |||
| description | description | |||
| "AS number."; | "AS Number."; | |||
| } | } | |||
| leaf address { | container null-address { | |||
| type simple-address; | when "../address-type = 'lisp-at:null-address-lcaf'" { | |||
| description | ||||
| "When LCAF type is null."; | ||||
| } | ||||
| description | description | |||
| "AFI address."; | "Null body LCAF type"; | |||
| leaf address { | ||||
| type empty; | ||||
| description | ||||
| "AFI address."; | ||||
| } | ||||
| } | } | |||
| } | container afi-list { | |||
| container application-data { | when "../address-type = 'lisp-at:afi-list-lcaf'" { | |||
| when "../address-type = 'lisp-at:application-data-lcaf'" { | description | |||
| "When LCAF type is AFI-List."; | ||||
| } | ||||
| description | description | |||
| "When LCAF type is Application Data."; | "AFI-List LCAF type."; | |||
| } | reference | |||
| description | "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | |||
| "Application Data LCAF type."; | #section-4.16.1"; | |||
| reference | leaf-list address-list { | |||
| "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | ||||
| #section-4.4"; | ||||
| leaf address { | ||||
| type simple-address; | type simple-address; | |||
| description | description | |||
| "AFI address."; | "List of AFI addresses."; | |||
| } | ||||
| } | } | |||
| leaf protocol { | container instance-id { | |||
| type uint8; | when "../address-type = 'lisp-at:instance-id-lcaf'" { | |||
| description | description | |||
| "Protocol number."; | "When LCAF type is Instance ID as per RFC8060."; | |||
| } | } | |||
| leaf ip-tos { | description | |||
| type int32; | "Instance ID LCAF type."; | |||
| reference | ||||
| "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | ||||
| #section-4.2"; | ||||
| leaf instance-id { | ||||
| type instance-id-type; | ||||
| description | description | |||
| "Type of service field."; | "Instance ID value."; | |||
| } | } | |||
| leaf local-port-low { | leaf mask-length { | |||
| type inet:port-number; | type uint8; | |||
| description | ||||
| "Mask length."; | ||||
| } | ||||
| leaf address { | ||||
| type simple-address; | ||||
| description | description | |||
| "Low end of local port range."; | "AFI address."; | |||
| } | ||||
| } | } | |||
| leaf local-port-high { | container as-number-lcaf { | |||
| type inet:port-number; | when "../address-type = 'lisp-at:as-number-lcaf'" { | |||
| description | description | |||
| "High end of local port range."; | "When LCAF type is AS-Number."; | |||
| } | } | |||
| leaf remote-port-low { | description | |||
| type inet:port-number; | "AS Number LCAF type."; | |||
| reference | ||||
| "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | ||||
| #section-4.3"; | ||||
| leaf as { | ||||
| type inet:as-number; | ||||
| description | description | |||
| "Low end of remote port range."; | "AS number."; | |||
| } | } | |||
| leaf remote-port-high { | leaf address { | |||
| type inet:port-number; | type simple-address; | |||
| description | description | |||
| "High end of remote port range."; | "AFI address."; | |||
| } | ||||
| } | } | |||
| } | container application-data { | |||
| container geo-coordinates { | when "../address-type = 'lisp-at:application-data-lcaf'" { | |||
| when "../address-type = 'lisp-at:geo-coordinates-lcaf'" { | description | |||
| "When LCAF type is Application Data."; | ||||
| } | ||||
| description | description | |||
| "When LCAF type is Geo-coordinates."; | "Application Data LCAF type."; | |||
| } | reference | |||
| description | "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | |||
| "Geo-coordinates LCAF type. Coordinates are specified | #section-4.4"; | |||
| using the WGS 84 (World Geodetic System 1984) reference | leaf address { | |||
| coordinate system"; | type simple-address; | |||
| reference | ||||
| "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | ||||
| #section-4.5"; | ||||
| leaf latitude { | ||||
| type bits { | ||||
| bit N { | ||||
| description | description | |||
| "Latitude bit."; | "AFI address."; | |||
| } | ||||
| } | } | |||
| description | leaf protocol { | |||
| "Bit that selects between North and South latitude."; | type uint8; | |||
| } | description | |||
| leaf latitude-degrees { | "Protocol number."; | |||
| type uint8 { | ||||
| range "0 .. 90"; | ||||
| } | } | |||
| description | leaf ip-tos { | |||
| "Degrees of latitude."; | type int32; | |||
| } | description | |||
| leaf latitude-minutes { | "Type of service field."; | |||
| type uint8 { | ||||
| range "0..59"; | ||||
| } | } | |||
| description | leaf local-port-low { | |||
| "Minutes of latitude."; | type inet:port-number; | |||
| } | description | |||
| leaf latitude-seconds { | "Low end of local port range."; | |||
| type uint8 { | ||||
| range "0..59"; | ||||
| } | } | |||
| description | leaf local-port-high { | |||
| "Seconds of latitude."; | type inet:port-number; | |||
| } | ||||
| leaf longitude { | ||||
| type bits { | ||||
| bit E { | ||||
| description | description | |||
| "Longitude bit."; | "High end of local port range."; | |||
| } | ||||
| } | } | |||
| description | leaf remote-port-low { | |||
| "Bit that selects between East and West longitude."; | type inet:port-number; | |||
| } | description | |||
| leaf longitude-degrees { | "Low end of remote port range."; | |||
| type uint16 { | ||||
| range "0 .. 180"; | ||||
| } | } | |||
| description | leaf remote-port-high { | |||
| "Degrees of longitude."; | type inet:port-number; | |||
| } | description | |||
| leaf longitude-minutes { | "High end of remote port range."; | |||
| type uint8 { | ||||
| range "0..59"; | ||||
| } | } | |||
| description | ||||
| "Minutes of longitude."; | ||||
| } | } | |||
| leaf longitude-seconds { | container geo-coordinates { | |||
| type uint8 { | when "../address-type = 'lisp-at:geo-coordinates-lcaf'" { | |||
| range "0..59"; | description | |||
| "When LCAF type is Geo-coordinates."; | ||||
| } | } | |||
| description | description | |||
| "Seconds of longitude."; | "Geo-coordinates LCAF type. Coordinates are specified | |||
| } | using the WGS 84 (World Geodetic System 1984) reference | |||
| leaf altitude { | coordinate system"; | |||
| type int32; | reference | |||
| description | "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | |||
| "Height relative to sea level in meters."; | #section-4.5"; | |||
| } | leaf latitude { | |||
| leaf address { | type bits { | |||
| type simple-address; | bit N { | |||
| description | description | |||
| "AFI address."; | "Latitude bit."; | |||
| } | } | |||
| } | ||||
| container nat-traversal { | ||||
| when "../address-type = 'lisp-at:nat-traversal-lcaf'" { | ||||
| description | ||||
| "When LCAF type is NAT-Traversal."; | ||||
| } | ||||
| description | ||||
| "NAT-Traversal LCAF type."; | ||||
| reference | ||||
| "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | ||||
| #section-4.6"; | ||||
| leaf ms-udp-port { | ||||
| type uint16; | ||||
| description | ||||
| "Map-Server UDP port (set to 4342)."; | ||||
| } | ||||
| leaf etr-udp-port { | ||||
| type uint16; | ||||
| description | ||||
| "ETR UDP port."; | ||||
| } | ||||
| leaf global-etr-rloc { | ||||
| type simple-address; | ||||
| description | ||||
| "Global ETR RLOC address."; | ||||
| } | ||||
| leaf ms-rloc { | ||||
| type simple-address; | ||||
| description | ||||
| "Map-Server RLOC address."; | ||||
| } | ||||
| leaf private-etr-rloc { | ||||
| type simple-address; | ||||
| description | ||||
| "Private ETR RLOC address."; | ||||
| } | ||||
| leaf-list rtr-rlocs { | ||||
| type simple-address; | ||||
| description | ||||
| "List of RTR RLOC addresses."; | ||||
| } | ||||
| } | ||||
| container explicit-locator-path { | ||||
| when "../address-type = 'lisp-at:explicit-locator-path-lcaf'" { | ||||
| description | ||||
| "When LCAF type type is Explicit Locator Path."; | ||||
| } | ||||
| description | ||||
| "Explicit Locator Path LCAF type."; | ||||
| reference | ||||
| "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | ||||
| #section-4.9"; | ||||
| list hop { | ||||
| key "hop-id"; | ||||
| ordered-by user; | ||||
| description | ||||
| "List of locator hops forming the explicit path."; | ||||
| leaf hop-id { | ||||
| type string { | ||||
| length "1..64"; | ||||
| pattern '[a-zA-Z0-9\-_.:]*'; | ||||
| } | } | |||
| description | description | |||
| "Unique identifier for the hop."; | "Bit that selects between North and South latitude."; | |||
| } | } | |||
| leaf address { | leaf latitude-degrees { | |||
| type simple-address; | type uint8 { | |||
| range "0 .. 90"; | ||||
| } | ||||
| description | description | |||
| "AFI address."; | "Degrees of latitude."; | |||
| } | } | |||
| leaf lrs-bits { | leaf latitude-minutes { | |||
| type bits{ | type uint8 { | |||
| bit lookup { | range "0..59"; | |||
| description | } | |||
| "Lookup bit."; | description | |||
| } | "Minutes of latitude."; | |||
| bit rloc-probe { | } | |||
| description | leaf latitude-seconds { | |||
| "RLOC-probe bit."; | type uint8 { | |||
| } | range "0..59"; | |||
| bit strict { | } | |||
| description | ||||
| "Seconds of latitude."; | ||||
| } | ||||
| leaf longitude { | ||||
| type bits { | ||||
| bit E { | ||||
| description | description | |||
| "Strict bit."; | "Longitude bit."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "Flag bits per hop."; | "Bit that selects between East and West longitude."; | |||
| } | ||||
| leaf longitude-degrees { | ||||
| type uint16 { | ||||
| range "0 .. 180"; | ||||
| } | ||||
| description | ||||
| "Degrees of longitude."; | ||||
| } | ||||
| leaf longitude-minutes { | ||||
| type uint8 { | ||||
| range "0..59"; | ||||
| } | ||||
| description | ||||
| "Minutes of longitude."; | ||||
| } | ||||
| leaf longitude-seconds { | ||||
| type uint8 { | ||||
| range "0..59"; | ||||
| } | ||||
| description | ||||
| "Seconds of longitude."; | ||||
| } | ||||
| leaf altitude { | ||||
| type int32; | ||||
| description | ||||
| "Height relative to sea level in meters."; | ||||
| } | ||||
| leaf address { | ||||
| type simple-address; | ||||
| description | ||||
| "AFI address."; | ||||
| } | } | |||
| } | } | |||
| } | container nat-traversal { | |||
| container source-dest-key { | when "../address-type = 'lisp-at:nat-traversal-lcaf'" { | |||
| when "../address-type = 'lisp-at:source-dest-key-lcaf'" { | description | |||
| "When LCAF type is NAT-Traversal."; | ||||
| } | ||||
| description | description | |||
| "When LCAF type type is Source/Dest."; | "NAT-Traversal LCAF type."; | |||
| } | reference | |||
| description | ||||
| "Source/Dest LCAF type."; | ||||
| reference | ||||
| "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | |||
| #section-4.11"; | #section-4.6"; | |||
| leaf source { | leaf ms-udp-port { | |||
| type simple-address; | type uint16; | |||
| description | description | |||
| "Source address."; | "Map-Server UDP port (set to 4342)."; | |||
| } | } | |||
| leaf dest { | leaf etr-udp-port { | |||
| type simple-address; | type uint16; | |||
| description | description | |||
| "Destination address."; | "ETR UDP port."; | |||
| } | ||||
| leaf global-etr-rloc { | ||||
| type simple-address; | ||||
| description | ||||
| "Global ETR RLOC address."; | ||||
| } | ||||
| leaf ms-rloc { | ||||
| type simple-address; | ||||
| description | ||||
| "Map-Server RLOC address."; | ||||
| } | ||||
| leaf private-etr-rloc { | ||||
| type simple-address; | ||||
| description | ||||
| "Private ETR RLOC address."; | ||||
| } | ||||
| leaf-list rtr-rlocs { | ||||
| type simple-address; | ||||
| description | ||||
| "List of RTR RLOC addresses."; | ||||
| } | ||||
| } | } | |||
| } | container explicit-locator-path { | |||
| container key-value-address { | when "../address-type = 'lisp-at:explicit-locator-path-lcaf'" { | |||
| when "../address-type = 'lisp-at:key-value-address-lcaf'" { | description | |||
| "When LCAF type type is Explicit Locator Path."; | ||||
| } | ||||
| description | description | |||
| "When LCAF type type is Key/Value Address."; | "Explicit Locator Path LCAF type."; | |||
| reference | ||||
| "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | ||||
| #section-4.9"; | ||||
| list hop { | ||||
| key "hop-id"; | ||||
| ordered-by user; | ||||
| description | ||||
| "List of locator hops forming the explicit path."; | ||||
| leaf hop-id { | ||||
| type string { | ||||
| length "1..64"; | ||||
| pattern '[a-zA-Z0-9\-_.:]*'; | ||||
| } | ||||
| description | ||||
| "Unique identifier for the hop."; | ||||
| } | ||||
| leaf address { | ||||
| type simple-address; | ||||
| description | ||||
| "AFI address."; | ||||
| } | ||||
| leaf lrs-bits { | ||||
| type bits{ | ||||
| bit lookup { | ||||
| description | ||||
| "Lookup bit."; | ||||
| } | ||||
| bit rloc-probe { | ||||
| description | ||||
| "RLOC-probe bit."; | ||||
| } | ||||
| bit strict { | ||||
| description | ||||
| "Strict bit."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "Flag bits per hop."; | ||||
| } | ||||
| } | ||||
| } | } | |||
| description | container source-dest-key { | |||
| "Key/Value Address LCAF type."; | when "../address-type = 'lisp-at:source-dest-key-lcaf'" { | |||
| reference | description | |||
| "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | "When LCAF type type is Source/Dest."; | |||
| #section-4.11"; | } | |||
| leaf key { | ||||
| type simple-address; | ||||
| description | description | |||
| "Address as Key."; | "Source/Dest LCAF type."; | |||
| reference | ||||
| "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | ||||
| #section-4.11"; | ||||
| leaf source { | ||||
| type simple-address; | ||||
| description | ||||
| "Source address."; | ||||
| } | ||||
| leaf dest { | ||||
| type simple-address; | ||||
| description | ||||
| "Destination address."; | ||||
| } | ||||
| } | } | |||
| leaf value { | container key-value-address { | |||
| type simple-address; | when "../address-type = 'lisp-at:key-value-address-lcaf'" { | |||
| description | ||||
| "When LCAF type type is Key/Value Address."; | ||||
| } | ||||
| description | description | |||
| "Address as Value."; | "Key/Value Address LCAF type."; | |||
| reference | ||||
| "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | ||||
| #section-4.11"; | ||||
| leaf key { | ||||
| type simple-address; | ||||
| description | ||||
| "Address as Key."; | ||||
| } | ||||
| leaf value { | ||||
| type simple-address; | ||||
| description | ||||
| "Address as Value."; | ||||
| } | ||||
| } | } | |||
| } | container service-path { | |||
| container service-path { | when "../address-type = 'lisp-at:service-path-lcaf'" { | |||
| when "../address-type = 'lisp-at:service-path-lcaf'" { | ||||
| description | ||||
| "When LCAF type service path identifier."; | ||||
| } | ||||
| description | ||||
| "Service Path LCAF type."; | ||||
| reference | ||||
| "http://tools.ietf.org/html/draft-ermagan-lisp-nsh-00"; | ||||
| leaf service-path-id { | ||||
| type service-path-id-type; | ||||
| description | description | |||
| "Service path identifier for the path for NSH header"; | "When LCAF type service path identifier."; | |||
| } | } | |||
| leaf service-index { | ||||
| type uint8; | ||||
| description | description | |||
| "Service path index for NSH header"; | "Service Path LCAF type."; | |||
| reference | ||||
| "http://tools.ietf.org/html/draft-ermagan-lisp-nsh-00"; | ||||
| leaf service-path-id { | ||||
| type service-path-id-type; | ||||
| description | ||||
| "Service path identifier for the path for NSH header"; | ||||
| } | ||||
| leaf service-index { | ||||
| type uint8; | ||||
| description | ||||
| "Service path index for NSH header"; | ||||
| } | ||||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | <CODE ENDS> | |||
| <CODE ENDS> | ||||
| 7.2. Data Model examples | 7.2. Data Model examples | |||
| This section presents some simple and illustrative examples on how to | This section presents some simple and illustrative examples on how to | |||
| configure LISP. | configure LISP. | |||
| 7.2.1. LISP protocol instance | 7.2.1. LISP protocol instance | |||
| The following is an example configuration for a LISP protocol | The following is an example configuration for a LISP protocol | |||
| instance with the name "LISP1". There are also 2 VNIs configured. | instance with the name "LISP1". There are also 2 VNIs configured. | |||
| skipping to change at page 81, line 9 ¶ | skipping to change at page 82, line 23 ¶ | |||
| [RFC8529] Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X. | [RFC8529] Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X. | |||
| Liu, "YANG Data Model for Network Instances", RFC 8529, | Liu, "YANG Data Model for Network Instances", RFC 8529, | |||
| DOI 10.17487/RFC8529, March 2019, | DOI 10.17487/RFC8529, March 2019, | |||
| <https://www.rfc-editor.org/info/rfc8529>. | <https://www.rfc-editor.org/info/rfc8529>. | |||
| Authors' Addresses | Authors' Addresses | |||
| Vina Ermagan | Vina Ermagan | |||
| USA | United States of America | |||
| Email: ermagan@gmail.com | Email: ermagan@gmail.com | |||
| Alberto Rodriguez-Natal | Alberto Rodriguez-Natal | |||
| Cisco Systems | Cisco Systems | |||
| San Jose, CA | San Jose, CA | |||
| USA | United States of America | |||
| Email: natal@cisco.com | Email: natal@cisco.com | |||
| Florin Coras | Florin Coras | |||
| Cisco Systems | Cisco Systems | |||
| San Jose, CA | San Jose, CA | |||
| USA | United States of America | |||
| Email: fcoras@cisco.com | Email: fcoras@cisco.com | |||
| Carl Moberg | Carl Moberg | |||
| Avassa | Avassa | |||
| Email: calle@avassa.io | Email: calle@avassa.io | |||
| Reshad Rahman | Reshad Rahman | |||
| Canada | Canada | |||
| skipping to change at page 81, line 34 ¶ | skipping to change at page 83, line 4 ¶ | |||
| Email: fcoras@cisco.com | Email: fcoras@cisco.com | |||
| Carl Moberg | Carl Moberg | |||
| Avassa | Avassa | |||
| Email: calle@avassa.io | Email: calle@avassa.io | |||
| Reshad Rahman | Reshad Rahman | |||
| Canada | Canada | |||
| Email: reshad@yahoo.com | Email: reshad@yahoo.com | |||
| Albert Cabellos-Aparicio | Albert Cabellos-Aparicio | |||
| Technical University of Catalonia | Technical University of Catalonia | |||
| Barcelona | Barcelona | |||
| Spain | Spain | |||
| Email: acabello@ac.upc.edu | Email: acabello@ac.upc.edu | |||
| Fabio Maino | Fabio Maino | |||
| Cisco Systems | Cisco Systems | |||
| San Jose, CA | San Jose, CA | |||
| USA | United States of America | |||
| Email: fmaino@cisco.com | Email: fmaino@cisco.com | |||
| End of changes. 108 change blocks. | ||||
| 643 lines changed or deleted | 652 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/ | ||||