| < 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 4 ¶ | skipping to change at page 9, line 5 ¶ | |||
| description | description | |||
| "Operational state of lisp-devices."; | "Operational state of lisp-devices."; | |||
| list device { | list device { | |||
| key "type id"; | key "type id"; | |||
| description | description | |||
| "Each entry contains operational data of a lisp-device."; | "Each entry contains operational data of a lisp-device."; | |||
| leaf type { | leaf type { | |||
| type device-ref; | type device-ref; | |||
| description | description | |||
| "Type of LISP device."; | "Type of LISP device."; | |||
| } | } | |||
| 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. 115 change blocks. | ||||
| 163 lines changed or deleted | 272 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/ | ||||