draft-ietf-lisp-yang-00.txt | draft-ietf-lisp-yang-01.txt | |||
---|---|---|---|---|
Network Working Group V. Ermagan | Network Working Group V. Ermagan | |||
Internet-Draft Cisco Systems | Internet-Draft Cisco Systems | |||
Intended status: Experimental A. Rodriguez-Natal | Intended status: Experimental A. Rodriguez-Natal | |||
Expires: March 4, 2016 F. Coras | Expires: June 19, 2016 F. Coras | |||
Technical University of Catalonia | Technical University of Catalonia | |||
C. Moberg | C. Moberg | |||
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 | |||
September 1, 2015 | December 17, 2015 | |||
LISP Configuration YANG Model | LISP Configuration YANG Model | |||
draft-ietf-lisp-yang-00 | draft-ietf-lisp-yang-01 | |||
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). | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
skipping to change at page 1, line 39 | skipping to change at page 1, line 39 | |||
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 http://datatracker.ietf.org/drafts/current/. | Drafts is at http://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 March 4, 2016. | This Internet-Draft will expire on June 19, 2016. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2015 IETF Trust and the persons identified as the | Copyright (c) 2015 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 | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://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 | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
2. LISP Module . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. LISP Module . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2.1. Module Structure . . . . . . . . . . . . . . . . . . . . 3 | 2.1. Module Structure . . . . . . . . . . . . . . . . . . . . 3 | |||
2.2. Module Definition . . . . . . . . . . . . . . . . . . . . 3 | 2.2. Module Definition . . . . . . . . . . . . . . . . . . . . 3 | |||
3. LISP-ITR Module . . . . . . . . . . . . . . . . . . . . . . . 9 | 3. LISP-ITR Module . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
3.1. Module Structure . . . . . . . . . . . . . . . . . . . . 9 | 3.1. Module Structure . . . . . . . . . . . . . . . . . . . . 9 | |||
3.2. Module Definition . . . . . . . . . . . . . . . . . . . . 22 | 3.2. Module Definition . . . . . . . . . . . . . . . . . . . . 22 | |||
4. LISP ETR Module . . . . . . . . . . . . . . . . . . . . . . . 26 | 4. LISP ETR Module . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
4.1. Module Structure . . . . . . . . . . . . . . . . . . . . 26 | 4.1. Module Structure . . . . . . . . . . . . . . . . . . . . 26 | |||
4.2. Module Definition . . . . . . . . . . . . . . . . . . . . 30 | 4.2. Module Definition . . . . . . . . . . . . . . . . . . . . 30 | |||
5. LISP Map Server Module . . . . . . . . . . . . . . . . . . . 32 | 5. LISP Map Server Module . . . . . . . . . . . . . . . . . . . 33 | |||
5.1. Module Structure . . . . . . . . . . . . . . . . . . . . 33 | 5.1. Module Structure . . . . . . . . . . . . . . . . . . . . 33 | |||
5.2. Module Definition . . . . . . . . . . . . . . . . . . . . 43 | 5.2. Module Definition . . . . . . . . . . . . . . . . . . . . 43 | |||
6. LISP Map Resolver Module . . . . . . . . . . . . . . . . . . 47 | 6. LISP Map Resolver Module . . . . . . . . . . . . . . . . . . 47 | |||
6.1. Module Structure . . . . . . . . . . . . . . . . . . . . 47 | 6.1. Module Structure . . . . . . . . . . . . . . . . . . . . 48 | |||
6.2. Module Definition . . . . . . . . . . . . . . . . . . . . 48 | 6.2. Module Definition . . . . . . . . . . . . . . . . . . . . 48 | |||
7. LISP Proxy ITR Module . . . . . . . . . . . . . . . . . . . . 49 | 7. LISP Proxy ITR Module . . . . . . . . . . . . . . . . . . . . 50 | |||
7.1. Module Structure . . . . . . . . . . . . . . . . . . . . 50 | 7.1. Module Structure . . . . . . . . . . . . . . . . . . . . 50 | |||
7.2. Module Definition . . . . . . . . . . . . . . . . . . . . 59 | 7.2. Module Definition . . . . . . . . . . . . . . . . . . . . 59 | |||
8. LISP Proxy ETR Module . . . . . . . . . . . . . . . . . . . . 62 | 8. LISP Proxy ETR Module . . . . . . . . . . . . . . . . . . . . 62 | |||
8.1. Module Structure . . . . . . . . . . . . . . . . . . . . 62 | 8.1. Module Structure . . . . . . . . . . . . . . . . . . . . 62 | |||
8.2. Module Definition . . . . . . . . . . . . . . . . . . . . 64 | 8.2. Module Definition . . . . . . . . . . . . . . . . . . . . 64 | |||
9. LISP Address Types . . . . . . . . . . . . . . . . . . . . . 66 | 9. LISP Address Types . . . . . . . . . . . . . . . . . . . . . 66 | |||
9.1. Module Definition . . . . . . . . . . . . . . . . . . . . 66 | 9.1. Module Definition . . . . . . . . . . . . . . . . . . . . 66 | |||
10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 78 | 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 80 | |||
11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 78 | 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 80 | |||
12. Security Considerations . . . . . . . . . . . . . . . . . . . 78 | 12. Security Considerations . . . . . . . . . . . . . . . . . . . 80 | |||
13. Normative References . . . . . . . . . . . . . . . . . . . . 78 | 13. Normative References . . . . . . . . . . . . . . . . . . . . 80 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 79 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 81 | |||
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. | |||
2. LISP Module | 2. LISP Module | |||
skipping to change at page 3, line 27 | skipping to change at page 3, line 27 | |||
| +--rw id string | | +--rw id string | |||
| +--rw enabled? boolean | | +--rw enabled? boolean | |||
+--ro lisp-state | +--ro lisp-state | |||
+--ro devices | +--ro devices | |||
+--ro device* [type id] | +--ro device* [type id] | |||
+--ro type device-ref | +--ro type device-ref | |||
+--ro id string | +--ro id string | |||
2.2. Module Definition | 2.2. Module Definition | |||
<CODE BEGINS> file "ietf-lisp@2014-12-19.yang" | ||||
module ietf-lisp { | module ietf-lisp { | |||
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; | |||
} | } | |||
import lisp-address-types { | import ietf-lisp-address-types { | |||
prefix lcaf; | prefix lcaf; | |||
} | } | |||
organization | organization | |||
"IETF LISP (Locator/ID Separation Protocol) Working Group"; | "IETF LISP (Locator/ID Separation Protocol) Working Group"; | |||
contact | contact | |||
"lisp@ietf.org"; | "lisp@ietf.org"; | |||
description | description | |||
"This YANG module defines the generic configuration | "This YANG module defines the generic configuration | |||
and operational data for LISP. The module can be extended by | and operational data for LISP. The module can be extended by | |||
vendors to define vendor-specific LISP configuration | vendors to define vendor-specific LISP configuration | |||
skipping to change at page 9, line 16 | skipping to change at page 9, line 16 | |||
leaf id { | leaf id { | |||
type string; | type string; | |||
description | description | |||
"Name of LISP device."; | "Name of LISP device."; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
<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: lisp-itr | module: ietf-lisp-itr | |||
augment /lisp:lisp/lisp:devices/lisp:device: | augment /lisp:lisp/lisp:devices/lisp:device: | |||
+--rw itr-cfg! | +--rw itr-cfg! | |||
+--rw rloc-probing! | +--rw rloc-probing! | |||
| +--rw interval? uint16 | | +--rw interval? uint16 | |||
| +--rw retries? uint8 | | +--rw retries? uint8 | |||
| +--rw retries-interval? uint16 | | +--rw retries-interval? uint16 | |||
+--rw itr-rlocs | +--rw itr-rlocs | |||
| +--rw itr-rloc* [id] | | +--rw itr-rloc* [id] | |||
| +--rw id string | | +--rw id string | |||
| +--rw address | | +--rw address | |||
skipping to change at page 22, line 17 | skipping to change at page 22, line 19 | |||
| +--ro sourc-dest-key | | +--ro sourc-dest-key | |||
| +--ro source? inet:ip-prefix | | +--ro source? inet:ip-prefix | |||
| +--ro dest? inet:ip-prefix | | +--ro dest? inet:ip-prefix | |||
+--ro priority? uint8 | +--ro priority? uint8 | |||
+--ro weight? uint8 | +--ro weight? uint8 | |||
+--ro multicast-priority? uint8 | +--ro multicast-priority? uint8 | |||
+--ro multicast-weight? uint8 | +--ro multicast-weight? uint8 | |||
3.2. Module Definition | 3.2. Module Definition | |||
module lisp-itr { | <CODE BEGINS> file "ietf-lisp-itr@2015-07-02.yang" | |||
namespace "urn:ietf:params:xml:ns:yang:lisp-itr"; | module ietf-lisp-itr { | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-itr"; | ||||
prefix lisp-itr; | prefix lisp-itr; | |||
import ietf-lisp { | import ietf-lisp { | |||
prefix lisp; | prefix lisp; | |||
} | } | |||
import lisp-address-types { | import ietf-lisp-address-types { | |||
prefix lcaf; | prefix lcaf; | |||
} | } | |||
import ietf-inet-types { | import ietf-inet-types { | |||
prefix inet; | prefix inet; | |||
} | } | |||
organization | organization | |||
"IETF LISP (Locator/ID Separation Protocol) Working Group"; | "IETF LISP (Locator/ID Separation Protocol) Working Group"; | |||
contact | contact | |||
"lisp@ietf.org"; | "lisp@ietf.org"; | |||
description | description | |||
skipping to change at page 26, line 21 | skipping to change at page 26, line 24 | |||
description | description | |||
"ITR state."; | "ITR state."; | |||
container learned-mappings { | container learned-mappings { | |||
uses lisp:mappings; | uses lisp:mappings; | |||
description | description | |||
"EID to RLOCs mappings cache."; | "EID to RLOCs mappings cache."; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
<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: lisp-etr | module: ietf-lisp-etr | |||
augment /lisp:lisp/lisp:devices/lisp:device: | augment /lisp:lisp/lisp:devices/lisp:device: | |||
+--rw etr-cfg! | +--rw etr-cfg! | |||
+--rw local-eids | +--rw local-eids | |||
+--rw local-eid* [id] | +--rw local-eid* [id] | |||
+--rw id lisp:eid-id | +--rw id lisp:eid-id | |||
+--rw eid-address | +--rw eid-address | |||
| +--rw afi lisp-address-family-ref | | +--rw afi lisp-address-family-ref | |||
| +--rw instance-id? instance-id-type | | +--rw instance-id? instance-id-type | |||
| +--rw (address)? | | +--rw (address)? | |||
| +--:(ipv4) | | +--:(ipv4) | |||
skipping to change at page 30, line 7 | skipping to change at page 30, line 8 | |||
| +--rw weight? uint8 | | +--rw weight? uint8 | |||
| +--rw multicast-priority? uint8 | | +--rw multicast-priority? uint8 | |||
| +--rw multicast-weight? uint8 | | +--rw multicast-weight? uint8 | |||
+--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 | |||
module lisp-etr { | <CODE BEGINS> file "ietf-lisp-etr@2015-07-02.yang" | |||
namespace "urn:ietf:params:xml:ns:yang:lisp-etr"; | module ietf-lisp-etr { | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-etr"; | ||||
prefix lisp-etr; | prefix lisp-etr; | |||
import ietf-lisp { | import ietf-lisp { | |||
prefix lisp; | prefix lisp; | |||
} | } | |||
import lisp-address-types { | import ietf-lisp-address-types { | |||
prefix lcaf; | prefix lcaf; | |||
} | } | |||
import ietf-inet-types { | import ietf-inet-types { | |||
prefix inet; | prefix inet; | |||
} | } | |||
organization | organization | |||
"IETF LISP (Locator/ID Separation Protocol) Working Group"; | "IETF LISP (Locator/ID Separation Protocol) Working Group"; | |||
contact | contact | |||
"lisp@ietf.org"; | "lisp@ietf.org"; | |||
description | description | |||
"This YANG module defines the generic configuration | "This YANG module defines the generic configuration | |||
data for a LISP ETR. The module can be extended by vendors | data for a LISP ETR. The module can be extended by vendors | |||
to define vendor-specific configuration parameters and | to define vendor-specific configuration parameters and | |||
policies. | policies. | |||
Copyright (c) 2015 IETF Trust and the persons identified as | Copyright (c) 2015 IETF Trust and the persons identified as | |||
authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
skipping to change at page 32, line 45 | skipping to change at page 32, line 48 | |||
units "seconds"; | units "seconds"; | |||
default "60"; | default "60"; | |||
description | description | |||
"Interval between consecutive Map-Register messages."; | "Interval between consecutive Map-Register messages."; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
<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: lisp-map-server | module: ietf-lisp-mapserver | |||
augment /lisp:lisp/lisp:devices/lisp:device: | augment /lisp:lisp/lisp:devices/lisp:device: | |||
+--rw map-server-cfg! | +--rw map-server-cfg! | |||
+--rw sites | +--rw sites | |||
| +--rw site* [site-id] | | +--rw site* [site-id] | |||
| +--rw site-id uint64 | | +--rw site-id uint64 | |||
| +--rw devices | | +--rw devices | |||
| +--rw device* [device-id] | | +--rw device* [device-id] | |||
| +--rw device-id uint64 | | +--rw device-id uint64 | |||
| +--rw auth-key | | +--rw auth-key | |||
| | +--rw auth-key-value? string | | | +--rw auth-key-value? string | |||
skipping to change at page 43, line 11 | skipping to change at page 43, line 17 | |||
| +--ro sourc-dest-key | | +--ro sourc-dest-key | |||
| +--ro source? inet:ip-prefix | | +--ro source? inet:ip-prefix | |||
| +--ro dest? inet:ip-prefix | | +--ro dest? inet:ip-prefix | |||
+--ro priority? uint8 | +--ro priority? uint8 | |||
+--ro weight? uint8 | +--ro weight? uint8 | |||
+--ro multicast-priority? uint8 | +--ro multicast-priority? uint8 | |||
+--ro multicast-weight? uint8 | +--ro multicast-weight? uint8 | |||
5.2. Module Definition | 5.2. Module Definition | |||
module lisp-map-server { | <CODE BEGINS> file "ietf-lisp-mapserver@2015-07-02.yang" | |||
namespace "urn:ietf:params:xml:ns:yang:lisp-map-server"; | module ietf-lisp-mapserver { | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-mapserver"; | ||||
prefix lisp-ms; | prefix lisp-ms; | |||
import ietf-lisp { | import ietf-lisp { | |||
prefix lisp; | prefix lisp; | |||
} | } | |||
import lisp-address-types { | import ietf-lisp-address-types { | |||
prefix lcaf; | prefix lcaf; | |||
} | } | |||
import ietf-inet-types { | import ietf-inet-types { | |||
prefix inet; | prefix inet; | |||
} | } | |||
organization | organization | |||
"IETF LISP (Locator/ID Separation Protocol) Working Group"; | "IETF LISP (Locator/ID Separation Protocol) Working Group"; | |||
contact | contact | |||
"lisp@ietf.org"; | "lisp@ietf.org"; | |||
description | description | |||
skipping to change at page 44, line 36 | skipping to change at page 44, line 43 | |||
list site { | list site { | |||
key "site-id"; | key "site-id"; | |||
description | description | |||
"List of sites for which the Map-Server acceptes | "List of sites for which the Map-Server acceptes | |||
registrations."; | registrations."; | |||
leaf site-id { | leaf site-id { | |||
type uint64; | type uint64; | |||
description | description | |||
"Site identifier."; | "Site identifier."; | |||
} | } | |||
//VINA: can be augmented to have below for per site auth-key | //Can be augmented to have below for per site auth-key | |||
// leaf auth-key { | // leaf auth-key { | |||
// description "clear text authentication key"; | // description "clear text authentication key"; | |||
// type string; | // type string; | |||
// } | // } | |||
container devices { | container devices { | |||
description | description | |||
"Site devices registered with the Map-Server."; | "Site devices registered with the Map-Server."; | |||
list device { | list device { | |||
key "device-id"; | key "device-id"; | |||
description | description | |||
skipping to change at page 46, line 4 | skipping to change at page 46, line 11 | |||
can be registered."; | can be registered."; | |||
} | } | |||
leaf mapping-expiration-timeout { | leaf mapping-expiration-timeout { | |||
type int16; | type int16; | |||
units "seconds"; | units "seconds"; | |||
default "180"; //3 times the mapregister int | default "180"; //3 times the mapregister int | |||
description | description | |||
"Time before mapping is expired if no new | "Time before mapping is expired if no new | |||
registrations are received."; | registrations are received."; | |||
} | } | |||
// Can be augmented to have below for per-eid auth-key | ||||
// VINA: can be augmented to have below for per-eid auth-key | ||||
// leaf auth-key { | // leaf auth-key { | |||
// description "clear text authentication key"; | // description "clear text authentication key"; | |||
// type string; | // type string; | |||
// } | // } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
skipping to change at page 47, line 35 | skipping to change at page 47, line 41 | |||
description | description | |||
"Map-Server state."; | "Map-Server state."; | |||
container registered-mappings { | container registered-mappings { | |||
uses lisp:mappings; | uses lisp:mappings; | |||
description | description | |||
"Datastore of registred mappings."; | "Datastore of registred mappings."; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
<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: lisp-map-resolver | module: ietf-lisp-mapresolver | |||
augment /lisp:lisp/lisp:devices/lisp:device: | augment /lisp:lisp/lisp:devices/lisp:device: | |||
+--rw map-resolver-cfg! | +--rw map-resolver-cfg! | |||
+--rw (mapping-system) | +--rw (mapping-system) | |||
+--:(ddt-mapping-system) | +--:(ddt-mapping-system) | |||
| +--rw ddt-mapping-system! | | +--rw ddt-mapping-system! | |||
| +--rw ddt-root* inet:ip-address | | +--rw ddt-root* inet:ip-address | |||
+--:(alt-mapping-system) | +--:(alt-mapping-system) | |||
+--rw alt-mapping-system! | +--rw alt-mapping-system! | |||
6.2. Module Definition | 6.2. Module Definition | |||
module lisp-map-resolver { | <CODE BEGINS> file "ietf-lisp-mapresolver@2015-07-02.yang" | |||
namespace "urn:ietf:params:xml:ns:yang:lisp-map-resolver"; | module ietf-lisp-mapresolver { | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-mapresolver"; | ||||
prefix lisp-mr; | prefix lisp-mr; | |||
import ietf-lisp { | import ietf-lisp { | |||
prefix lisp; | prefix lisp; | |||
} | } | |||
import ietf-inet-types { | import ietf-inet-types { | |||
prefix inet; | prefix inet; | |||
} | } | |||
organization | organization | |||
"IETF LISP (Locator/ID Separation Protocol) Working Group"; | "IETF LISP (Locator/ID Separation Protocol) Working Group"; | |||
contact | contact | |||
skipping to change at page 49, line 34 | skipping to change at page 49, line 47 | |||
"List of DDT root addresses."; | "List of DDT root addresses."; | |||
} | } | |||
} | } | |||
container alt-mapping-system{ | container alt-mapping-system{ | |||
presence "ALT Mapping System in use"; | presence "ALT Mapping System in use"; | |||
description | description | |||
"ALT mapping system interface."; | "ALT mapping system interface."; | |||
// TBD | // TBD | |||
} | } | |||
} | } | |||
// VE: move to operational model/container | ||||
// container mappings { | ||||
// config false; | ||||
// uses mappings; | ||||
// } | ||||
} | } | |||
} | } | |||
// FC : should we add as operational data | ||||
// cached mappings? | ||||
} | } | |||
<CODE ENDS> | ||||
7. LISP Proxy ITR Module | 7. LISP Proxy ITR Module | |||
This module captures the configuration data model of a LISP Proxy ITR | This module captures the configuration data model of a LISP Proxy ITR | |||
[RFC6832]. The model may also capture some operational data | [RFC6832]. The model may also capture some operational data | |||
elements. | elements. | |||
7.1. Module Structure | 7.1. Module Structure | |||
module: lisp-pitr | module: ietf-lisp-pitr | |||
augment /lisp:lisp/lisp:devices/lisp:device: | augment /lisp:lisp/lisp:devices/lisp:device: | |||
+--rw proxy-itr-cfg! | +--rw proxy-itr-cfg! | |||
+--rw servicing-eids | +--rw servicing-eids | |||
| +--rw eid* [id] | | +--rw eid* [id] | |||
| +--rw id lisp:eid-id | | +--rw id lisp:eid-id | |||
| +--rw eid-address | | +--rw eid-address | |||
| +--rw afi lisp-address-family-ref | | +--rw afi lisp-address-family-ref | |||
| +--rw instance-id? instance-id-type | | +--rw instance-id? instance-id-type | |||
| +--rw (address)? | | +--rw (address)? | |||
| +--:(ipv4) | | +--:(ipv4) | |||
skipping to change at page 59, line 43 | skipping to change at page 59, line 49 | |||
| +--ro sourc-dest-key | | +--ro sourc-dest-key | |||
| +--ro source? inet:ip-prefix | | +--ro source? inet:ip-prefix | |||
| +--ro dest? inet:ip-prefix | | +--ro dest? inet:ip-prefix | |||
+--ro priority? uint8 | +--ro priority? uint8 | |||
+--ro weight? uint8 | +--ro weight? uint8 | |||
+--ro multicast-priority? uint8 | +--ro multicast-priority? uint8 | |||
+--ro multicast-weight? uint8 | +--ro multicast-weight? uint8 | |||
7.2. Module Definition | 7.2. Module Definition | |||
module lisp-pitr { | <CODE BEGINS> file "ietf-lisp-pitr@2015-07-02.yang" | |||
namespace "urn:ietf:params:xml:ns:yang:lisp-pitr"; | module ietf-lisp-pitr { | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-pitr"; | ||||
prefix lisp-pitr; | prefix lisp-pitr; | |||
import ietf-lisp { | import ietf-lisp { | |||
prefix lisp; | prefix lisp; | |||
} | } | |||
import lisp-address-types { | import ietf-lisp-address-types { | |||
prefix lcaf; | prefix lcaf; | |||
} | } | |||
import ietf-inet-types { | import ietf-inet-types { | |||
prefix inet; | prefix inet; | |||
} | } | |||
organization | organization | |||
"IETF LISP (Locator/ID Separation Protocol) Working Group"; | "IETF LISP (Locator/ID Separation Protocol) Working Group"; | |||
contact | contact | |||
"lisp@ietf.org"; | "lisp@ietf.org"; | |||
description | description | |||
skipping to change at page 62, line 29 | skipping to change at page 62, line 36 | |||
description | description | |||
"ITR state."; | "ITR state."; | |||
container learned-mappings { | container learned-mappings { | |||
uses lisp:mappings; | uses lisp:mappings; | |||
description | description | |||
"EID to RLOCs mappings cache."; | "EID to RLOCs mappings cache."; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
<CODE ENDS> | ||||
8. LISP Proxy ETR Module | 8. LISP Proxy ETR Module | |||
This module captures the configuration data model of a LISP Proxy ETR | This module captures the configuration data model of a LISP Proxy ETR | |||
[RFC6832]. The model may also capture some operational data | [RFC6832]. The model may also capture some operational data | |||
elements. | elements. | |||
8.1. Module Structure | 8.1. Module Structure | |||
module: lisp-petr | module: ietf-lisp-petr | |||
augment /lisp:lisp/lisp:devices/lisp:device: | augment /lisp:lisp/lisp:devices/lisp:device: | |||
+--rw proxy-etr-cfg! | +--rw proxy-etr-cfg! | |||
+--rw servicing-eids | +--rw servicing-eids | |||
+--rw eid* [id] | +--rw eid* [id] | |||
+--rw id lisp:eid-id | +--rw id lisp:eid-id | |||
+--rw eid-address | +--rw eid-address | |||
+--rw afi lisp-address-family-ref | +--rw afi lisp-address-family-ref | |||
+--rw instance-id? instance-id-type | +--rw instance-id? instance-id-type | |||
+--rw (address)? | +--rw (address)? | |||
+--:(ipv4) | +--:(ipv4) | |||
skipping to change at page 64, line 20 | skipping to change at page 64, line 28 | |||
| +--rw hop* [address] | | +--rw hop* [address] | |||
| +--rw address simple-address | | +--rw address simple-address | |||
| +--rw lrs-bits? bits | | +--rw lrs-bits? bits | |||
+--:(sourc-dest-key) | +--:(sourc-dest-key) | |||
+--rw sourc-dest-key | +--rw sourc-dest-key | |||
+--rw source? inet:ip-prefix | +--rw source? inet:ip-prefix | |||
+--rw dest? inet:ip-prefix | +--rw dest? inet:ip-prefix | |||
8.2. Module Definition | 8.2. Module Definition | |||
module lisp-petr { | <CODE BEGINS> file "ietf-lisp-petr@2015-07-02.yang" | |||
namespace "urn:ietf:params:xml:ns:yang:lisp-petr"; | module ietf-lisp-petr { | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-petr"; | ||||
prefix lisp-petr; | prefix lisp-petr; | |||
import ietf-lisp { | import ietf-lisp { | |||
prefix lisp; | prefix lisp; | |||
} | } | |||
import lisp-address-types { | import ietf-lisp-address-types { | |||
prefix lcaf; | prefix lcaf; | |||
} | } | |||
organization | organization | |||
"IETF LISP (Locator/ID Separation Protocol) Working Group"; | "IETF LISP (Locator/ID Separation Protocol) Working Group"; | |||
contact | contact | |||
"lisp@ietf.org"; | "lisp@ietf.org"; | |||
description | description | |||
"This YANG module defines the generic configuration | "This YANG module defines the generic configuration | |||
data for a LISP PETR. The module can be extended by vendors to | data for a LISP PETR. The module can be extended by vendors to | |||
define vendor-specific configuration parameters and policies. | define vendor-specific configuration parameters and policies. | |||
skipping to change at page 65, line 43 | skipping to change at page 66, line 4 | |||
leaf id { | leaf id { | |||
type lisp:eid-id; | type lisp:eid-id; | |||
description | description | |||
"Id of serviced EID."; | "Id of serviced EID."; | |||
} | } | |||
container eid-address { | container eid-address { | |||
uses lcaf:lisp-address; | uses lcaf:lisp-address; | |||
description | description | |||
"Serviced EID in generic LISP address format."; | "Serviced EID in generic LISP address format."; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
<CODE ENDS> | ||||
9. LISP Address Types | 9. LISP Address Types | |||
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. | |||
9.1. Module Definition | 9.1. Module Definition | |||
module lisp-address-types { | <CODE BEGINS> file "ietf-lisp-address-types@2015-11-05.yang" | |||
namespace "urn:ietf:params:xml:ns:yang:lisp-address-types"; | module 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 2010-09-24; | ||||
} | } | |||
import ietf-yang-types { | import ietf-yang-types { | |||
prefix yang; | prefix yang; | |||
//revision-date 2010-09-24; | ||||
} | } | |||
organization | organization | |||
"IETF LISP (Locator/ID Separation Protocol) Working Group"; | "IETF LISP (Locator/ID Separation Protocol) Working Group"; | |||
contact | contact | |||
"lisp@ietf.org"; | "lisp@ietf.org"; | |||
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. | |||
skipping to change at page 66, line 44 | skipping to change at page 67, line 6 | |||
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 6338; see | This version of this YANG module is part of RFC 6338; see | |||
the RFC itself for full legal notices. | the RFC itself for full legal notices. | |||
"; | "; | |||
revision 2015-03-09 { | revision 2015-11-05 { | |||
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 ipv4 { | identity no-address-afi { | |||
base lisp-address-family; | ||||
description | ||||
"IANA Reserved."; | ||||
} | ||||
identity ipv4-afi { | ||||
base lisp-address-family; | base lisp-address-family; | |||
description | description | |||
"IANA IPv4 address family."; | "IANA IPv4 address family."; | |||
} | } | |||
identity ipv6 { | identity ipv4-prefix-afi { | |||
base lisp-address-family; | ||||
description | ||||
"IANA IPv4 address family prefix."; | ||||
} | ||||
identity ipv6-afi { | ||||
base lisp-address-family; | base lisp-address-family; | |||
description | description | |||
"IANA IPv6 address family."; | "IANA IPv6 address family."; | |||
} | } | |||
identity mac { | identity ipv6-prefix-afi { | |||
base lisp-address-family; | ||||
description | ||||
"IANA IPv6 address family prefix."; | ||||
} | ||||
identity mac-afi { | ||||
base lisp-address-family; | base lisp-address-family; | |||
description | description | |||
"IANA MAC address family."; | "IANA MAC address family."; | |||
} | } | |||
identity distinguished-name { | identity distinguished-name-afi { | |||
base lisp-address-family; | base lisp-address-family; | |||
description | description | |||
"IANA Distinguished Name address family."; | "IANA Distinguished Name address family."; | |||
} | } | |||
identity as-number-afi { | ||||
base lisp-address-family; | ||||
description | ||||
"IANA AS Number address family."; | ||||
} | ||||
identity lcaf { | identity lcaf { | |||
base lisp-address-family; | base lisp-address-family; | |||
description | description | |||
"IANA LISP Canonical Address Format address family."; | "IANA LISP Canonical Address Format address family."; | |||
} | } | |||
identity null-address { | identity null-address-lcaf { | |||
base lcaf; | base lcaf; | |||
description | description | |||
"Null body LCAF type."; | "Null body LCAF type."; | |||
} | } | |||
identity afi-list { | identity afi-list-lcaf { | |||
base lcaf; | base lcaf; | |||
description | description | |||
"AFI-List LCAF type."; | "AFI-List LCAF type."; | |||
} | } | |||
identity instance-id { | identity instance-id-lcaf { | |||
base lcaf; | base lcaf; | |||
description | description | |||
"Instance-ID LCAF type."; | "Instance-ID LCAF type."; | |||
} | } | |||
identity as-number { | identity as-number-lcaf { | |||
base lcaf; | base lcaf; | |||
description | description | |||
"AS Number LCAF type."; | "AS Number LCAF type."; | |||
} | } | |||
identity application-data { | identity application-data-lcaf { | |||
base lcaf; | base lcaf; | |||
description | description | |||
"Application Data LCAF type."; | "Application Data LCAF type."; | |||
} | } | |||
identity geo-coordinates { | identity geo-coordinates-lcaf { | |||
base lcaf; | base lcaf; | |||
description | description | |||
"Geo-coordinates LCAF type."; | "Geo-coordinates LCAF type."; | |||
} | } | |||
identity opaque-key { | identity opaque-key-lcaf { | |||
base lcaf; | base lcaf; | |||
description | description | |||
"Opaque Key LCAF type."; | "Opaque Key LCAF type."; | |||
} | } | |||
identity nat-traversal { | identity nat-traversal-lcaf { | |||
base lcaf; | base lcaf; | |||
description | description | |||
"NAT-Traversal LCAF type."; | "NAT-Traversal LCAF type."; | |||
} | } | |||
identity nonce-locator { | identity nonce-locator-lcaf { | |||
base lcaf; | base lcaf; | |||
description | description | |||
"Nonce-Locator LCAF type."; | "Nonce-Locator LCAF type."; | |||
} | } | |||
identity multicast-info { | identity multicast-info-lcaf { | |||
base lcaf; | base lcaf; | |||
description | description | |||
"Multicast Info LCAF type."; | "Multicast Info LCAF type."; | |||
} | } | |||
identity explicit-locator-path { | identity explicit-locator-path-lcaf { | |||
base lcaf; | base lcaf; | |||
description | description | |||
"Explicit Locator Path LCAF type."; | "Explicit Locator Path LCAF type."; | |||
} | } | |||
identity security-key { | identity security-key-lcaf { | |||
base lcaf; | base lcaf; | |||
description | description | |||
"Security Key LCAF type."; | "Security Key LCAF type."; | |||
} | } | |||
identity source-dest-key { | identity source-dest-key-lcaf { | |||
base lcaf; | base lcaf; | |||
description | description | |||
"Source/Dest LCAF type."; | "Source/Dest LCAF type."; | |||
} | } | |||
identity replication-list { | identity replication-list-lcaf { | |||
base lcaf; | base lcaf; | |||
description | description | |||
"Replication-List LCAF type."; | "Replication-List LCAF type."; | |||
} | } | |||
identity json-data-model { | identity json-data-model-lcaf { | |||
base lcaf; | base lcaf; | |||
description | description | |||
"JSON Data Model LCAF type."; | "JSON Data Model LCAF type."; | |||
} | } | |||
identity key-value-address { | identity key-value-address-lcaf { | |||
base lcaf; | base lcaf; | |||
description | description | |||
"Key-Value LCAF type."; | "Key/Value Address LCAF type."; | |||
} | } | |||
identity encapsulation-format { | identity encapsulation-format-lcaf { | |||
base lcaf; | base lcaf; | |||
description | description | |||
"Encapsulation Format LCAF type."; | "Encapsulation Format LCAF type."; | |||
} | } | |||
identity service-path-lcaf { | ||||
base lcaf; | ||||
description | ||||
"Service Path LCAF type."; | ||||
} | ||||
typedef instance-id-type { | typedef instance-id-type { | |||
type uint32 { | type uint32 { | |||
range "0..16777214"; | range "0..16777215"; | |||
} | } | |||
description | description | |||
"Defines the range of values for an Instance ID."; | "Defines the range of values for an Instance ID."; | |||
} | } | |||
typedef simple-address { | typedef service-path-id-type { | |||
type union { | type uint32 { | |||
type inet:ip-address; | range "0..16777215"; | |||
type inet:ip-prefix; | ||||
type yang:mac-address; | ||||
type distinguished-name; | ||||
} | } | |||
description | description | |||
"Union of address types that can be part of LCAFs."; | "Defines the range of values for a Service Path ID."; | |||
} | } | |||
typedef distinguished-name { | typedef distinguished-name-type { | |||
type string; | type string; | |||
description | description | |||
"Distinguished Name address."; | "Distinguished Name address."; | |||
reference | reference | |||
"http://www.iana.org/assignments/address-family-numbers/ | "http://www.iana.org/assignments/address-family-numbers/ | |||
address-family-numbers.xhtml"; | 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 | ||||
"Union of address types that can be part of LCAFs."; | ||||
} | ||||
typedef lisp-address-family-ref { | typedef lisp-address-family-ref { | |||
type identityref { | type identityref { | |||
base lisp-address-family; | base lisp-address-family; | |||
} | } | |||
description | description | |||
"LISP address family reference."; | "LISP address family reference."; | |||
} | } | |||
typedef lcaf-ref { | typedef lcaf-ref { | |||
type identityref { | type identityref { | |||
base lcaf; | base lcaf; | |||
} | } | |||
description | description | |||
"LCAF types reference."; | "LCAF types reference."; | |||
} | } | |||
grouping lcaf-address { | ||||
grouping lisp-address { | ||||
description | description | |||
"Group of all the LCAF types."; | "Generic LISP address."; | |||
leaf lcaf-type { | leaf address-type { | |||
type lcaf-ref; | type lisp-address-family-ref; | |||
mandatory true; | mandatory true; | |||
description | description | |||
"Enumeration of LCAF types."; | "Type of the LISP address."; | |||
} | ||||
leaf virtual-network-id { | ||||
type instance-id-type; | ||||
description | ||||
"Virtual Network Identifier (instance-id) of the address."; | ||||
} | } | |||
choice address { | choice address { | |||
description "The LCAF addresses."; | description | |||
"Various LISP address types, including IP, MAC, and LCAF."; | ||||
leaf no-address { | ||||
when "../../address-type = 'laddr:no-addr-afi'" { | ||||
description | ||||
"When AFI is 0."; | ||||
} | ||||
type empty; | ||||
description | ||||
"No address."; | ||||
} | ||||
leaf ipv4 { | ||||
when "../../address-type = 'laddr:ipv4-afi'" { | ||||
description | ||||
"When AFI is IPv4."; | ||||
} | ||||
type inet:ipv4-address; | ||||
description | ||||
"IPv4 address."; | ||||
} | ||||
leaf ipv4-prefix { | ||||
when "../../address-type = 'laddr:ipv4-prefix-afi'" { | ||||
description | ||||
"When AFI is IPv4."; | ||||
} | ||||
type inet:ipv4-prefix; | ||||
description | ||||
"IPv4 prefix."; | ||||
} | ||||
leaf ipv6 { | ||||
when "../../address-type = 'laddr:ipv6-afi'" { | ||||
description | ||||
"When AFI is IPv6."; | ||||
} | ||||
type inet:ipv6-address; | ||||
description | ||||
"IPv6 address."; | ||||
} | ||||
leaf ipv6-prefix { | ||||
when "../../address-type = 'laddr:ipv6-prefix-afi'" { | ||||
description | ||||
"When AFI is IPv6."; | ||||
} | ||||
type inet:ipv6-prefix; | ||||
description | ||||
"IPv6 address."; | ||||
} | ||||
leaf mac { | ||||
when "../../address-type = 'laddr:mac-afi'" { | ||||
description | ||||
"When AFI is MAC."; | ||||
} | ||||
type yang:mac-address; | ||||
description | ||||
"MAC address."; | ||||
} | ||||
leaf distinguished-name { | ||||
when "../../address-type = 'laddr:distinguished-name-afi'" { | ||||
description | ||||
"When AFI is distinguished-name."; | ||||
} | ||||
type distinguished-name-type; | ||||
description | ||||
"Distinguished Name address."; | ||||
} | ||||
leaf as-number { | ||||
when "../../address-type = 'laddr:as-number-afi'" { | ||||
description | ||||
"When AFI is as-number."; | ||||
} | ||||
type inet:as-number; | ||||
description | ||||
"AS Number."; | ||||
} | ||||
container null-address { | container null-address { | |||
when "../../lcaf-type = null" { | when "../../address-type = 'null-address-lcaf'" { | |||
description | description | |||
"When LCAF type is null."; | "When LCAF type is null."; | |||
} | } | |||
description | description | |||
"Null body LCAF type"; | "Null body LCAF type"; | |||
leaf address { | leaf address { | |||
type empty; | type empty; | |||
description | description | |||
"AFI address."; | "AFI address."; | |||
} | } | |||
} | } | |||
container afi-list { | container afi-list { | |||
when "../../lcaf-type = afi-list" { | when "../../address-type = 'afi-list-lcaf'" { | |||
description | description | |||
"When LCAF type is AFI-List."; | "When LCAF type is AFI-List."; | |||
} | } | |||
description | description | |||
"AFI-List LCAF type."; | "AFI-List LCAF type."; | |||
reference | reference | |||
"http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | |||
#section-4.16.1"; | #section-4.16.1"; | |||
leaf-list address-list { | leaf-list address-list { | |||
type simple-address; | type simple-address; | |||
description | description | |||
"List of AFI addresses."; | "List of AFI addresses."; | |||
} | } | |||
} | } | |||
container instance-id { | container instance-id { | |||
when "../../lcaf-type = instance-id" { | when "../../address-type = 'instance-id-lcaf'" { | |||
description | description | |||
"When LCAF type is Instance-ID"; | "When LCAF type is Instance-ID"; | |||
} | } | |||
description | description | |||
"Instance ID LCAF type."; | "Instance ID LCAF type."; | |||
reference | reference | |||
"http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | |||
#section-4.2"; | #section-4.2"; | |||
leaf instance-id { | leaf iid { | |||
type instance-id-type; | type instance-id-type; | |||
description | description | |||
"Instance ID value."; | "Instance ID value."; | |||
} | } | |||
leaf mask-length { | leaf mask-length { | |||
type uint8; | type uint8; | |||
description | description | |||
"Mask length."; | "Mask length."; | |||
} | } | |||
leaf address { | leaf address { | |||
type simple-address; | type simple-address; | |||
description | description | |||
"AFI address."; | "AFI address."; | |||
} | } | |||
} | } | |||
container as-number { | container as-number-lcaf { | |||
when "../../lcaf-type = as-number" { | when "../../address-type = 'as-number-lcaf'" { | |||
description | description | |||
"When LCAF type is AS-Number."; | "When LCAF type is AS-Number."; | |||
} | } | |||
description | description | |||
"AS Number LCAF type."; | "AS Number LCAF type."; | |||
reference | reference | |||
"http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | |||
#section-4.3"; | #section-4.3"; | |||
leaf as { | leaf as { | |||
type inet:as-number; | type inet:as-number; | |||
description | description | |||
"AS number."; | "AS number."; | |||
} | } | |||
leaf address { | leaf address { | |||
type simple-address; | type simple-address; | |||
description | description | |||
"AFI address."; | "AFI address."; | |||
} | } | |||
} | } | |||
container application-data { | container application-data { | |||
when "../../lcaf-type = application-data" { | when "../../address-type = 'application-data-lcaf'" { | |||
description | description | |||
"When LCAF type is Application Data."; | "When LCAF type is Application Data."; | |||
} | } | |||
description | description | |||
"Application Data LCAF type."; | "Application Data LCAF type."; | |||
reference | reference | |||
"http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | |||
#section-4.4"; | #section-4.4"; | |||
leaf address { | leaf address { | |||
type simple-address; | type simple-address; | |||
skipping to change at page 72, line 49 | skipping to change at page 75, line 29 | |||
description | description | |||
"Low end of remote port range."; | "Low end of remote port range."; | |||
} | } | |||
leaf remote-port-high { | leaf remote-port-high { | |||
type inet:port-number; | type inet:port-number; | |||
description | description | |||
"High end of remote port range."; | "High end of remote port range."; | |||
} | } | |||
} | } | |||
container geo-coordinates { | container geo-coordinates { | |||
when "../../lcaf-type = geo-coordinates" { | when "../../address-type = 'geo-coordinates-lcaf'" { | |||
description | description | |||
"When LCAF type is Geo-coordinates."; | "When LCAF type is Geo-coordinates."; | |||
} | } | |||
description | description | |||
"Geo-coordinates LCAF type."; | "Geo-coordinates LCAF type."; | |||
reference | reference | |||
"http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | |||
#section-4.5"; | #section-4.5"; | |||
leaf latitude { | leaf latitude { | |||
type bits { | type bits { | |||
bit N { | bit N { | |||
description | description | |||
skipping to change at page 74, line 36 | skipping to change at page 77, line 16 | |||
description | description | |||
"Height relative to sea level in meters."; | "Height relative to sea level in meters."; | |||
} | } | |||
leaf address { | leaf address { | |||
type simple-address; | type simple-address; | |||
description | description | |||
"AFI address."; | "AFI address."; | |||
} | } | |||
} | } | |||
container nat-traversal { | container nat-traversal { | |||
when "../../lcaf-type = nat-traversal" { | when "../../address-type = 'nat-traversal-lcaf'" { | |||
description | description | |||
"When LCAF type is NAT-Traversal."; | "When LCAF type is NAT-Traversal."; | |||
} | } | |||
description | description | |||
"NAT-Traversal LCAF type."; | "NAT-Traversal LCAF type."; | |||
reference | reference | |||
"http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | |||
#section-4.6"; | #section-4.6"; | |||
leaf ms-udp-port { | leaf ms-udp-port { | |||
type uint16; | type uint16; | |||
skipping to change at page 75, line 29 | skipping to change at page 78, line 9 | |||
description | description | |||
"Private ETR RLOC address."; | "Private ETR RLOC address."; | |||
} | } | |||
leaf-list rtr-rlocs { | leaf-list rtr-rlocs { | |||
type simple-address; | type simple-address; | |||
description | description | |||
"List of RTR RLOC addresses."; | "List of RTR RLOC addresses."; | |||
} | } | |||
} | } | |||
container explicit-locator-path { | container explicit-locator-path { | |||
when "../../lcaf-type = explicit-locator-path" { | when "../../address-type = 'explicit-locator-path-lcaf'" { | |||
description | description | |||
"When LCAF type type is Explicit Locator Path."; | "When LCAF type type is Explicit Locator Path."; | |||
} | } | |||
description | description | |||
"Explicit Locator Path LCAF type."; | "Explicit Locator Path LCAF type."; | |||
reference | reference | |||
"http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | |||
#section-4.9"; | #section-4.9"; | |||
list hop { | list hop { | |||
key "address"; | key "hop-id"; | |||
ordered-by user; | ||||
description | description | |||
"List of locator hops forming the explicit path."; | "List of locator hops forming the explicit path."; | |||
leaf hop-id { | ||||
type string; | ||||
description | ||||
"Unique identifier for the hop."; | ||||
} | ||||
leaf address { | leaf address { | |||
type simple-address; | type simple-address; | |||
description | description | |||
"AFI address."; | "AFI address."; | |||
} | } | |||
leaf lrs-bits { | leaf lrs-bits { | |||
type bits{ | type bits{ | |||
bit lookup { | bit lookup { | |||
description | description | |||
"Lookup bit."; | "Lookup bit."; | |||
skipping to change at page 76, line 19 | skipping to change at page 79, line 4 | |||
} | } | |||
bit strict { | bit strict { | |||
description | description | |||
"Strict bit."; | "Strict bit."; | |||
} | } | |||
} | } | |||
description | description | |||
"Flag bits per hop."; | "Flag bits per hop."; | |||
} | } | |||
} | } | |||
} | } | |||
container sourc-dest-key { | container source-dest-key { | |||
when "../../lcaf-type = source-dest-key" { | when "../../address-type = 'source-dest-key-lcaf'" { | |||
description | description | |||
"When LCAF type type is Source/Dest."; | "When LCAF type type is Source/Dest."; | |||
} | } | |||
description | description | |||
"Source/Dest LCAF type."; | "Source/Dest LCAF type."; | |||
reference | 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.11"; | |||
leaf source { | leaf source { | |||
type inet:ip-prefix; | type simple-address; | |||
description | description | |||
"Source prefix."; | "Source address."; | |||
} | } | |||
leaf dest { | leaf dest { | |||
type inet:ip-prefix; | type simple-address; | |||
description | description | |||
"Destination prefix."; | "Destination address."; | |||
} | } | |||
} | } | |||
} | container key-value-address { | |||
} | when "../../address-type = 'key-value-address-lcaf'" { | |||
grouping lisp-address { | ||||
description | ||||
"Generic LISP address."; | ||||
leaf afi { | ||||
type lisp-address-family-ref; | ||||
mandatory true; | ||||
description | ||||
"LISP address family AFI."; | ||||
} | ||||
leaf instance-id { | ||||
type instance-id-type; | ||||
description | ||||
"Instance ID of the address."; | ||||
} | ||||
choice address { | ||||
leaf ipv4 { | ||||
when "../../afi = 'laddr:ipv4'" { | ||||
description | description | |||
"When AFI is IPv4."; | "When LCAF type type is Key/Value Address."; | |||
} | } | |||
type inet:ipv4-address; | ||||
description | description | |||
"IPv4 address."; | "Key/Value Address LCAF type."; | |||
} | reference | |||
leaf ipv6 { | "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 | |||
when "../../afi = 'laddr:ipv6'" { | #section-4.11"; | |||
leaf key { | ||||
type simple-address; | ||||
description | description | |||
"When AFI is IPv6."; | "Address as Key."; | |||
} | } | |||
type inet:ipv6-address; | leaf value { | |||
description | type simple-address; | |||
"IPv6 address."; | ||||
} | ||||
leaf mac { | ||||
when "../../afi = 'laddr:mac'" { | ||||
description | description | |||
"When AFI is MAC."; | "Address as Value."; | |||
} | } | |||
type yang:mac-address; | ||||
description | ||||
"MAC address."; | ||||
} | } | |||
leaf distinguished-name { | container service-path { | |||
when "../../afi = 'laddr:distinguished-name'" { | when "../../address-type = '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 | |||
"When AFI is distinguished-name."; | "Service path identifier for the path for NSH header"; | |||
} | } | |||
type distinguished-name; | leaf service-index { | |||
description | type uint8; | |||
"Distinguished Name address."; | ||||
} | ||||
container lcaf { | ||||
when "../../afi = 'laddr:lcaf'" { | ||||
description | description | |||
"When AFI is LCAF."; | "Service path index for NSH header"; | |||
} | } | |||
uses lcaf-address; | ||||
description | ||||
"LCAF address."; | ||||
} | } | |||
description | ||||
"Selection of address type."; | ||||
} | } | |||
} | } | |||
} | } | |||
<CODE ENDS> | ||||
10. Acknowledgments | 10. 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. | |||
11. IANA Considerations | 11. IANA Considerations | |||
This memo includes no request to IANA. | This memo includes no request to IANA. | |||
skipping to change at page 78, line 34 | skipping to change at page 80, line 47 | |||
13. Normative References | 13. Normative References | |||
[I-D.ietf-lisp-ddt] | [I-D.ietf-lisp-ddt] | |||
Fuller, V., Lewis, D., Ermagan, V., and A. Jain, "LISP | Fuller, V., Lewis, D., Ermagan, V., and A. Jain, "LISP | |||
Delegated Database Tree", draft-ietf-lisp-ddt-03 (work in | Delegated Database Tree", draft-ietf-lisp-ddt-03 (work in | |||
progress), April 2015. | progress), April 2015. | |||
[I-D.ietf-lisp-lcaf] | [I-D.ietf-lisp-lcaf] | |||
Farinacci, D., Meyer, D., and J. Snijders, "LISP Canonical | Farinacci, D., Meyer, D., and J. Snijders, "LISP Canonical | |||
Address Format (LCAF)", draft-ietf-lisp-lcaf-10 (work in | Address Format (LCAF)", draft-ietf-lisp-lcaf-11 (work in | |||
progress), June 2015. | progress), September 2015. | |||
[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, | |||
<http://www.rfc-editor.org/info/rfc2119>. | <http://www.rfc-editor.org/info/rfc2119>. | |||
[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, | |||
<http://www.rfc-editor.org/info/rfc6830>. | <http://www.rfc-editor.org/info/rfc6830>. | |||
End of changes. 114 change blocks. | ||||
162 lines changed or deleted | 272 lines changed or added | |||
This html diff was produced by rfcdiff 1.42. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |