| < draft-ietf-lime-yang-connectionless-oam-14.txt | draft-ietf-lime-yang-connectionless-oam-15.txt > | |||
|---|---|---|---|---|
| Network Working Group D. Kumar | Network Working Group D. Kumar | |||
| Internet-Draft Cisco | Internet-Draft Cisco | |||
| Intended status: Standards Track M. Wang | Intended status: Standards Track M. Wang | |||
| Expires: April 27, 2018 Q. Wu | Expires: May 1, 2018 Q. Wu, Ed. | |||
| Huawei | Huawei | |||
| R. Rahman | R. Rahman | |||
| S. Raghavan | S. Raghavan | |||
| Cisco | Cisco | |||
| October 24, 2017 | October 28, 2017 | |||
| Generic YANG Data Model for the Management of Operations, | Generic YANG Data Model for the Management of Operations, | |||
| Administration, and Maintenance (OAM) Protocols that use Connectionless | Administration, and Maintenance (OAM) Protocols that use Connectionless | |||
| Communications | Communications | |||
| draft-ietf-lime-yang-connectionless-oam-14 | draft-ietf-lime-yang-connectionless-oam-15 | |||
| Abstract | Abstract | |||
| This document presents a base YANG Data model for connectionless | This document presents a base YANG Data model for Operations | |||
| Operations Administration, and Maintenance(OAM) protocols. The data | Administration, and Maintenance(OAM) protocols that use | |||
| model is defined using the YANG in RFC7950 data modeling language. | Connectionless Communications. The data model is defined using the | |||
| It provides a technology-independent abstraction of key OAM | YANG in RFC7950 data modeling language. It provides a technology- | |||
| constructs for connectionless protocols. The base model presented | independent abstraction of key OAM constructs for OAM protocols that | |||
| here can be extended to include technology specific details. This is | use connectionless communication. The base model presented here can | |||
| leading to uniformity between OAM protocols and support both nested | be extended to include technology specific details. This is leading | |||
| OAM workflows (i.e., performing OAM functions at different or same | to uniformity between OAM protocols and support both nested OAM | |||
| levels through a unified interface) and interacting OAM workflows | workflows (i.e., performing OAM functions at different or same levels | |||
| (i.e., performing OAM functions at same levels through a unified | through a unified interface) and interacting OAM workflows (i.e., | |||
| interface). | performing OAM functions at same levels through a unified interface). | |||
| 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. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on April 27, 2018. | This Internet-Draft will expire on May 1, 2018. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2017 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 25 ¶ | skipping to change at page 2, line 25 ¶ | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Conventions used in this document . . . . . . . . . . . . . . 3 | 2. Conventions used in this document . . . . . . . . . . . . . . 3 | |||
| 2.1. Abbreviations . . . . . . . . . . . . . . . . . . . . . . 4 | 2.1. Abbreviations . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 | 2.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3. Overview of the Connectionless OAM Model . . . . . . . . . . 5 | 3. Overview of the Connectionless OAM Model . . . . . . . . . . 5 | |||
| 3.1. TP Address . . . . . . . . . . . . . . . . . . . . . . . 6 | 3.1. TP Address . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 3.2. Tools . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 3.2. Tools . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 3.3. OAM neighboring test points . . . . . . . . . . . . . . . 7 | 3.3. OAM neighboring test points . . . . . . . . . . . . . . . 7 | |||
| 3.4. Test Point Locations Information . . . . . . . . . . . . 8 | 3.4. Test Point Locations Information . . . . . . . . . . . . 8 | |||
| 3.5. Test Point Locations . . . . . . . . . . . . . . . . . . 8 | 3.5. Test Point Locations . . . . . . . . . . . . . . . . . . 8 | |||
| 3.6. Path Discovery Data . . . . . . . . . . . . . . . . . . . 9 | 3.6. Path Discovery Data . . . . . . . . . . . . . . . . . . . 9 | |||
| 3.7. Continuity Check Data . . . . . . . . . . . . . . . . . . 9 | 3.7. Continuity Check Data . . . . . . . . . . . . . . . . . . 9 | |||
| 3.8. OAM data hierarchy . . . . . . . . . . . . . . . . . . . 9 | 3.8. OAM data hierarchy . . . . . . . . . . . . . . . . . . . 9 | |||
| 4. OAM YANG Module . . . . . . . . . . . . . . . . . . . . . . . 12 | 4. LIME Common Types YANG Module . . . . . . . . . . . . . . . . 12 | |||
| 5. Connectionless model applicability . . . . . . . . . . . . . 40 | 5. Connectionless OAM YANG Module . . . . . . . . . . . . . . . 14 | |||
| 5.1. BFD Extension . . . . . . . . . . . . . . . . . . . . . . 40 | 6. Connectionless model applicability . . . . . . . . . . . . . 42 | |||
| 5.1.1. Augment Method . . . . . . . . . . . . . . . . . . . 41 | 6.1. BFD Extension . . . . . . . . . . . . . . . . . . . . . . 43 | |||
| 5.1.2. Schema Mount . . . . . . . . . . . . . . . . . . . . 43 | 6.1.1. Augment Method . . . . . . . . . . . . . . . . . . . 43 | |||
| 5.2. LSP ping extension . . . . . . . . . . . . . . . . . . . 45 | 6.1.2. Schema Mount . . . . . . . . . . . . . . . . . . . . 46 | |||
| 5.2.1. Augment Method . . . . . . . . . . . . . . . . . . . 45 | 6.2. LSP ping extension . . . . . . . . . . . . . . . . . . . 48 | |||
| 5.2.2. Schema Mount . . . . . . . . . . . . . . . . . . . . 46 | 6.2.1. Augment Method . . . . . . . . . . . . . . . . . . . 48 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 48 | 6.2.2. Schema Mount . . . . . . . . . . . . . . . . . . . . 49 | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 50 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 51 | |||
| 8. Acknowlegements . . . . . . . . . . . . . . . . . . . . . . . 50 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 53 | |||
| 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 50 | 9. Acknowlegements . . . . . . . . . . . . . . . . . . . . . . . 53 | |||
| 9.1. Normative References . . . . . . . . . . . . . . . . . . 50 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 53 | |||
| 9.2. Informative References . . . . . . . . . . . . . . . . . 52 | 10.1. Normative References . . . . . . . . . . . . . . . . . . 53 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 53 | 10.2. Informative References . . . . . . . . . . . . . . . . . 55 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 56 | ||||
| 1. Introduction | 1. Introduction | |||
| Operations, Administration, and Maintenance (OAM) are important | Operations, Administration, and Maintenance (OAM) are important | |||
| networking functions that allow operators to: | networking functions that allow operators to: | |||
| 1. Monitor networks communication (Reachability Verification, | 1. Monitor networks communication (Reachability Verification, | |||
| Continuity Check). | Continuity Check). | |||
| 2. Troubleshoot failures (Fault verification and localization). | 2. Troubleshoot failures (Fault verification and localization). | |||
| skipping to change at page 3, line 27 ¶ | skipping to change at page 3, line 27 ¶ | |||
| An overview of OAM tools is presented at [RFC7276]. | An overview of OAM tools is presented at [RFC7276]. | |||
| Ping and Traceroute [RFC792], [RFC4443] are well-known fault | Ping and Traceroute [RFC792], [RFC4443] are well-known fault | |||
| verification and isolation tools, respectively, for IP networks. | verification and isolation tools, respectively, for IP networks. | |||
| Over the years, different technologies have developed similar tools | Over the years, different technologies have developed similar tools | |||
| for similar purposes. | for similar purposes. | |||
| The different OAM tools may support connection-oriented technologies | The different OAM tools may support connection-oriented technologies | |||
| or connectionless technologies. In connection-oriented technologies, | or connectionless technologies. In connection-oriented technologies, | |||
| a connection is established prior to the transmission of data. After | a connection is established prior to the transmission of data. After | |||
| connection is established, no additional control information such as | the connection is established, no additional control information such | |||
| signaling or operations and maintenance information is required to | as signaling or operations and maintenance information is required to | |||
| transmit the data. In connectionless technologies, data is typically | transmit the data. In connectionless technologies, data is typically | |||
| sent between end points without prior arrangement, but control | sent between end points without prior arrangement, but control | |||
| information is required to identify destination.[G.800][RFC7276]. | information is required to identify destination.[G.800][RFC7276]. | |||
| Note that the YANG Data model for OAM protcols using connection- | Note that the YANG Data model for OAM protcols using connection- | |||
| oriented communications is defined in | oriented communications is defined in | |||
| [I-D.ietf-lime-yang-connection-oriented-oam-model]. | [I-D.ietf-lime-yang-connection-oriented-oam-model]. | |||
| This document defines a base YANG Data model for connectionless OAM | This document defines a base YANG Data model for OAM protocols that | |||
| protocols. The data model is defined using the YANG [RFC7950] data | use Connectionless Communications. The data model is defined using | |||
| modeling language. This generic YANG model for connectionless OAM | the YANG [RFC7950] data modeling language. This generic YANG model | |||
| only includes configuration data and state data. It can be used in | for connectionless OAM only includes configuration data and state | |||
| conjunction with data retrieval method model described in | data. It can be used in conjunction with data retrieval method model | |||
| [I-D.ietf-lime-yang-connectionless-oam-methods], which focuses on | described in [I-D.ietf-lime-yang-connectionless-oam-methods], which | |||
| data retrieval procedures such as RPC. However it also can be used | focuses on data retrieval procedures such as RPC. However it also | |||
| independently of this data retrieval method model. | can be used independently of this data retrieval method model. | |||
| 2. Conventions used in this document | 2. Conventions used in this document | |||
| The following terms are defined in [RFC6241] and are not redefined | The following terms are defined in [RFC6241] and are not redefined | |||
| here: | here: | |||
| o client | o client | |||
| o configuration data | o configuration data | |||
| o server | o server | |||
| skipping to change at page 4, line 42 ¶ | skipping to change at page 4, line 42 ¶ | |||
| TWAMP - Two-Way Active Measurement Protocol (TWAMP) [RFC 5357]. | TWAMP - Two-Way Active Measurement Protocol (TWAMP) [RFC 5357]. | |||
| AS - Autonomous System. | AS - Autonomous System. | |||
| LSP - Label Switched Path. | LSP - Label Switched Path. | |||
| TE - Traffic Engineering. | TE - Traffic Engineering. | |||
| MPLS - Multiprotocol Label Switching. | MPLS - Multiprotocol Label Switching. | |||
| NI - Network Instance. | ||||
| PTP - Precision Time Protocol [IEEE.1588]. | PTP - Precision Time Protocol [IEEE.1588]. | |||
| NTP - Network Time Protocol [RFC5905]. | NTP - Network Time Protocol [RFC5905]. | |||
| 2.2. Terminology | 2.2. Terminology | |||
| MAC address- Address for data link layer interface. | MAC address- Address for data link layer interface. | |||
| TP - Test Point. Test point is a functional entity that is defined | TP - Test Point. Test point is a functional entity that is defined | |||
| at a node in the network and can initiate and/or react to OAM | at a node in the network and can initiate and/or react to OAM | |||
| skipping to change at page 5, line 16 ¶ | skipping to change at page 5, line 23 ¶ | |||
| with the management plane as well. | with the management plane as well. | |||
| RPC operation - A specific Remote Procedure Call. | RPC operation - A specific Remote Procedure Call. | |||
| CC - Continuity Check.[RFC7276], Continuity Checks are used to verify | CC - Continuity Check.[RFC7276], Continuity Checks are used to verify | |||
| that a destination is reachable and therefore also referred to as | that a destination is reachable and therefore also referred to as | |||
| reachability verification. | reachability verification. | |||
| 3. Overview of the Connectionless OAM Model | 3. Overview of the Connectionless OAM Model | |||
| The model augments "/networks/network/node" path defined in the ietf- | The YANG data model for OAM protocols that use Connectionless | |||
| network module [I-D.ietf-i2rs-yang-network-topo] with 'test-point- | Communications has been split into two modules: | |||
| locations' grouping defined in Section 3.5. The network node in | ||||
| o The module ietf-lime-common-types.yang provides common definitions | ||||
| such as Time-specific data types and Timestamp specific data | ||||
| types. | ||||
| o The module ietf-connectionless-oam.yang defines technology- | ||||
| independent abstraction of key OAM constructs for OAM protocols | ||||
| that use Connectionless communication. | ||||
| The ietf-connectionless-oam module augments the "/networks/network/ | ||||
| node" path defined in the ietf- network module | ||||
| [I-D.ietf-i2rs-yang-network-topo] with 'test-point-locations' | ||||
| grouping defined in Section 3.5. The network node in | ||||
| "/networks/network/node" path are used to describe the network | "/networks/network/node" path are used to describe the network | |||
| hierarchies and the inventory of nodes contained in a network. | hierarchies and the inventory of nodes contained in a network. | |||
| Under the 'test-point-locations' grouping, each test point location | Under the 'test-point-locations' grouping, each test point location | |||
| is chosen based on 'tp-location-type' leaf which when chosen, leads | is chosen based on 'tp-location-type' leaf which when chosen, leads | |||
| to a container that includes a list of 'test-point-locations'. | to a container that includes a list of 'test-point-locations'. | |||
| Each 'test-point-locations' list includes a 'test-point-location- | Each 'test-point-locations' list includes a 'test-point-location- | |||
| info' grouping. The 'test-point-location-info' grouping includes: | info' grouping. The 'test-point-location-info' grouping includes: | |||
| skipping to change at page 6, line 19 ¶ | skipping to change at page 6, line 36 ¶ | |||
| With connectionless OAM protocols, the TP address can be one of the | With connectionless OAM protocols, the TP address can be one of the | |||
| following types: | following types: | |||
| o MAC address [RFC6136] at link layer for TPs | o MAC address [RFC6136] at link layer for TPs | |||
| o IPv4 or IPv6 address at IP layer for TPs | o IPv4 or IPv6 address at IP layer for TPs | |||
| o TP-attribute identifying a TP associated with an application layer | o TP-attribute identifying a TP associated with an application layer | |||
| function | function | |||
| o System-id to represent the device or node. | o Router-id to represent the device or node. | |||
| [I-D.ietf-spring-sr-yang] | [I-D.ietf-spring-sr-yang] | |||
| To define a forwarding treatment of a test packet, the 'tp-address' | To define a forwarding treatment of a test packet, the 'tp-address' | |||
| grouping needs to be associated with additional parameters, e.g., | grouping needs to be associated with additional parameters, e.g., | |||
| DSCP for IP or EXP (renamed to Traffic Classic in [RFC5462]) for | DSCP for IP or EXP (renamed to Traffic Classic in [RFC5462]) for | |||
| MPLS. In generic connectionless OAM YANG model, these parameters are | MPLS. In generic connectionless OAM YANG model, these parameters are | |||
| not explicit configured. The model user can add corresponding | not explicitly configured. The model user can add corresponding | |||
| parameters according to their requirements. | parameters according to their requirements. | |||
| 3.2. Tools | 3.2. Tools | |||
| The different OAM tools may be used in one of two basic types of | The different OAM tools may be used in one of two basic types of | |||
| activation: proactive and on-demand. The proactive OAM refers to OAM | activation: proactive and on-demand. The proactive OAM refers to OAM | |||
| actions which are carried out continuously to permit proactive | actions which are carried out continuously to permit proactive | |||
| reporting of fault. The proactive OAM method requires persistent | reporting of fault. The proactive OAM method requires persistent | |||
| configuration. The on-demand OAM refers to OAM actions which are | configuration. The on-demand OAM refers to OAM actions which are | |||
| initiated via manual intervention for a limited time to carry out | initiated via manual intervention for a limited time to carry out | |||
| skipping to change at page 8, line 9 ¶ | skipping to change at page 8, line 9 ¶ | |||
| neighboring test point placed before the current test point, the | neighboring test point placed before the current test point, the | |||
| 'position' leaf is set to -1. If there is one neighboring test point | 'position' leaf is set to -1. If there is one neighboring test point | |||
| placed after the current test point, the 'position' leaf is set to 1. | placed after the current test point, the 'position' leaf is set to 1. | |||
| If there is no neighboring test point placed before or after the | If there is no neighboring test point placed before or after the | |||
| current test point, the 'position' leaf is set to 0. | current test point, the 'position' leaf is set to 0. | |||
| list oam-neighboring-tps { | list oam-neighboring-tps { | |||
| key "index"; | key "index"; | |||
| leaf index { | leaf index { | |||
| type uint16 { | type uint16 { | |||
| range "0..65536"; | range "0..65535"; | |||
| } | } | |||
| description | description | |||
| "Index of a list of neighboring test points | "Index of a list of neighboring test points | |||
| in adjacent layers up and down the stack for | in adjacent layers up and down the stack for | |||
| the same interface that are related to the | the same interface that are related to the | |||
| current test point."; | current test point."; | |||
| } | } | |||
| leaf position { | leaf position { | |||
| type int8 { | type int8 { | |||
| range "-1..1"; | range "-1..1"; | |||
| skipping to change at page 9, line 38 ¶ | skipping to change at page 9, line 38 ¶ | |||
| continuity check data model is made generic enough to allow different | continuity check data model is made generic enough to allow different | |||
| methods of data retrieval. None of the fields are made mandatory for | methods of data retrieval. None of the fields are made mandatory for | |||
| that reason. Noted that the retrieval methods are defined in | that reason. Noted that the retrieval methods are defined in | |||
| [I-D.ietf-lime-yang-connectionless-oam-methods]. | [I-D.ietf-lime-yang-connectionless-oam-methods]. | |||
| 3.8. OAM data hierarchy | 3.8. OAM data hierarchy | |||
| The complete data hierarchy related to the OAM YANG model is | The complete data hierarchy related to the OAM YANG model is | |||
| presented below. | presented below. | |||
| module: ietf-connectionless-oam | module: ietf-connectionless-oam | |||
| +--ro cc-session-statistics-data {continuity-check}? | +--ro cc-session-statistics-data {continuity-check}? | |||
| +--ro cc-ipv4-sessions-statistics | +--ro cc-session-statistics* [type] | |||
| | +--ro cc-session-statistics | +--ro type identityref | |||
| | +--ro session-count? uint32 | +--ro cc-ipv4-sessions-statistics | |||
| | +--ro session-up-count? uint32 | | +--ro cc-session-statistics | |||
| | +--ro session-down-count? uint32 | | +--ro session-count? uint32 | |||
| | +--ro session-admin-down-count? uint32 | | +--ro session-up-count? uint32 | |||
| +--ro cc-ipv6-sessions-statistics | | +--ro session-down-count? uint32 | |||
| +--ro cc-session-statistics | | +--ro session-admin-down-count? uint32 | |||
| +--ro session-count? uint32 | +--ro cc-ipv6-sessions-statistics | |||
| +--ro session-up-count? uint32 | +--ro cc-session-statistics | |||
| +--ro session-down-count? uint32 | +--ro session-count? uint32 | |||
| +--ro session-admin-down-count? uint32 | +--ro session-up-count? uint32 | |||
| augment /nd:networks/nd:network/nd:node: | +--ro session-down-count? uint32 | |||
| +--ro session-admin-down-count? uint32 | ||||
| augment /nd:networks/nd:network/nd:node: | ||||
| +--rw tp-location-type? identityref | +--rw tp-location-type? identityref | |||
| +--rw ipv4-location-type | +--rw ipv4-location-type | |||
| | +--rw test-point-ipv4-location-list | | +--rw test-point-ipv4-location-list | |||
| | +--rw test-point-locations* [ipv4-location ni] | | +--rw test-point-locations* [ipv4-location ni] | |||
| | +--rw ipv4-location inet:ipv4-address | | +--rw ipv4-location inet:ipv4-address | |||
| | +--rw ni routing-instance-ref | | +--rw ni routing-instance-ref | |||
| | +--rw (technology)? | | +--rw (technology)? | |||
| | | +--:(technology-null) | | | +--:(technology-null) | |||
| | | +--rw tech-null? empty | | | +--rw tech-null? empty | |||
| | +--rw tp-tools | | +--rw tp-tools | |||
| | | +--rw continuity-check boolean | | | +--rw continuity-check boolean | |||
| | | +--rw path-discovery boolean | | | +--rw path-discovery boolean | |||
| | +--rw root? | | +--rw root? <anydata> | |||
| | +--rw oam-neighboring-tps* [index] | | +--rw oam-neighboring-tps* [index] | |||
| | +--rw index uint16 | | +--rw index uint16 | |||
| | +--rw position? int8 | | +--rw position? int8 | |||
| | +--rw (tp-location)? | | +--rw (tp-location)? | |||
| | +--:(mac-address) | | +--:(mac-address) | |||
| | | +--rw mac-address-location? yang:mac-address | | | +--rw mac-address-location? yang:mac-address | |||
| | +--:(ipv4-address) | | +--:(ipv4-address) | |||
| | | +--rw ipv4-address-location? inet:ipv4-address | | | +--rw ipv4-address-location? inet:ipv4-address | |||
| | +--:(ipv6-address) | | +--:(ipv6-address) | |||
| | | +--rw ipv6-address-location? inet:ipv6-address | | | +--rw ipv6-address-location? inet:ipv6-address | |||
| | +--:(as-number) | | +--:(as-number) | |||
| | | +--rw as-number-location? inet:as-number | | | +--rw as-number-location? inet:as-number | |||
| | +--:(system-id) | | +--:(router-id) | |||
| | +--rw system-id-location? router-id | | +--rw router-id-location? rt:router-id | |||
| +--rw ipv6-location-type | +--rw ipv6-location-type | |||
| | +--rw test-point-ipv6-location-list | | +--rw test-point-ipv6-location-list | |||
| | +--rw test-point-locations* [ipv6-location ni] | | +--rw test-point-locations* [ipv6-location ni] | |||
| | +--rw ipv6-location inet:ipv6-address | | +--rw ipv6-location inet:ipv6-address | |||
| | +--rw ni routing-instance-ref | | +--rw ni routing-instance-ref | |||
| | +--rw (technology)? | | +--rw (technology)? | |||
| | | +--:(technology-null) | | | +--:(technology-null) | |||
| | | +--rw tech-null? empty | | | +--rw tech-null? empty | |||
| | +--rw tp-tools | | +--rw tp-tools | |||
| | | +--rw continuity-check boolean | | | +--rw continuity-check boolean | |||
| | | +--rw path-discovery boolean | | | +--rw path-discovery boolean | |||
| | +--rw root? | | +--rw root? <anydata> | |||
| | +--rw oam-neighboring-tps* [index] | | +--rw oam-neighboring-tps* [index] | |||
| | +--rw index uint16 | | +--rw index uint16 | |||
| | +--rw position? int8 | | +--rw position? int8 | |||
| | +--rw (tp-location)? | | +--rw (tp-location)? | |||
| | +--:(mac-address) | | +--:(mac-address) | |||
| | | +--rw mac-address-location? yang:mac-address | | | +--rw mac-address-location? yang:mac-address | |||
| | +--:(ipv4-address) | | +--:(ipv4-address) | |||
| | | +--rw ipv4-address-location? inet:ipv4-address | | | +--rw ipv4-address-location? inet:ipv4-address | |||
| | +--:(ipv6-address) | | +--:(ipv6-address) | |||
| | | +--rw ipv6-address-location? inet:ipv6-address | | | +--rw ipv6-address-location? inet:ipv6-address | |||
| | +--:(as-number) | | +--:(as-number) | |||
| | | +--rw as-number-location? inet:as-number | | | +--rw as-number-location? inet:as-number | |||
| | +--:(system-id) | | +--:(router-id) | |||
| | +--rw system-id-location? router-id | | +--rw router-id-location? rt:router-id | |||
| +--rw mac-location-type | +--rw mac-location-type | |||
| | +--rw test-point-mac-address-location-list | | +--rw test-point-mac-address-location-list | |||
| | +--rw test-point-locations* [mac-address-location] | | +--rw test-point-locations* [mac-address-location] | |||
| | +--rw mac-address-location yang:mac-address | | +--rw mac-address-location yang:mac-address | |||
| | +--rw (technology)? | | +--rw (technology)? | |||
| | | +--:(technology-null) | | | +--:(technology-null) | |||
| | | +--rw tech-null? empty | | | +--rw tech-null? empty | |||
| | +--rw tp-tools | | +--rw tp-tools | |||
| | | +--rw continuity-check boolean | | | +--rw continuity-check boolean | |||
| | | +--rw path-discovery boolean | | | +--rw path-discovery boolean | |||
| | +--rw root? | | +--rw root? <anydata> | |||
| | +--rw oam-neighboring-tps* [index] | | +--rw oam-neighboring-tps* [index] | |||
| | +--rw index uint16 | | +--rw index uint16 | |||
| | +--rw position? int8 | | +--rw position? int8 | |||
| | +--rw (tp-location)? | | +--rw (tp-location)? | |||
| | +--:(mac-address) | | +--:(mac-address) | |||
| | | +--rw mac-address-location? yang:mac-address | | | +--rw mac-address-location? yang:mac-address | |||
| | +--:(ipv4-address) | | +--:(ipv4-address) | |||
| | | +--rw ipv4-address-location? inet:ipv4-address | | | +--rw ipv4-address-location? inet:ipv4-address | |||
| | +--:(ipv6-address) | | +--:(ipv6-address) | |||
| | | +--rw ipv6-address-location? inet:ipv6-address | | | +--rw ipv6-address-location? inet:ipv6-address | |||
| | +--:(as-number) | | +--:(as-number) | |||
| | | +--rw as-number-location? inet:as-number | | | +--rw as-number-location? inet:as-number | |||
| | +--:(system-id) | | +--:(router-id) | |||
| | +--rw system-id-location? router-id | | +--rw router-id-location? rt:router-id | |||
| +--rw group-as-number-location-type | +--rw group-as-number-location-type | |||
| | +--rw test-point-as-number-location-list | | +--rw test-point-as-number-location-list | |||
| | +--rw test-point-locations* [as-number-location] | | +--rw test-point-locations* [as-number-location] | |||
| | +--rw as-number-location inet:as-number | | +--rw as-number-location inet:as-number | |||
| | +--rw ni? routing-instance-ref | | +--rw ni? routing-instance-ref | |||
| | +--rw (technology)? | | +--rw (technology)? | |||
| | | +--:(technology-null) | | | +--:(technology-null) | |||
| | | +--rw tech-null? empty | | | +--rw tech-null? empty | |||
| | +--rw tp-tools | | +--rw tp-tools | |||
| | | +--rw continuity-check boolean | | | +--rw continuity-check boolean | |||
| | | +--rw path-discovery boolean | | | +--rw path-discovery boolean | |||
| | +--rw root? | | +--rw root? <anydata> | |||
| | +--rw oam-neighboring-tps* [index] | | +--rw oam-neighboring-tps* [index] | |||
| | +--rw index uint16 | | +--rw index uint16 | |||
| | +--rw position? int8 | | +--rw position? int8 | |||
| | +--rw (tp-location)? | | +--rw (tp-location)? | |||
| | +--:(mac-address) | | +--:(mac-address) | |||
| | | +--rw mac-address-location? yang:mac-address | | | +--rw mac-address-location? yang:mac-address | |||
| | +--:(ipv4-address) | | +--:(ipv4-address) | |||
| | | +--rw ipv4-address-location? inet:ipv4-address | | | +--rw ipv4-address-location? inet:ipv4-address | |||
| | +--:(ipv6-address) | | +--:(ipv6-address) | |||
| | | +--rw ipv6-address-location? inet:ipv6-address | | | +--rw ipv6-address-location? inet:ipv6-address | |||
| | +--:(as-number) | | +--:(as-number) | |||
| | | +--rw as-number-location? inet:as-number | | | +--rw as-number-location? inet:as-number | |||
| | +--:(system-id) | | +--:(router-id) | |||
| | +--rw system-id-location? router-id | | +--rw router-id-location? rt:router-id | |||
| +--rw group-system-id-location-type | +--rw group-router-id-location-type | |||
| +--rw test-point-system-info-location-list | +--rw test-point-system-info-location-list | |||
| +--rw test-point-locations* [system-id-location] | +--rw test-point-locations* [router-id-location] | |||
| +--rw system-id-location inet:uri | +--rw router-id-location rt:router-id | |||
| +--rw ni? routing-instance-ref | +--rw ni? routing-instance-ref | |||
| +--rw (technology)? | +--rw (technology)? | |||
| | +--:(technology-null) | | +--:(technology-null) | |||
| | +--rw tech-null? empty | | +--rw tech-null? empty | |||
| +--rw tp-tools | +--rw tp-tools | |||
| | +--rw continuity-check boolean | | +--rw continuity-check boolean | |||
| | +--rw path-discovery boolean | | +--rw path-discovery boolean | |||
| +--rw root? | +--rw root? <anydata> | |||
| +--rw oam-neighboring-tps* [index] | +--rw oam-neighboring-tps* [index] | |||
| +--rw index uint16 | +--rw index uint16 | |||
| +--rw position? int8 | +--rw position? int8 | |||
| +--rw (tp-location)? | +--rw (tp-location)? | |||
| +--:(mac-address) | +--:(mac-address) | |||
| | +--rw mac-address-location? yang:mac-address | | +--rw mac-address-location? yang:mac-address | |||
| +--:(ipv4-address) | +--:(ipv4-address) | |||
| | +--rw ipv4-address-location? inet:ipv4-address | | +--rw ipv4-address-location? inet:ipv4-address | |||
| +--:(ipv6-address) | +--:(ipv6-address) | |||
| | +--rw ipv6-address-location? inet:ipv6-address | | +--rw ipv6-address-location? inet:ipv6-address | |||
| +--:(as-number) | +--:(as-number) | |||
| | +--rw as-number-location? inet:as-number | | +--rw as-number-location? inet:as-number | |||
| +--:(system-id) | +--:(router-id) | |||
| +--rw system-id-location? router-id | +--rw router-id-location? rt:router-id | |||
| 4. OAM YANG Module | 4. LIME Common Types YANG Module | |||
| <CODE BEGINS> file "ietf-lime-common-types@2017-09-06.yang" | ||||
| module ietf-lime-common-types { | ||||
| yang-version 1.1; | ||||
| namespace "urn:ietf:params:xml:ns:yang:ietf-lime-common-types"; | ||||
| prefix "lime"; | ||||
| organization | ||||
| "IETF Layer Independent OAM Management(LIME) | ||||
| Working Group"; | ||||
| contact | ||||
| "WG Web: <https://datatracker.ietf.org/wg/lime> | ||||
| WG List: <mailto:lmap@ietf.org> | ||||
| Editor: Qin Wu | ||||
| <bill.wu@huawei.com>"; | ||||
| description | ||||
| "This module provides common definitions used by the data | ||||
| models written for Layer Independent OAM Management(LIME). | ||||
| This module defines identities but no schema tree elements."; | ||||
| revision "2017-09-06" { | ||||
| description | ||||
| "Initial version"; | ||||
| reference | ||||
| "RFC xxxx: A YANG Data Model for OAM Protocols that use Connectionless | ||||
| Communications"; | ||||
| } | ||||
| /*** Collection of common types related to time ***/ | ||||
| /*** Time unit identity ***/ | ||||
| identity time-unit-type { | ||||
| description | ||||
| "Time unit type"; | ||||
| } | ||||
| identity hours { | ||||
| base time-unit-type; | ||||
| description | ||||
| "Time unit in Hours"; | ||||
| } | ||||
| identity minutes { | ||||
| base time-unit-type; | ||||
| description | ||||
| "Time unit in Minutes"; | ||||
| } | ||||
| identity seconds { | ||||
| base time-unit-type; | ||||
| description | ||||
| "Time unit in Seconds"; | ||||
| } | ||||
| identity milliseconds { | ||||
| base time-unit-type; | ||||
| description | ||||
| "Time unit in Milliseconds"; | ||||
| } | ||||
| identity microseconds { | ||||
| base time-unit-type; | ||||
| description | ||||
| "Time unit in Microseconds"; | ||||
| } | ||||
| identity nanoseconds { | ||||
| base time-unit-type; | ||||
| description | ||||
| "Time unit in Nanoseconds"; | ||||
| } | ||||
| /*** Timestamp format Identity ***/ | ||||
| identity timestamp-type { | ||||
| description | ||||
| "Base identity for Timestamp Type."; | ||||
| } | ||||
| identity truncated-ptp { | ||||
| base timestamp-type; | ||||
| description | ||||
| "Identity for 64bit short format PTP timestamp."; | ||||
| } | ||||
| identity truncated-ntp { | ||||
| base timestamp-type; | ||||
| description | ||||
| "Identity for 32bit short format NTP timestamp."; | ||||
| } | ||||
| identity ntp64 { | ||||
| base timestamp-type; | ||||
| description | ||||
| "Identity for 64bit NTP timestamp."; | ||||
| } | ||||
| identity icmp { | ||||
| base timestamp-type; | ||||
| description | ||||
| "Identity for 32bit ICMP timestamp."; | ||||
| } | ||||
| } | ||||
| <CODE ENDS> | ||||
| 5. Connectionless OAM YANG Module | ||||
| <CODE BEGINS> file "ietf-connectionless-oam@2017-09-06.yang" | <CODE BEGINS> file "ietf-connectionless-oam@2017-09-06.yang" | |||
| module ietf-connectionless-oam { | module ietf-connectionless-oam { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-connectionless-oam"; | namespace "urn:ietf:params:xml:ns:yang:ietf-connectionless-oam"; | |||
| prefix cl-oam; | prefix cl-oam; | |||
| import ietf-yang-schema-mount { | import ietf-yang-schema-mount { | |||
| prefix yangmnt; | prefix yangmnt; | |||
| } | } | |||
| skipping to change at page 13, line 4 ¶ | skipping to change at page 15, line 8 ¶ | |||
| module ietf-connectionless-oam { | module ietf-connectionless-oam { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-connectionless-oam"; | namespace "urn:ietf:params:xml:ns:yang:ietf-connectionless-oam"; | |||
| prefix cl-oam; | prefix cl-oam; | |||
| import ietf-yang-schema-mount { | import ietf-yang-schema-mount { | |||
| prefix yangmnt; | prefix yangmnt; | |||
| } | } | |||
| import ietf-network { | import ietf-network { | |||
| prefix nd; | prefix nd; | |||
| } | } | |||
| import ietf-yang-types { | import ietf-yang-types { | |||
| prefix yang; | prefix yang; | |||
| } | } | |||
| import ietf-interfaces { | import ietf-interfaces { | |||
| prefix if; | prefix if; | |||
| } | } | |||
| import ietf-inet-types { | import ietf-inet-types { | |||
| prefix inet; | prefix inet; | |||
| } | } | |||
| import ietf-network-instance { | import ietf-network-instance { | |||
| prefix ni; | prefix ni; | |||
| } | } | |||
| import ietf-routing-types { | import ietf-routing-types { | |||
| prefix rt; | prefix rt; | |||
| } | } | |||
| import ietf-lime-common-types { | ||||
| prefix lime; | ||||
| } | ||||
| organization | organization | |||
| "IETF LIME Working Group"; | "IETF LIME Working Group"; | |||
| contact | contact | |||
| "Deepak Kumar dekumar@cisco.com | "Deepak Kumar dekumar@cisco.com | |||
| Qin Wu bill.wu@huawei.com | Qin Wu bill.wu@huawei.com | |||
| S Raghavan srihari@cisco.com | S Raghavan srihari@cisco.com | |||
| Zitao Wang wangzitao@huawei.com | Zitao Wang wangzitao@huawei.com | |||
| R Rahman rrahman@cisco.com"; | R Rahman rrahman@cisco.com"; | |||
| description | description | |||
| "This YANG module defines the generic configuration, | "This YANG module defines the generic configuration, | |||
| skipping to change at page 14, line 33 ¶ | skipping to change at page 16, line 40 ¶ | |||
| "This feature indicates that timestamp is PTP long format."; | "This feature indicates that timestamp is PTP long format."; | |||
| } | } | |||
| feature ntp-short-format { | feature ntp-short-format { | |||
| description | description | |||
| "This feature indicates that timestamp is NTP short format."; | "This feature indicates that timestamp is NTP short format."; | |||
| } | } | |||
| feature icmp-timestamp { | feature icmp-timestamp { | |||
| description | description | |||
| "This feature indicates that timestamp is ICMP timestamp."; | "This feature indicates that timestamp is ICMP timestamp."; | |||
| } | } | |||
| typedef router-id { | identity traffic-type { | |||
| type yang:dotted-quad; | description | |||
| description | "This is base identity of traffic type | |||
| "A 32-bit number in the dotted quad format assigned to each | which include IPv4 and IPv6,etc."; | |||
| router. This number uniquely identifies the router within an | ||||
| Autonomous System."; | ||||
| } | ||||
| typedef routing-instance-ref { | ||||
| type leafref { | ||||
| path "/ni:network-instances/ni:network-instance/ni:name"; | ||||
| } | ||||
| description | ||||
| "This type is used for leafs that reference a routing instance | ||||
| configuration."; | ||||
| } | } | |||
| identity ipv4 { | ||||
| base traffic-type; | ||||
| description | ||||
| "identity for IPv4 traffic type."; | ||||
| } | ||||
| identity ipv6 { | ||||
| base traffic-type; | ||||
| description | ||||
| "identity for IPv4 traffic type."; | ||||
| } | ||||
| identity address-attribute-types { | identity address-attribute-types { | |||
| description | description | |||
| "This is base identity of address | "This is base identity of address | |||
| attribute types which are ip-prefix, | attribute types which are Generic | |||
| bgp, tunnel, pwe3, vpls, etc."; | IPv4/IPv6 Prefix,BGP Labeled | |||
| IPv4/IPv6 Prefix,Tunnel ID, | ||||
| PW ID, vpls VE ID, etc.(See RFC8029 | ||||
| for details.)"; | ||||
| } | } | |||
| typedef address-attribute-type { | typedef address-attribute-type { | |||
| type identityref { | type identityref { | |||
| base address-attribute-types; | base address-attribute-types; | |||
| } | } | |||
| description | description | |||
| "Target address attribute type."; | "Target address attribute type."; | |||
| } | } | |||
| typedef percentage { | typedef percentage { | |||
| type decimal64 { | type decimal64 { | |||
| fraction-digits 5; | fraction-digits 5; | |||
| } | range "0..100"; | |||
| description "Percentage"; | } | |||
| description "Percentage"; | ||||
| } | } | |||
| typedef routing-instance-ref { | ||||
| identity time-interval-type { | type leafref { | |||
| description | path "/ni:network-instances/ni:network-instance/ni:name"; | |||
| "Time interval type"; | } | |||
| } | ||||
| identity hours { | ||||
| base time-interval-type; | ||||
| description | ||||
| "Time unit in Hours"; | ||||
| } | ||||
| identity minutes { | ||||
| base time-interval-type; | ||||
| description | ||||
| "Time unit in Minutes"; | ||||
| } | ||||
| identity seconds { | ||||
| base time-interval-type; | ||||
| description | ||||
| "Time unit in Seconds"; | ||||
| } | ||||
| identity milliseconds { | ||||
| base time-interval-type; | ||||
| description | ||||
| "Time unit in Milliseconds"; | ||||
| } | ||||
| identity microseconds { | ||||
| base time-interval-type; | ||||
| description | ||||
| "Time unit in Microseconds"; | ||||
| } | ||||
| identity nanoseconds { | ||||
| base time-interval-type; | ||||
| description | description | |||
| "Time unit in Nanoseconds"; | "This type is used for leafs that reference a routing instance | |||
| configuration."; | ||||
| } | } | |||
| identity timestamp-type { | ||||
| description | ||||
| "Base identity for Timestamp Type."; | ||||
| } | ||||
| identity truncated-ptp { | ||||
| base timestamp-type; | ||||
| description | ||||
| "Identity for 64bit short format PTP timestamp."; | ||||
| } | ||||
| identity truncated-ntp { | ||||
| base timestamp-type; | ||||
| description | ||||
| "Identity for 32bit short format NTP timestamp."; | ||||
| } | ||||
| identity ntp64 { | ||||
| base timestamp-type; | ||||
| description | ||||
| "Identity for 64bit NTP timestamp."; | ||||
| } | ||||
| identity icmp { | ||||
| base timestamp-type; | ||||
| description | ||||
| "Identity for 32bit ICMP timestamp."; | ||||
| } | ||||
| grouping cc-session-statistics { | grouping cc-session-statistics { | |||
| description | description | |||
| "Grouping for session statistics."; | "Grouping for session statistics."; | |||
| container cc-session-statistics { | container cc-session-statistics { | |||
| description | description | |||
| "cc session counters"; | "cc session counters"; | |||
| leaf session-count { | leaf session-count { | |||
| type uint32; | type uint32; | |||
| default "0"; | default "0"; | |||
| description | description | |||
| skipping to change at page 17, line 40 ¶ | skipping to change at page 18, line 43 ¶ | |||
| description | description | |||
| "Per session packet statistics."; | "Per session packet statistics."; | |||
| leaf rx-packet-count { | leaf rx-packet-count { | |||
| type uint32{ | type uint32{ | |||
| range "0..4294967295"; | range "0..4294967295"; | |||
| } | } | |||
| default "0"; | default "0"; | |||
| description | description | |||
| "Total number of received OAM packet count. | "Total number of received OAM packet count. | |||
| If the value is 4294967295, | The value of count will be set to zero (0) | |||
| it indicates the packet count is overrun."; | on creation and will thereafter increase | |||
| monotonically until it reaches a maximum value | ||||
| of 2^32-1 (4294967295 decimal), when it wraps | ||||
| around and starts increasing again from zero."; | ||||
| } | } | |||
| leaf tx-packet-count { | leaf tx-packet-count { | |||
| type uint32{ | type uint32{ | |||
| range "0..4294967295"; | range "0..4294967295"; | |||
| } | } | |||
| default "0"; | default "0"; | |||
| description | description | |||
| "Total number of transmitted OAM packet count. | "Total number of transmitted OAM packet count. | |||
| If the value is 4294967295, | The value of count will be set to zero (0) | |||
| it indicates the packet count is overrun."; | on creation and will thereafter increase | |||
| monotonically until it reaches a maximum value | ||||
| of 2^32-1 (4294967295 decimal), when it wraps | ||||
| around and starts increasing again from zero."; | ||||
| } | } | |||
| leaf rx-bad-packet { | leaf rx-bad-packet { | |||
| type uint32 { | type uint32 { | |||
| range "0..4294967295"; | range "0..4294967295"; | |||
| } | } | |||
| default "0"; | default "0"; | |||
| description | description | |||
| "Total number of received bad OAM packet. | "Total number of received bad OAM packet. | |||
| If the value is 4294967295, | The value of count will be set to zero (0) | |||
| it indicates the bad packet count is overrun."; | on creation and will thereafter increase | |||
| monotonically until it reaches a maximum value | ||||
| of 2^32-1 (4294967295 decimal), when it wraps | ||||
| around and starts increasing again from zero."; | ||||
| } | } | |||
| leaf tx-packet-failed { | leaf tx-packet-failed { | |||
| type uint32 { | type uint32 { | |||
| range "0..4294967295"; | range "0..4294967295"; | |||
| } | } | |||
| default "0"; | default "0"; | |||
| description | description | |||
| "Total number of failed sending OAM packet. | "Total number of failed sending OAM packet. | |||
| If the value is 4294967295, it indicates | The value of count will be set to zero (0) | |||
| failed packet count is overrun."; | on creation and will thereafter increase | |||
| monotonically until it reaches a maximum value | ||||
| of 2^32-1 (4294967295 decimal), when it wraps | ||||
| around and starts increasing again from zero."; | ||||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping cc-per-session-statistics { | grouping cc-per-session-statistics { | |||
| description | description | |||
| "Grouping for per session statistics"; | "Grouping for per session statistics"; | |||
| container cc-per-session-statistics { | container cc-per-session-statistics { | |||
| description | description | |||
| "per session statistics."; | "per session statistics."; | |||
| skipping to change at page 19, line 7 ¶ | skipping to change at page 20, line 23 ¶ | |||
| description | description | |||
| "Time and date last time session is up."; | "Time and date last time session is up."; | |||
| } | } | |||
| leaf down-count { | leaf down-count { | |||
| type uint32 { | type uint32 { | |||
| range "0..4294967295"; | range "0..4294967295"; | |||
| } | } | |||
| default "0"; | default "0"; | |||
| description | description | |||
| "Total Continuity Check sessions down count. | "Total Continuity Check sessions down count. | |||
| If the value is 4294967295, it indicates down | The value of count will be set to zero (0) | |||
| count is overrun."; | on creation and will thereafter increase | |||
| monotonically until it reaches a maximum value | ||||
| of 2^32-1 (4294967295 decimal), when it wraps | ||||
| around and starts increasing again from zero."; | ||||
| } | } | |||
| leaf admin-down-count { | leaf admin-down-count { | |||
| type uint32 { | type uint32 { | |||
| range "0..4294967295"; | range "0..4294967295"; | |||
| } | } | |||
| default "0"; | default "0"; | |||
| description | description | |||
| "Total Continuity Check sessions admin down count. | "Total Continuity Check sessions admin down count. | |||
| If the value is 4294967295, it indicates admin | The value of count will be set to zero (0) | |||
| down count is overrun."; | on creation and will thereafter increase | |||
| monotonically until it reaches a maximum value | ||||
| of 2^32-1 (4294967295 decimal), when it wraps | ||||
| around and starts increasing again from zero."; | ||||
| } | } | |||
| uses session-packet-statistics; | uses session-packet-statistics; | |||
| } | } | |||
| } | } | |||
| grouping session-error-statistics { | grouping session-error-statistics { | |||
| description | description | |||
| "Grouping for per session error statistics"; | "Grouping for per session error statistics"; | |||
| container session-error-statistics { | container session-error-statistics { | |||
| description | description | |||
| "Per session error statistics."; | "Per session error statistics."; | |||
| leaf packet-loss-count { | leaf packet-loss-count { | |||
| type uint32 { | type uint32 { | |||
| range "0..4294967295"; | range "0..4294967295"; | |||
| } | } | |||
| default "0"; | default "0"; | |||
| description | description | |||
| "Total received packet drops count. | "Total received packet drops count. | |||
| If the value is 4294967295, it indicates | The value of count will be set to zero (0) | |||
| packet drops count is overrun."; | on creation and will thereafter increase | |||
| monotonically until it reaches a maximum value | ||||
| of 2^32-1 (4294967295 decimal), when it wraps | ||||
| around and starts increasing again from zero."; | ||||
| } | } | |||
| leaf loss-ratio{ | leaf loss-ratio{ | |||
| type percentage; | type percentage; | |||
| description | description | |||
| "Loss ratio of the packets. Express as percentage | "Loss ratio of the packets. Express as percentage | |||
| of packets lost with respect to packets sent."; | of packets lost with respect to packets sent."; | |||
| } | } | |||
| leaf packet-reorder-count { | leaf packet-reorder-count { | |||
| type uint32 { | type uint32 { | |||
| range "0..4294967295"; | range "0..4294967295"; | |||
| } | } | |||
| default "0"; | default "0"; | |||
| description | description | |||
| "Total received packet reordered count. | "Total received packet reordered count. | |||
| The value of count will be set to zero (0) | ||||
| If the value is 4294967295, it indicates | on creation and will thereafter increase | |||
| packet reorder count is overrun."; | monotonically until it reaches a maximum value | |||
| of 2^32-1 (4294967295 decimal), when it wraps | ||||
| around and starts increasing again from zero."; | ||||
| } | } | |||
| leaf packets-out-of-seq-count { | leaf packets-out-of-seq-count { | |||
| type uint32 { | type uint32 { | |||
| range "0..4294967295"; | range "0..4294967295"; | |||
| } | } | |||
| description | description | |||
| "Total received out of sequence count. | "Total received out of sequence count. | |||
| If the value is 4294967295, it indicates | The value of count will be set to zero (0) | |||
| out of sequence count is overrun."; | on creation and will thereafter increase | |||
| monotonically until it reaches a maximum value | ||||
| of 2^32-1 (4294967295 decimal), when it wraps | ||||
| around and starts increasing again from zero.."; | ||||
| } | } | |||
| leaf packets-dup-count { | leaf packets-dup-count { | |||
| type uint32 { | type uint32 { | |||
| range "0..4294967295"; | range "0..4294967295"; | |||
| } | } | |||
| description | description | |||
| "Total received packet duplicates count. | "Total received packet duplicates count. | |||
| If the value is 4294967295, it indicates | The value of count will be set to zero (0) | |||
| packet duplicates count is overrun."; | on creation and will thereafter increase | |||
| monotonically until it reaches a maximum value | ||||
| of 2^32-1 (4294967295 decimal), when it wraps | ||||
| around and starts increasing again from zero."; | ||||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping session-delay-statistics { | grouping session-delay-statistics { | |||
| description | description | |||
| "Grouping for per session delay statistics"; | "Grouping for per session delay statistics"; | |||
| container session-delay-statistics { | container session-delay-statistics { | |||
| description | description | |||
| "Session delay summarised information.By default, | "Session delay summarised information.By default, | |||
| one way measurement protocol (e.g., OWAMP)is used | one way measurement protocol (e.g., OWAMP)is used | |||
| to measure delay. When two way measurement protocol | to measure delay. When two way measurement protocol | |||
| (e.g., TWAMP) is used instead, it can be indicated | (e.g., TWAMP) is used instead, it can be indicated | |||
| using and protocol-id defined in RPC operation of | using and protocol-id defined in RPC operation of | |||
| draft-ietf-lime-yang-connectionless-oam-methods,i.e., | draft-ietf-lime-yang-connectionless-oam-methods,i.e., | |||
| set protocol-id as OWAMP. Note that only one measurement | set protocol-id as OWAMP. Note that only one measurement | |||
| protocol for delay is specified for interoperability reason."; | protocol for delay is specified for interoperability reason."; | |||
| leaf time-interval-value { | leaf time-unit-value { | |||
| type identityref { | type identityref { | |||
| base time-interval-type; | base lime:time-unit-type; | |||
| } | } | |||
| default "milliseconds"; | default lime:milliseconds; | |||
| description | description | |||
| "Time units among choice of s,ms,ns etc."; | "Time units among choice of s,ms,ns etc."; | |||
| } | } | |||
| leaf min-delay-value { | leaf min-delay-value { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Minimum delay value observed."; | "Minimum delay value observed."; | |||
| } | } | |||
| leaf max-delay-value { | leaf max-delay-value { | |||
| type uint32; | type uint32; | |||
| skipping to change at page 21, line 32 ¶ | skipping to change at page 23, line 17 ¶ | |||
| description | description | |||
| "Session jitter summarised information. By default, | "Session jitter summarised information. By default, | |||
| jitter is measured using IP Packet Delay Variation | jitter is measured using IP Packet Delay Variation | |||
| (IPDV) as defined in RFC3393. When the other measurement | (IPDV) as defined in RFC3393. When the other measurement | |||
| method is used instead(e.g., Packet Delay Variation used in | method is used instead(e.g., Packet Delay Variation used in | |||
| Y.1540, it can be indicated using protocol-id-meta-data | Y.1540, it can be indicated using protocol-id-meta-data | |||
| defined in RPC operation of | defined in RPC operation of | |||
| draft-ietf-lime-yang-connectionless-oam-methods. Note that | draft-ietf-lime-yang-connectionless-oam-methods. Note that | |||
| only one measurement method for jitter is specified | only one measurement method for jitter is specified | |||
| for interoperability reason."; | for interoperability reason."; | |||
| leaf interval-value { | leaf unit-value { | |||
| type identityref { | type identityref { | |||
| base time-interval-type; | base lime:time-unit-type; | |||
| } | } | |||
| default "milliseconds"; | default lime:milliseconds; | |||
| description | description | |||
| "Time units among choice of s,ms,ns etc."; | "Time units among choice of s,ms,ns etc."; | |||
| } | } | |||
| leaf min-jitter-value { | leaf min-jitter-value { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Minimum jitter value observed."; | "Minimum jitter value observed."; | |||
| } | } | |||
| leaf max-jitter-value { | leaf max-jitter-value { | |||
| type uint32; | type uint32; | |||
| skipping to change at page 22, line 23 ¶ | skipping to change at page 24, line 7 ¶ | |||
| container session-path-verification-statistics { | container session-path-verification-statistics { | |||
| description | description | |||
| "OAM per session path verification statistics."; | "OAM per session path verification statistics."; | |||
| leaf verified-count { | leaf verified-count { | |||
| type uint32 { | type uint32 { | |||
| range "0..4294967295"; | range "0..4294967295"; | |||
| } | } | |||
| description | description | |||
| "Total number of OAM packets that | "Total number of OAM packets that | |||
| went through a path as intended. | went through a path as intended. | |||
| A value of 4294967295 indicates that | The value of count will be set to zero (0) | |||
| verified count is overrun."; | on creation and will thereafter increase | |||
| monotonically until it reaches a maximum value | ||||
| of 2^32-1 (4294967295 decimal), when it wraps | ||||
| around and starts increasing again from zero."; | ||||
| } | } | |||
| leaf failed-count { | leaf failed-count { | |||
| type uint32 { | type uint32 { | |||
| range "0..4294967295"; | range "0..4294967295"; | |||
| } | } | |||
| description | description | |||
| "Total number of OAM packets that | "Total number of OAM packets that | |||
| went through an unintended path. | went through an unintended path. | |||
| A value of 4294967295 indicates that | The value of count will be set to zero (0) | |||
| on creation and will thereafter increase | ||||
| failed count is overrun."; | monotonically until it reaches a maximum value | |||
| of 2^32-1 (4294967295 decimal), when it wraps | ||||
| around and starts increasing again from zero."; | ||||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping session-type { | grouping session-type { | |||
| description | description | |||
| "This object indicates which kind | "This object indicates which kind | |||
| of activation will be used by the current | of activation will be used by the current | |||
| session."; | session."; | |||
| leaf session-type { | leaf session-type { | |||
| type enumeration { | type enumeration { | |||
| skipping to change at page 23, line 38 ¶ | skipping to change at page 25, line 27 ¶ | |||
| base tp-address-technology-type; | base tp-address-technology-type; | |||
| description | description | |||
| "IPv6 address type"; | "IPv6 address type"; | |||
| } | } | |||
| identity tp-attribute-type { | identity tp-attribute-type { | |||
| base tp-address-technology-type; | base tp-address-technology-type; | |||
| description | description | |||
| "Test point attribute type"; | "Test point attribute type"; | |||
| } | } | |||
| identity system-id-address-type { | identity router-id-address-type { | |||
| base tp-address-technology-type; | base tp-address-technology-type; | |||
| description | description | |||
| "System id address type"; | "System id address type"; | |||
| } | } | |||
| identity as-number-address-type { | identity as-number-address-type { | |||
| base tp-address-technology-type; | base tp-address-technology-type; | |||
| description | description | |||
| "AS number address type"; | "AS number address type"; | |||
| } | } | |||
| identity route-distinguisher-address-type { | identity route-distinguisher-address-type { | |||
| skipping to change at page 25, line 30 ¶ | skipping to change at page 27, line 20 ¶ | |||
| description | description | |||
| "Test point type."; | "Test point type."; | |||
| } | } | |||
| choice tp-attribute-value { | choice tp-attribute-value { | |||
| description | description | |||
| "Test point value."; | "Test point value."; | |||
| case ip-prefix { | case ip-prefix { | |||
| leaf ip-prefix { | leaf ip-prefix { | |||
| type inet:ip-prefix; | type inet:ip-prefix; | |||
| description | description | |||
| "IP prefix."; | "Generic IPv4/IPv6 prefix.See Section 3.2.13 and | |||
| Section 3.2.14 of RFC8029."; | ||||
| reference | ||||
| "RFC 8029 :Detecting Multi-Protocol Label | ||||
| Switched (MPLS) Data Plane Failures"; | ||||
| } | } | |||
| } | } | |||
| case bgp { | case bgp { | |||
| leaf bgp { | leaf bgp { | |||
| type inet:ip-prefix; | type inet:ip-prefix; | |||
| description | description | |||
| "BGP Labeled Prefix "; | "BGP Labeled IPv4/IPv6 Prefix.See section | |||
| 3.2.11 and section 3.2.12 of RFC8029 for details. "; | ||||
| reference | ||||
| "RFC 8029 :Detecting Multi-Protocol Label | ||||
| Switched (MPLS) Data Plane Failures"; | ||||
| } | } | |||
| } | } | |||
| case tunnel { | case tunnel { | |||
| leaf tunnel-interface { | leaf tunnel-interface { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "VPN Prefix "; | "Basic IPv4/IPv6 Tunnel ID. See section 3.2.3 | |||
| and Section 3.2.4 of RFC8029 for details."; | ||||
| reference | ||||
| "RFC 8029 :Detecting Multi-Protocol Label | ||||
| Switched (MPLS) Data Plane Failures."; | ||||
| } | } | |||
| } | } | |||
| case pw { | case pw { | |||
| leaf remote-pe-address { | leaf remote-pe-address { | |||
| type inet:ip-address; | type inet:ip-address; | |||
| description | description | |||
| "Remote pe address."; | "Remote PE address,See section 3.2.8 | |||
| of RFC8029 for details."; | ||||
| reference | ||||
| "RFC 8029 :Detecting Multi-Protocol Label | ||||
| Switched (MPLS) Data Plane Failures"; | ||||
| } | } | |||
| leaf pw-id { | leaf pw-id { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Pseudowire ID is a non-zero 32-bit ID."; | "Pseudowire ID is a non-zero 32-bit ID.See section | |||
| 3.2.8 and Section 3.2.9 for details."; | ||||
| reference | reference | |||
| "RFC 4379 :Detecting Multi-Protocol Label | "RFC 8029 :Detecting Multi-Protocol Label | |||
| Switched (MPLS) Data Plane Failures"; | Switched (MPLS) Data Plane Failures"; | |||
| } | } | |||
| } | } | |||
| case vpls { | case vpls { | |||
| leaf route-distinguisher { | leaf route-distinguisher { | |||
| type rt:route-distinguisher; | type rt:route-distinguisher; | |||
| description | description | |||
| "Route Distinguisher is an 8 octets identifier | "Route Distinguisher is an 8 octets identifier | |||
| used to distinguish information about various | used to distinguish information about various | |||
| L2VPN advertised by a node."; | L2VPN advertised by a node."; | |||
| reference | reference | |||
| "RFC 4379 :Detecting Multi-Protocol Label | "RFC 8029 :Detecting Multi-Protocol Label | |||
| Switched (MPLS) Data Plane Failures"; | Switched (MPLS) Data Plane Failures"; | |||
| } | } | |||
| leaf sender-ve-id { | leaf sender-ve-id { | |||
| type uint16; | type uint16; | |||
| description | description | |||
| "Sender's VE ID. The VE ID (VPLS Edge Identifier) | "Sender's VE ID. The VE ID (VPLS Edge Identifier) | |||
| is a 2-octet identifier."; | is a 2-octet identifier."; | |||
| reference | reference | |||
| "RFC 4379 :Detecting Multi-Protocol Label | "RFC 8029 :Detecting Multi-Protocol Label | |||
| Switched (MPLS) Data Plane Failures"; | Switched (MPLS) Data Plane Failures"; | |||
| } | } | |||
| leaf receiver-ve-id { | leaf receiver-ve-id { | |||
| type uint16; | type uint16; | |||
| description | description | |||
| "Receiver's VE ID.The VE ID (VPLS Edge Identifier) | "Receiver's VE ID.The VE ID (VPLS Edge Identifier) | |||
| is a 2-octet identifier."; | is a 2-octet identifier."; | |||
| reference | reference | |||
| "RFC 4379 :Detecting Multi-Protocol Label | "RFC 8029 :Detecting Multi-Protocol Label | |||
| Switched (MPLS) Data Plane Failures"; | Switched (MPLS) Data Plane Failures"; | |||
| } | } | |||
| } | } | |||
| case mpls-mldp { | case mpls-mldp { | |||
| choice root-address { | choice root-address { | |||
| description | description | |||
| "Root address choice."; | "Root address choice."; | |||
| case ip-address { | case ip-address { | |||
| leaf source-address { | leaf source-address { | |||
| type inet:ip-address; | type inet:ip-address; | |||
| skipping to change at page 27, line 29 ¶ | skipping to change at page 29, line 34 ¶ | |||
| numbers which identify an Autonomous System."; | numbers which identify an Autonomous System."; | |||
| } | } | |||
| } | } | |||
| case global-id { | case global-id { | |||
| leaf lsp-id { | leaf lsp-id { | |||
| type string; | type string; | |||
| description | description | |||
| "LSP ID is an identifier of a LSP | "LSP ID is an identifier of a LSP | |||
| within a MPLS network."; | within a MPLS network."; | |||
| reference | reference | |||
| "RFC 4379 :Detecting Multi-Protocol Label | "RFC 8029 :Detecting Multi-Protocol Label | |||
| Switched (MPLS) Data Plane Failures"; | Switched (MPLS) Data Plane Failures"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "Test Point Attribute Container"; | "Test Point Attribute Container"; | |||
| } | } | |||
| container system-info { | container system-info { | |||
| when "derived-from-or-self(../tp-location-type,"+ | when "derived-from-or-self(../tp-location-type,"+ | |||
| "'cl-oam:system-id-address-type')" { | "'cl-oam:router-id-address-type')" { | |||
| description | description | |||
| "System id address type"; | "System id address type"; | |||
| } | } | |||
| leaf system-id { | leaf router-id { | |||
| type rt:router-id; | type rt:router-id; | |||
| description | description | |||
| "System ID assigned to this node."; | "Router ID assigned to this node."; | |||
| } | } | |||
| description | description | |||
| "system ID container."; | "Router ID container."; | |||
| } | } | |||
| description | description | |||
| "TP Address"; | "TP Address"; | |||
| } | } | |||
| grouping tp-address-ni { | grouping tp-address-ni { | |||
| description | description | |||
| "Test point address with VRF."; | "Test point address with VRF."; | |||
| leaf ni { | leaf ni { | |||
| type routing-instance-ref; | type routing-instance-ref; | |||
| description | description | |||
| skipping to change at page 29, line 40 ¶ | skipping to change at page 31, line 44 ¶ | |||
| } | } | |||
| case as-number { | case as-number { | |||
| leaf as-number-location { | leaf as-number-location { | |||
| type inet:as-number; | type inet:as-number; | |||
| description | description | |||
| "AS number location"; | "AS number location"; | |||
| } | } | |||
| description | description | |||
| "AS number for point to multipoint OAM"; | "AS number for point to multipoint OAM"; | |||
| } | } | |||
| case system-id { | case router-id { | |||
| leaf system-id-location { | leaf router-id-location { | |||
| type router-id; | type rt:router-id; | |||
| description | description | |||
| "System id location"; | "System id location"; | |||
| } | } | |||
| description | description | |||
| "System ID"; | "System ID"; | |||
| } | } | |||
| description | description | |||
| "TP location."; | "TP location."; | |||
| } | } | |||
| description | description | |||
| "List of neighboring test points in the same layer that are related to current test | "List of neighboring test points in the same layer that are related to current test | |||
| point. If the neighboring test-point is placed after the current test point, the | point. If the neighboring test-point is placed after the current test point, the | |||
| position is specified as +1. If neighboring test-point | position is specified as +1. If neighboring test-point | |||
| is placed before the current test point, the position is specified | is placed before the current test point, the position is specified | |||
| as -1, if no neighboring test points placed before or after the current | as -1, if no neighboring test points placed before or after the current | |||
| test point in the same layer, the position is specified as 0."; | test point in the same layer, the position is specified as 0."; | |||
| } | } | |||
| description | description | |||
| skipping to change at page 31, line 48 ¶ | skipping to change at page 34, line 4 ¶ | |||
| test point"; | test point"; | |||
| } | } | |||
| uses connectionless-oam-tps; | uses connectionless-oam-tps; | |||
| description | description | |||
| "Test point Location"; | "Test point Location"; | |||
| } | } | |||
| grouping test-point-locations { | grouping test-point-locations { | |||
| description | description | |||
| "Group of test point locations."; | "Group of test point locations."; | |||
| leaf tp-location-type { | leaf tp-location-type { | |||
| type identityref { | type identityref { | |||
| base tp-address-technology-type; | base tp-address-technology-type; | |||
| } | } | |||
| description | description | |||
| "Test point location type."; | "Test point location type."; | |||
| } | } | |||
| container ipv4-location-type { | container ipv4-location-type { | |||
| when "derived-from-or-self(../tp-location-type,"+ | when "derived-from-or-self(../tp-location-type,"+ | |||
| "'cl-oam:ipv4-address-type')" { | "'cl-oam:ipv4-address-type')" { | |||
| description | description | |||
| "When test point location type is equal to ipv4 address."; | "When test point location type is equal to ipv4 address."; | |||
| } | } | |||
| container test-point-ipv4-location-list { | container test-point-ipv4-location-list { | |||
| list test-point-locations { | list test-point-locations { | |||
| key "ipv4-location ni"; | key "ipv4-location ni"; | |||
| leaf ipv4-location { | leaf ipv4-location { | |||
| type inet:ipv4-address; | type inet:ipv4-address; | |||
| description | description | |||
| "IPv4 Address."; | "IPv4 Address."; | |||
| } | } | |||
| leaf ni { | leaf ni { | |||
| type routing-instance-ref; | type routing-instance-ref; | |||
| description | description | |||
| skipping to change at page 32, line 37 ¶ | skipping to change at page 34, line 42 ¶ | |||
| description | description | |||
| "List of test point locations."; | "List of test point locations."; | |||
| } | } | |||
| description | description | |||
| "Serves as top-level container | "Serves as top-level container | |||
| for test point location list."; | for test point location list."; | |||
| } | } | |||
| description | description | |||
| "ipv4 location type container."; | "ipv4 location type container."; | |||
| } | } | |||
| container ipv6-location-type { | container ipv6-location-type { | |||
| when "derived-from-or-self(../tp-location-type,"+ | when "derived-from-or-self(../tp-location-type,"+ | |||
| "'cl-oam:ipv6-address-type')" { | "'cl-oam:ipv6-address-type')" { | |||
| description | description | |||
| "when test point location is equal to ipv6 address"; | "when test point location is equal to ipv6 address"; | |||
| } | } | |||
| container test-point-ipv6-location-list { | container test-point-ipv6-location-list { | |||
| list test-point-locations { | list test-point-locations { | |||
| key "ipv6-location ni"; | key "ipv6-location ni"; | |||
| leaf ipv6-location { | leaf ipv6-location { | |||
| type inet:ipv6-address; | type inet:ipv6-address; | |||
| description | description | |||
| "IPv6 Address."; | "IPv6 Address."; | |||
| } | } | |||
| leaf ni { | leaf ni { | |||
| type routing-instance-ref; | type routing-instance-ref; | |||
| description | description | |||
| "The ni is used to describe the | "The ni is used to describe the | |||
| corresponding network instance"; | corresponding network instance"; | |||
| } | } | |||
| uses test-point-location-info; | uses test-point-location-info; | |||
| description | description | |||
| "List of test point locations."; | "List of test point locations."; | |||
| } | } | |||
| description | description | |||
| "Serves as top-level container | "Serves as top-level container | |||
| for test point location list."; | for test point location list."; | |||
| } | } | |||
| description | description | |||
| "ipv6 location type container."; | "ipv6 location type container."; | |||
| } | } | |||
| container mac-location-type { | container mac-location-type { | |||
| when "derived-from-or-self(../tp-location-type,"+ | when "derived-from-or-self(../tp-location-type,"+ | |||
| "'cl-oam:mac-address-type')" { | "'cl-oam:mac-address-type')" { | |||
| description | description | |||
| "when test point location type is equal to mac address."; | "when test point location type is equal to mac address."; | |||
| } | } | |||
| container test-point-mac-address-location-list { | container test-point-mac-address-location-list { | |||
| list test-point-locations { | list test-point-locations { | |||
| key "mac-address-location"; | key "mac-address-location"; | |||
| leaf mac-address-location { | leaf mac-address-location { | |||
| type yang:mac-address; | type yang:mac-address; | |||
| description | description | |||
| "MAC Address"; | "MAC Address"; | |||
| } | } | |||
| uses test-point-location-info; | uses test-point-location-info; | |||
| description | description | |||
| "List of test point locations."; | "List of test point locations."; | |||
| skipping to change at page 33, line 48 ¶ | skipping to change at page 36, line 4 ¶ | |||
| description | description | |||
| "Serves as top-level container | "Serves as top-level container | |||
| for test point location list."; | for test point location list."; | |||
| } | } | |||
| description | description | |||
| "mac address location type container."; | "mac address location type container."; | |||
| } | } | |||
| container group-as-number-location-type { | container group-as-number-location-type { | |||
| when "derived-from-or-self(../tp-location-type,"+ | when "derived-from-or-self(../tp-location-type,"+ | |||
| "'cl-oam:as-number-address-type')" { | "'cl-oam:as-number-address-type')" { | |||
| description | description | |||
| "when test point location type is equal to as-number."; | "when test point location type is equal to as-number."; | |||
| } | } | |||
| container test-point-as-number-location-list { | container test-point-as-number-location-list { | |||
| list test-point-locations { | list test-point-locations { | |||
| key "as-number-location"; | key "as-number-location"; | |||
| leaf as-number-location { | leaf as-number-location { | |||
| type inet:as-number; | type inet:as-number; | |||
| description | description | |||
| "AS number for point to multi point OAM."; | "AS number for point to multi point OAM."; | |||
| } | } | |||
| leaf ni { | leaf ni { | |||
| type routing-instance-ref; | type routing-instance-ref; | |||
| description | description | |||
| "The ni is used to describe the | "The ni is used to describe the | |||
| corresponding network instance"; | corresponding network instance"; | |||
| } | } | |||
| uses test-point-location-info; | uses test-point-location-info; | |||
| description | description | |||
| "List of test point locations."; | "List of test point locations."; | |||
| } | } | |||
| description | description | |||
| "Serves as top-level container | "Serves as top-level container | |||
| for test point location list."; | for test point location list."; | |||
| } | } | |||
| description | description | |||
| "as number location type container."; | "as number location type container."; | |||
| } | } | |||
| container group-system-id-location-type { | container group-router-id-location-type { | |||
| when "derived-from-or-self(../tp-location-type,"+ | when "derived-from-or-self(../tp-location-type,"+ | |||
| "'cl-oam:system-id-address-type')" { | "'cl-oam:router-id-address-type')" { | |||
| description | description | |||
| "when test point location type is equal to system-info."; | "when test point location type is equal to system-info."; | |||
| } | } | |||
| container test-point-system-info-location-list { | container test-point-system-info-location-list { | |||
| list test-point-locations { | list test-point-locations { | |||
| key "system-id-location"; | key "router-id-location"; | |||
| leaf system-id-location { | leaf router-id-location { | |||
| type inet:uri; | type rt:router-id; | |||
| description | description | |||
| "System Id."; | "System Id."; | |||
| } | } | |||
| leaf ni { | leaf ni { | |||
| type routing-instance-ref; | type routing-instance-ref; | |||
| description | description | |||
| "The ni is used to describe the | "The ni is used to describe the | |||
| corresponding network instance"; | corresponding network instance"; | |||
| } | } | |||
| uses test-point-location-info; | uses test-point-location-info; | |||
| skipping to change at page 35, line 4 ¶ | skipping to change at page 37, line 7 ¶ | |||
| } | } | |||
| leaf ni { | leaf ni { | |||
| type routing-instance-ref; | type routing-instance-ref; | |||
| description | description | |||
| "The ni is used to describe the | "The ni is used to describe the | |||
| corresponding network instance"; | corresponding network instance"; | |||
| } | } | |||
| uses test-point-location-info; | uses test-point-location-info; | |||
| description | description | |||
| "List of test point locations."; | "List of test point locations."; | |||
| } | } | |||
| description | description | |||
| "Serves as top-level container for | "Serves as top-level container for | |||
| test point location list."; | test point location list."; | |||
| } | } | |||
| description | description | |||
| "system ID location type container."; | "system ID location type container."; | |||
| } | } | |||
| } | } | |||
| augment "/nd:networks/nd:network/nd:node" { | augment "/nd:networks/nd:network/nd:node" { | |||
| description | description | |||
| "Augment test points of connectionless oam."; | "augments the /networks/network/node path defined in the ietf- | |||
| uses test-point-locations; | network module (I-D.ietf-i2rs-yang-network-topo) with test-point- | |||
| locations grouping."; | ||||
| uses test-point-locations; | ||||
| } | } | |||
| grouping timestamp { | grouping timestamp { | |||
| description | description | |||
| "Grouping for timestamp."; | "Grouping for timestamp."; | |||
| leaf timestamp-type { | leaf timestamp-type { | |||
| type identityref { | type identityref { | |||
| base timestamp-type; | base lime:timestamp-type; | |||
| } | } | |||
| description | description | |||
| "Type of Timestamp, such as Truncated PTP, NTP."; | "Type of Timestamp, such as Truncated PTP, NTP."; | |||
| } | } | |||
| container timestamp-64bit { | container timestamp-64bit { | |||
| when "derived-from-or-self(../timestamp-type, 'cl-oam:truncated-ptp')"+ | when "derived-from-or-self(../timestamp-type, 'cl-oam:truncated-ptp')"+ | |||
| "or derived-from-or-self(../timestamp-type,'cl-oam:ntp64')" { | "or derived-from-or-self(../timestamp-type,'cl-oam:ntp64')" { | |||
| description | description | |||
| "Only applies when Truncated NTP or 64bit NTP Timestamp."; | "Only applies when Truncated NTP or 64bit NTP Timestamp."; | |||
| } | } | |||
| skipping to change at page 36, line 6 ¶ | skipping to change at page 38, line 10 ¶ | |||
| "Fractional part in nanoseconds as per IEEE1588v2 | "Fractional part in nanoseconds as per IEEE1588v2 | |||
| or Fractional part in 64-bit NTP timestamp."; | or Fractional part in 64-bit NTP timestamp."; | |||
| } | } | |||
| description | description | |||
| "Container for 64bit timestamp."; | "Container for 64bit timestamp."; | |||
| } | } | |||
| container timestamp-80bit { | container timestamp-80bit { | |||
| when "derived-from-or-self(../timestamp-type, 'cl-oam:ptp80')"{ | when "derived-from-or-self(../timestamp-type, 'cl-oam:ptp80')"{ | |||
| description | description | |||
| "Only applies when 80bit PTP Timestamp."; | "Only applies when 80bit PTP Timestamp."; | |||
| } | } | |||
| if-feature ptp-long-format; | if-feature ptp-long-format; | |||
| leaf timestamp-sec { | leaf timestamp-sec { | |||
| type uint64 { | type uint64 { | |||
| range "0..281474976710656"; | range "0..281474976710655"; | |||
| } | } | |||
| description | description | |||
| "48bit Timestamp in seconds as per IEEE1588v2."; | "48bit Timestamp in seconds as per IEEE1588v2."; | |||
| } | } | |||
| leaf timestamp-nanosec { | leaf timestamp-nanosec { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Fractional part in nanoseconds as per IEEE1588v2 | "Fractional part in nanoseconds as per IEEE1588v2 | |||
| or Fractional part in 64-bit NTP timestamp."; | or Fractional part in 64-bit NTP timestamp."; | |||
| } | } | |||
| description | description | |||
| "Container for 64bit timestamp."; | "Container for 80bit timestamp."; | |||
| } | } | |||
| container ntp-timestamp-32bit { | container ntp-timestamp-32bit { | |||
| when "derived-from-or-self(../timestamp-type, 'cl-oam:truncated-ntp')"{ | when "derived-from-or-self(../timestamp-type, 'cl-oam:truncated-ntp')"{ | |||
| description | description | |||
| "Only applies when 32 bit NTP Short format Timestamp."; | "Only applies when 32 bit NTP Short format Timestamp."; | |||
| } | } | |||
| if-feature ntp-short-format; | if-feature ntp-short-format; | |||
| leaf timestamp-sec { | leaf timestamp-sec { | |||
| type uint16; | type uint16; | |||
| description | description | |||
| "Timestamp in seconds as per short format NTP."; | "Timestamp in seconds as per short format NTP."; | |||
| } | } | |||
| leaf timestamp-nanosec { | leaf timestamp-nanosec { | |||
| type uint16; | type uint16; | |||
| description | description | |||
| "Truncated Fractional part in 16-bit NTP timestamp."; | "Truncated Fractional part in 16-bit NTP timestamp."; | |||
| } | } | |||
| description | description | |||
| "Container for 64bit timestamp."; | "Container for 32bit timestamp."; | |||
| } | } | |||
| container icmp-timestamp-32bit { | container icmp-timestamp-32bit { | |||
| when "derived-from-or-self(../timestamp-type, 'cl-oam:icmp-ntp')"{ | when "derived-from-or-self(../timestamp-type, 'cl-oam:icmp-ntp')"{ | |||
| description | description | |||
| "Only applies when Truncated NTP or 64bit NTP Timestamp."; | "Only applies when Truncated NTP or 64bit NTP Timestamp."; | |||
| } | } | |||
| if-feature icmp-timestamp; | if-feature icmp-timestamp; | |||
| leaf timestamp-millisec { | leaf timestamp-millisec { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "timestamp in milliseconds for ICMP timestamp."; | "timestamp in milliseconds for ICMP timestamp."; | |||
| } | } | |||
| description | description | |||
| "Container for 32bit timestamp."; | "Container for 32bit timestamp."; | |||
| } | } | |||
| } | } | |||
| grouping path-discovery-data { | grouping path-discovery-data { | |||
| description | description | |||
| "Path discovery related data output from nodes."; | "Path discovery related data output from nodes."; | |||
| container src-test-point { | container src-test-point { | |||
| description | description | |||
| "Source test point."; | "Source test point."; | |||
| uses tp-address-ni; | uses tp-address-ni; | |||
| } | } | |||
| container dest-test-point { | container dest-test-point { | |||
| skipping to change at page 40, line 4 ¶ | skipping to change at page 42, line 6 ¶ | |||
| type uint8; | type uint8; | |||
| default "0"; | default "0"; | |||
| description | description | |||
| "Hop count.A value of zero indicates | "Hop count.A value of zero indicates | |||
| that no hop count is sent"; | that no hop count is sent"; | |||
| } | } | |||
| uses session-packet-statistics; | uses session-packet-statistics; | |||
| uses session-error-statistics; | uses session-error-statistics; | |||
| uses session-delay-statistics; | uses session-delay-statistics; | |||
| uses session-jitter-statistics; | uses session-jitter-statistics; | |||
| } | } | |||
| container cc-session-statistics-data { | container cc-session-statistics-data { | |||
| if-feature "continuity-check"; | if-feature "continuity-check"; | |||
| config false; | config false; | |||
| description | list cc-session-statistics { | |||
| "CC operational information."; | key type; | |||
| container cc-ipv4-sessions-statistics { | leaf type { | |||
| type identityref { | ||||
| base traffic-type; | ||||
| } | ||||
| description | ||||
| "Type of traffic."; | ||||
| } | ||||
| container cc-ipv4-sessions-statistics { | ||||
| when "../type = 'ipv4'" { | ||||
| description | ||||
| "Only applies when traffic type is Ipv4."; | ||||
| } | ||||
| description | description | |||
| "CC ipv4 sessions"; | "CC ipv4 sessions"; | |||
| uses cc-session-statistics; | uses cc-session-statistics; | |||
| } | } | |||
| container cc-ipv6-sessions-statistics { | container cc-ipv6-sessions-statistics { | |||
| when "../type = 'ipv6'" { | ||||
| description | ||||
| "Only applies when traffic type is Ipv6."; | ||||
| } | ||||
| description | description | |||
| "CC ipv6 sessions"; | "CC ipv6 sessions"; | |||
| uses cc-session-statistics; | uses cc-session-statistics; | |||
| } | } | |||
| description | ||||
| "List of CC session statistics data."; | ||||
| } | ||||
| description | ||||
| "CC operational information."; | ||||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 5. Connectionless model applicability | 6. Connectionless model applicability | |||
| The "ietf-connectionless-oam" model defined in this document provides | The "ietf-connectionless-oam" model defined in this document provides | |||
| a technology-independent abstraction of key OAM constructs for | a technology-independent abstraction of key OAM constructs for | |||
| connectionless protocols. This model can be further extended to | connectionless protocols. This model can be further extended to | |||
| include technology specific details, e.g., adding new data nodes with | include technology specific details, e.g., adding new data nodes with | |||
| technology specific functions and parameters into proper anchor | technology specific functions and parameters into proper anchor | |||
| points of the base model, so as to develop a technology-specific | points of the base model, so as to develop a technology-specific | |||
| connectionless OAM model. | connectionless OAM model. | |||
| This section demonstrates the usability of the connectionless YANG | This section demonstrates the usability of the connectionless YANG | |||
| OAM data model to various connectionless OAM technologies, e.g., BFD, | OAM data model to various connectionless OAM technologies, e.g., BFD, | |||
| LSP ping. Note that, in this section, several snippets of | LSP ping. Note that, in this section, several snippets of | |||
| technology-specific model extensions are presented for illustrative | technology-specific model extensions are presented for illustrative | |||
| purposes. The complete model extensions should be worked on in | purposes. The complete model extensions should be worked on in | |||
| respective protocol working groups. | respective protocol working groups. | |||
| 5.1. BFD Extension | 6.1. BFD Extension | |||
| RFC 7276 defines BFD as a connection-oriented protocol. It is used | RFC 7276 defines BFD as a connection-oriented protocol. It is used | |||
| to monitor a connectionless protocol in the case of basic BFD for IP. | to monitor a connectionless protocol in the case of basic BFD for IP. | |||
| 5.1.1. Augment Method | 6.1.1. Augment Method | |||
| The following sections shows how the "ietf-connectionless-oam" model | The following sections shows how the "ietf-connectionless-oam" model | |||
| can be extended to cover BFD technology. For this purpose, a set of | can be extended to cover BFD technology. For this purpose, a set of | |||
| extension are introduced such as technology-type extension and test- | extension are introduced such as technology-type extension and test- | |||
| point attributes extension. | point attributes extension. | |||
| Note that a dedicated BFD YANG data model [I-D.ietf-bfd-yang] is also | Note that a dedicated BFD YANG data model [I-D.ietf-bfd-yang] is also | |||
| standardized. Augmentation of the "ietf-connectionless-oam" model | standardized. Augmentation of the "ietf-connectionless-oam" model | |||
| with BFD specific details provides an alternative approach that | with BFD specific details provides an alternative approach that | |||
| provides a unified view of management information across various OAM | provides a unified view of management information across various OAM | |||
| protocols. The BFD specific details can be the grouping defined in | protocols. The BFD specific details can be the grouping defined in | |||
| the BFD model avoiding duplication of effort. | the BFD model avoiding duplication of effort. | |||
| 5.1.1.1. Technology type extension | 6.1.1.1. Technology type extension | |||
| No BFD technology type has been defined in the "ietf-connectionless- | No BFD technology type has been defined in the "ietf-connectionless- | |||
| oam" model. Therefore a technology type extension is required in the | oam" model. Therefore a technology type extension is required in the | |||
| model Extension. | model Extension. | |||
| The snippet below depicts an example of adding the "bfd" type as an | The snippet below depicts an example of adding the "bfd" type as an | |||
| augment to the ietf-connectionless-oam" model: | augment to the ietf-connectionless-oam" model: | |||
| augment "/nd:networks/nd:network/nd:node/" | augment "/nd:networks/nd:network/nd:node/" | |||
| +"coam:location-type/coam:ipv4-location-type" | +"coam:location-type/coam:ipv4-location-type" | |||
| +"/coam:test-point-ipv4-location-list/" | +"/coam:test-point-ipv4-location-list/" | |||
| +"coam:test-point-locations/coam:technology" | +"coam:test-point-locations/coam:technology" | |||
| { | { | |||
| leaf bfd{ | leaf bfd{ | |||
| type string; | type string; | |||
| } | } | |||
| } | } | |||
| 5.1.1.2. Test point attributes extension | 6.1.1.2. Test point attributes extension | |||
| To support BFD technology, the "ietf-connectionless-oam" model can be | To support BFD technology, the "ietf-connectionless-oam" model can be | |||
| extended by adding specific parameters into the "test-point- | extended by adding specific parameters into the "test-point- | |||
| locations" list and/or adding a new location type such as "BFD over | locations" list and/or adding a new location type such as "BFD over | |||
| MPLS TE" under "location-type". | MPLS TE" under "location-type". | |||
| 5.1.1.2.1. Define and insert new nodes into corresponding test-point- | 6.1.1.2.1. Define and insert new nodes into corresponding test-point- | |||
| location | location | |||
| In the "ietf-connectionless-oam" model, multiple "test-point- | In the "ietf-connectionless-oam" model, multiple "test-point- | |||
| location" lists are defined under the "location-type" choice node. | location" lists are defined under the "location-type" choice node. | |||
| Therefore, to derive a model for some BFD technologies ( such as ip | Therefore, to derive a model for some BFD technologies ( such as ip | |||
| single-hop, ip multi-hops, etc), data nodes for BFD specific details | single-hop, ip multi-hops, etc), data nodes for BFD specific details | |||
| need to be added into corresponding "test-point-locations" list. In | need to be added into corresponding "test-point-locations" list. In | |||
| this section, some groupings which are defined in [I-D.ietf-bfd-yang] | this section, some groupings which are defined in [I-D.ietf-bfd-yang] | |||
| are reused as follow: | are reused as follow: | |||
| skipping to change at page 42, line 38 ¶ | skipping to change at page 45, line 33 ¶ | |||
| } | } | |||
| uses bfd:bfd-grouping-common-cfg-parms; | uses bfd:bfd-grouping-common-cfg-parms; | |||
| uses bfd:bfd-grouping-echo-cfg-parms; | uses bfd:bfd-grouping-echo-cfg-parms; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| Similar augmentations can be defined to support other BFD | Similar augmentations can be defined to support other BFD | |||
| technologies such as BFD IP multi-hop, BFD over MPLS, etc. | technologies such as BFD IP multi-hop, BFD over MPLS, etc. | |||
| 5.1.1.2.2. Add new location-type cases | 6.1.1.2.2. Add new location-type cases | |||
| In the "ietf-connectionless-oam" model, If there is no appropriate | In the "ietf-connectionless-oam" model, If there is no appropriate | |||
| "location type" case that can be extended, a new "location-type" case | "location type" case that can be extended, a new "location-type" case | |||
| can be defined and inserted into the "location-type" choice node. | can be defined and inserted into the "location-type" choice node. | |||
| Therefore, the model user can flexibly add "location-type" to support | Therefore, the model user can flexibly add "location-type" to support | |||
| other type of test point which are not defined in the "ietf- | other type of test point which are not defined in the "ietf- | |||
| connectionless-oam" model. In this section, a new "location-type" | connectionless-oam" model. In this section, a new "location-type" | |||
| case is added and some groupings that are defined in | case is added and some groupings that are defined in | |||
| [I-D.ietf-bfd-yang] are reused as follows: | [I-D.ietf-bfd-yang] are reused as follows: | |||
| skipping to change at page 43, line 25 ¶ | skipping to change at page 46, line 25 ¶ | |||
| } | } | |||
| uses bfd:bfd-grouping-common-cfg-parms; | uses bfd:bfd-grouping-common-cfg-parms; | |||
| uses bfd-mpls:bfd-encap-cfg; | uses bfd-mpls:bfd-encap-cfg; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| Similar augmentations can be defined to support other BFD | Similar augmentations can be defined to support other BFD | |||
| technologies such as BFD over LAG, etc. | technologies such as BFD over LAG, etc. | |||
| 5.1.2. Schema Mount | 6.1.2. Schema Mount | |||
| Another alternative method is using the schema mount mechanism [I- | Another alternative method is using the schema mount mechanism [I- | |||
| D.ietf-netmod-schema-mount] in the "ietf-connectionless-oam" model. | D.ietf-netmod-schema-mount] in the "ietf-connectionless-oam" model. | |||
| Within the "test-point-locations" list, a "root" attribute is defined | Within the "test-point-locations" list, a "root" attribute is defined | |||
| to provide a mount point for models mounted per "test-point- | to provide a mount point for models mounted per "test-point- | |||
| locations". Therefore, the "ietf-connectionless-oam" model can | locations". Therefore, the "ietf-connectionless-oam" model can | |||
| provide a place in the node hierarchy where other OAM YANG data | provide a place in the node hierarchy where other OAM YANG data | |||
| models can be attached, without any special extension in the "ietf- | models can be attached, without any special extension in the "ietf- | |||
| connectionless-oam" YANG data models [I-D.ietf-netmod-schema-mount]. | connectionless-oam" YANG data models [I-D.ietf-netmod-schema-mount]. | |||
| Note that the limitation of the Schema Mount method is it is not | Note that the limitation of the Schema Mount method is it is not | |||
| skipping to change at page 44, line 5 ¶ | skipping to change at page 47, line 5 ¶ | |||
| anydata root { | anydata root { | |||
| yangmnt:mount-point root; | yangmnt:mount-point root; | |||
| description | description | |||
| "Root for models supported per | "Root for models supported per | |||
| test point"; | test point"; | |||
| } | } | |||
| The following section shows how the "ietf-connectionless-oam" model | The following section shows how the "ietf-connectionless-oam" model | |||
| can use schema mount to support BFD technology. | can use schema mount to support BFD technology. | |||
| 5.1.2.1. BFD Modules be populated in schema-mount | 6.1.2.1. BFD Modules be populated in schema-mount | |||
| To support BFD technology, "ietf-bfd-ip-sh" and "ietf-bfd-ip-mh" YANG | To support BFD technology, "ietf-bfd-ip-sh" and "ietf-bfd-ip-mh" YANG | |||
| modules might be populated in the "schema-mounts" container: | modules might be populated in the "schema-mounts" container: | |||
| <schema-mounts | <schema-mounts | |||
| xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-schema-mount"> | xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-schema-mount"> | |||
| <mount-point> | <mount-point> | |||
| <module> ietf-connectionless-oam </module> | <module> ietf-connectionless-oam </module> | |||
| <name>root</name> | <name>root</name> | |||
| <use-schema> | <use-schema> | |||
| skipping to change at page 45, line 28 ¶ | skipping to change at page 48, line 28 ¶ | |||
| <ietf-bfd-ip-mh uri="urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh"> | <ietf-bfd-ip-mh uri="urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh"> | |||
| <ip-mh> | <ip-mh> | |||
| foo | foo | |||
| ...... | ...... | |||
| </ip-mh> | </ip-mh> | |||
| </ietf-bfd-ip-mh> | </ietf-bfd-ip-mh> | |||
| </root> | </root> | |||
| </test-point-locations> | </test-point-locations> | |||
| </ietf-connectionless-oam> | </ietf-connectionless-oam> | |||
| 5.2. LSP ping extension | 6.2. LSP ping extension | |||
| 5.2.1. Augment Method | 6.2.1. Augment Method | |||
| The following sections shows how the "ietf-connectionless-oam" model | The following sections shows how the "ietf-connectionless-oam" model | |||
| can be extended to support LSP ping technology. For this purpose, a | can be extended to support LSP ping technology. For this purpose, a | |||
| set of extensions are introduced such as the "technology-type" | set of extensions are introduced such as the "technology-type" | |||
| extension and the test-point "attributes" extension. | extension and the test-point "attributes" extension. | |||
| Note that a LSP Ping YANG data model | Note that a LSP Ping YANG data model | |||
| [I-D.zheng-mpls-lsp-ping-yang-cfg] has been standardized. As with | [I-D.zheng-mpls-lsp-ping-yang-cfg] has been standardized. As with | |||
| BFD, users can choose to use the "ietf-connectioless-oam" as basis | BFD, users can choose to use the "ietf-connectioless-oam" as basis | |||
| and augment the "ietf- connectionless-oam" model with LSP Ping | and augment the "ietf- connectionless-oam" model with LSP Ping | |||
| specific details in the model extension to provide a unified view | specific details in the model extension to provide a unified view | |||
| across different technologies. The LSP Ping specific details can be | across different technologies. The LSP Ping specific details can be | |||
| the grouping defined in the LSP ping model to avoid duplication of | the grouping defined in the LSP ping model to avoid duplication of | |||
| effort. | effort. | |||
| 5.2.1.1. Technology type extension | 6.2.1.1. Technology type extension | |||
| No lsp-ping technology type has been defined in the "ietf- | No lsp-ping technology type has been defined in the "ietf- | |||
| connectionless-oam" model. Therefore a technology type extension is | connectionless-oam" model. Therefore a technology type extension is | |||
| required in the model extension. | required in the model extension. | |||
| The snippet below depicts an example of augmenting the "ietf- | The snippet below depicts an example of augmenting the "ietf- | |||
| connectionless-oam" with "lsp-ping" type: | connectionless-oam" with "lsp-ping" type: | |||
| augment "/nd:networks/nd:network/nd:node/" | augment "/nd:networks/nd:network/nd:node/" | |||
| +"coam:location-type/coam:ipv4-location-type" | +"coam:location-type/coam:ipv4-location-type" | |||
| +"/coam:test-point-ipv4-location-list/" | +"/coam:test-point-ipv4-location-list/" | |||
| +"coam:test-point-locations/coam:technology" | +"coam:test-point-locations/coam:technology" | |||
| { | { | |||
| leaf lsp-ping{ | leaf lsp-ping{ | |||
| type string; | type string; | |||
| } | } | |||
| } | } | |||
| 5.2.1.2. Test point attributes extension | 6.2.1.2. Test point attributes extension | |||
| To support lsp-ping, the "ietf-connectionless-oam" model can be | To support lsp-ping, the "ietf-connectionless-oam" model can be | |||
| extended and add lsp-ping specific parameters can be defined and | extended and add lsp-ping specific parameters can be defined and | |||
| under "test-point-locations" list. | under "test-point-locations" list. | |||
| User can reuse the attributes or groupings which are defined in | Users can reuse the attributes or groupings which are defined in | |||
| [I-D.zheng-mpls-lsp-ping-yang-cfg] as follows: | [I-D.zheng-mpls-lsp-ping-yang-cfg] as follows: | |||
| The snippet below depicts an example of augmenting the "test-point- | The snippet below depicts an example of augmenting the "test-point- | |||
| locations" list with lsp ping attributes: | locations" list with lsp ping attributes: | |||
| augment "/nd:networks/nd:network/nd:node/" | augment "/nd:networks/nd:network/nd:node/" | |||
| +"coam:location-type/coam:ipv4-location-type" | +"coam:location-type/coam:ipv4-location-type" | |||
| +"/coam:test-point-ipv4-location-list/" | +"/coam:test-point-ipv4-location-list/" | |||
| +"coam:test-point-locations" | +"coam:test-point-locations" | |||
| { | { | |||
| skipping to change at page 46, line 46 ¶ | skipping to change at page 49, line 46 ¶ | |||
| key "lsp-ping-name"; | key "lsp-ping-name"; | |||
| leaf lsp-ping-name { | leaf lsp-ping-name { | |||
| type string { | type string { | |||
| length "1..31"; | length "1..31"; | |||
| } | } | |||
| mandatory "true"; | mandatory "true"; | |||
| description "LSP Ping test name."; | description "LSP Ping test name."; | |||
| ...... | ...... | |||
| } | } | |||
| 5.2.2. Schema Mount | 6.2.2. Schema Mount | |||
| And another alternative method is using schema mount mechanism | And another alternative method is using schema mount mechanism | |||
| [I-D.ietf-netmod-schema-mount] in the "ietf-connectionless-oam". | [I-D.ietf-netmod-schema-mount] in the "ietf-connectionless-oam". | |||
| Within the "test-point-locations" list, a "root" attribute is defined | Within the "test-point-locations" list, a "root" attribute is defined | |||
| to provide a mounted point for models mounted per "test-point- | to provide a mounted point for models mounted per "test-point- | |||
| locations". Therefore, the "ietf-connectionless-oam" model can | locations". Therefore, the "ietf-connectionless-oam" model can | |||
| provide a place in the node hierarchy where other OAM YANG data | provide a place in the node hierarchy where other OAM YANG data | |||
| models can be attached, without any special extension in the "ietf- | models can be attached, without any special extension in the "ietf- | |||
| connectionless-oam" YANG data models [I-D.ietf-netmod-schema-mount]. | connectionless-oam" YANG data models [I-D.ietf-netmod-schema-mount]. | |||
| Note that the limitation of the Schema Mount method is it is not | Note that the limitation of the Schema Mount method is it is not | |||
| skipping to change at page 47, line 23 ¶ | skipping to change at page 50, line 23 ¶ | |||
| anydata root { | anydata root { | |||
| yangmnt:mount-point root; | yangmnt:mount-point root; | |||
| description | description | |||
| "Root for models supported per | "Root for models supported per | |||
| test point"; | test point"; | |||
| } | } | |||
| The following section shows how the "ietf-connectionless-oam" model | The following section shows how the "ietf-connectionless-oam" model | |||
| can use schema mount to support LSP-PING technology. | can use schema mount to support LSP-PING technology. | |||
| 5.2.2.1. LSP-PING Modules be populated in schema-mount | 6.2.2.1. LSP-PING Modules be populated in schema-mount | |||
| To support LSP-PING technology, "ietf-lspping" YANG module | To support LSP-PING technology, "ietf-lspping" YANG module | |||
| [I-D.zheng-mpls-lsp-ping-yang-cfg] might be populated in the "schema- | [I-D.zheng-mpls-lsp-ping-yang-cfg] might be populated in the "schema- | |||
| mounts" container: | mounts" container: | |||
| <schema-mounts | <schema-mounts | |||
| xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-schema-mount"> | xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-schema-mount"> | |||
| <mount-point> | <mount-point> | |||
| <module> ietf-connectionless-oam </module> | <module> ietf-connectionless-oam </module> | |||
| <name>root</name> | <name>root</name> | |||
| skipping to change at page 48, line 22 ¶ | skipping to change at page 51, line 22 ¶ | |||
| <ietf-lspping uri="urn:ietf:params:xml:ns:yang:ietf-lspping"> | <ietf-lspping uri="urn:ietf:params:xml:ns:yang:ietf-lspping"> | |||
| <lsp-pings> | <lsp-pings> | |||
| foo | foo | |||
| ...... | ...... | |||
| </lsp-pings> | </lsp-pings> | |||
| </ietf-lspping> | </ietf-lspping> | |||
| </root> | </root> | |||
| </test-point-locations> | </test-point-locations> | |||
| </ietf-connectionless-oam> | </ietf-connectionless-oam> | |||
| 6. Security Considerations | 7. Security Considerations | |||
| The YANG module defined in this document is designed to be accessed | The YANG module defined in this document is designed to be accessed | |||
| via network management protocols such as NETCONF [RFC6241] or | via network management protocols such as NETCONF [RFC6241] or | |||
| RESTCONF [RFC8040]. The lowest NETCONF layer is the secure transport | RESTCONF [RFC8040]. The lowest NETCONF layer is the secure transport | |||
| layer, and the mandatory-to-implement secure transport is Secure | layer, and the mandatory-to-implement secure transport is Secure | |||
| Shell (SSH) [RFC6242]. The lowest RESTCONF layer is HTTPS, and the | Shell (SSH) [RFC6242]. The lowest RESTCONF layer is HTTPS, and the | |||
| mandatory-to-implement secure transport is TLS [RFC5246]. | mandatory-to-implement secure transport is TLS [RFC5246]. | |||
| The NETCONF access control model [RFC6536] provides the means to | The NETCONF access control model [RFC6536] provides the means to | |||
| restrict access for particular NETCONF or RESTCONF users to a | restrict access for particular NETCONF or RESTCONF users to a | |||
| skipping to change at page 49, line 13 ¶ | skipping to change at page 52, line 13 ¶ | |||
| point-locations/ | point-locations/ | |||
| /nd:networks/nd:network/nd:node/cl-oam:location-type/cl-oam:mac- | /nd:networks/nd:network/nd:node/cl-oam:location-type/cl-oam:mac- | |||
| location-type/cl-oam:test-point-mac-address-location-list/cl- | location-type/cl-oam:test-point-mac-address-location-list/cl- | |||
| oam:test-point-locations/ | oam:test-point-locations/ | |||
| /nd:networks/nd:network/nd:node/cl-oam:location-type/cl-oam:group- | /nd:networks/nd:network/nd:node/cl-oam:location-type/cl-oam:group- | |||
| as-number-location-type/cl-oam:test-point-as-number-location-list/ | as-number-location-type/cl-oam:test-point-as-number-location-list/ | |||
| cl-oam:test-point-locations/ | cl-oam:test-point-locations/ | |||
| /nd:networks/nd:network/nd:node/cl-oam:location-type/cl-oam:group- | /nd:networks/nd:network/nd:node/cl-oam:location-type/cl-oam:group- | |||
| system-id-location-type/cl-oam:test-point-system-info-location- | router-id-location-type/cl-oam:test-point-system-info-location- | |||
| list/cl-oam:test-point-locations/ | list/cl-oam:test-point-locations/ | |||
| Unauthorized access to any of these lists can adversely affect OAM | Unauthorized access to any of these lists can adversely affect OAM | |||
| management system handling of end-to-end OAM and coordination of OAM | management system handling of end-to-end OAM and coordination of OAM | |||
| within underlying network layers. This may lead to inconsistent | within underlying network layers. This may lead to inconsistent | |||
| configuration, reporting, and presentation for the OAM mechanisms | configuration, reporting, and presentation for the OAM mechanisms | |||
| used to manage the network. | used to manage the network. | |||
| Some of the readable data nodes in this YANG module may be considered | Some of the readable data nodes in this YANG module may be considered | |||
| sensitive or vulnerable in some network environments. It is thus | sensitive or vulnerable in some network environments. It is thus | |||
| skipping to change at page 50, line 8 ¶ | skipping to change at page 53, line 8 ¶ | |||
| /coam:cc-session-statistics-data/cl-oam:cc-ipv6-sessions- | /coam:cc-session-statistics-data/cl-oam:cc-ipv6-sessions- | |||
| statistics/cl-oam:cc-session-statistics/cl-oam:session-up-count// | statistics/cl-oam:cc-session-statistics/cl-oam:session-up-count// | |||
| /coam:cc-session-statistics-data/cl-oam:cc-ipv6-sessions- | /coam:cc-session-statistics-data/cl-oam:cc-ipv6-sessions- | |||
| statistics/cl-oam:cc-session-statistics/cl-oam:session-down-count/ | statistics/cl-oam:cc-session-statistics/cl-oam:session-down-count/ | |||
| /coam:cc-session-statistics-data/cl-oam:cc-ipv6-sessions- | /coam:cc-session-statistics-data/cl-oam:cc-ipv6-sessions- | |||
| statistics/cl-oam:cc-session-statistics/cl-oam:session-admin-down- | statistics/cl-oam:cc-session-statistics/cl-oam:session-admin-down- | |||
| count/ | count/ | |||
| 7. IANA Considerations | 8. IANA Considerations | |||
| This document registers a URI in the IETF XML registry [RFC3688]. | This document registers a URI in the IETF XML registry [RFC3688]. | |||
| Following the format in [RFC3688] the following registration is | Following the format in [RFC3688] the following registration is | |||
| requested to be made: | requested to be made: | |||
| URI: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam | URI: urn:ietf:params:xml:ns:yang:ietf-lime-common-types | |||
| Registrant Contact: The IESG. | Registrant Contact: The IESG. | |||
| XML: N/A; the requested URI is an XML namespace. | ||||
| URI: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam | ||||
| Registrant Contact: The IESG. | ||||
| XML: N/A, the requested URI is an XML namespace. | XML: N/A, the requested URI is an XML namespace. | |||
| This document registers a YANG module in the YANG Module Names | This document registers a YANG module in the YANG Module Names | |||
| registry [RFC7950]. | registry [RFC7950]. | |||
| name: ietf-connectionless-oam | Name: ietf-lime-common-types | |||
| Namespace: urn:ietf:params:xml:ns:yang:ietf-lime-common-types | ||||
| Prefix: lime | ||||
| Reference: RFC XXXX | ||||
| namespace: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam | Name: ietf-connectionless-oam | |||
| Namespace: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam | ||||
| Prefix: cl-oam | ||||
| Reference: RFC XXXX | ||||
| prefix: cl-oam | 9. Acknowlegements | |||
| reference: RFC XXXX | The authors of this document would like to thank Elwyn Davies, Alia | |||
| Atlas,Brian E Carpenter,Greg Mirsky,Adam Roach,Alissa Cooper,Eric | ||||
| Rescorla,Ben Campbell, Benoit Claise,Kathleen Moriarty and others for | ||||
| their sustainable review and comments, proposals to improve and | ||||
| stabilize document. | ||||
| 8. Acknowlegements | 10. References | |||
| The authors of this document would like to thank Greg Mirsky and | 10.1. Normative References | |||
| others for their sustainable review and comments, proposals to | ||||
| improve and stabilize document. | ||||
| 9. References | [I-D.ietf-i2rs-yang-network-topo] | |||
| Clemm, A., Medved, J., Varga, R., Bahadur, N., | ||||
| Ananthakrishnan, H., and X. Liu, "A Data Model for Network | ||||
| Topologies", draft-ietf-i2rs-yang-network-topo-17 (work in | ||||
| progress), October 2017. | ||||
| 9.1. Normative References | [I-D.ietf-rtgwg-routing-types] | |||
| Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger, | ||||
| "Routing Area Common YANG Data Types", draft-ietf-rtgwg- | ||||
| routing-types-17 (work in progress), October 2017. | ||||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
| <https://www.rfc-editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
| [RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet | [RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet | |||
| Control Message Protocol (ICMPv6) for the Internet | Control Message Protocol (ICMPv6) for the Internet | |||
| Protocol Version 6 (IPv6) Specification", STD 89, | Protocol Version 6 (IPv6) Specification", STD 89, | |||
| RFC 4443, DOI 10.17487/RFC4443, March 2006, | RFC 4443, DOI 10.17487/RFC4443, March 2006, | |||
| <https://www.rfc-editor.org/info/rfc4443>. | <https://www.rfc-editor.org/info/rfc4443>. | |||
| skipping to change at page 51, line 48 ¶ | skipping to change at page 55, line 16 ¶ | |||
| Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, | Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, | |||
| <https://www.rfc-editor.org/info/rfc7223>. | <https://www.rfc-editor.org/info/rfc7223>. | |||
| [RFC792] Postel, J., "Internet Control Message Protocol", RFC 792, | [RFC792] Postel, J., "Internet Control Message Protocol", RFC 792, | |||
| September 1981. | September 1981. | |||
| [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | |||
| RFC 7950, DOI 10.17487/RFC7950, August 2016, | RFC 7950, DOI 10.17487/RFC7950, August 2016, | |||
| <https://www.rfc-editor.org/info/rfc7950>. | <https://www.rfc-editor.org/info/rfc7950>. | |||
| [RFC8029] Kompella, K., Swallow, G., Pignataro, C., Ed., Kumar, N., | ||||
| Aldrin, S., and M. Chen, "Detecting Multiprotocol Label | ||||
| Switched (MPLS) Data-Plane Failures", RFC 8029, | ||||
| DOI 10.17487/RFC8029, March 2017, | ||||
| <https://www.rfc-editor.org/info/rfc8029>. | ||||
| [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | |||
| Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | |||
| <https://www.rfc-editor.org/info/rfc8040>. | <https://www.rfc-editor.org/info/rfc8040>. | |||
| 9.2. Informative References | 10.2. Informative References | |||
| [G.800] "Unified functional architecture of transport networks", | [G.800] "Unified functional architecture of transport networks", | |||
| ITU-T Recommendation G.800, 2016. | ITU-T Recommendation G.800, 2016. | |||
| [G.8013] "OAM functions and mechanisms for Ethernet based | [G.8013] "OAM functions and mechanisms for Ethernet based | |||
| networks", ITU-T Recommendation G.8013/Y.1731, 2013. | networks", ITU-T Recommendation G.8013/Y.1731, 2013. | |||
| [I-D.ietf-bfd-yang] | [I-D.ietf-bfd-yang] | |||
| Rahman, R., Zheng, L., Jethanandani, M., Networks, J., and | Rahman, R., Zheng, L., Jethanandani, M., Networks, J., and | |||
| G. Mirsky, "YANG Data Model for Bidirectional Forwarding | G. Mirsky, "YANG Data Model for Bidirectional Forwarding | |||
| Detection (BFD)", draft-ietf-bfd-yang-06 (work in | Detection (BFD)", draft-ietf-bfd-yang-06 (work in | |||
| progress), June 2017. | progress), June 2017. | |||
| [I-D.ietf-i2rs-yang-network-topo] | ||||
| Clemm, A., Medved, J., Varga, R., Bahadur, N., | ||||
| Ananthakrishnan, H., and X. Liu, "A Data Model for Network | ||||
| Topologies", draft-ietf-i2rs-yang-network-topo-17 (work in | ||||
| progress), October 2017. | ||||
| [I-D.ietf-lime-yang-connection-oriented-oam-model] | [I-D.ietf-lime-yang-connection-oriented-oam-model] | |||
| Kumar, D., Wu, Q., and Z. Wang, "Generic YANG Data Model | Kumar, D., Wu, Q., and Z. Wang, "Generic YANG Data Model | |||
| for Connection Oriented Operations, Administration, and | for Connection Oriented Operations, Administration, and | |||
| Maintenance(OAM) protocols", draft-ietf-lime-yang- | Maintenance(OAM) protocols", draft-ietf-lime-yang- | |||
| connection-oriented-oam-model-00 (work in progress), June | connection-oriented-oam-model-00 (work in progress), June | |||
| 2017. | 2017. | |||
| [I-D.ietf-lime-yang-connectionless-oam-methods] | [I-D.ietf-lime-yang-connectionless-oam-methods] | |||
| Kumar, D., Wang, Z., Wu, Q., Rahman, R., and S. Raghavan, | Kumar, D., Wang, Z., Wu, Q., Rahman, R., and S. Raghavan, | |||
| "Retrieval Methods YANG Data Model for Connectionless | "Retrieval Methods YANG Data Model for Connectionless | |||
| Operations, Administration, and Maintenance(OAM) | Operations, Administration, and Maintenance(OAM) | |||
| protocols", draft-ietf-lime-yang-connectionless-oam- | protocols", draft-ietf-lime-yang-connectionless-oam- | |||
| methods-10 (work in progress), October 2017. | methods-11 (work in progress), October 2017. | |||
| [I-D.ietf-netmod-schema-mount] | [I-D.ietf-netmod-schema-mount] | |||
| Bjorklund, M. and L. Lhotka, "YANG Schema Mount", draft- | Bjorklund, M. and L. Lhotka, "YANG Schema Mount", draft- | |||
| ietf-netmod-schema-mount-08 (work in progress), October | ietf-netmod-schema-mount-08 (work in progress), October | |||
| 2017. | 2017. | |||
| [I-D.ietf-rtgwg-ni-model] | [I-D.ietf-rtgwg-ni-model] | |||
| Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X. | Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X. | |||
| Liu, "YANG Network Instances", draft-ietf-rtgwg-ni- | Liu, "YANG Network Instances", draft-ietf-rtgwg-ni- | |||
| model-04 (work in progress), September 2017. | model-04 (work in progress), September 2017. | |||
| [I-D.ietf-rtgwg-routing-types] | ||||
| Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger, | ||||
| "Routing Area Common YANG Data Types", draft-ietf-rtgwg- | ||||
| routing-types-17 (work in progress), October 2017. | ||||
| [I-D.ietf-spring-sr-yang] | [I-D.ietf-spring-sr-yang] | |||
| Litkowski, S., Qu, Y., Sarkar, P., and J. Tantsura, "YANG | Litkowski, S., Qu, Y., Sarkar, P., and J. Tantsura, "YANG | |||
| Data Model for Segment Routing", draft-ietf-spring-sr- | Data Model for Segment Routing", draft-ietf-spring-sr- | |||
| yang-07 (work in progress), July 2017. | yang-07 (work in progress), July 2017. | |||
| [I-D.zheng-mpls-lsp-ping-yang-cfg] | [I-D.zheng-mpls-lsp-ping-yang-cfg] | |||
| Zheng, L., Aldrin, S., Zheng, G., Mirsky, G., and R. | Zheng, L., Aldrin, S., Zheng, G., Mirsky, G., and R. | |||
| Rahman, "Yang Data Model for LSP-PING", draft-zheng-mpls- | Rahman, "Yang Data Model for LSP-PING", draft-zheng-mpls- | |||
| lsp-ping-yang-cfg-05 (work in progress), June 2017. | lsp-ping-yang-cfg-05 (work in progress), June 2017. | |||
| skipping to change at page 53, line 38 ¶ | skipping to change at page 57, line 4 ¶ | |||
| DOI 10.17487/RFC6136, March 2011, | DOI 10.17487/RFC6136, March 2011, | |||
| <https://www.rfc-editor.org/info/rfc6136>. | <https://www.rfc-editor.org/info/rfc6136>. | |||
| [RFC7276] Mizrahi, T., Sprecher, N., Bellagamba, E., and Y. | [RFC7276] Mizrahi, T., Sprecher, N., Bellagamba, E., and Y. | |||
| Weingarten, "An Overview of Operations, Administration, | Weingarten, "An Overview of Operations, Administration, | |||
| and Maintenance (OAM) Tools", RFC 7276, | and Maintenance (OAM) Tools", RFC 7276, | |||
| DOI 10.17487/RFC7276, June 2014, | DOI 10.17487/RFC7276, June 2014, | |||
| <https://www.rfc-editor.org/info/rfc7276>. | <https://www.rfc-editor.org/info/rfc7276>. | |||
| Authors' Addresses | Authors' Addresses | |||
| Deepak Kumar | Deepak Kumar | |||
| CISCO Systems | CISCO Systems | |||
| 510 McCarthy Blvd | 510 McCarthy Blvd | |||
| Milpitas, CA 95035 | Milpitas, CA 95035 | |||
| USA | USA | |||
| Email: dekumar@cisco.com | Email: dekumar@cisco.com | |||
| Michael Wang | Michael Wang | |||
| Huawei Technologies,Co.,Ltd | Huawei Technologies,Co.,Ltd | |||
| 101 Software Avenue, Yuhua District | 101 Software Avenue, Yuhua District | |||
| Nanjing 210012 | Nanjing 210012 | |||
| China | China | |||
| Email: wangzitao@huawei.com | Email: wangzitao@huawei.com | |||
| Qin Wu | Qin Wu (editor) | |||
| Huawei | Huawei | |||
| 101 Software Avenue, Yuhua District | 101 Software Avenue, Yuhua District | |||
| Nanjing, Jiangsu 210012 | Nanjing, Jiangsu 210012 | |||
| China | China | |||
| Email: bill.wu@huawei.com | Email: bill.wu@huawei.com | |||
| Reshad Rahman | Reshad Rahman | |||
| Cisco Systems | Cisco Systems | |||
| 2000 Innovation Drive | 2000 Innovation Drive | |||
| End of changes. 143 change blocks. | ||||
| 317 lines changed or deleted | 455 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/ | ||||