| < draft-ietf-lime-yang-connectionless-oam-03.txt | draft-ietf-lime-yang-connectionless-oam-04.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: June 26, 2017 Q. Wu | Expires: August 27, 2017 Q. Wu | |||
| Huawei | Huawei | |||
| R. Rahman | R. Rahman | |||
| S. Raghavan | S. Raghavan | |||
| Cisco | Cisco | |||
| December 23, 2016 | February 23, 2017 | |||
| Generic YANG Data Model for Connectionless Operations, Administration, | Generic YANG Data Model for Connectionless Operations, Administration, | |||
| and Maintenance(OAM) protocols | and Maintenance(OAM) protocols | |||
| draft-ietf-lime-yang-connectionless-oam-03 | draft-ietf-lime-yang-connectionless-oam-04 | |||
| Abstract | Abstract | |||
| This document presents a base YANG Data model for connectionless OAM | This document presents a base YANG Data model for connectionless | |||
| protocols. It provides a technology-independent abstraction of key | Operations Administration, and Maintenance(OAM) protocols. It | |||
| OAM constructs for connectionless protocols. The Based model | provides a technology-independent abstraction of key OAM constructs | |||
| presented here can be extended to include technology specific | for connectionless protocols. The base model presented here can be | |||
| details. This is leading to uniformity between OAM protocols and | extended to include technology specific details. This is leading to | |||
| support nested OAM workflows (i.e., performing OAM functions at | uniformity between OAM protocols and support both nested OAM | |||
| different or same levels through a unified interface). | workflows (i.e., performing OAM functions at different or 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 http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on June 26, 2017. | This Internet-Draft will expire on August 27, 2017. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2016 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 | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| 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 | |||
| skipping to change at page 2, line 31 ¶ | skipping to change at page 2, line 31 ¶ | |||
| 3. Overview of the Connectionless OAM Model . . . . . . . . . . 5 | 3. Overview of the Connectionless OAM Model . . . . . . . . . . 5 | |||
| 3.1. TP Address . . . . . . . . . . . . . . . . . . . . . . . 5 | 3.1. TP Address . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.2. Tools . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 3.2. Tools . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 3.3. OAM-layers . . . . . . . . . . . . . . . . . . . . . . . 6 | 3.3. OAM-layers . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 3.4. Test Point Locations Information . . . . . . . . . . . . 7 | 3.4. Test Point Locations Information . . . . . . . . . . . . 7 | |||
| 3.5. Test Point Locations . . . . . . . . . . . . . . . . . . 7 | 3.5. Test Point Locations . . . . . . . . . . . . . . . . . . 7 | |||
| 3.6. Path Discovery Data . . . . . . . . . . . . . . . . . . . 7 | 3.6. Path Discovery Data . . . . . . . . . . . . . . . . . . . 7 | |||
| 3.7. Continuity Check Data . . . . . . . . . . . . . . . . . . 8 | 3.7. Continuity Check Data . . . . . . . . . . . . . . . . . . 8 | |||
| 3.8. OAM data hierarchy . . . . . . . . . . . . . . . . . . . 8 | 3.8. OAM data hierarchy . . . . . . . . . . . . . . . . . . . 8 | |||
| 4. OAM YANG Module . . . . . . . . . . . . . . . . . . . . . . . 17 | 4. OAM YANG Module . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 5. CL model applicability . . . . . . . . . . . . . . . . . . . 46 | 5. Connectionless model applicability . . . . . . . . . . . . . 47 | |||
| 5.1. BFD Extension . . . . . . . . . . . . . . . . . . . . . . 47 | 5.1. BFD Extension . . . . . . . . . . . . . . . . . . . . . . 47 | |||
| 5.1.1. Augment Method . . . . . . . . . . . . . . . . . . . 47 | 5.1.1. Augment Method . . . . . . . . . . . . . . . . . . . 47 | |||
| 5.1.2. Schema Mount . . . . . . . . . . . . . . . . . . . . 49 | 5.1.2. Schema Mount . . . . . . . . . . . . . . . . . . . . 50 | |||
| 5.2. LSP ping extension . . . . . . . . . . . . . . . . . . . 51 | 5.2. LSP ping extension . . . . . . . . . . . . . . . . . . . 52 | |||
| 5.2.1. technology type extension . . . . . . . . . . . . . . 51 | 5.2.1. Technology type extension . . . . . . . . . . . . . . 52 | |||
| 5.2.2. test point attributes extension . . . . . . . . . . . 52 | 5.2.2. Test point attributes extension . . . . . . . . . . . 53 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 52 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 53 | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 52 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 55 | |||
| 8. Acknowlegements . . . . . . . . . . . . . . . . . . . . . . . 53 | 8. Acknowlegements . . . . . . . . . . . . . . . . . . . . . . . 55 | |||
| 9. Normative References . . . . . . . . . . . . . . . . . . . . 53 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 55 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 54 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 55 | |||
| 9.2. Informative References . . . . . . . . . . . . . . . . . 57 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 58 | ||||
| 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 connections (Reachability Verification, | 1. Monitor networks connections (Reachability Verification, | |||
| Continuity Check). | Continuity Check). | |||
| 2. Troubleshoot failures (Fault verification and localization). | 2. Troubleshoot failures (Fault verification and localization). | |||
| 3. Monitor Performance | 3. Monitor Performance | |||
| 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 | ||||
| or connectionless technologies. In connection-oriented technologies, | ||||
| a connection is established prior to the transmission of data. In | ||||
| connectionless technologies, data is typically sent between end | ||||
| points without prior arrangement [RFC7276]. Note that the | ||||
| Connection-Oriented OAM YANG DATA model is defined in | ||||
| [I-D.ietf-lime-yang-oam-model]. | ||||
| In this document, we presents a base YANG Data model for | In this document, we presents a base YANG Data model for | |||
| connectionless OAM protocols. The generic YANG model for | connectionless OAM protocols. The generic YANG model for | |||
| connectionless OAM only includes configuration data and state data. | connectionless OAM only includes configuration data and state data. | |||
| It can be used in conjunction with data retrieval method model[lime | It can be used in conjunction with data retrieval method model | |||
| retrieval methods], which focuses on data retrival procedures like | [I-D.ietf-lime-yang-connectionless-oam-methods], which focuses on | |||
| RPC. However it also can be used independently of data retrieval | data retrieval procedures like RPC. However it also can be used | |||
| method model. | independently of data retrieval method model. | |||
| 2. Conventions used in this document | 2. Conventions used in this document | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
| The following terms are defined in [RFC6241] and are not redefined | The following terms are defined in [RFC6241] and are not redefined | |||
| here: | here: | |||
| skipping to change at page 3, line 43 ¶ | skipping to change at page 4, line 4 ¶ | |||
| o configuration data | o configuration data | |||
| o server | o server | |||
| o state data | o state data | |||
| The following terms are defined in [RFC6020] and are not redefined | The following terms are defined in [RFC6020] and are not redefined | |||
| here: | here: | |||
| o augment | o augment | |||
| o data model | o data model | |||
| o data node | o data node | |||
| The terminology for describing YANG data models is found in | The terminology for describing YANG data models is found in | |||
| [RFC6020]. | [RFC6020]. | |||
| 2.1. Terminology | 2.1. Terminology | |||
| TP - Test Point | TP - Test Point | |||
| MAC - Media Access Control | MAC - Media Access Control | |||
| BFD - Bidirectional Forwarding Detection | BFD - Bidirectional Forwarding Detection | |||
| RPC - A Remote Procedure Call, as used within the NETCONF protocol | RPC - A Remote Procedure Call, as used within the NETCONF protocol | |||
| CC - Continuity Check [RFC7276] , Continuity Checks are used to | ||||
| verify that a destination is reachable and therefore also referred to | ||||
| as reachability verification | ||||
| 2.2. Tree Diagrams | 2.2. Tree Diagrams | |||
| A simplified graphical representation of the data model is used in | A simplified graphical representation of the data model is used in | |||
| this document. The meaning of the symbols in these diagrams is as | this document. The meaning of the symbols in these diagrams is as | |||
| follows: | follows: | |||
| Each node is printed as: | Each node is printed as: | |||
| <status> <flags> <name> <opts> <type> | <status> <flags> <name> <opts> <type> | |||
| <status> is one of: | <status> is one of: | |||
| + for current | + for current | |||
| x for deprecated | ||||
| o for obsolete | ||||
| <flags> is one of: | <flags> is one of: | |||
| rw for configuration data | rw for configuration data | |||
| ro for non-configuration data | ro for non-configuration data | |||
| -x for rpcs | -x for rpcs | |||
| -n for notifications | -n for notifications | |||
| <name> is the name of the node | <name> is the name of the node | |||
| skipping to change at page 5, line 7 ¶ | skipping to change at page 5, line 16 ¶ | |||
| ? for an optional leaf or choice | ? for an optional leaf or choice | |||
| ! for a presence container | ! for a presence container | |||
| * for a leaf-list or list | * for a leaf-list or list | |||
| [<keys>] for a list's keys | [<keys>] for a list's keys | |||
| <type> is the name of the type for leafs and leaf-lists | <type> is the name of the type for leafs and leaf-lists | |||
| 3. Overview of the Connectionless OAM Model | 3. Overview of the Connectionless OAM Model | |||
| At the top of the Model, there is an oper container for session | At the top of the model, there is an 'cc-oper-data' container for | |||
| statistics. Grouping is also defined for common session statistics | session statistics. Grouping is also defined for common session | |||
| and these are applicable for proactive OAM sessions. Multiple test- | statistics and these are applicable for proactive OAM sessions. | |||
| point-locations keyed using technology specific keys (eg., IPv4 | Multiple 'test-point-locations' keyed using technology specific keys | |||
| address for IPv4 locations) are possible by augmented network nodes | (eg., IPv4 address for IPv4 locations) are possible by augmented | |||
| which are defined in [I-D.draft-ietf-i2rs-yang-network-topo] to | network nodes which are defined in [I-D.ietf-i2rs-yang-network-topo] | |||
| describe the network hierarchies and the inventory of nodes contained | to describe the network hierarchies and the inventory of nodes | |||
| in a network. Each test-point-location is chosen based on location- | contained in a network. Each 'test-point-location' is chosen based | |||
| type which when chosen, leads to a container that includes a list of | on 'location-type' which when chosen, leads to a container that | |||
| test-point-locations keyed by technology specific keys. Each test | includes a list of 'test-point-locations' keyed by technology | |||
| point location includes a test-point-location-info. The test-point- | specific keys. Each test point location includes a 'test-point- | |||
| location-info includes tp-technology, tp-tools, and connectionless- | location-info'. The 'test-point-location-info' includes 'tp- | |||
| oam-layers. The groupings of tp-address and tp-address-vrf are kept | technology', 'tp-tools', and 'connectionless-oam-layers'. The | |||
| out of test-point-location-info to make it addressing agnostic and | groupings of 'tp-address' and 'tp-address-vrf' are kept out of 'test- | |||
| allow varied composition. Depending upon the choice of the location- | point-location-info' to make it addressing agnostic and allow varied | |||
| type (determined by the tp-address-vrf), the containers differ in its | composition. Depending upon the choice of the 'location-type' | |||
| composition of test-point-locations while the test-point-location- | (determined by the 'tp-address-vrf'), the containers differ in its | |||
| info, is a common aspect of every test-point-location. The vrf is | composition of 'test-point-locations' while the 'test-point-location- | |||
| used to describe the corresponding network instance. The tp- | info', is a common aspect of every 'test-point-location'. The vrf is | |||
| technology indicate oam technology details. The tp-tools describe | used to describe the corresponding network instance. The 'tp- | |||
| the oam tools supported. The connectionless-oam- layers is used to | technology' indicate OAM technology details. The 'tp-tools' describe | |||
| the OAM tools supported. The 'connectionless-oam-layers' is used to | ||||
| describe the relationship of one test point with other test points. | describe the relationship of one test point with other test points. | |||
| The level in oam-layers indicate whether related oam test point is | The level in 'oam-layers' indicate whether related OAM test point is | |||
| client layer, server layer or same layer. The Model is augmented to | The level in oam-layers indicate whether related oam test point is in | |||
| /nd:networks/nd:network/nd:node using Test Point Locations defined | client layer(lower layer described in section 3.3), server layer | |||
| below. | (upper layer described in section 3.3) or the same layer as the | |||
| current test point under Test point Locations. The model is | ||||
| augmented to "/nd:networks/nd:network/nd:node" using 'test-point- | ||||
| locations' defined below. | ||||
| 3.1. TP Address | 3.1. TP Address | |||
| In connectionless OAM, the tp address is defined with the following | In connectionless OAM, the tp address is defined with the following | |||
| type: | type: | |||
| o MAC address | o MAC address [RFC6136] | |||
| o IPv4 or IPv6 address | o IPv4 or IPv6 address | |||
| o a pair of source, destination addresses, and interface (Useful for | o TP-attribute | |||
| BFD) | ||||
| o FEC | o System-id to represent the device or | |||
| node.[I-D.ietf-spring-sr-yang] | ||||
| o System-id to represent the device or node. | To define a forwarding treatment of a test packet, the 'tp-address' | |||
| needs to be associated with additional parameters, e.g. DSCP for IP | ||||
| or TC for MPLS. In generic connectionless OAM YANG model, these | ||||
| parameters are not explicit configured. The model user can add | ||||
| corresponding 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 | ||||
| activation: proactive and on-demand. The proactive OAM refers to OAM | ||||
| actions which are carried out continuously to permit proactive | ||||
| reporting of fault. The on-demand OAM refers to OAM actions which | ||||
| are initiated via manual intervention for a limited time to carry out | ||||
| diagnostics [RFC7276] [G.8013]. In connectionless OAM, 'session- | ||||
| type' is defined to indicate which kind of activation will be used by | ||||
| the current session. | ||||
| In connectionless OAM, the tools attribute is used to describe a | In connectionless OAM, the tools attribute is used to describe a | |||
| toolset for fault detection and isolation, and for performance | toolset for fault detection and isolation. And it can serve as a | |||
| measurement. And it can serve as a constraint condition when the | constraint condition when the base model be extended to specific OAM | |||
| base model be extended to specific OAM technology. For example, to | technology. For example, to fulfill the ICMP PING configuration, the | |||
| fulfill the icmp ping configuration, the "../coam:continuity-check" | "../coam:continuity-check" should be set to "true", and then the lime | |||
| should be set to "true", and then the lime base model should be | base model should be augmented with ICMP PING specific details. | |||
| augmented with icmp ping specific details. | ||||
| 3.3. OAM-layers | 3.3. OAM-layers | |||
| As typical networks have a multi-layer architecture, the set of OAM | As typical networks have a multi-layer architecture, the set of OAM | |||
| protocols similarly take a multi-layer structure; each layer has its | protocols similarly take a multi-layer structure; each layer may has | |||
| own OAM protocols [RFC7276] and is corresponding to specific network | its own OAM protocol [RFC7276] and is corresponding to specific | |||
| portion or path and has associated test points. OAM-layers is | network portion or path and has associated test points. OAM-layers | |||
| referred to a list of upper layer, lower layer that are related to | is referred to a list of upper layer, lower layer that are related to | |||
| current test point. This allow users to easily navigate up and down | current test point. This allows users to easily navigate up and down | |||
| to efficiently troubleshoot a connectivity issue at different layer. | to efficiently troubleshoot a "loss of continuity defect" at | |||
| In this model, we have kept level default as 0, when all test points | different layer. In this model, we have kept level default as 0, | |||
| are located at the same layer. Level is provided for scenarios where | when all test points are located at the same layer. 'Level' defines | |||
| it might be possible to define layering relationship as it can be | the relative technology level in a sequence of network portions, and | |||
| used to stitching fault at related OAM layers. For example, there is | is provided to allow correlation of faults in related OAM domains. | |||
| a network in which data traffic between two customer edges is | For example, there is a network in which data traffic between two | |||
| transported over three consecutive network portions, the current test | customer edges is transported over three consecutive network | |||
| point is located in the second network portion. If there is a defect | portions, the current test point is located in the second network | |||
| in the first network portion is located at the upstream of the second | portion. If there is a defect in the first network portion is | |||
| network portion, the level of the first network portion is set to | located at the upstream of the second network portion, the level of | |||
| "-1". If the third network portion is located at the downstream of | the first network portion is set to "-1". If the third network | |||
| the second network portion and the level is set to "1". In another | portion is located at the downstream of the second network portion | |||
| case, if the first network portion and the third network portion is | and the level is set to "1". In another case, if the first network | |||
| in the same level of thesecond network portion, the level is set to | portion and the third network portion is in the same level of the | |||
| "0". The snippet below depicts an example of OAM layers. | second network portion, the level is set to "0". The snippet below | |||
| depicts an example of OAM layers. | ||||
| list oam-layers { | list oam-layers { | |||
| key "index"; | key "index"; | |||
| leaf index { | leaf index { | |||
| type uint16 { | type uint16 { | |||
| range "0..65535"; | range "0..65535"; | |||
| } | } | |||
| } | } | |||
| leaf level { | leaf level { | |||
| type int32 { | type int32 { | |||
| range "-1..1"; | range "-1..1"; | |||
| } | } | |||
| description | description | |||
| "Level"; | "Level"; | |||
| } | } | |||
| ordered-by user; | ordered-by user; | |||
| description | description | |||
| "list of related oam layers."; | "List of related oam layers."; | |||
| } | } | |||
| 3.4. Test Point Locations Information | 3.4. Test Point Locations Information | |||
| This is a generic grouping for Test Point Locations Information. It | This is a generic grouping for Test Point Locations Information. It | |||
| Provide details of Test Point Location using Tools, OAM-Layers | Provide details of Test Point Location using Tools, 'OAM-Layers' | |||
| grouping defined above. | grouping defined above. | |||
| 3.5. Test Point Locations | 3.5. Test Point Locations | |||
| This is a generic grouping for Test Point Locations. Choice | This is a generic grouping for Test Point Locations. Choice | |||
| statement is used to define locations types, for example ipv4- | statement is used to define locations types, for example 'ipv4- | |||
| location-type, ipv6-location-type, etc. Container is defined under | location-type', 'ipv6-location-type', etc. Container is defined | |||
| each location type containing list keyed to test point address, Test | under each location type containing list keyed to test point address, | |||
| Point Location Information defined in section above, and routing | Test Point Location Information defined in section above, and routing | |||
| instance vrf name if required. | instance VRF name if required. | |||
| 3.6. Path Discovery Data | 3.6. Path Discovery Data | |||
| This is a generic grouping for path discovery data model that can be | This is a generic grouping for path discovery data model that can be | |||
| retrieved by any data retrieval methods including RPCs. Path | retrieved by any data retrieval methods including RPCs. Path | |||
| discovery data output from methods, includes src-test-point, dst- | discovery data output from methods, includes 'src-test-point', 'dst- | |||
| test-point, sequence-number, hop-cnt, session statistics of various | test-point', 'sequence-number', 'hop-cnt', session statistics of | |||
| kinds,path verification and path trace related information. Path | various kinds, path verification and path trace related information. | |||
| discovery includes data to be retrieved on a per-hop basis via a list | Path discovery includes data to be retrieved on a 'per-hop' basis via | |||
| of path-trace-info-list which includes information like timestamps, | a list of 'path-trace-info-list' which includes information like | |||
| ingress-interface, egress-interface and app-meta-data. The path | 'timestamps', 'ingress-interface', 'egress-interface' and 'app-meta- | |||
| discovery data model is made generic enough to allow active, passive | data'. The path discovery data model is made generic enough to allow | |||
| and hybrid OAMs to do the retrieval. None of the fields are made | different methods of data retrieval. None of the fields are made | |||
| mandatory for that reason. Noted that the retrieval methods are | mandatory for that reason. Noted that the retrieval methods are | |||
| defined in [lime retrieval methods]. | defined in [I-D.ietf-lime-yang-connectionless-oam-methods]. | |||
| 3.7. Continuity Check Data | 3.7. Continuity Check Data | |||
| This is a generic grouping for continuity check data model that can | This is a generic grouping for continuity check data model that can | |||
| be retrieved by any data retrieval methods including RPCs. | be retrieved by any data retrieval methods including RPCs. | |||
| Continuity check data output from methods, includes src-test-point, | Continuity check data output from methods, includes 'src-test-point', | |||
| dst-test-point, sequence-number, hop-cnt and session statistics of | 'dst-test-point', 'sequence-number', 'hop-cnt' and session statistics | |||
| various kinds. The continuity check data model is made generic | of various kinds. The continuity check data model is made generic | |||
| enough to allow active, passive and hybrid OAMs to do the retrieval. | enough to allow different methods of data retrieval. None of the | |||
| None of the fields are made mandatory for that reason. Noted that | fields are made mandatory for that reason. Noted that the retrieval | |||
| the retrieval methods are defined in [lime retrieval methods]. | methods are defined in | |||
| [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 oper {continuity-check}? | +--ro cc-oper-data {continuity-check}? | |||
| +--ro cc-ipv4-sessions-statistics | +--ro cc-ipv4-sessions-statistics | |||
| | +--ro cc-session-statistics | | +--ro cc-session-statistics | |||
| | +--ro session-count? uint32 | | +--ro session-count? uint32 | |||
| | +--ro session-up-count? uint32 | | +--ro session-up-count? uint32 | |||
| | +--ro session-down-count? uint32 | | +--ro session-down-count? uint32 | |||
| | +--ro session-admin-down-count? uint32 | | +--ro session-admin-down-count? uint32 | |||
| +--ro cc-ipv6-sessions-statistics | +--ro cc-ipv6-sessions-statistics | |||
| +--ro cc-session-statistics | +--ro cc-session-statistics | |||
| +--ro session-count? uint32 | +--ro session-count? uint32 | |||
| +--ro session-up-count? uint32 | +--ro session-up-count? uint32 | |||
| +--ro session-down-count? uint32 | +--ro session-down-count? uint32 | |||
| +--ro session-admin-down-count? uint32 | +--ro session-admin-down-count? uint32 | |||
| augment /nd:networks/nd:network/nd:node: | augment /nd:networks/nd:network/nd:node: | |||
| +--rw tp-address-type-value? identityref | +--rw tp-location-type-value? identityref | |||
| +--rw (location-type)? | +--rw (location-type)? | |||
| +--:(ipv4-location-type) | +--:(ipv4-location-type) | |||
| | +--rw test-point-ipv4-location-list | | +--rw test-point-ipv4-location-list | |||
| | +--rw test-point-locations* [ipv4-location] | | +--rw test-point-locations* [ipv4-location] | |||
| | +--rw ipv4-location inet:ipv4-address | | +--rw ipv4-location inet:ipv4-address | |||
| | +--rw vrf? routing-instance-ref | | +--rw vrf? routing-instance-ref | |||
| | +--rw (technology)? | | +--rw (technology)? | |||
| | | +--:(technology-null) | | | +--:(technology-null) | |||
| | | | +--rw tech-null? empty | | | | +--rw tech-null? empty | |||
| | | +--:(technology-string) | | | +--:(technology-string) | |||
| | | +--rw ipv4-icmp? string | | | +--rw ipv4-icmp? string | |||
| | +--rw tp-tools | | +--rw tp-tools | |||
| | | +--rw connectivity-verification? boolean | | | +--rw connectivity-verification? boolean | |||
| | | +--rw continuity-check? boolean | | | +--rw continuity-check? boolean | |||
| | | +--rw path-discovery? boolean | | | +--rw path-discovery? boolean | |||
| | +--rw root? | | +--rw root? | |||
| | +--rw oam-layers* [index] | | +--rw oam-layers* [index] | |||
| | +--rw index uint16 | | +--rw index uint16 | |||
| | +--rw level? int32 | | +--rw level? int32 | |||
| | +--rw (tp-address)? | | +--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-location? inet:ipv4-address | | | +--rw ipv4-location? inet:ipv4-address | |||
| | +--:(ipv6-location) | | +--:(ipv6-location) | |||
| | | +--rw ipv6-address? inet:ipv6-address | | | +--rw ipv6-address inet:ipv6-address | |||
| | +--:(tunnel-location) | | +--:(tunnel-location) | |||
| | | +--rw tunnel-location? uint32 | | | +--rw tunnel-location? uint32 | |||
| | +--:(ip-prefix-location) | | +--:(ip-prefix-location) | |||
| | | +--rw ip-prefix-location? inet:ip-prefix | | | +--rw ip-prefix-location? inet:ip-prefix | |||
| | +--:(route-dist-location) | | +--:(route-dist-location) | |||
| | | +--rw route-dist-location? uint32 | | | +--rw route-dist-location? uint32 | |||
| | +--:(group-ip-address-location) | | +--:(group-ip-address-location) | |||
| | | +--rw group-ip-address-location? IP-Multicast-Group-Address | | | +--rw group-ip-address-location? IP-Multicast | |||
| -Group-Address | ||||
| | +--:(as-number-location) | | +--:(as-number-location) | |||
| | | +--rw as-number-location? inet:as-number | | | +--rw as-number-location inet:as-number | |||
| | +--:(lsp-id-location) | | +--:(lsp-id-location) | |||
| | | +--rw lsp-id-location? string | | | +--rw lsp-id-location? string | |||
| | +--:(system-id-location) | | +--:(system-id-location) | |||
| | | +--rw system-id-location? inet:uri | | +--rw system-id-location? router-id | |||
| | +--:(connection-oriented-location) | ||||
| | +--rw maintenance-domain? -> /goam:domains/domain/MD-name-string | ||||
| | +--rw maintenance-association? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA/MA-name-string | ||||
| | +--rw maintenance-association-end-point? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA[goam:MA-name-string = current()/../maintenance-association]/MEP/mep-name | ||||
| +--:(ipv6-location-type) | +--:(ipv6-location-type) | |||
| | +--rw test-point-ipv6-location-list | | +--rw test-point-ipv6-location-list | |||
| | +--rw test-point-locations* [ipv6-location] | | +--rw test-point-locations* [ipv6-location] | |||
| | +--rw ipv6-location inet:ipv6-address | | +--rw ipv6-location inet:ipv6-address | |||
| | +--rw vrf? routing-instance-ref | | +--rw vrf? routing-instance-ref | |||
| | +--rw (technology)? | | +--rw (technology)? | |||
| | | +--:(technology-null) | | | +--:(technology-null) | |||
| | | | +--rw tech-null? empty | | | | +--rw tech-null? empty | |||
| | | +--:(technology-string) | | | +--:(technology-string) | |||
| | | +--rw ipv4-icmp? string | | | +--rw ipv4-icmp? string | |||
| | +--rw tp-tools | | +--rw tp-tools | |||
| | | +--rw connectivity-verification? boolean | | | +--rw connectivity-verification? boolean | |||
| | | +--rw continuity-check? boolean | | | +--rw continuity-check? boolean | |||
| | | +--rw path-discovery? boolean | | | +--rw path-discovery? boolean | |||
| | +--rw root? | | +--rw root? | |||
| | +--rw oam-layers* [index] | | +--rw oam-layers* [index] | |||
| | +--rw index uint16 | | +--rw index uint16 | |||
| | +--rw level? int32 | | +--rw level? int32 | |||
| | +--rw (tp-address)? | | +--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-location? inet:ipv4-address | | | +--rw ipv4-location? inet:ipv4-address | |||
| | +--:(ipv6-location) | | +--:(ipv6-location) | |||
| | | +--rw ipv6-address? inet:ipv6-address | | | +--rw ipv6-address? inet:ipv6-address | |||
| | +--:(tunnel-location) | | +--:(tunnel-location) | |||
| | | +--rw tunnel-location? uint32 | | | +--rw tunnel-location? uint32 | |||
| | +--:(ip-prefix-location) | | +--:(ip-prefix-location) | |||
| | | +--rw ip-prefix-location? inet:ip-prefix | | | +--rw ip-prefix-location? inet:ip-prefix | |||
| | +--:(route-dist-location) | | +--:(route-dist-location) | |||
| | | +--rw route-dist-location? uint32 | | | +--rw route-dist-location? uint32 | |||
| | +--:(group-ip-address-location) | | +--:(group-ip-address-location) | |||
| | | +--rw group-ip-address-location? IP-Multicast-Group-Address | | | +--rw group-ip-address-location? IP-Multicast | |||
| -Group-Address | ||||
| | +--:(as-number-location) | | +--:(as-number-location) | |||
| | | +--rw as-number-location? inet:as-number | | | +--rw as-number-location? inet:as-number | |||
| | +--:(lsp-id-location) | | +--:(lsp-id-location) | |||
| | | +--rw lsp-id-location? string | | | +--rw lsp-id-location? string | |||
| | +--:(system-id-location) | | +--:(system-id-location) | |||
| | | +--rw system-id-location? inet:uri | | +--rw system-id-location? router-id | |||
| | +--:(connection-oriented-location) | ||||
| | +--rw maintenance-domain? -> /goam:domains/domain/MD-name-string | ||||
| | +--rw maintenance-association? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA/MA-name-string | ||||
| | +--rw maintenance-association-end-point? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA[goam:MA-name-string = current()/../maintenance-association]/MEP/mep-name | ||||
| +--:(mac-location-type) | +--:(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 | |||
| | | +--:(technology-string) | | | +--:(technology-string) | |||
| | | +--rw ipv4-icmp? string | | | +--rw ipv4-icmp? string | |||
| | +--rw tp-tools | | +--rw tp-tools | |||
| | | +--rw connectivity-verification? boolean | | | +--rw connectivity-verification? boolean | |||
| | | +--rw continuity-check? boolean | | | +--rw continuity-check? boolean | |||
| | | +--rw path-discovery? boolean | | | +--rw path-discovery? boolean | |||
| | +--rw root? | | +--rw root? | |||
| | +--rw oam-layers* [index] | | +--rw oam-layers* [index] | |||
| | +--rw index uint16 | | +--rw index uint16 | |||
| | +--rw level? int32 | | +--rw level? int32 | |||
| | +--rw (tp-address)? | | +--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-location? inet:ipv4-address | | | +--rw ipv4-location? inet:ipv4-address | |||
| | +--:(ipv6-location) | | +--:(ipv6-location) | |||
| | | +--rw ipv6-address? inet:ipv6-address | | | +--rw ipv6-address? inet:ipv6-address | |||
| | +--:(tunnel-location) | | +--:(tunnel-location) | |||
| | | +--rw tunnel-location? uint32 | | | +--rw tunnel-location? uint32 | |||
| | +--:(ip-prefix-location) | | +--:(ip-prefix-location) | |||
| | | +--rw ip-prefix-location? inet:ip-prefix | | | +--rw ip-prefix-location inet:ip-prefix | |||
| | +--:(route-dist-location) | | +--:(route-dist-location) | |||
| | | +--rw route-dist-location? uint32 | | | +--rw route-dist-location? uint32 | |||
| | +--:(group-ip-address-location) | | +--:(group-ip-address-location) | |||
| | | +--rw group-ip-address-location? IP-Multicast-Group-Address | | | +--rw group-ip-address-location? IP-Multicast | |||
| -Group-Address | ||||
| | +--:(as-number-location) | | +--:(as-number-location) | |||
| | | +--rw as-number-location? inet:as-number | | | +--rw as-number-location? inet:as-number | |||
| | +--:(lsp-id-location) | | +--:(lsp-id-location) | |||
| | | +--rw lsp-id-location? string | | | +--rw lsp-id-location? string | |||
| | +--:(system-id-location) | | +--:(system-id-location) | |||
| | | +--rw system-id-location? inet:uri | | +--rw system-id-location? router-id | |||
| | +--:(connection-oriented-location) | ||||
| | +--rw maintenance-domain? -> /goam:domains/domain/MD-name-string | ||||
| | +--rw maintenance-association? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA/MA-name-string | ||||
| | +--rw maintenance-association-end-point? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA[goam:MA-name-string = current()/../maintenance-association]/MEP/mep-name | ||||
| +--:(tunnel-location-type) | +--:(tunnel-location-type) | |||
| | +--rw test-point-tunnel-address-location-list | | +--rw test-point-tunnel-location-list | |||
| | +--rw test-point-locations* [tunnel-location] | | +--rw test-point-locations* [tunnel-location] | |||
| | +--rw tunnel-location uint32 | | +--rw tunnel-location uint32 | |||
| | +--rw vrf? routing-instance-ref | | +--rw vrf? routing-instance-ref | |||
| | +--rw (technology)? | | +--rw (technology)? | |||
| | | +--:(technology-null) | | | +--:(technology-null) | |||
| | | | +--rw tech-null? empty | | | | +--rw tech-null? empty | |||
| | | +--:(technology-string) | | | +--:(technology-string) | |||
| | | +--rw ipv4-icmp? string | | | +--rw ipv4-icmp? string | |||
| | +--rw tp-tools | | +--rw tp-tools | |||
| | | +--rw connectivity-verification? boolean | | | +--rw connectivity-verification? boolean | |||
| | | +--rw continuity-check? boolean | | | +--rw continuity-check? boolean | |||
| | | +--rw path-discovery? boolean | | | +--rw path-discovery? boolean | |||
| | +--rw root? | | +--rw root? | |||
| | +--rw oam-layers* [index] | | +--rw oam-layers* [index] | |||
| | +--rw index uint16 | | +--rw index uint16 | |||
| | +--rw level? int32 | | +--rw level? int32 | |||
| | +--rw (tp-address)? | | +--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-location? inet:ipv4-address | | | +--rw ipv4-location? inet:ipv4-address | |||
| | +--:(ipv6-location) | | +--:(ipv6-location) | |||
| | | +--rw ipv6-address? inet:ipv6-address | | | +--rw ipv6-address? inet:ipv6-address | |||
| | +--:(tunnel-location) | | +--:(tunnel-location) | |||
| | | +--rw tunnel-location? uint32 | | | +--rw tunnel-location? uint32 | |||
| | +--:(ip-prefix-location) | | +--:(ip-prefix-location) | |||
| | | +--rw ip-prefix-location? inet:ip-prefix | | | +--rw ip-prefix-location inet:ip-prefix | |||
| | +--:(route-dist-location) | | +--:(route-dist-location) | |||
| | | +--rw route-dist-location? uint32 | | | +--rw route-dist-location? uint32 | |||
| | +--:(group-ip-address-location) | | +--:(group-ip-address-location) | |||
| | | +--rw group-ip-address-location? IP-Multicast-Group-Address | | | +--rw group-ip-address-location? IP-Multicast | |||
| -Group-Address | ||||
| | +--:(as-number-location) | | +--:(as-number-location) | |||
| | | +--rw as-number-location? inet:as-number | | | +--rw as-number-location? inet:as-number | |||
| | +--:(lsp-id-location) | | +--:(lsp-id-location) | |||
| | | +--rw lsp-id-location? string | | | +--rw lsp-id-location? string | |||
| | +--:(system-id-location) | | +--:(system-id-location) | |||
| | | +--rw system-id-location? inet:uri | | +--rw system-id-location? router-id | |||
| | +--:(connection-oriented-location) | ||||
| | +--rw maintenance-domain? -> /goam:domains/domain/MD-name-string | ||||
| | +--rw maintenance-association? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA/MA-name-string | ||||
| | +--rw maintenance-association-end-point? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA[goam:MA-name-string = current()/../maintenance-association]/MEP/mep-name | ||||
| +--:(ip-prefix-location-type) | +--:(ip-prefix-location-type) | |||
| | +--rw test-point-ip-prefix-location-list | | +--rw test-point-ip-prefix-location-list | |||
| | +--rw test-point-locations* [ip-prefix-location] | | +--rw test-point-locations* [ip-prefix-location] | |||
| | +--rw ip-prefix-location inet:ip-prefix | | +--rw ip-prefix-location inet:ip-prefix | |||
| | +--rw vrf? routing-instance-ref | | +--rw vrf? routing-instance-ref | |||
| | +--rw (technology)? | | +--rw (technology)? | |||
| | | +--:(technology-null) | | | +--:(technology-null) | |||
| | | | +--rw tech-null? empty | | | | +--rw tech-null? empty | |||
| | | +--:(technology-string) | | | +--:(technology-string) | |||
| | | +--rw ipv4-icmp? string | | | +--rw ipv4-icmp? string | |||
| | +--rw tp-tools | | +--rw tp-tools | |||
| | | +--rw connectivity-verification? boolean | | | +--rw connectivity-verification? boolean | |||
| | | +--rw continuity-check? boolean | | | +--rw continuity-check? boolean | |||
| | | +--rw path-discovery? boolean | | | +--rw path-discovery? boolean | |||
| | +--rw root? | | +--rw root? | |||
| | +--rw oam-layers* [index] | | +--rw oam-layers* [index] | |||
| | +--rw index uint16 | | +--rw index uint16 | |||
| | +--rw level? int32 | | +--rw level? int32 | |||
| | +--rw (tp-address)? | | +--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-location? inet:ipv4-address | | | +--rw ipv4-location inet:ipv4-address | |||
| | +--:(ipv6-location) | | +--:(ipv6-location) | |||
| | | +--rw ipv6-address? inet:ipv6-address | | | +--rw ipv6-address? inet:ipv6-address | |||
| | +--:(tunnel-location) | | +--:(tunnel-location) | |||
| | | +--rw tunnel-location? uint32 | | | +--rw tunnel-location? uint32 | |||
| | +--:(ip-prefix-location) | | +--:(ip-prefix-location) | |||
| | | +--rw ip-prefix-location? inet:ip-prefix | | | +--rw ip-prefix-location? inet:ip-prefix | |||
| | +--:(route-dist-location) | | +--:(route-dist-location) | |||
| | | +--rw route-dist-location? uint32 | | | +--rw route-dist-location? uint32 | |||
| | +--:(group-ip-address-location) | | +--:(group-ip-address-location) | |||
| | | +--rw group-ip-address-location? IP-Multicast-Group-Address | | | +--rw group-ip-address-location? IP-Multicast | |||
| -Group-Address | ||||
| | +--:(as-number-location) | | +--:(as-number-location) | |||
| | | +--rw as-number-location? inet:as-number | | | +--rw as-number-location? inet:as-number | |||
| | +--:(lsp-id-location) | | +--:(lsp-id-location) | |||
| | | +--rw lsp-id-location? string | | | +--rw lsp-id-location? string | |||
| | +--:(system-id-location) | | +--:(system-id-location) | |||
| | | +--rw system-id-location? inet:uri | | +--rw system-id-location? router-id | |||
| | +--:(connection-oriented-location) | ||||
| | +--rw maintenance-domain? -> /goam:domains/domain/MD-name-string | ||||
| | +--rw maintenance-association? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA/MA-name-string | ||||
| | +--rw maintenance-association-end-point? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA[goam:MA-name-string = current()/../maintenance-association]/MEP/mep-name | ||||
| +--:(route-distinguisher-location-type) | +--:(route-distinguisher-location-type) | |||
| | +--rw test-point-route-dist-location-list | | +--rw test-point-route-dist-location-list | |||
| | +--rw test-point-locations* [route-dist-location] | | +--rw test-point-locations* [route-dist-location] | |||
| | +--rw route-dist-location uint32 | | +--rw route-dist-location uint32 | |||
| | +--rw vrf? routing-instance-ref | | +--rw vrf? routing-instance-ref | |||
| | +--rw (technology)? | | +--rw (technology)? | |||
| | | +--:(technology-null) | | | +--:(technology-null) | |||
| | | | +--rw tech-null? empty | | | | +--rw tech-null? empty | |||
| | | +--:(technology-string) | | | +--:(technology-string) | |||
| | | +--rw ipv4-icmp? string | | | +--rw ipv4-icmp? string | |||
| | +--rw tp-tools | | +--rw tp-tools | |||
| | | +--rw connectivity-verification? boolean | | | +--rw connectivity-verification? boolean | |||
| | | +--rw continuity-check? boolean | | | +--rw continuity-check? boolean | |||
| | | +--rw path-discovery? boolean | | | +--rw path-discovery? boolean | |||
| | +--rw root? | | +--rw root? | |||
| | +--rw oam-layers* [index] | | +--rw oam-layers* [index] | |||
| | +--rw index uint16 | | +--rw index uint16 | |||
| | +--rw level? int32 | | +--rw level? int32 | |||
| | +--rw (tp-address)? | | +--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-location? inet:ipv4-address | | | +--rw ipv4-location inet:ipv4-address | |||
| | +--:(ipv6-location) | | +--:(ipv6-location) | |||
| | | +--rw ipv6-address? inet:ipv6-address | | | +--rw ipv6-address inet:ipv6-address | |||
| | +--:(tunnel-location) | | +--:(tunnel-location) | |||
| | | +--rw tunnel-location? uint32 | | | +--rw tunnel-location? uint32 | |||
| | +--:(ip-prefix-location) | | +--:(ip-prefix-location) | |||
| | | +--rw ip-prefix-location? inet:ip-prefix | | | +--rw ip-prefix-location? inet:ip-prefix | |||
| | +--:(route-dist-location) | | +--:(route-dist-location) | |||
| | | +--rw route-dist-location? uint32 | | | +--rw route-dist-location? uint32 | |||
| | +--:(group-ip-address-location) | | +--:(group-ip-address-location) | |||
| | | +--rw group-ip-address-location? IP-Multicast-Group-Address | | | +--rw group-ip-address-location? IP-Multicast | |||
| -Group-Address | ||||
| | +--:(as-number-location) | | +--:(as-number-location) | |||
| | | +--rw as-number-location? inet:as-number | | | +--rw as-number-location? inet:as-number | |||
| | +--:(lsp-id-location) | | +--:(lsp-id-location) | |||
| | | +--rw lsp-id-location? string | | | +--rw lsp-id-location? string | |||
| | +--:(system-id-location) | | +--:(system-id-location) | |||
| | | +--rw system-id-location? inet:uri | | +--rw system-id-location? router-id | |||
| | +--:(connection-oriented-location) | ||||
| | +--rw maintenance-domain? -> /goam:domains/domain/MD-name-string | ||||
| | +--rw maintenance-association? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA/MA-name-string | ||||
| | +--rw maintenance-association-end-point? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA[goam:MA-name-string = current()/../maintenance-association]/MEP/mep-name | ||||
| +--:(group-ip-address-location-type) | +--:(group-ip-address-location-type) | |||
| | +--rw test-point-group-ip-address-location-list | | +--rw test-point-group-ip-address-location-list | |||
| | +--rw test-point-locations* [group-ip-address-location] | | +--rw test-point-locations* [group-ip-address-location] | |||
| | +--rw group-ip-address-location IP-Multicast-Group-Address | | +--rw group-ip-address-location IP-Multicast | |||
| -Group-Address | ||||
| | +--rw vrf? routing-instance-ref | | +--rw vrf? routing-instance-ref | |||
| | +--rw (technology)? | | +--rw (technology)? | |||
| | | +--:(technology-null) | | | +--:(technology-null) | |||
| | | | +--rw tech-null? empty | | | | +--rw tech-null? empty | |||
| | | +--:(technology-string) | | | +--:(technology-string) | |||
| | | +--rw ipv4-icmp? string | | | +--rw ipv4-icmp? string | |||
| | +--rw tp-tools | | +--rw tp-tools | |||
| | | +--rw connectivity-verification? boolean | | | +--rw connectivity-verification? boolean | |||
| | | +--rw continuity-check? boolean | | | +--rw continuity-check? boolean | |||
| | | +--rw path-discovery? boolean | | | +--rw path-discovery? boolean | |||
| | +--rw root? | | +--rw root? | |||
| | +--rw oam-layers* [index] | | +--rw oam-layers* [index] | |||
| | +--rw index uint16 | | +--rw index uint16 | |||
| | +--rw level? int32 | | +--rw level? int32 | |||
| | +--rw (tp-address)? | | +--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-location? inet:ipv4-address | | | +--rw ipv4-location? inet:ipv4-address | |||
| | +--:(ipv6-location) | | +--:(ipv6-location) | |||
| | | +--rw ipv6-address? inet:ipv6-address | | | +--rw ipv6-address? inet:ipv6-address | |||
| | +--:(tunnel-location) | | +--:(tunnel-location) | |||
| | | +--rw tunnel-location? uint32 | | | +--rw tunnel-location? uint32 | |||
| | +--:(ip-prefix-location) | | +--:(ip-prefix-location) | |||
| | | +--rw ip-prefix-location? inet:ip-prefix | | | +--rw ip-prefix-location? inet:ip-prefix | |||
| | +--:(route-dist-location) | | +--:(route-dist-location) | |||
| | | +--rw route-dist-location? uint32 | | | +--rw route-dist-location? uint32 | |||
| | +--:(group-ip-address-location) | | +--:(group-ip-address-location) | |||
| | | +--rw group-ip-address-location? IP-Multicast-Group-Address | | | +--rw group-ip-address-location? IP-Multicast | |||
| -Group-Address | ||||
| | +--:(as-number-location) | | +--:(as-number-location) | |||
| | | +--rw as-number-location? inet:as-number | | | +--rw as-number-location? inet:as-number | |||
| | +--:(lsp-id-location) | | +--:(lsp-id-location) | |||
| | | +--rw lsp-id-location? string | | | +--rw lsp-id-location? string | |||
| | +--:(system-id-location) | | +--:(system-id-location) | |||
| | | +--rw system-id-location? inet:uri | | +--rw system-id-location? router-id | |||
| | +--:(connection-oriented-location) | ||||
| | +--rw maintenance-domain? -> /goam:domains/domain/MD-name-string | ||||
| | +--rw maintenance-association? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA/MA-name-string | ||||
| | +--rw maintenance-association-end-point? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA[goam:MA-name-string = current()/../maintenance-association]/MEP/mep-name | ||||
| +--:(group-as-number-location-type) | +--:(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 vrf? routing-instance-ref | | +--rw vrf? routing-instance-ref | |||
| | +--rw (technology)? | | +--rw (technology)? | |||
| | | +--:(technology-null) | | | +--:(technology-null) | |||
| | | | +--rw tech-null? empty | | | | +--rw tech-null? empty | |||
| | | +--:(technology-string) | | | +--:(technology-string) | |||
| | | +--rw ipv4-icmp? string | | | +--rw ipv4-icmp? string | |||
| | +--rw tp-tools | | +--rw tp-tools | |||
| | | +--rw connectivity-verification? boolean | | | +--rw connectivity-verification? boolean | |||
| | | +--rw continuity-check? boolean | | | +--rw continuity-check? boolean | |||
| | | +--rw path-discovery? boolean | | | +--rw path-discovery? boolean | |||
| | +--rw root? | | +--rw root? | |||
| | +--rw oam-layers* [index] | | +--rw oam-layers* [index] | |||
| | +--rw index uint16 | | +--rw index uint16 | |||
| | +--rw level? int32 | | +--rw level? int32 | |||
| | +--rw (tp-address)? | | +--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-location? inet:ipv4-address | | | +--rw ipv4-location? inet:ipv4-address | |||
| | +--:(ipv6-location) | | +--:(ipv6-location) | |||
| | | +--rw ipv6-address? inet:ipv6-address | | | +--rw ipv6-address? inet:ipv6-address | |||
| | +--:(tunnel-location) | | +--:(tunnel-location) | |||
| | | +--rw tunnel-location? uint32 | | | +--rw tunnel-location uint32 | |||
| | +--:(ip-prefix-location) | | +--:(ip-prefix-location) | |||
| | | +--rw ip-prefix-location? inet:ip-prefix | | | +--rw ip-prefix-location? inet:ip-prefix | |||
| | +--:(route-dist-location) | | +--:(route-dist-location) | |||
| | | +--rw route-dist-location? uint32 | | | +--rw route-dist-location? uint32 | |||
| | +--:(group-ip-address-location) | | +--:(group-ip-address-location) | |||
| | | +--rw group-ip-address-location? IP-Multicast-Group-Address | | | +--rw group-ip-address-location? IP-Multicast | |||
| -Group-Address | ||||
| | +--:(as-number-location) | | +--:(as-number-location) | |||
| | | +--rw as-number-location? inet:as-number | | | +--rw as-number-location? inet:as-number | |||
| | +--:(lsp-id-location) | | +--:(lsp-id-location) | |||
| | | +--rw lsp-id-location? string | | | +--rw lsp-id-location? string | |||
| | +--:(system-id-location) | | +--:(system-id-location) | |||
| | | +--rw system-id-location? inet:uri | | +--rw system-id-location? router-id | |||
| | +--:(connection-oriented-location) | ||||
| | +--rw maintenance-domain? -> /goam:domains/domain/MD-name-string | ||||
| | +--rw maintenance-association? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA/MA-name-string | ||||
| | +--rw maintenance-association-end-point? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA[goam:MA-name-string = current()/../maintenance-association]/MEP/mep-name | ||||
| +--:(group-lsp-id-location-type) | +--:(group-lsp-id-location-type) | |||
| | +--rw test-point-lsp-id-location-list | | +--rw test-point-lsp-id-location-list | |||
| | +--rw test-point-locations* [lsp-id-location] | | +--rw test-point-locations* [lsp-id-location] | |||
| | +--rw lsp-id-location string | | +--rw lsp-id-location string | |||
| | +--rw vrf? routing-instance-ref | | +--rw vrf? routing-instance-ref | |||
| | +--rw (technology)? | | +--rw (technology)? | |||
| | | +--:(technology-null) | | | +--:(technology-null) | |||
| | | | +--rw tech-null? empty | | | | +--rw tech-null? empty | |||
| | | +--:(technology-string) | | | +--:(technology-string) | |||
| | | +--rw ipv4-icmp? string | | | +--rw ipv4-icmp? string | |||
| | +--rw tp-tools | | +--rw tp-tools | |||
| | | +--rw connectivity-verification? boolean | | | +--rw connectivity-verification? boolean | |||
| | | +--rw continuity-check? boolean | | | +--rw continuity-check? boolean | |||
| | | +--rw path-discovery? boolean | | | +--rw path-discovery? boolean | |||
| | +--rw root? | | +--rw root? | |||
| | +--rw oam-layers* [index] | | +--rw oam-layers* [index] | |||
| | +--rw index uint16 | | +--rw index uint16 | |||
| | +--rw level? int32 | | +--rw level? int32 | |||
| | +--rw (tp-address)? | | +--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-location? inet:ipv4-address | | | +--rw ipv4-location inet:ipv4-address | |||
| | +--:(ipv6-location) | | +--:(ipv6-location) | |||
| | | +--rw ipv6-address? inet:ipv6-address | | | +--rw ipv6-address? inet:ipv6-address | |||
| | +--:(tunnel-location) | | +--:(tunnel-location) | |||
| | | +--rw tunnel-location? uint32 | | | +--rw tunnel-location? uint32 | |||
| | +--:(ip-prefix-location) | | +--:(ip-prefix-location) | |||
| | | +--rw ip-prefix-location? inet:ip-prefix | | | +--rw ip-prefix-location? inet:ip-prefix | |||
| | +--:(route-dist-location) | | +--:(route-dist-location) | |||
| | | +--rw route-dist-location? uint32 | | | +--rw route-dist-location? uint32 | |||
| | +--:(group-ip-address-location) | | +--:(group-ip-address-location) | |||
| | | +--rw group-ip-address-location? IP-Multicast-Group-Address | | | +--rw group-ip-address-location? IP-Multicast | |||
| -Group-Address | ||||
| | +--:(as-number-location) | | +--:(as-number-location) | |||
| | | +--rw as-number-location? inet:as-number | | | +--rw as-number-location? inet:as-number | |||
| | +--:(lsp-id-location) | | +--:(lsp-id-location) | |||
| | | +--rw lsp-id-location? string | | | +--rw lsp-id-location? string | |||
| | +--:(system-id-location) | | +--:(system-id-location) | |||
| | | +--rw system-id-location? inet:uri | | +--rw system-id-location? router-id | |||
| | +--:(connection-oriented-location) | ||||
| | +--rw maintenance-domain? -> /goam:domains/domain/MD-name-string | ||||
| | +--rw maintenance-association? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA/MA-name-string | ||||
| | +--rw maintenance-association-end-point? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA[goam:MA-name-string = current()/../maintenance-association]/MEP/mep-name | ||||
| +--:(group-system-id-location-type) | +--:(group-system-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* [system-id-location] | |||
| +--rw system-id-location inet:uri | +--rw system-id-location inet:uri | |||
| +--rw vrf? routing-instance-ref | +--rw vrf? routing-instance-ref | |||
| +--rw (technology)? | +--rw (technology)? | |||
| | +--:(technology-null) | | +--:(technology-null) | |||
| | | +--rw tech-null? empty | | | +--rw tech-null? empty | |||
| | +--:(technology-string) | | +--:(technology-string) | |||
| | +--rw ipv4-icmp? string | | +--rw ipv4-icmp? string | |||
| +--rw tp-tools | +--rw tp-tools | |||
| | +--rw connectivity-verification? boolean | | +--rw connectivity-verification? boolean | |||
| | +--rw continuity-check? boolean | | +--rw continuity-check? boolean | |||
| | +--rw path-discovery? boolean | | +--rw path-discovery? boolean | |||
| +--rw root? | +--rw root? | |||
| +--rw oam-layers* [index] | +--rw oam-layers* [index] | |||
| +--rw index uint16 | +--rw index uint16 | |||
| +--rw level? int32 | +--rw level? int32 | |||
| +--rw (tp-address)? | +--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-location? inet:ipv4-address | | +--rw ipv4-location? inet:ipv4-address | |||
| +--:(ipv6-location) | +--:(ipv6-location) | |||
| | +--rw ipv6-address? inet:ipv6-address | | +--rw ipv6-address? inet:ipv6-address | |||
| +--:(tunnel-location) | +--:(tunnel-location) | |||
| | +--rw tunnel-location? uint32 | | +--rw tunnel-location? uint32 | |||
| +--:(ip-prefix-location) | +--:(ip-prefix-location) | |||
| | +--rw ip-prefix-location? inet:ip-prefix | | +--rw ip-prefix-location inet:ip-prefix | |||
| +--:(route-dist-location) | +--:(route-dist-location) | |||
| | +--rw route-dist-location? uint32 | | +--rw route-dist-location? uint32 | |||
| +--:(group-ip-address-location) | +--:(group-ip-address-location) | |||
| | +--rw group-ip-address-location? IP-Multicast-Group-Address | | +--rw group-ip-address-location? IP-Multicast | |||
| -Group-Address | ||||
| +--:(as-number-location) | +--:(as-number-location) | |||
| | +--rw as-number-location? inet:as-number | | +--rw as-number-location? inet:as-number | |||
| +--:(lsp-id-location) | +--:(lsp-id-location) | |||
| | +--rw lsp-id-location? string | | +--rw lsp-id-location? string | |||
| +--:(system-id-location) | +--:(system-id-location) | |||
| | +--rw system-id-location? inet:uri | +--rw system-id-location? router-id | |||
| +--:(connection-oriented-location) | ||||
| +--rw maintenance-domain? -> /goam:domains/domain/MD-name-string | ||||
| +--rw maintenance-association? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA/MA-name-string | ||||
| +--rw maintenance-association-end-point? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA[goam:MA-name-string = current()/../maintenance-association]/MEP/mep-name | ||||
| data hierarchy of OAM | data hierarchy of OAM | |||
| 4. OAM YANG Module | 4. OAM YANG Module | |||
| <CODE BEGINS> file "ietf-connectionless-oam.yang" | <CODE BEGINS> file "ietf-connectionless-oam.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"; | |||
| skipping to change at page 18, line 18 ¶ | skipping to change at page 17, line 47 ¶ | |||
| } | } | |||
| 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-conn-oam{ | ||||
| prefix "goam"; | ||||
| } | ||||
| organization "IETF LIME Working Group"; | organization "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, | |||
| data model, statistics for connectionless OAM to be | data model, statistics for connectionless OAM to be | |||
| used within IETF in a protocol indpendent manner. | used within IETF in a protocol indpendent manner. | |||
| Functional level abstraction is indendent with | Functional level abstraction is indendent with | |||
| YANG modeling. It is assumed that each protocol maps | YANG modeling. It is assumed that each protocol maps | |||
| corresponding abstracts to its native format. | corresponding abstracts to its native format. | |||
| Each protocol may extend the YANG model defined | Each protocol may extend the YANG model defined | |||
| here to include protocol specific extensions"; | here to include protocol specific extensions"; | |||
| revision 2016-12-16 { | revision 2017-02-08 { | |||
| description | description | |||
| "Initial revision. - 08 version"; | "Initial revision. - 10 version"; | |||
| reference ""; | reference ""; | |||
| } | } | |||
| /* features */ | /* features */ | |||
| feature connection-less { | feature connection-less { | |||
| description | description | |||
| "this feature indicates that OAM solution is connection less."; | "This feature indicates that OAM solution is connection less."; | |||
| } | } | |||
| feature continuity-check { | feature continuity-check { | |||
| description | description | |||
| "This feature indicates that the server supports | "This feature indicates that the server supports | |||
| executing continuity check OAM command and | executing continuity check OAM command and | |||
| returning a response. Servers that do not advertise | returning a response. Servers that do not advertise | |||
| this feature will not support executing | this feature will not support executing | |||
| continuity check command or rpc model for | continuity check command or rpc model for | |||
| continuity check command."; | continuity check command."; | |||
| } | } | |||
| skipping to change at page 19, line 23 ¶ | skipping to change at page 18, line 50 ¶ | |||
| "This feature indicates that the server supports | "This feature indicates that the server supports | |||
| executing path discovery OAM command and | executing path discovery OAM command and | |||
| returning a response. Servers that do not advertise | returning a response. Servers that do not advertise | |||
| this feature will not support executing | this feature will not support executing | |||
| path discovery command or rpc model for | path discovery command or rpc model for | |||
| path discovery command."; | path discovery command."; | |||
| } | } | |||
| /* Identities */ | /* Identities */ | |||
| /* typedefs */ | /* typedefs */ | |||
| typedef router-id { | ||||
| type yang:dotted-quad; | ||||
| description | ||||
| "A 32-bit number in the dotted quad format assigned to each | ||||
| router. This number uniquely identifies the router within an | ||||
| Autonomous System."; | ||||
| } | ||||
| typedef routing-instance-ref { | typedef routing-instance-ref { | |||
| type leafref { | type leafref { | |||
| path "/ni:network-instances/ni:network-instance/ni:name"; | path "/ni:network-instances/ni:network-instance/ni:name"; | |||
| } | } | |||
| description | description | |||
| "This type is used for leafs that reference a routing instance | "This type is used for leafs that reference a routing instance | |||
| configuration."; | configuration."; | |||
| } | } | |||
| typedef IPv4-Multicast-Group-Address { | typedef IPv4-Multicast-Group-Address { | |||
| type string { | type string { | |||
| pattern '(2((2[4-9])|(3[0-9]))\.)' | pattern '(2((2[4-9])|(3[0-9]))\.)' | |||
| +'(([0-9]|[1-9][0-9]|1[0-9][0-9]|' | +'(([0-9]|[1-9][0-9]|1[0-9][0-9]|' | |||
| +'2[0-4][0-9]|25[0-5])\.){2}' | +'2[0-4][0-9]|25[0-5])\.){2}' | |||
| +'([0-9]|[1-9][0-9]|1[0-9][0-9]' | +'([0-9]|[1-9][0-9]|1[0-9][0-9]' | |||
| +'|2[0-4][0-9]|25[0-5])'; | +'|2[0-4][0-9]|25[0-5])'; | |||
| } | } | |||
| description | description | |||
| "The IPv4-Multicast-Group-Address type | "The IPv4-Multicast-Group-Address type | |||
| represents an IPv4 multicast address | represents an IPv4 multicast address | |||
| in dotted-quad notation."; | in dotted-quad notation."; | |||
| reference "RFC4607"; | reference "RFC4607"; | |||
| } // typedef IPv4-Multicast-Group-Address | } // typedef IPv4-Multicast-Group-Address | |||
| typedef IPv6-Multicast-Group-Address { | typedef IPv6-Multicast-Group-Address { | |||
| type string { | type string { | |||
| pattern | pattern | |||
| '(((FF|ff)[0-9a-fA-F]{2}):)([0-9a-fA-F]' | '(((FF|ff)[0-9a-fA-F]{2}):)([0-9a-fA-F]' | |||
| +'{0,4}:){0,5}((([0-9a-fA-F]{0,4}:)?' | +'{0,4}:){0,5}((([0-9a-fA-F]{0,4}:)?' | |||
| +'(:|[0-9a-fA-F]{0,4}))|(((25[0-5]|2[0-4]' | +'(:|[0-9a-fA-F]{0,4}))|(((25[0-5]|2[0-4]' | |||
| +'[0-9]|[01]?[0-9]?[0-9])\.){3}(25[0-5]|' | +'[0-9]|[01]?[0-9]?[0-9])\.){3}(25[0-5]|' | |||
| +'2[0-4][0-9]|[01]?[0-9]?[0-9])))'; | +'2[0-4][0-9]|[01]?[0-9]?[0-9])))'; | |||
| pattern | pattern | |||
| '(([^:]+:){6}(([^:]+:[^:]+)|' | '(([^:]+:){6}(([^:]+:[^:]+)|' | |||
| +'(.*\..*)))|((([^:]+:)*[^:]+)' | +'(.*\..*)))|((([^:]+:)*[^:]+)' | |||
| +'?::(([^:]+:)*[^:]+)?)'; | +'?::(([^:]+:)*[^:]+)?)'; | |||
| } | } | |||
| description | description | |||
| "The IPv6-Multicast-Group-Address | "The IPv6-Multicast-Group-Address | |||
| type represents an IPv6 address in full, | type represents an IPv6 address in full, | |||
| mixed, shortened, and shortened-mixed | mixed, shortened, and shortened-mixed | |||
| notation."; | notation."; | |||
| reference "RFC4291 2.7. | reference "RFC4291 2.7. | |||
| ietf-inet-types:ipv6-address"; | ietf-inet-types:ipv6-address"; | |||
| } | } | |||
| typedef IP-Multicast-Group-Address { | typedef IP-Multicast-Group-Address { | |||
| type union { | type union { | |||
| type IPv4-Multicast-Group-Address; | type IPv4-Multicast-Group-Address; | |||
| type IPv6-Multicast-Group-Address; | type IPv6-Multicast-Group-Address; | |||
| } | } | |||
| description | description | |||
| "The IP-Multicast-Group-Address type | "The IP-Multicast-Group-Address type | |||
| represents an IP multicast address and | represents an IP multicast address and | |||
| is IP version neutral. The format of the | is IP version neutral. The format of the | |||
| textual representations implies the IP version."; | textual representations implies the IP version."; | |||
| } // typedef IP-Multicast-Group-Address | } | |||
| identity fec-types { | identity address-attribute-types { | |||
| description | description | |||
| "This is base identity of fec types which are ip-prefix, | "This is base identity of address | |||
| bgp, tunnel, pwe3, vpls, etc."; | attribute types which are ip-prefix, | |||
| bgp, tunnel, pwe3, vpls, etc."; | ||||
| } | } | |||
| typedef fec-type { | typedef address-attribute-type { | |||
| type identityref { | type identityref { | |||
| base fec-types; | base address-attribute-types; | |||
| } | } | |||
| description "Target FEC type."; | description | |||
| "Target address attribute type."; | ||||
| } | } | |||
| typedef oam-counter32 { | typedef opaque-tlv-type { | |||
| type yang:zero-based-counter32; | type identityref { | |||
| base opaque-tlv-type-id; | ||||
| } | ||||
| description | description | |||
| "defines 32 bit counter for OAM"; | "Opaque TLV type definition."; | |||
| } | } | |||
| identity time-resolution{ | identity time-resolution{ | |||
| description | description | |||
| "Time interval resolution"; | "Time interval resolution"; | |||
| } //base identity | } | |||
| identity hours { | identity hours { | |||
| base time-resolution; | base time-resolution; | |||
| description | description | |||
| "Hours"; | "Hours"; | |||
| } | } | |||
| identity minutes { | identity minutes { | |||
| base time-resolution; | base time-resolution; | |||
| description | description | |||
| skipping to change at page 21, line 46 ¶ | skipping to change at page 21, line 38 ¶ | |||
| base time-resolution; | base time-resolution; | |||
| description | description | |||
| "Microseconds"; | "Microseconds"; | |||
| } | } | |||
| identity nanoseconds { | identity nanoseconds { | |||
| base time-resolution; | base time-resolution; | |||
| description | description | |||
| "Nanoseconds"; | "Nanoseconds"; | |||
| } | } | |||
| identity opaque-tlv-type-id { | ||||
| description | ||||
| "Base identity for opaque tlv types."; | ||||
| } | ||||
| identity default-tlv-type-id { | ||||
| base opaque-tlv-type-id; | ||||
| description | ||||
| "Default or unknown TLV type id."; | ||||
| } | ||||
| /* groupings */ | /* groupings */ | |||
| grouping cc-session-statsitics { | grouping cc-session-statsitics { | |||
| description "Grouping for session statistics."; | description "Grouping for session statistics."; | |||
| container cc-session-statistics { | container cc-session-statistics { | |||
| description "cc session counters"; | description "cc session counters"; | |||
| leaf session-count { | leaf session-count { | |||
| type uint32; | type uint32; | |||
| description "Number of cc sessions."; | description | |||
| "Number of cc sessions."; | ||||
| } | } | |||
| leaf session-up-count { | leaf session-up-count { | |||
| type uint32; | type uint32; | |||
| description "Number of sessions which are up."; | description | |||
| "Number of sessions which are up."; | ||||
| } | } | |||
| leaf session-down-count { | leaf session-down-count { | |||
| type uint32; | type uint32; | |||
| description "Number of sessions which are down."; | description | |||
| "Number of sessions which are down."; | ||||
| } | } | |||
| leaf session-admin-down-count { | leaf session-admin-down-count { | |||
| type uint32; | type uint32; | |||
| description "Number of sessions which are admin-down."; | description | |||
| "Number of sessions which are admin-down."; | ||||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping session-packet-statistics { | grouping session-packet-statistics { | |||
| description "Grouping for per session packet statistics"; | description "Grouping for per session packet statistics"; | |||
| container session-packet-statistics { | container session-packet-statistics { | |||
| description "Per session packet statistics."; | description "Per session packet statistics."; | |||
| leaf rx-packet-count { | leaf rx-packet-count { | |||
| type uint32; | type uint32; | |||
| description "Total received packet count."; | description | |||
| "Total number of received OAM packet count."; | ||||
| } | } | |||
| leaf tx-packet-count { | leaf tx-packet-count { | |||
| type uint32; | type uint32; | |||
| description "Total transmitted packet count."; | description | |||
| "Total number of transmitted OAM packet count."; | ||||
| } | } | |||
| leaf rx-bad-packet { | leaf rx-bad-packet { | |||
| type uint32; | type uint32; | |||
| description "Total received bad packet."; | description | |||
| "Total number of received bad OAM packet."; | ||||
| } | } | |||
| leaf tx-packet-failed { | leaf tx-packet-failed { | |||
| type uint32; | type uint32; | |||
| description "Total send packet failed."; | description | |||
| "Total number of send OAM packet failed."; | ||||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping cc-per-session-statistics { | grouping cc-per-session-statistics { | |||
| description "Grouping for per session statistics"; | description "Grouping for per session statistics"; | |||
| container cc-per-session-statistics { | container cc-per-session-statistics { | |||
| description "per session statistics."; | description "per session statistics."; | |||
| leaf create-time { | leaf create-time { | |||
| type yang:date-and-time; | type yang:date-and-time; | |||
| description "Time and date when session is created."; | description | |||
| "Time and date when session is created."; | ||||
| } | } | |||
| leaf last-down-time { | leaf last-down-time { | |||
| type yang:date-and-time; | type yang:date-and-time; | |||
| description "Time and date last time session is down."; | description | |||
| "Time and date last time session is down."; | ||||
| } | } | |||
| leaf last-up-time { | leaf last-up-time { | |||
| type yang:date-and-time; | type yang:date-and-time; | |||
| description "Time and date last time session is up."; | description | |||
| "Time and date last time session is up."; | ||||
| } | } | |||
| leaf down-count { | leaf down-count { | |||
| type uint32; | type uint32; | |||
| description "Total down count."; | description | |||
| "Total down count."; | ||||
| } | } | |||
| leaf admin-down-count { | leaf admin-down-count { | |||
| type uint32; | type uint32; | |||
| description "Total down count."; | description | |||
| "Total down count."; | ||||
| } | } | |||
| uses session-packet-statistics; | uses session-packet-statistics; | |||
| } | } | |||
| } | } | |||
| grouping session-error-statistics { | grouping session-error-statistics { | |||
| description "Grouping for per session error statistics"; | description | |||
| "Grouping for per session error statistics"; | ||||
| container session-error-statistics { | container session-error-statistics { | |||
| description "Per session error statistics."; | description "Per session error statistics."; | |||
| leaf packet-drops-count { | leaf packet-drops-count { | |||
| type uint32; | type uint32; | |||
| description "Total received packet drops count."; | description | |||
| "Total received packet drops count."; | ||||
| } | } | |||
| leaf packet-reorder-count { | leaf packet-reorder-count { | |||
| type uint32; | type uint32; | |||
| description "Total received packet reordered count."; | description | |||
| "Total received packet reordered count."; | ||||
| } | } | |||
| leaf packets-out-of-seq-count { | leaf packets-out-of-seq-count { | |||
| type uint32; | type uint32; | |||
| description "Total received out of sequence count."; | description | |||
| "Total received out of sequence count."; | ||||
| } | } | |||
| leaf packets-dup-count { | leaf packets-dup-count { | |||
| type uint32; | type uint32; | |||
| description "Total received packet duplicates count."; | description | |||
| "Total received packet duplicates count."; | ||||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping session-delay-statistics { | grouping session-delay-statistics { | |||
| description "Grouping for per session delay statistics"; | description | |||
| "Grouping for per session delay statistics"; | ||||
| container session-delay-statistics { | container session-delay-statistics { | |||
| description "Session delay summarised information."; | description | |||
| "Session delay summarised information."; | ||||
| leaf time-resolution-value { | leaf time-resolution-value { | |||
| type identityref { | type identityref { | |||
| base time-resolution; | base time-resolution; | |||
| } | } | |||
| description "Time units among choice of s,ms,ns etc."; | description | |||
| "Time units among choice of s,ms,ns etc."; | ||||
| } | } | |||
| leaf min-delay-value { | leaf min-delay-value { | |||
| type uint32; | type uint32; | |||
| description "Minimum delay value observed."; | description | |||
| "Minimum delay value observed."; | ||||
| } | } | |||
| leaf max-delay-value { | leaf max-delay-value { | |||
| type uint32; | type uint32; | |||
| description "Maximum delay value observed."; | description | |||
| "Maximum delay value observed."; | ||||
| } | } | |||
| leaf average-delay-value { | leaf average-delay-value { | |||
| type uint32; | type uint32; | |||
| description "Average delay value observed."; | description | |||
| "Average delay value observed."; | ||||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping session-jitter-statistics { | grouping session-jitter-statistics { | |||
| description "Grouping for per session jitter statistics"; | description | |||
| "Grouping for per session jitter statistics"; | ||||
| container session-jitter-statistics { | container session-jitter-statistics { | |||
| description "Session jitter summarised information."; | description | |||
| "Session jitter summarised information."; | ||||
| leaf time-resolution-value { | leaf time-resolution-value { | |||
| type identityref { | type identityref { | |||
| base time-resolution; | base time-resolution; | |||
| } | } | |||
| description "Time units among choice of s,ms,ns etc."; | description | |||
| "Time units among choice of s,ms,ns etc."; | ||||
| } | } | |||
| leaf min-jitter-value { | leaf min-jitter-value { | |||
| type uint32; | type uint32; | |||
| description "Minimum jitter value observed."; | description | |||
| "Minimum jitter value observed."; | ||||
| } | } | |||
| leaf max-jitter-value { | leaf max-jitter-value { | |||
| type uint32; | type uint32; | |||
| description "Maximum jitter value observed."; | description | |||
| "Maximum jitter value observed."; | ||||
| } | } | |||
| leaf average-jitter-value { | leaf average-jitter-value { | |||
| type uint32; | type uint32; | |||
| description "Average jitter value observed."; | description | |||
| "Average jitter value observed."; | ||||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping session-path-verification-statistics { | grouping session-path-verification-statistics { | |||
| description "Grouping for per session path verification statistics"; | description | |||
| "Grouping for per session path verification statistics"; | ||||
| container session-path-verification-statistics{ | container session-path-verification-statistics{ | |||
| description "OAM per session path verification statistics."; | description | |||
| "OAM per session path verification statistics."; | ||||
| leaf verified-count { | leaf verified-count { | |||
| type uint32; | type uint32; | |||
| description "Total number of packets that went through a path as intended."; | description | |||
| "Total number of OAM packets that | ||||
| went through a path as intended."; | ||||
| } | } | |||
| leaf failed-count { | leaf failed-count { | |||
| type uint32; | type uint32; | |||
| description "Total number of packets that went through an unintended path."; | description | |||
| "Total number of OAM packets that | ||||
| went through an unintended path."; | ||||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping session-type { | grouping session-type { | |||
| description | description | |||
| "This object indicates the current session | "This object indicates the current session | |||
| definition."; | definition."; | |||
| leaf session-type-enum { | leaf session-type-enum { | |||
| type enumeration { | type enumeration { | |||
| enum proactive { | enum proactive { | |||
| description | description | |||
| "The current session is proactive"; | "The current session is proactive"; | |||
| } | } | |||
| enum on-demand { | enum on-demand { | |||
| description | description | |||
| "The current session is on-demand."; | "The current session is on-demand."; | |||
| } | } | |||
| } | } | |||
| default "on-demand"; | default "on-demand"; | |||
| description | description | |||
| "Session type enum"; | ||||
| "session type enum"; | } | |||
| } | ||||
| grouping opaque-info-tlv { | ||||
| description | ||||
| "Opaque information as a TLV."; | ||||
| leaf type { | ||||
| type opaque-tlv-type; | ||||
| description "TLV type."; | ||||
| } | ||||
| leaf length { | ||||
| type uint16; | ||||
| description "TLV length."; | ||||
| } | ||||
| leaf value { | ||||
| type yang:hex-string; | ||||
| description "TLV value."; | ||||
| } | } | |||
| } | } | |||
| grouping opaque-tlvs { | ||||
| description | ||||
| "Opaque TLVs."; | ||||
| container opaque-tlvs { | ||||
| description | ||||
| "Opaque TLVs container."; | ||||
| list opaque-tlvs-list { | ||||
| description | ||||
| "Opaque TLVs list."; | ||||
| uses opaque-info-tlv; | ||||
| } | ||||
| } | ||||
| } | ||||
| identity tp-address-type { | identity tp-address-type { | |||
| description | description | |||
| "Test point address type"; | "Test point address type"; | |||
| } //base identity | } | |||
| identity mac-address-type { | identity mac-address-type { | |||
| base tp-address-type; | base tp-address-type; | |||
| description | description | |||
| "MAC address type"; | "MAC address type"; | |||
| } | } | |||
| identity ipv4-address-type { | identity ipv4-address-type { | |||
| base tp-address-type; | base tp-address-type; | |||
| description | description | |||
| "IPv4 address type"; | "IPv4 address type"; | |||
| } | } | |||
| identity ipv6-address-type { | identity ipv6-address-type { | |||
| base tp-address-type; | base tp-address-type; | |||
| description | description | |||
| "IPv6 address type"; | "IPv6 address type"; | |||
| } | } | |||
| identity src-dst-address-type { | identity tp-attribute-type { | |||
| base tp-address-type; | ||||
| description | ||||
| "Source/Dest address type"; | ||||
| } | ||||
| identity fec-address-type { | ||||
| base tp-address-type; | ||||
| description | ||||
| "FEC address type"; | ||||
| } | ||||
| identity tlv-address-type { | ||||
| base tp-address-type; | base tp-address-type; | |||
| description | description | |||
| "TLV address type"; | "Test point attribute type"; | |||
| } | } | |||
| identity system-id-address-type { | identity system-id-address-type { | |||
| base tp-address-type; | base tp-address-type; | |||
| description | description | |||
| "System id address type"; | "System id address type"; | |||
| } | } | |||
| identity lsp-id-address-type { | identity lsp-id-address-type { | |||
| base tp-address-type; | base tp-address-type; | |||
| description | description | |||
| "LSP ID address type"; | "LSP ID address type"; | |||
| } | } | |||
| identity as-number-address-type { | identity as-number-address-type { | |||
| base tp-address-type; | base tp-address-type; | |||
| description | description | |||
| "AS number address type"; | "AS number address type"; | |||
| } | } | |||
| identity group-ip-address-type { | identity group-ip-address-type { | |||
| base tp-address-type; | base tp-address-type; | |||
| skipping to change at page 27, line 38 ¶ | skipping to change at page 28, line 38 ¶ | |||
| "IP prefix address type"; | "IP prefix address type"; | |||
| } | } | |||
| identity tunnel-address-type { | identity tunnel-address-type { | |||
| base tp-address-type; | base tp-address-type; | |||
| description | description | |||
| "Tunnel address type"; | "Tunnel address type"; | |||
| } | } | |||
| grouping tp-address { | grouping tp-address { | |||
| leaf tp-address-type-value { | leaf tp-location-type-value { | |||
| type identityref { | type identityref { | |||
| base tp-address-type; | base tp-address-type; | |||
| } | } | |||
| description "Test point address type."; | description "Test point address type."; | |||
| } | } | |||
| choice tp-address { | choice tp-address { | |||
| case mac-address { | case mac-address { | |||
| when "'tp-address-type-value' = 'mac-address-type'" { | when "'tp-location-type-value' = 'mac-address-type'" { | |||
| description "MAC address type"; | description "MAC address type"; | |||
| } | } | |||
| leaf mac-address { | leaf mac-address { | |||
| type yang:mac-address; | type yang:mac-address; | |||
| description | description | |||
| "MAC Address"; | "MAC Address"; | |||
| } | } | |||
| description | description | |||
| "MAC Address based MP Addressing."; | "MAC Address based MP Addressing."; | |||
| } | } | |||
| case ipv4-address { | case ipv4-address { | |||
| when "'tp-address-type-value' = 'ipv4-address-type'" { | when "'tp-location-type-value' = 'ipv4-address-type'" { | |||
| description "IPv4 address type"; | description "IPv4 address type"; | |||
| } | } | |||
| leaf ipv4-address { | leaf ipv4-address { | |||
| type inet:ipv4-address; | type inet:ipv4-address; | |||
| description | description | |||
| "Ipv4 Address"; | "IPv4 Address"; | |||
| } | } | |||
| description | description | |||
| "Ip Address based MP Addressing."; | "IP Address based MP Addressing."; | |||
| } | } | |||
| case ipv6-address { | case ipv6-address { | |||
| when "'tp-address-type-value' = 'ipv6-address-type'" { | when "'tp-location-type-value' = 'ipv6-address-type'" { | |||
| description "IPv6 address type"; | description "IPv6 address type"; | |||
| } | } | |||
| leaf ipv6-address { | leaf ipv6-address { | |||
| type inet:ipv6-address; | type inet:ipv6-address; | |||
| description | description | |||
| "Ipv6 Address"; | "IPv6 Address"; | |||
| } | } | |||
| description | description | |||
| "ipv6 Address based MP Addressing."; | "ipv6 Address based MP Addressing."; | |||
| } | } | |||
| case src-dst-address { | ||||
| when "'tp-address-type-value' = 'src-dst-address-type'" { | ||||
| description "Src dest address type for BFD"; | ||||
| } | ||||
| leaf src-ip-address { | ||||
| type inet:ip-address; | ||||
| description | ||||
| "source ip address."; | ||||
| } | ||||
| leaf dst-ip-address { | ||||
| type inet:ip-address; | ||||
| description | ||||
| "destination ip address."; | case tp-attribute { | |||
| } | when "'tp-location-type-value' = 'tp-attribute-type'" { | |||
| leaf Interface { | description "Test point attribute type"; | |||
| type if:interface-ref; | ||||
| description | ||||
| "interface."; | ||||
| } | ||||
| } | ||||
| case fec { | ||||
| when "'tp-address-type-value' = 'fec-address-type'" { | ||||
| description "FEC address type"; | ||||
| } | } | |||
| leaf fec-type { | leaf tp-attribute-type { | |||
| type fec-type; | type address-attribute-type; | |||
| description | description | |||
| "fec type."; | "Test point type."; | |||
| } | } | |||
| choice fec-value { | choice tp-attribute-value { | |||
| description | description | |||
| "fec 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."; | "IP prefix."; | |||
| } | } | |||
| } | } | |||
| case bgp { | case bgp { | |||
| leaf bgp { | leaf bgp { | |||
| type inet:ip-prefix; | type inet:ip-prefix; | |||
| description | description | |||
| "BGP Labeled Prefix "; | ||||
| "BGP Labeled Prefix "; | ||||
| } | } | |||
| } | } | |||
| case tunnel { | case tunnel { | |||
| leaf tunnel-interface { | leaf tunnel-interface { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "VPN Prefix "; | "VPN Prefix "; | |||
| } | } | |||
| } | } | |||
| 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."; | |||
| } | } | |||
| leaf pw-id { | leaf pw-id { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Pseudowire id."; | "Pseudowire id."; | |||
| } | } | |||
| } | } | |||
| case vpls { | case vpls { | |||
| leaf route-distinguisher { | leaf route-distinguisher { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Route Distinguisher(8 octets)."; | "Route Distinguisher(8 octets)."; | |||
| } | } | |||
| leaf sender-ve-id{ | leaf sender-ve-id{ | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Sender's VE ID."; | "Sender's VE ID."; | |||
| } | } | |||
| leaf receiver-ve-id{ | leaf receiver-ve-id{ | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Receiver's VE ID."; | "Receiver's VE ID."; | |||
| } | } | |||
| } | } | |||
| 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; | |||
| description | description | |||
| "IP address."; | ||||
| "ip address."; | ||||
| } | } | |||
| leaf group-ip-address{ | leaf group-ip-address{ | |||
| type IP-Multicast-Group-Address; | type IP-Multicast-Group-Address; | |||
| description | description | |||
| "group ip address."; | "Group ip address."; | |||
| } | } | |||
| } | } | |||
| case vpn{ | case vpn{ | |||
| leaf as-number{ | leaf as-number{ | |||
| type inet:as-number; | type inet:as-number; | |||
| description | ||||
| description | "AS number."; | |||
| "AS number."; | ||||
| } | } | |||
| } | } | |||
| case global-id{ | case global-id{ | |||
| leaf lsp-id{ | leaf lsp-id{ | |||
| type string; | type string; | |||
| description | description | |||
| "lsp id."; | "LSP id."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| case tlv-address { | ||||
| when "'tp-address-type-value' = 'tlv-address-type'" { | ||||
| description "TLV address type"; | ||||
| } | ||||
| leaf tlv-type { | ||||
| type int16; | ||||
| description | ||||
| "Type of MEP-ID"; | ||||
| } | ||||
| leaf tlv-len { | ||||
| type int16; | ||||
| description | ||||
| "Length of MEP-ID value"; | ||||
| } | ||||
| leaf tlv-value { | ||||
| type binary { | ||||
| length "12..255"; | ||||
| } | ||||
| description | ||||
| "Value please refer RFC6428 (Figure 4,5,6)."; | ||||
| } | ||||
| description | ||||
| "MEP-ID"; | ||||
| } | ||||
| case system-info { | case system-info { | |||
| when "'tp-address-type-value' = 'system-id-address-type'" { | when "'tp-location-type-value' = 'system-id-address-type'" { | |||
| description "System id address type"; | description "System id address type"; | |||
| } | } | |||
| leaf system-id { | leaf system-id { | |||
| type inet:uri; | type router-id; | |||
| description | description | |||
| "System ID assigned to this node."; | "System ID assigned to this node."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "TP Addressing."; | "TP Addressing."; | |||
| } | } | |||
| description | description | |||
| "TP Address"; | "TP Address"; | |||
| } | } | |||
| grouping tp-address-vrf { | grouping tp-address-vrf { | |||
| description | description | |||
| "Test point address with VRF."; | "Test point address with VRF."; | |||
| leaf vrf { | leaf vrf { | |||
| type routing-instance-ref; | type routing-instance-ref; | |||
| description | description | |||
| "The vrf is used to describe the | "The vrf is used to describe the | |||
| corresponding network instance"; | corresponding network instance"; | |||
| } | } | |||
| uses tp-address; | uses tp-address; | |||
| } | } | |||
| grouping connectionless-oam-layers { | grouping connectionless-oam-layers { | |||
| list oam-layers { | list oam-layers { | |||
| key "index"; | key "index"; | |||
| leaf index { | leaf index { | |||
| type uint16 { | type uint16 { | |||
| range "0..65535"; | range "0..65535"; | |||
| } | } | |||
| description | description | |||
| "Index"; | "Index"; | |||
| } | } | |||
| leaf level { | leaf level { | |||
| type int32 { | type int32 { | |||
| range "-1..1"; | range "-1..1"; | |||
| } | } | |||
| default 0; | ||||
| default 0; | description | |||
| description | "Level 0 indicates default level, | |||
| "Level 0 indicates default level, -1 means server | -1 means server and +1 means client layer. | |||
| and +1 means client layer. | In relationship 0 means same layer."; | |||
| In relationship 0 means same layer."; | ||||
| } | } | |||
| choice tp-address { | choice tp-location { | |||
| case mac-address { | case mac-address { | |||
| leaf mac-address-location { | leaf mac-address-location { | |||
| type yang:mac-address; | type yang:mac-address; | |||
| description | description | |||
| "MAC Address"; | "MAC Address"; | |||
| } | } | |||
| description | description | |||
| "MAC Address based MP Addressing."; | "MAC Address based MP Addressing."; | |||
| } | } | |||
| case ipv4-address { | case ipv4-address { | |||
| leaf ipv4-location { | leaf ipv4-location { | |||
| type inet:ipv4-address; | type inet:ipv4-address; | |||
| description | description | |||
| "Ipv4 Address"; | "Ipv4 Address"; | |||
| } | } | |||
| description | description | |||
| "Ip Address based MP Addressing."; | "IP Address based MP Addressing."; | |||
| } | } | |||
| case ipv6-location { | case ipv6-location { | |||
| leaf ipv6-address { | leaf ipv6-address { | |||
| type inet:ipv6-address; | type inet:ipv6-address; | |||
| description | description | |||
| "Ipv6 Address"; | "IPv6 Address"; | |||
| } | } | |||
| description | description | |||
| "ipv6 Address based MP Addressing."; | "IPv6 Address based MP Addressing."; | |||
| } | } | |||
| case tunnel-location{ | case tunnel-location{ | |||
| leaf tunnel-location{ | leaf tunnel-location{ | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "VPN Prefix"; | "VPN Prefix"; | |||
| } | } | |||
| description | description | |||
| "tunnel location"; | "Tunnel location"; | |||
| } | } | |||
| case ip-prefix-location{ | case ip-prefix-location{ | |||
| leaf ip-prefix-location{ | leaf ip-prefix-location{ | |||
| type inet:ip-prefix; | type inet:ip-prefix; | |||
| description | description | |||
| "Ip prefix location"; | "IP prefix location"; | |||
| } | } | |||
| description | description | |||
| "IP prefix location"; | "IP prefix location"; | |||
| } | } | |||
| case route-dist-location{ | case route-dist-location{ | |||
| leaf route-dist-location{ | leaf route-dist-location{ | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Route Distinguisher (8 octets)"; | "Route Distinguisher (8 octets)"; | |||
| skipping to change at page 34, line 39 ¶ | skipping to change at page 34, line 39 ¶ | |||
| type string; | type string; | |||
| description | description | |||
| "LSP id"; | "LSP id"; | |||
| } | } | |||
| description | description | |||
| "LSP ID"; | "LSP ID"; | |||
| } | } | |||
| case system-id-location{ | case system-id-location{ | |||
| leaf system-id-location{ | leaf system-id-location{ | |||
| type inet:uri; | type router-id; | |||
| description | description | |||
| "system id location"; | "System id location"; | |||
| } | } | |||
| description | description | |||
| "System ID"; | "System ID"; | |||
| } | } | |||
| case connection-oriented-location{ | ||||
| uses goam:maintenance-association-end-point-reference; | ||||
| description | ||||
| "connection oriented location"; | ||||
| } | ||||
| description | description | |||
| "TP location."; | "TP location."; | |||
| } | } | |||
| ordered-by user; | ordered-by user; | |||
| description | description | |||
| "list of related oam layers. | "List of related oam layers. | |||
| 0 means they are in same level, especially | 0 means they are in same level, especially | |||
| interworking scenarios of stiching multiple | interworking scenarios of stiching multiple | |||
| technology at same layer. | technology at same layer. -1 means server layer, | |||
| -1 means server layer, for eg:- in case of | for eg:- in case of Overlay and Underlay, | |||
| Underlay is server layer for Overlay Test Point. | ||||
| Overlay and Underlay, Underlay is server layer for | +1 means client layer, for eg:- in case of | |||
| Overlay Test Point. | Service OAM and Transport OAM, Service OAM is client | |||
| +1 means client layer, for eg:- in case of | layer to Transport OAM."; | |||
| Service OAM and Transport OAM, Service OAM is client | ||||
| layer to Transport OAM."; | ||||
| } | } | |||
| description | description | |||
| "connectionless related OAM layer"; | "Connectionless related OAM layer"; | |||
| } | } | |||
| grouping tp-technology { | grouping tp-technology { | |||
| choice technology { | choice technology { | |||
| default technology-null; | default technology-null; | |||
| case technology-null { | case technology-null { | |||
| description | description | |||
| "this is a placeholder when no technology is needed."; | "This is a placeholder when no technology is needed."; | |||
| leaf tech-null { | leaf tech-null { | |||
| type empty; | type empty; | |||
| description | description | |||
| "there is no technology define"; | "There is no technology define"; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "technology choice null"; | "Technology choice null"; | |||
| case technology-string { | case technology-string { | |||
| description | description | |||
| "oam technology string"; | "OAM technology string"; | |||
| leaf ipv4-icmp { | leaf ipv4-icmp { | |||
| type string; | type string; | |||
| description | description | |||
| "name to identify oam technology"; | "Name to identify oam technology"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "OAM Technology"; | "OAM Technology"; | |||
| } | } | |||
| grouping tp-tools { | grouping tp-tools { | |||
| description | description | |||
| "Test Point OAM Toolset."; | "Test Point OAM Toolset."; | |||
| container tp-tools{ | container tp-tools{ | |||
| leaf connectivity-verification{ | leaf connectivity-verification{ | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "A flag indicating whether or not the | "A flag indicating whether or not the | |||
| connectivity-verification function is supported."; | connectivity-verification function is supported."; | |||
| reference | reference | |||
| "RFC 792: INTERNET CONTROL MESSAGE PROTOCOL. | "RFC 792: INTERNET CONTROL MESSAGE PROTOCOL. | |||
| RFC 4443: Internet Control Message Protocol (ICMPv6) | RFC 4443: Internet Control Message Protocol (ICMPv6) | |||
| for the Internet Protocol Version 6 (IPv6) Specification. | for the Internet Protocol Version 6 (IPv6) Specification. | |||
| RFC 5085: Pseudowire Virtual Circuit Connectivity Verification. | ||||
| RFC 5880: Bidirectional Forwarding Detection. | RFC 5880: Bidirectional Forwarding Detection. | |||
| RFC 5881: BFD for IPv4 and IPv6. | RFC 5881: BFD for IPv4 and IPv6. | |||
| RFC 5883: BFD for Multihop Paths. | RFC 5883: BFD for Multihop Paths. | |||
| RFC 5884: BFD for MPLS Label Switched Paths. | RFC 5884: BFD for MPLS Label Switched Paths. | |||
| RFC 5885: BFD for PW VCCV. | RFC 5885: BFD for PW VCCV. | |||
| RFC 4379: LSP-PING."; | RFC 4379: LSP-PING."; | |||
| } | } | |||
| leaf continuity-check{ | leaf continuity-check{ | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "A flag indicating whether or not the | "A flag indicating whether or not the | |||
| continuity check function is supported."; | continuity check function is supported."; | |||
| reference | reference | |||
| "RFC 792: INTERNET CONTROL MESSAGE PROTOCOL. | "RFC 792: INTERNET CONTROL MESSAGE PROTOCOL. | |||
| RFC 4443: Internet Control Message Protocol (ICMPv6) | RFC 4443: Internet Control Message Protocol (ICMPv6) | |||
| for the Internet Protocol Version 6 (IPv6) Specification. | for the Internet Protocol Version 6 (IPv6) Specification. | |||
| RFC 5880: Bidirectional Forwarding Detection. | RFC 5880: Bidirectional Forwarding Detection. | |||
| RFC 5881: BFD for IPv4 and IPv6. | RFC 5881: BFD for IPv4 and IPv6. | |||
| RFC 5883: BFD for Multihop Paths. | RFC 5883: BFD for Multihop Paths. | |||
| RFC 5884: BFD for MPLS Label Switched Paths. | RFC 5884: BFD for MPLS Label Switched Paths. | |||
| RFC 5885: BFD for PW VCCV."; | RFC 5885: BFD for PW VCCV. | |||
| RFC 6450: Multicast Ping Protocol."; | ||||
| } | } | |||
| leaf path-discovery{ | leaf path-discovery{ | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "A flag indicating whether or not the | "A flag indicating whether or not the | |||
| path discovery function is supported."; | path discovery function is supported."; | |||
| reference | reference | |||
| "RFC 792: INTERNET CONTROL MESSAGE PROTOCOL. | "RFC 792: INTERNET CONTROL MESSAGE PROTOCOL. | |||
| RFC 4443: Internet Control Message Protocol (ICMPv6) | RFC 4443: Internet Control Message Protocol (ICMPv6) | |||
| for the Internet Protocol Version 6 (IPv6) Specification. | for the Internet Protocol Version 6 (IPv6) Specification. | |||
| RFC 4884: Extended ICMP to Support Multi-part Message. | RFC 4884: Extended ICMP to Support Multi-part Message. | |||
| RFC 5837:Extending ICMP for Interface and Next-Hop Identification. | RFC 5837:Extending ICMP for Interface | |||
| and Next-Hop Identification. | ||||
| RFC 4379: LSP-PING."; | RFC 4379: LSP-PING."; | |||
| } | } | |||
| description | description | |||
| "Container for test point OAM tools set."; | "Container for test point OAM tools set."; | |||
| } | } | |||
| } | } | |||
| grouping test-point-location-info { | grouping test-point-location-info { | |||
| uses tp-technology; | uses tp-technology; | |||
| uses tp-tools; | uses tp-tools; | |||
| 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"; | |||
| } | } | |||
| uses connectionless-oam-layers; | uses connectionless-oam-layers; | |||
| description | description | |||
| "Test point Location"; | "Test point Location"; | |||
| } | } | |||
| grouping test-point-locations { | grouping test-point-locations { | |||
| description "Group of test point locations."; | description "Group of test point locations."; | |||
| leaf tp-address-type-value { | leaf tp-location-type-value { | |||
| type identityref { | type identityref { | |||
| base tp-address-type; | base tp-address-type; | |||
| } | } | |||
| description "Test point address type."; | description "Test point location type."; | |||
| } | } | |||
| choice location-type { | choice location-type { | |||
| case ipv4-location-type { | case ipv4-location-type { | |||
| when "'tp-address-type-value' = 'ipv4-address-type'" { | when "'tp-location-type-value' = 'ipv4-address-type'" { | |||
| description | description | |||
| "when test point address 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"; | key "ipv4-location"; | |||
| leaf ipv4-location { | leaf ipv4-location { | |||
| type inet:ipv4-address; | type inet:ipv4-address; | |||
| description | description | |||
| "Ipv4 Address."; | "IPv4 Address."; | |||
| } | } | |||
| leaf vrf { | leaf vrf { | |||
| type routing-instance-ref; | type routing-instance-ref; | |||
| description | description | |||
| "The vrf is used to describe the | "The vrf is used to describe the | |||
| corresponding network instance"; | corresponding network instance"; | |||
| } | } | |||
| uses test-point-location-info; | uses test-point-location-info; | |||
| ordered-by user; | ordered-by user; | |||
| description | description | |||
| "list of test point locations."; | "List of test point locations."; | |||
| } | } | |||
| description | description | |||
| "Serves as top-level container for test point location list."; | "Serves as top-level container | |||
| for test point location list."; | ||||
| } | } | |||
| } | } | |||
| case ipv6-location-type { | case ipv6-location-type { | |||
| when "'tp-address-type-value' = 'ipv6-address-type'" { | when "'tp-location-type-value' = 'ipv6-address-type'" { | |||
| description | description | |||
| "when test point address 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"; | key "ipv6-location"; | |||
| leaf ipv6-location { | leaf ipv6-location { | |||
| type inet:ipv6-address; | type inet:ipv6-address; | |||
| description | description | |||
| "Ipv6 Address."; | "IPv6 Address."; | |||
| } | } | |||
| leaf vrf { | leaf vrf { | |||
| type routing-instance-ref; | type routing-instance-ref; | |||
| description | description | |||
| "The vrf is used to describe the | "The vrf is used to describe the | |||
| corresponding network instance"; | ||||
| corresponding network instance"; | ||||
| } | } | |||
| uses test-point-location-info; | uses test-point-location-info; | |||
| ordered-by user; | ordered-by user; | |||
| description | description | |||
| "list of test point locations."; | "List of test point locations."; | |||
| } | } | |||
| description | description | |||
| "Serves as top-level container for test point location list."; | "Serves as top-level container | |||
| for test point location list."; | ||||
| } | } | |||
| } | } | |||
| case mac-location-type { | case mac-location-type { | |||
| when "'tp-address-type-value' = 'mac-address-type'" { | when "'tp-location-type-value' = 'mac-address-type'" { | |||
| description | description | |||
| "when test point address 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; | |||
| ordered-by user; | ordered-by user; | |||
| description | description | |||
| "list of test point locations."; | "List of test point locations."; | |||
| } | } | |||
| description | description | |||
| "Serves as top-level container for test point location list."; | "Serves as top-level container | |||
| for test point location list."; | ||||
| } | } | |||
| } | } | |||
| case tunnel-location-type { | case tunnel-location-type { | |||
| when "'tp-address-type-value' = 'tunnel-address-type'" { | when "'tp-location-type-value' =" | |||
| description | +" 'tunnel-address-type'" { | |||
| "when test point address is equal to tunnel type."; | description | |||
| } | "When test point location type | |||
| container test-point-tunnel-address-location-list { | is equal to tunnel type."; | |||
| } | ||||
| container test-point-tunnel-location-list { | ||||
| list test-point-locations { | list test-point-locations { | |||
| key "tunnel-location"; | key "tunnel-location"; | |||
| leaf tunnel-location { | leaf tunnel-location { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "VPN Prefix"; | "VPN Prefix"; | |||
| } | } | |||
| leaf vrf { | leaf vrf { | |||
| type routing-instance-ref; | ||||
| type routing-instance-ref; | description | |||
| description | "The vrf is used to describe the | |||
| "The vrf is used to describe the | corresponding network instance"; | |||
| corresponding network instance"; | ||||
| } | } | |||
| uses test-point-location-info; | uses test-point-location-info; | |||
| ordered-by user; | ordered-by user; | |||
| description | description | |||
| "list of test point locations."; | "List of test point locations."; | |||
| } | } | |||
| description | description | |||
| "Serves as top-level container for test point location list."; | "Serves as top-level container | |||
| for test point location list."; | ||||
| } | } | |||
| } | } | |||
| case ip-prefix-location-type { | case ip-prefix-location-type { | |||
| when "'tp-address-type-value' = 'ip-prefix-address-type'" { | when "'tp-location-type-value' = " | |||
| description | +"'ip-prefix-address-type'" { | |||
| "when test point address is equal to ip prefix."; | description | |||
| "When test point location | ||||
| type is equal to ip prefix."; | ||||
| } | } | |||
| container test-point-ip-prefix-location-list { | container test-point-ip-prefix-location-list { | |||
| list test-point-locations { | list test-point-locations { | |||
| key "ip-prefix-location"; | key "ip-prefix-location"; | |||
| leaf ip-prefix-location { | leaf ip-prefix-location { | |||
| type inet:ip-prefix; | type inet:ip-prefix; | |||
| description | description | |||
| "IP Prefix"; | "IP Prefix"; | |||
| } | } | |||
| leaf vrf { | leaf vrf { | |||
| type routing-instance-ref; | type routing-instance-ref; | |||
| description | description | |||
| "The vrf is used to describe the | "The vrf is used to describe the | |||
| corresponding network instance"; | corresponding network instance"; | |||
| } | } | |||
| uses test-point-location-info; | uses test-point-location-info; | |||
| ordered-by user; | ordered-by user; | |||
| description | description | |||
| "list of test point locations."; | "List of test point locations."; | |||
| } | } | |||
| description | description | |||
| "Serves as top-level container for test point location list."; | "Serves as top-level container | |||
| for test point location list."; | ||||
| } | } | |||
| } | } | |||
| case route-distinguisher-location-type { | case route-distinguisher-location-type { | |||
| when "'tp-address-type-value' = 'route-distinguisher-address-type'" { | when "'tp-location-type-value' = " | |||
| description "when test point address is equal to | +"'route-distinguisher-address-type'" { | |||
| description | ||||
| "When test point | ||||
| location type is equal to | ||||
| route distinguiher."; | route distinguiher."; | |||
| } | } | |||
| container test-point-route-dist-location-list { | container test-point-route-dist-location-list { | |||
| list test-point-locations { | list test-point-locations { | |||
| key "route-dist-location"; | key "route-dist-location"; | |||
| leaf route-dist-location { | leaf route-dist-location { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Route Distinguisher(8 octets)."; | "Route Distinguisher(8 octets)."; | |||
| } | } | |||
| leaf vrf { | leaf vrf { | |||
| type routing-instance-ref; | type routing-instance-ref; | |||
| description | description | |||
| "The vrf is used to describe the | "The vrf is used to describe the | |||
| corresponding network instance"; | corresponding network instance"; | |||
| } | } | |||
| uses test-point-location-info; | uses test-point-location-info; | |||
| ordered-by user; | ordered-by user; | |||
| description | description | |||
| "list of test point locations."; | "List of test point locations."; | |||
| } | } | |||
| description | description | |||
| "Serves as top-level container for test point location list."; | "Serves as top-level container | |||
| for test point location list."; | ||||
| } | } | |||
| } | } | |||
| case group-ip-address-location-type { | case group-ip-address-location-type { | |||
| when "'tp-address-type-value' = 'group-ip-address-type'" { | when "'tp-location-type-value' = " | |||
| description "when test point address is equal to | +"'group-ip-address-type'" { | |||
| group ip address."; | description | |||
| "When test point location type is equal to | ||||
| group ip address."; | ||||
| } | } | |||
| container test-point-group-ip-address-location-list { | container test-point-group-ip-address-location-list { | |||
| list test-point-locations { | list test-point-locations { | |||
| key "group-ip-address-location"; | key "group-ip-address-location"; | |||
| leaf group-ip-address-location { | leaf group-ip-address-location { | |||
| type IP-Multicast-Group-Address; | type IP-Multicast-Group-Address; | |||
| description | description | |||
| "Group IP address."; | "Group IP address."; | |||
| } | } | |||
| leaf vrf { | leaf vrf { | |||
| type routing-instance-ref; | type routing-instance-ref; | |||
| description | description | |||
| "The vrf is used to describe the | "The vrf is used to describe the | |||
| corresponding network instance"; | corresponding network instance"; | |||
| } | } | |||
| uses test-point-location-info; | uses test-point-location-info; | |||
| ordered-by user; | ordered-by user; | |||
| description | description | |||
| "list of test point locations."; | "List of test point locations."; | |||
| } | } | |||
| description | description | |||
| "Serves as top-level container for test point location list."; | "Serves as top-level container for | |||
| test point location list."; | ||||
| } | } | |||
| } | } | |||
| case group-as-number-location-type { | case group-as-number-location-type { | |||
| when "'tp-address-type-value' = 'as-number-address-type'" { | when "'tp-location-type-value' = " | |||
| description "when test point address is equal to | +"'as-number-address-type'" { | |||
| as-number."; | description | |||
| "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."; | "AS number."; | |||
| } | } | |||
| leaf vrf { | leaf vrf { | |||
| type routing-instance-ref; | type routing-instance-ref; | |||
| description | description | |||
| "The vrf is used to describe the | "The vrf is used to describe the | |||
| corresponding network instance"; | corresponding network instance"; | |||
| } | } | |||
| uses test-point-location-info; | uses test-point-location-info; | |||
| ordered-by user; | ordered-by user; | |||
| description | description | |||
| "list of test point locations."; | "List of test point locations."; | |||
| } | } | |||
| description | description | |||
| "Serves as top-level container for test point location list."; | "Serves as top-level container | |||
| for test point location list."; | ||||
| } | } | |||
| } | } | |||
| case group-lsp-id-location-type { | case group-lsp-id-location-type { | |||
| when "'tp-address-type-value' = 'lsp-id-address-type'" { | when "'tp-location-type-value' = " | |||
| description "when test point address is equal to lspid."; | +"'lsp-id-address-type'" { | |||
| description | ||||
| "When test point location | ||||
| type is equal to lspid."; | ||||
| } | } | |||
| container test-point-lsp-id-location-list { | container test-point-lsp-id-location-list { | |||
| list test-point-locations { | list test-point-locations { | |||
| key "lsp-id-location"; | key "lsp-id-location"; | |||
| leaf lsp-id-location { | leaf lsp-id-location { | |||
| type string; | type string; | |||
| description | description | |||
| "LSP Id."; | "LSP Id."; | |||
| } | } | |||
| leaf vrf { | leaf vrf { | |||
| type routing-instance-ref; | type routing-instance-ref; | |||
| description | description | |||
| "The vrf is used to describe the | "The vrf is used to describe the | |||
| corresponding network instance"; | ||||
| corresponding network instance"; | ||||
| } | } | |||
| uses test-point-location-info; | uses test-point-location-info; | |||
| ordered-by user; | ordered-by user; | |||
| description | description | |||
| "list of test point locations."; | "List of test point locations."; | |||
| } | } | |||
| description | description | |||
| "Serves as top-level container for test point location list."; | "Serves as top-level container for | |||
| test point location list."; | ||||
| } | } | |||
| } | } | |||
| case group-system-id-location-type { | case group-system-id-location-type { | |||
| when "'tp-address-type-value' = 'system-id-address-type'" { | when "'tp-location-type-value' = " | |||
| description "when test point address is equal to | +"'system-id-address-type'" { | |||
| system info."; | description | |||
| "When test point location 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 "system-id-location"; | |||
| leaf system-id-location { | leaf system-id-location { | |||
| type inet:uri; | type inet:uri; | |||
| description | description | |||
| "System Id."; | "System Id."; | |||
| } | } | |||
| leaf vrf { | leaf vrf { | |||
| type routing-instance-ref; | type routing-instance-ref; | |||
| description | description | |||
| "The vrf is used to describe the | "The vrf is used to describe the | |||
| corresponding network instance"; | corresponding network instance"; | |||
| } | } | |||
| uses test-point-location-info; | uses test-point-location-info; | |||
| ordered-by user; | ordered-by user; | |||
| description | description | |||
| "list of test point locations."; | "List of test point locations."; | |||
| } | } | |||
| description | description | |||
| "Serves as top-level container for test point location list."; | "Serves as top-level container for | |||
| test point location list."; | ||||
| } | } | |||
| } | } | |||
| description | description | |||
| "Choice of address types."; | "Choice of address types."; | |||
| } | } | |||
| } | } | |||
| augment "/nd:networks/nd:network/nd:node"{ | augment "/nd:networks/nd:network/nd:node"{ | |||
| description | description | |||
| "Augment test points of connectionless oam."; | "Augment test points of connectionless oam."; | |||
| uses test-point-locations; | uses test-point-locations; | |||
| } | } | |||
| grouping path-discovery-data { | grouping path-discovery-data { | |||
| description "Path discovery related data output from nodes."; | description | |||
| "Path discovery related data output from nodes."; | ||||
| container src-test-point { | container src-test-point { | |||
| description "Source test point."; | description "Source test point."; | |||
| uses tp-address-vrf; | uses tp-address-vrf; | |||
| } | } | |||
| container dest-test-point { | container dest-test-point { | |||
| description "Destination test point."; | description "Destination test point."; | |||
| uses tp-address-vrf; | uses tp-address-vrf; | |||
| } | } | |||
| leaf sequence-number { | leaf sequence-number { | |||
| type uint64; | type uint64; | |||
| description "Sequence number in data packets."; | description "Sequence number in data packets."; | |||
| } | } | |||
| leaf hop-cnt { | leaf hop-cnt { | |||
| type uint8; | type uint8; | |||
| description "hop count."; | description "Hop count."; | |||
| } | } | |||
| 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 path-verification { | container path-verification { | |||
| description "Optional path verification related information."; | description | |||
| "Optional path verification related information."; | ||||
| leaf flow-info { | leaf flow-info { | |||
| type string; | type string; | |||
| description | description | |||
| "ACL name that refers to the flow, if any."; | "Informations that refers to the flow."; | |||
| } | } | |||
| uses session-path-verification-statistics; | uses session-path-verification-statistics; | |||
| } | } | |||
| container path-trace-info { | container path-trace-info { | |||
| description "Optional path trace per-hop test point information. | description | |||
| The list has typically a single element for per-hop | "Optional path trace per-hop test point information. | |||
| cases like path-discovery RPC but allows a list of | The list has typically a single element for per-hop | |||
| hop related information for other types of | cases like path-discovery RPC but allows a list of | |||
| data retrieval methods."; | hop related information for other types of | |||
| data retrieval methods."; | ||||
| list path-trace-info-list { | list path-trace-info-list { | |||
| key "index"; | key "index"; | |||
| description | description | |||
| "Path trace information list."; | "Path trace information list."; | |||
| leaf index { | leaf index { | |||
| type uint32; | type uint32; | |||
| description | ||||
| description "Trace information index."; | "Trace information index."; | |||
| } | } | |||
| uses tp-address-vrf; | uses tp-address-vrf; | |||
| leaf timestamp-val { | leaf timestamp-sec { | |||
| type yang:date-and-time; | type uint64; | |||
| description "Timestamp value"; | description | |||
| "Absolute timestamp in | ||||
| seconds as per IEEE1588v2."; | ||||
| } | ||||
| leaf timestamp-nanosec { | ||||
| type uint32; | ||||
| description | ||||
| "Fractional part in | ||||
| nanoseconds as per IEEE1588v2."; | ||||
| } | } | |||
| leaf ingress-intf-name { | leaf ingress-intf-name { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description | description | |||
| "Ingress interface name"; | "Ingress interface name"; | |||
| } | } | |||
| leaf egress-intf-name { | leaf egress-intf-name { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description | description | |||
| "Egress interface name"; | "Egress interface name"; | |||
| } | } | |||
| leaf app-meta-data { | leaf queue-depth { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Application specific data added by node."; | "Length of the egress interface | |||
| queue of the interface."; | ||||
| } | } | |||
| leaf transit-delay { | ||||
| type uint32; | ||||
| description | ||||
| "Time in nano seconds | ||||
| packet spent transiting a node."; | ||||
| } | ||||
| leaf app-meta-data { | ||||
| type uint64; | ||||
| description | ||||
| "Application specific | ||||
| data added by node."; | ||||
| } | ||||
| uses opaque-tlvs; | ||||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping continuity-check-data { | grouping continuity-check-data { | |||
| description "Continuity check data output from nodes."; | description | |||
| "Continuity check data output from nodes."; | ||||
| container src-test-point { | container src-test-point { | |||
| description "Source test point."; | description "Source test point."; | |||
| uses tp-address-vrf; | uses tp-address-vrf; | |||
| leaf egress-intf-name { | leaf egress-intf-name { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description | description | |||
| "Egress interface name"; | "Egress interface name"; | |||
| } | } | |||
| } | } | |||
| container dest-test-point { | container dest-test-point { | |||
| description "Destination test point."; | description | |||
| "Destination test point."; | ||||
| uses tp-address-vrf; | uses tp-address-vrf; | |||
| leaf ingress-intf-name { | leaf ingress-intf-name { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description | description | |||
| "Ingress interface name"; | "Ingress interface name"; | |||
| } | } | |||
| } | } | |||
| leaf sequence-number { | leaf sequence-number { | |||
| type uint64; | type uint64; | |||
| description "Sequence number."; | description "Sequence number."; | |||
| } | } | |||
| leaf hop-cnt { | leaf hop-cnt { | |||
| type uint8; | type uint8; | |||
| description "hop count."; | description "Hop count."; | |||
| } | } | |||
| 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 oper { | container cc-oper-data { | |||
| if-feature continuity-check; | if-feature continuity-check; | |||
| config "false"; | config "false"; | |||
| description "cc operational information."; | description "CC operational information."; | |||
| container cc-ipv4-sessions-statistics { | container cc-ipv4-sessions-statistics { | |||
| description "cc ipv4 sessions"; | description "CC ipv4 sessions"; | |||
| uses cc-session-statsitics; | uses cc-session-statsitics; | |||
| } | } | |||
| container cc-ipv6-sessions-statistics { | container cc-ipv6-sessions-statistics { | |||
| description "cc ipv6 sessions"; | description "CC ipv6 sessions"; | |||
| uses cc-session-statsitics; | uses cc-session-statsitics; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| YANG module of OAM | ||||
| <CODE ENDS> | <CODE ENDS> | |||
| 5. CL model applicability | 5. Connectionless model applicability | |||
| ietf-connectionless-oam model defined in this document provides | "ietf-connectionless-oam" model defined in this document provides | |||
| technology-independent abstraction of key OAM constructs for | 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, we only present several | LSP ping. Note that, in this section, we only present several | |||
| skipping to change at page 47, line 20 ¶ | skipping to change at page 48, line 11 ¶ | |||
| 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 in BFD WG, there is a BFD yang data model | Note that in BFD WG, there is a BFD yang data model | |||
| [I-D.ietf-bfd-yang] to be produced. Users can choose to use "ietf- | [I-D.ietf-bfd-yang] to be produced. Users can choose to use "ietf- | |||
| connectioless-oam" as basis and augment the "ietf-connectionless-oam" | connectioless-oam" as basis and augment the "ietf-connectionless-oam" | |||
| model with bfd specific details. The bfd specific details can be the | model with bfd specific details. The bfd specific details can be the | |||
| grouping defined in the BFD model. | grouping defined in the BFD model. | |||
| 5.1.1.1. technology type extension | 5.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 augmenting "bfd" type into | The snippet below depicts an example of augmenting "bfd" type into | |||
| the ietf-connectionless-oam": | the ietf-connectionless-oam": | |||
| 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" | |||
| +"/coam:technology-string" | +"/coam:technology-string" | |||
| { | { | |||
| leaf bfd{ | leaf bfd{ | |||
| type string; | type string; | |||
| } | } | |||
| } | } | |||
| 5.1.1.2. test point attributes extension | 5.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 and add bfd specific parameters under "test-point-location" | extended and add bfd specific parameters under "test-point-location" | |||
| list and/or add new location type such as "bfd over MPLS-TE" under | list and/or add new location type such as "bfd over MPLS-TE" under | |||
| "location-type". | "location-type". | |||
| 5.1.1.2.1. Define and insert new nodes into corresponding test-point- | 5.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- | |||
| skipping to change at page 49, line 31 ¶ | skipping to change at page 50, line 28 ¶ | |||
| } | } | |||
| } | } | |||
| } | } | |||
| 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 | 5.1.2. Schema Mount | |||
| And anohter alternative method is using schema mount mechanism | And anohter alternative method is using schema mount mechanism | |||
| [draft-ietf-netmod-schema-mount] in the "ietf-connectionless-oam". | [I-D.ietf-netmod-schema-mount] in the "ietf-connectionless-oam". | |||
| Within the "test-point-location" list, a "root" attribute is defined | Within the "test-point-location" 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- | |||
| location". Therefore, the "ietf-connectionless-oam" model can | location". 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 [draft-ietf-netmod-schema- | connectionless-oam" YANG data models [I-D.ietf-netmod-schema-mount]. | |||
| mount]. Note that the limitation of the Schema Mount method is it is | Note that the limitation of the Schema Mount method is it is not | |||
| not allowed to specify certain modules that are required to be | allowed to specify certain modules that are required to be mounted | |||
| mounted under a mount point. | under a mount point. | |||
| The snippet below depicts the definition of "root" attribute. | The snippet below depicts the definition of "root" attribute. | |||
| 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"; | |||
| } | } | |||
| skipping to change at page 51, line 5 ¶ | skipping to change at page 52, line 5 ¶ | |||
| <namespace> | <namespace> | |||
| urn:ietf:params:xml:ns:yang: ietf-bfd-ip-mh | urn:ietf:params:xml:ns:yang: ietf-bfd-ip-mh | |||
| </namespace> | </namespace> | |||
| <conformance-type>implement</conformance-type> | <conformance-type>implement</conformance-type> | |||
| </module> | </module> | |||
| </schema> | </schema> | |||
| </schema-mounts> | </schema-mounts> | |||
| and the " ietf-connectionless-oam " module might have: | and the " ietf-connectionless-oam " module might have: | |||
| <ietf-connectionless-oam uri="urn:ietf:params:xml:ns:yang:ietf-connectionless-oam"> | <ietf-connectionless-oam | |||
| ...... | uri="urn:ietf:params:xml:ns:yang:ietf-connectionless-oam"> | |||
| <test-point-locations> | ...... | |||
| <ipv4-location> 1.1.1.1</ipv4-location> | <test-point-locations> | |||
| ...... | <ipv4-location> 1.1.1.1</ipv4-location> | |||
| <root> | ...... | |||
| <ietf-bfd-ip-sh uri="urn:ietf:params:xml:ns:yang:ietf-bfd-ip-sh"> | <root> | |||
| <ip-sh> | <ietf-bfd-ip-sh uri="urn:ietf:params:xml:ns:yang:ietf-bfd-ip-sh"> | |||
| foo | <ip-sh> | |||
| ...... | foo | |||
| </ip-sh> | ...... | |||
| </ietf-bfd-ip-sh> | </ip-sh> | |||
| <ietf-bfd-ip-mh uri="urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh"> | </ietf-bfd-ip-sh> | |||
| <ip-mh> | <ietf-bfd-ip-mh uri="urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh"> | |||
| foo | <ip-mh> | |||
| ...... | foo | |||
| </ip-mh> | ...... | |||
| </ietf-bfd-ip-mh> | </ip-mh> | |||
| </root> | </ietf-bfd-ip-mh> | |||
| </test-point-locations> | </root> | |||
| </ietf-connectionless-oam> | </test-point-locations> | |||
| </ietf-connectionless-oam> | ||||
| 5.2. LSP ping extension | 5.2. LSP ping extension | |||
| 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 extension are introduced such as technology-type extension and | set of extension are introduced such as technology-type extension and | |||
| test-point attributes extension. | test-point attributes extension. | |||
| Note that in MPLS WG, there is a LSP Ping yang data model | Note that in MPLS WG, there is a LSP Ping yang data model | |||
| [I-D.draft-zheng-mpls-lsp-ping-yang-cfg] to be produced. Users can | [I-D.draft-zheng-mpls-lsp-ping-yang-cfg] to be produced. Users can | |||
| choose to use "ietf-connectioless-oam" as basis and augment the | choose to use "ietf-connectioless-oam" as basis and augment the | |||
| "ietf-connectionless-oam" model with LSP Ping specific details in the | "ietf-connectionless-oam" model with LSP Ping specific details in the | |||
| model extension. The LSP Ping specific details can be the grouping | model extension. The LSP Ping specific details can be the grouping | |||
| defined in the LSP ping model. | defined in the LSP ping model. | |||
| 5.2.1. technology type extension | 5.2.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" | |||
| +"/coam:technology-string" | +"/coam:technology-string" | |||
| { | { | |||
| leaf lsp-ping{ | leaf lsp-ping{ | |||
| type string; | type string; | |||
| } | } | |||
| } | } | |||
| 5.2.2. test point attributes extension | 5.2.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-location" list. | under "test-point-location" list. | |||
| User can reuse the attributes or groupings which are defined in | User can reuse the attributes or groupings which are defined in | |||
| [I-D.draft-zheng-mpls-lsp-ping-yang-cfg] as follows: | [I-D.draft-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: | |||
| skipping to change at page 52, line 46 ¶ | skipping to change at page 53, line 46 ¶ | |||
| type string { | type string { | |||
| length "1..31"; | length "1..31"; | |||
| } | } | |||
| mandatory "true"; | mandatory "true"; | |||
| description "LSP Ping test name."; | description "LSP Ping test name."; | |||
| ...... | ...... | |||
| } | } | |||
| 6. Security Considerations | 6. Security Considerations | |||
| TBD. | The YANG module defined in this memo is designed to be accessed via | |||
| the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the | ||||
| secure transport layer and the mandatory-to-implement secure | ||||
| transport is SSH [RFC6242]. The NETCONF access control model | ||||
| [RFC6536] provides the means to restrict access for particular | ||||
| NETCONF users to a pre-configured subset of all available NETCONF | ||||
| protocol operations and content. | ||||
| There are a number of data nodes defined in the YANG module which are | ||||
| writable/creatable/deletable (i.e., config true, which is the | ||||
| default). These data nodes may be considered sensitive or vulnerable | ||||
| in some network environments. Write operations (e.g. <edit-config>) | ||||
| to these data nodes without proper protection can have a negative | ||||
| effect on network operations. | ||||
| The vulnerable "config true" subtrees and data nodes are the | ||||
| following: | ||||
| /nd:networks/nd:network/nd:node/coam:location-type/coam:ipv4- | ||||
| location-type/coam:test-point-ipv4-location-list/coam:test-point- | ||||
| locations/ | ||||
| /nd:networks/nd:network/nd:node/coam:location-type/coam:ipv6- | ||||
| location-type/coam:test-point-ipv6-location-list/coam:test-point- | ||||
| locations/ | ||||
| /nd:networks/nd:network/nd:node/coam:location-type/coam:mac-location- | ||||
| type/coam:test-point-mac-address-location-list/coam:test-point- | ||||
| locations/ | ||||
| /nd:networks/nd:network/nd:node/coam:location-type/coam:tunnel- | ||||
| location-type/coam:test-point-tunnel-address-location-list/coam:test- | ||||
| point-locations/ | ||||
| /nd:networks/nd:network/nd:node/coam:location-type/coam:ip-prefix- | ||||
| location-type/coam:test-point-ip-prefix-location-list/coam:test- | ||||
| point-locations/ | ||||
| /nd:networks/nd:network/nd:node/coam:location-type/coam:route- | ||||
| distinguisher-location-type/coam:test-point-route-dist-location-list/ | ||||
| coam:test-point-locations/ | ||||
| /nd:networks/nd:network/nd:node/coam:location-type/coam:group-ip- | ||||
| address-location-type/coam:test-point-group-ip-address-location-list/ | ||||
| coam:test-point-locations/ | ||||
| /nd:networks/nd:network/nd:node/coam:location-type/coam:group-as- | ||||
| number-location-type/coam:test-point-as-number-location-list/ | ||||
| coam:test-point-locations/ | ||||
| /nd:networks/nd:network/nd:node/coam:location-type/coam:group-lsp-id- | ||||
| location-type/coam:test-point-lsp-id-location-list/coam:test-point- | ||||
| locations/ | ||||
| /nd:networks/nd:network/nd:node/coam:location-type/coam:group-system- | ||||
| id-location-type/coam:test-point-system-info-location-list/coam:test- | ||||
| point-locations/ | ||||
| Unauthorized access to any of these lists can adversely affect OAM | ||||
| management system handling of end-to-end OAM and coordination of OAM | ||||
| within underlying network layers. This may lead to inconsistent | ||||
| configuration, reporting, and presentation for the OAM mechanisms | ||||
| used to manage the network. | ||||
| 7. IANA Considerations | 7. IANA Considerations | |||
| This document registers a URI in the IETF XML registry [RFC3688] | This document registers a URI in the IETF XML registry [RFC3688]. | |||
| [RFC3688]. Following the format in RFC 3688, the following | Following the format in [RFC3688] the following registration is | |||
| 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-connectionless-oam | |||
| Registrant Contact: The IESG. | 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 [RFC6020]. | registry [RFC6020]. | |||
| name: ietf-connectionless-oam namespace: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam | name: ietf-connectionless-oam | |||
| prefix: goam reference: RFC XXXX | ||||
| namespace: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam | ||||
| prefix: coam | ||||
| reference: RFC XXXX | ||||
| 8. Acknowlegements | 8. Acknowlegements | |||
| The authors of this document would like to thank Greg Mirskey and | The authors of this document would like to thank Greg Mirsky and | |||
| others for their sustainable review and comments, proposals to | others for their sustainable review and comments, proposals to | |||
| improve and stablize document. | improve and stabilize document. | |||
| 9. Normative References | 9. References | |||
| [I-D.draft-ietf-i2rs-yang-network-topo] | 9.1. Normative References | |||
| Clemm, A., Medved, J., Tkacik, T., Varga, R., Bahadur, N., | ||||
| Ananthakrishnan, H., and X. Liu, "A YANG Data Model for | ||||
| Network Topologies", I-D draft-ietf-i2rs-yang-network- | ||||
| topo-05, July 2016. | ||||
| [I-D.draft-zheng-mpls-lsp-ping-yang-cfg] | [I-D.draft-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", I-D draft-zheng- | Rahman, "Yang Data Model for LSP-PING", I-D draft-zheng- | |||
| mpls-lsp-ping-yang-cfg-03, March 2016. | mpls-lsp-ping-yang-cfg, March 2016. | |||
| [I-D.ietf-bfd-yang] | [I-D.ietf-bfd-yang] | |||
| Zheng, L., Rahman, R., Networks, J., Jethanandani, M., and | Zheng, L., Rahman, R., Networks, J., Jethanandani, M., and | |||
| G. Mirsky, "Yang Data Model for Bidirectional Forwarding | G. Mirsky, "Yang Data Model for Bidirectional Forwarding | |||
| Detection (BFD)", draft-ietf-bfd-yang-03 (work in | Detection (BFD)", draft-ietf-bfd-yang-04 (work in | |||
| progress), July 2016. | progress), January 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-11 (work in | ||||
| progress), February 2017. | ||||
| [I-D.ietf-lime-yang-connectionless-oam-methods] | ||||
| Kumar, D., Wang, Z., Wu, Q., Rahman, R., and S. Raghavan, | ||||
| "Retrieval Methods YANG Data Model for Connectionless | ||||
| Operations, Administration, and Maintenance(OAM) | ||||
| protocols", draft-ietf-lime-yang-connectionless-oam- | ||||
| methods-00 (work in progress), October 2016. | ||||
| [I-D.ietf-lime-yang-oam-model] | ||||
| Kumar, D., Wu, Q., and Z. Wang, "Generic YANG Data Model | ||||
| for Connection Oriented Operations, Administration, and | ||||
| Maintenance(OAM) protocols", draft-ietf-lime-yang-oam- | ||||
| model-08 (work in progress), December 2016. | ||||
| [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-03 (work in progress), October | ietf-netmod-schema-mount-03 (work in progress), October | |||
| 2016. | 2016. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <http://www.rfc-editor.org/info/rfc2119>. | <http://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | ||||
| DOI 10.17487/RFC3688, January 2004, | ||||
| <http://www.rfc-editor.org/info/rfc3688>. | ||||
| [RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet | ||||
| Control Message Protocol (ICMPv6) for the Internet | ||||
| Protocol Version 6 (IPv6) Specification", RFC 4443, | ||||
| DOI 10.17487/RFC4443, March 2006, | ||||
| <http://www.rfc-editor.org/info/rfc4443>. | ||||
| [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | |||
| the Network Configuration Protocol (NETCONF)", RFC 6020, | the Network Configuration Protocol (NETCONF)", RFC 6020, | |||
| DOI 10.17487/RFC6020, October 2010, | DOI 10.17487/RFC6020, October 2010, | |||
| <http://www.rfc-editor.org/info/rfc6020>. | <http://www.rfc-editor.org/info/rfc6020>. | |||
| [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | |||
| and A. Bierman, Ed., "Network Configuration Protocol | and A. Bierman, Ed., "Network Configuration Protocol | |||
| (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | |||
| <http://www.rfc-editor.org/info/rfc6241>. | <http://www.rfc-editor.org/info/rfc6241>. | |||
| [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | |||
| Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | |||
| <http://www.rfc-editor.org/info/rfc6242>. | <http://www.rfc-editor.org/info/rfc6242>. | |||
| [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration | ||||
| Protocol (NETCONF) Access Control Model", RFC 6536, | ||||
| DOI 10.17487/RFC6536, March 2012, | ||||
| <http://www.rfc-editor.org/info/rfc6536>. | ||||
| [RFC792] Postel, J., "Internet Control Message Protocol", RFC 792, | [RFC792] Postel, J., "Internet Control Message Protocol", RFC 792, | |||
| September 1981. | September 1981. | |||
| 9.2. Informative References | ||||
| [G.8013] "OAM functions and mechanisms for Ethernet based | ||||
| networks", ITU-T Recommendation G.8013/Y.1731, 2013. | ||||
| [I-D.ietf-spring-sr-yang] | ||||
| Litkowski, S., Qu, Y., Sarkar, P., and J. Tantsura, "YANG | ||||
| Data Model for Segment Routing", draft-ietf-spring-sr- | ||||
| yang-05 (work in progress), October 2016. | ||||
| [RFC6136] Sajassi, A., Ed. and D. Mohan, Ed., "Layer 2 Virtual | ||||
| Private Network (L2VPN) Operations, Administration, and | ||||
| Maintenance (OAM) Requirements and Framework", RFC 6136, | ||||
| DOI 10.17487/RFC6136, March 2011, | ||||
| <http://www.rfc-editor.org/info/rfc6136>. | ||||
| [RFC7276] Mizrahi, T., Sprecher, N., Bellagamba, E., and Y. | ||||
| Weingarten, "An Overview of Operations, Administration, | ||||
| and Maintenance (OAM) Tools", RFC 7276, | ||||
| DOI 10.17487/RFC7276, June 2014, | ||||
| <http://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 | |||
| End of changes. 368 change blocks. | ||||
| 704 lines changed or deleted | 884 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/ | ||||