| < draft-ietf-lisp-yang-09.txt | draft-ietf-lisp-yang-10.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: April 21, 2019 C. Moberg | Expires: May 8, 2019 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 | |||
| October 18, 2018 | November 4, 2018 | |||
| LISP YANG Model | LISP YANG Model | |||
| draft-ietf-lisp-yang-09 | draft-ietf-lisp-yang-10 | |||
| 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 April 21, 2019. | This Internet-Draft will expire on May 8, 2019. | |||
| 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 | |||
| skipping to change at page 2, line 22 ¶ | skipping to change at page 2, line 22 ¶ | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | |||
| 1.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 3 | 1.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. LISP Module . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. LISP Module . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2.1. Module Structure . . . . . . . . . . . . . . . . . . . . 3 | 2.1. Module Structure . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2.2. Module Definition . . . . . . . . . . . . . . . . . . . . 6 | 2.2. Module Definition . . . . . . . . . . . . . . . . . . . . 6 | |||
| 3. LISP-ITR Module . . . . . . . . . . . . . . . . . . . . . . . 16 | 3. LISP-ITR Module . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 3.1. Module Structure . . . . . . . . . . . . . . . . . . . . 16 | 3.1. Module Structure . . . . . . . . . . . . . . . . . . . . 16 | |||
| 3.2. Module Definition . . . . . . . . . . . . . . . . . . . . 21 | 3.2. Module Definition . . . . . . . . . . . . . . . . . . . . 22 | |||
| 4. LISP-ETR Module . . . . . . . . . . . . . . . . . . . . . . . 25 | 4. LISP-ETR Module . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
| 4.1. Module Structure . . . . . . . . . . . . . . . . . . . . 25 | 4.1. Module Structure . . . . . . . . . . . . . . . . . . . . 25 | |||
| 4.2. Module Definition . . . . . . . . . . . . . . . . . . . . 27 | 4.2. Module Definition . . . . . . . . . . . . . . . . . . . . 28 | |||
| 5. LISP-Map-Server Module . . . . . . . . . . . . . . . . . . . 32 | 5. LISP-Map-Server Module . . . . . . . . . . . . . . . . . . . 32 | |||
| 5.1. Module Structure . . . . . . . . . . . . . . . . . . . . 32 | 5.1. Module Structure . . . . . . . . . . . . . . . . . . . . 32 | |||
| 5.2. Module Definition . . . . . . . . . . . . . . . . . . . . 40 | 5.2. Module Definition . . . . . . . . . . . . . . . . . . . . 41 | |||
| 6. LISP-Map-Resolver Module . . . . . . . . . . . . . . . . . . 46 | 6. LISP-Map-Resolver Module . . . . . . . . . . . . . . . . . . 47 | |||
| 6.1. Module Structure . . . . . . . . . . . . . . . . . . . . 47 | 6.1. Module Structure . . . . . . . . . . . . . . . . . . . . 47 | |||
| 6.2. Module Definition . . . . . . . . . . . . . . . . . . . . 47 | 6.2. Module Definition . . . . . . . . . . . . . . . . . . . . 47 | |||
| 7. LISP-Address-Types Module . . . . . . . . . . . . . . . . . . 49 | 7. LISP-Address-Types Module . . . . . . . . . . . . . . . . . . 49 | |||
| 7.1. Module Definition . . . . . . . . . . . . . . . . . . . . 49 | 7.1. Module Definition . . . . . . . . . . . . . . . . . . . . 49 | |||
| 7.2. Data Model examples . . . . . . . . . . . . . . . . . . . 64 | 7.2. Data Model examples . . . . . . . . . . . . . . . . . . . 64 | |||
| 7.2.1. LISP protocol instance . . . . . . . . . . . . . . . 64 | 7.2.1. LISP protocol instance . . . . . . . . . . . . . . . 64 | |||
| 7.2.2. LISP ITR . . . . . . . . . . . . . . . . . . . . . . 65 | 7.2.2. LISP ITR . . . . . . . . . . . . . . . . . . . . . . 65 | |||
| 7.2.3. LISP ETR . . . . . . . . . . . . . . . . . . . . . . 66 | 7.2.3. LISP ETR . . . . . . . . . . . . . . . . . . . . . . 66 | |||
| 7.2.4. LISP Map-Server . . . . . . . . . . . . . . . . . . . 68 | 7.2.4. LISP Map-Server . . . . . . . . . . . . . . . . . . . 68 | |||
| 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 69 | 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 69 | |||
| skipping to change at page 6, line 19 ¶ | skipping to change at page 6, line 19 ¶ | |||
| | +--rw site-id? uint64 | | +--rw site-id? uint64 | |||
| | +--rw xtr-id? lisp:xtr-id-type | | +--rw xtr-id? lisp:xtr-id-type | |||
| +--rw virtual-networks | +--rw virtual-networks | |||
| +--rw virtual-network* [vni] | +--rw virtual-network* [vni] | |||
| +--rw vni lcaf:instance-id-type | +--rw vni lcaf:instance-id-type | |||
| +--rw ni-name? | +--rw ni-name? | |||
| -> /ni:network-instances/network-instance/name | -> /ni:network-instances/network-instance/name | |||
| 2.2. Module Definition | 2.2. Module Definition | |||
| <CODE BEGINS> file "ietf-lisp@2018-06-29.yang" | <CODE BEGINS> file "ietf-lisp@2018-11-04.yang" | |||
| module ietf-lisp { | module ietf-lisp { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-lisp"; | namespace "urn:ietf:params:xml:ns:yang:ietf-lisp"; | |||
| prefix lisp; | prefix lisp; | |||
| import ietf-interfaces { | import ietf-interfaces { | |||
| prefix if; | prefix if; | |||
| reference | reference | |||
| skipping to change at page 7, line 43 ¶ | skipping to change at page 7, line 43 ¶ | |||
| 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. | |||
| "; | "; | |||
| reference "RFC XXXX"; | reference "RFC XXXX"; | |||
| revision 2018-06-29 { | revision 2018-11-04 { | |||
| description | description | |||
| "Initial revision."; | "Initial revision."; | |||
| reference | reference | |||
| "https://tools.ietf.org/html/rfc6830"; | "https://tools.ietf.org/html/rfc6830"; | |||
| } | } | |||
| /* | /* | |||
| * Identity definitions | * Identity definitions | |||
| */ | */ | |||
| identity lisp { | identity lisp { | |||
| skipping to change at page 13, line 18 ¶ | skipping to change at page 13, line 18 ¶ | |||
| } | } | |||
| grouping mappings { | grouping mappings { | |||
| description | description | |||
| "Group that defines a list of LISP mappings."; | "Group that defines a list of LISP mappings."; | |||
| list virtual-network { | list virtual-network { | |||
| key "vni"; | key "vni"; | |||
| description | description | |||
| "Virtual network to which the mappings belong."; | "Virtual network to which the mappings belong."; | |||
| leaf vni { | leaf vni { | |||
| type lcaf:instance-id-type; | type leafref { | |||
| path "/rt:routing/rt:control-plane-protocols" | ||||
| + "/rt:control-plane-protocol/lisp:lisp" | ||||
| + "/lisp:virtual-networks/lisp:virtual-network" | ||||
| + "/lisp:vni"; | ||||
| } | ||||
| description | description | |||
| "Virtual network identifier."; | "Virtual network identifier."; | |||
| } | } | |||
| container mappings { | container mappings { | |||
| description | description | |||
| "Mappings within the virtual network."; | "Mappings within the virtual network."; | |||
| list mapping { | list mapping { | |||
| key "id"; | key "id"; | |||
| description | description | |||
| "List of EID to RLOCs mappings."; | "List of EID to RLOCs mappings."; | |||
| skipping to change at page 15, line 32 ¶ | skipping to change at page 15, line 38 ¶ | |||
| container virtual-networks { | container virtual-networks { | |||
| when "../lisp-role/lisp-role-type = 'itr' or | when "../lisp-role/lisp-role-type = 'itr' or | |||
| ../lisp-role/lisp-role-type = 'pitr' or | ../lisp-role/lisp-role-type = 'pitr' or | |||
| ../lisp-role/lisp-role-type = 'etr' or | ../lisp-role/lisp-role-type = 'etr' or | |||
| ../lisp-role/lisp-role-type = 'petr'" { | ../lisp-role/lisp-role-type = 'petr'" { | |||
| description "Only when ITR, PITR, ETR or PETR."; | description "Only when ITR, PITR, ETR or PETR."; | |||
| } | } | |||
| description "Virtual networks"; | description "Virtual networks"; | |||
| list virtual-network { | list virtual-network { | |||
| key vni; | key vni; | |||
| unique "ni-name"; | ||||
| description "List of virtual networks"; | description "List of virtual networks"; | |||
| leaf vni { | leaf vni { | |||
| type lcaf:instance-id-type; | type lcaf:instance-id-type; | |||
| description | description | |||
| "Virtual network identifier"; | "Virtual network identifier"; | |||
| } | } | |||
| leaf ni-name { | leaf ni-name { | |||
| type leafref { | type leafref { | |||
| path "/ni:network-instances/ni:network-instance/ni:name"; | path "/ni:network-instances/ni:network-instance/ni:name"; | |||
| } | } | |||
| mandatory true; | ||||
| description | description | |||
| "Name of Network Instance (e.g. VRF) to which a VNI is | "Name of Network Instance (e.g. VRF) to which a VNI is | |||
| bound. Each VNI is bound to a different Network | bound. Each VNI is bound to a different Network | |||
| Instance"; | Instance"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| <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 | |||
| skipping to change at page 27, line 47 ¶ | skipping to change at page 28, line 10 ¶ | |||
| | | service-path-id-type | | | service-path-id-type | |||
| | +--rw service-index? uint8 | | +--rw service-index? uint8 | |||
| +--rw rlocs? leafref | +--rw rlocs? leafref | |||
| +--rw record-ttl? uint32 | +--rw record-ttl? uint32 | |||
| +--rw want-map-notify? boolean | +--rw want-map-notify? boolean | |||
| +--rw proxy-reply? boolean | +--rw proxy-reply? boolean | |||
| +--rw registration-interval? uint16 | +--rw registration-interval? uint16 | |||
| 4.2. Module Definition | 4.2. Module Definition | |||
| <CODE BEGINS> file "ietf-lisp-etr@2018-06-29.yang" | <CODE BEGINS> file "ietf-lisp-etr@2018-09-06.yang" | |||
| module ietf-lisp-etr { | module ietf-lisp-etr { | |||
| yang-version 1.1; | 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 | // RFC Ed.: replace occurences of XXXX with actual RFC number | |||
| // and remove this note | // and remove this note | |||
| import ietf-lisp { | import ietf-lisp { | |||
| prefix lisp; | prefix lisp; | |||
| reference "RFC XXXX: LISP YANG model"; | reference "RFC XXXX: LISP YANG model"; | |||
| } | } | |||
| import ietf-lisp-address-types { | import ietf-lisp-address-types { | |||
| prefix lcaf; | prefix lcaf; | |||
| skipping to change at page 29, line 14 ¶ | skipping to change at page 29, line 26 ¶ | |||
| 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. | |||
| "; | "; | |||
| reference "RFC XXXX"; | reference "RFC XXXX"; | |||
| revision 2018-06-29 { | revision 2018-09-06 { | |||
| description | description | |||
| "Initial revision."; | "Initial revision."; | |||
| reference | reference | |||
| "https://tools.ietf.org/html/rfc6830"; | "https://tools.ietf.org/html/rfc6830"; | |||
| } | } | |||
| augment "/rt:routing/rt:control-plane-protocols" | augment "/rt:routing/rt:control-plane-protocols" | |||
| + "/rt:control-plane-protocol/lisp:lisp" { | + "/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 | |||
| skipping to change at page 30, line 28 ¶ | skipping to change at page 30, line 40 ¶ | |||
| description | description | |||
| "Container exists only when LISP device type is ETR."; | "Container exists only when LISP device type is ETR."; | |||
| } | } | |||
| description | description | |||
| "Virtual networks served by the ETR."; | "Virtual networks served by the ETR."; | |||
| list virtual-network { | list virtual-network { | |||
| key "vni"; | key "vni"; | |||
| description | description | |||
| "Virtual network for local-EIDs."; | "Virtual network for local-EIDs."; | |||
| leaf vni { | leaf vni { | |||
| type lcaf:instance-id-type; | type leafref { | |||
| path "/rt:routing/rt:control-plane-protocols" | ||||
| + "/rt:control-plane-protocol/lisp:lisp" | ||||
| + "/lisp:virtual-networks/lisp:virtual-network" | ||||
| + "/lisp:vni"; | ||||
| } | ||||
| description | description | |||
| "Virtual network identifier."; | "Virtual network identifier."; | |||
| } | } | |||
| container eids { | container eids { | |||
| description | description | |||
| "EIDs served by the ETR."; | "EIDs served by the ETR."; | |||
| list local-eid { | list local-eid { | |||
| key "id"; | key "id"; | |||
| min-elements 1; | ||||
| description | description | |||
| "List of local EIDs."; | "List of local EIDs."; | |||
| leaf id { | leaf id { | |||
| type lisp:eid-id; | type lisp:eid-id; | |||
| 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 | |||
| End of changes. 19 change blocks. | ||||
| 16 lines changed or deleted | 28 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/ | ||||