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