| rfc8533auth48yang.xml | rfc8533yang.xml | |||
|---|---|---|---|---|
| module ietf-connectionless-oam-methods { | module ietf-connectionless-oam-methods { | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-connectionless-oam-methods"; | namespace | |||
| prefix cloam-methods; | "urn:ietf:params:xml:ns:yang:ietf-connectionless-oam-methods"; | |||
| import ietf-interfaces { | prefix cloam-methods; | |||
| prefix if; | ||||
| } | import ietf-interfaces { | |||
| import ietf-connectionless-oam { | prefix if; | |||
| prefix cl-oam; | } | |||
| } | import ietf-connectionless-oam { | |||
| prefix cl-oam; | ||||
| } | ||||
| organization | organization | |||
| "IETF LIME Working Group"; | "IETF LIME Working Group"; | |||
| contact | contact | |||
| "Deepak Kumar <dekumar@cisco.com> | "WG Web: <https://datatracker.ietf.org/wg/lime> | |||
| WG List: <mailto:lmap@ietf.org> | ||||
| Deepak Kumar <dekumar@cisco.com> | ||||
| Qin Wu <bill.wu@huawei.com> | Qin Wu <bill.wu@huawei.com> | |||
| Srihari Raghavan <rihari@cisco.com> | Srihari Raghavan <rihari@cisco.com> | |||
| Michael Wang <wangzitao@huawei.com> | Michael Wang <wangzitao@huawei.com> | |||
| Reshad Rahman <rrahman@cisco.com>"; | Reshad Rahman <rrahman@cisco.com>"; | |||
| description | description | |||
| "This YANG module defines the RPC operations for | "This YANG module defines the RPC operations for | |||
| connectionless OAM to be used within the IETF | connectionless OAM to be used within the IETF | |||
| in a protocol-independent manner. It is | in a protocol-independent manner. It is | |||
| assumed that each protocol maps corresponding | assumed that each protocol maps corresponding | |||
| abstracts to its native format. Each protocol | abstracts to its native format. Each protocol | |||
| may extend the YANG model defined here to | may extend the YANG data model defined here to | |||
| include protocol-specific extensions. | include protocol-specific extensions. | |||
| Copyright (c) 2019 IETF Trust and the persons identified as | Copyright (c) 2019 IETF Trust and the persons identified as | |||
| authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
| to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC 8533; see | This version of this YANG module is part of RFC 8533; see | |||
| the RFC itself for full legal notices."; | the RFC itself for full legal notices."; | |||
| revision 2019-02-11{ | revision 2019-02-11 { | |||
| description | description | |||
| "Initial revision."; | "Initial revision."; | |||
| reference | reference | |||
| "RFC 8533: Retrieval Methods YANG Data Model for the Management | "RFC 8533: Retrieval Methods YANG Data Model for the Management | |||
| of Operations, Administration, and Maintenance (OAM) | of Operations, Administration, and Maintenance (OAM) | |||
| Protocols That Use Connectionless Communications"; | Protocols That Use Connectionless Communications"; | |||
| } | } | |||
| identity protocol-id { | identity protocol-id { | |||
| description | description | |||
| "This is the base identity for a generic protocol | "This is the base identity for a generic protocol | |||
| ID. The protocol registry can be found at | ID. The protocol registry can be found at | |||
| https://www.iana.org/protocols."; | https://www.iana.org/protocols."; | |||
| } | } | |||
| identity protocol-id-internet { | identity protocol-id-internet { | |||
| base protocol-id; | base protocol-id; | |||
| description | description | |||
| "Identity for Internet Protocols."; | "Identity for Internet Protocols."; | |||
| } | } | |||
| identity protocol-id-proprietary { | identity protocol-id-proprietary { | |||
| base protocol-id; | base protocol-id; | |||
| description | description | |||
| "Identity for proprietary protocols (e.g., | "Identity for proprietary protocols (e.g., | |||
| IP SLA)."; | IP SLA)."; | |||
| } | } | |||
| identity protocol-id-sfc { | identity protocol-id-sfc { | |||
| base protocol-id; | base protocol-id; | |||
| description | description | |||
| "Identity for Service Function Chaining."; | "Identity for Service Function Chaining."; | |||
| } | } | |||
| identity protocol-id-mpls { | identity protocol-id-mpls { | |||
| base protocol-id; | base protocol-id; | |||
| description | description | |||
| "The MPLS protocol."; | "The MPLS protocol."; | |||
| } | } | |||
| identity protocol-id-mpls-tp { | identity protocol-id-mpls-tp { | |||
| base protocol-id; | base protocol-id; | |||
| description | description | |||
| "The MPLS-TP protocol."; | "The MPLS-TP protocol."; | |||
| } | } | |||
| identity protocol-id-twamp { | identity protocol-id-twamp { | |||
| base protocol-id; | base protocol-id; | |||
| description | description | |||
| "The Two-Way Active Measurement Protocol (TWAMP) | "The Two-Way Active Measurement Protocol (TWAMP) | |||
| protocol."; | protocol."; | |||
| } | } | |||
| identity protocol-id-bier { | identity protocol-id-bier { | |||
| base protocol-id; | base protocol-id; | |||
| description | description | |||
| "The Bit Index Explicit Replication (BIER) | "The Bit Index Explicit Replication (BIER) | |||
| protocol."; | protocol."; | |||
| } | } | |||
| identity status-code { | identity status-code { | |||
| description | description | |||
| "This is base identity for a status code."; | "This is base identity for a status code."; | |||
| } | } | |||
| identity success-reach { | identity success-reach { | |||
| base status-code; | base status-code; | |||
| description | description | |||
| "Indicates that the destination being verified | "Indicates that the destination being verified | |||
| is reachable (see RFC 7276)."; | is reachable (see RFC 7276)."; | |||
| reference | ||||
| "RFC 7276: An Overview of Operations, Administration, and | ||||
| Maintenance (OAM) Tools"; | ||||
| } | } | |||
| identity fail-reach { | identity fail-reach { | |||
| base status-code; | base status-code; | |||
| description | description | |||
| "Indicates that the destination being verified | "Indicates that the destination being verified | |||
| is not reachable (see RFC 7276)."; | is not reachable (see RFC 7276)."; | |||
| reference | ||||
| "RFC 7276: An Overview of Operations, Administration, and | ||||
| Maintenance (OAM) Tools"; | ||||
| } | } | |||
| identity success-path-verification { | identity success-path-verification { | |||
| base status-code; | base status-code; | |||
| description | description | |||
| "Indicates that the path verification is performed | "Indicates that the path verification is performed | |||
| successfully (see RFC 7276)."; | successfully (see RFC 7276)."; | |||
| reference | ||||
| "RFC 7276: An Overview of Operations, Administration, and | ||||
| Maintenance (OAM) Tools"; | ||||
| } | } | |||
| identity fail-path-verification { | identity fail-path-verification { | |||
| base status-code; | base status-code; | |||
| description | description | |||
| "Indicates that the path verification fails | "Indicates that the path verification fails | |||
| (see RFC 7276)."; | (see RFC 7276)."; | |||
| reference | ||||
| "RFC 7276: An Overview of Operations, Administration, and | ||||
| Maintenance (OAM) Tools"; | ||||
| } | } | |||
| identity status-sub-code { | identity status-sub-code { | |||
| description | description | |||
| "IdentityBase status sub code."; | "IdentityBase status-sub-code."; | |||
| } | } | |||
| identity invalid-cc { | ||||
| base status-sub-code; | identity invalid-cc { | |||
| description | base status-sub-code; | |||
| "Indicates that the continuity check message is invalid | description | |||
| (see RFC 7276)."; | "Indicates that the Continuity Check message is invalid | |||
| (see RFC 7276)."; | ||||
| reference | ||||
| "RFC 7276: An Overview of Operations, Administration, and | ||||
| Maintenance (OAM) Tools"; | ||||
| } | } | |||
| identity invalid-pd { | identity invalid-pd { | |||
| base status-sub-code; | base status-sub-code; | |||
| description | description | |||
| "Indicates that the path discovery message is invalid | "Indicates that the path discovery message is invalid | |||
| (see RFC 7276)."; | (see RFC 7276)."; | |||
| reference | ||||
| "RFC 7276: An Overview of Operations, Administration, and | ||||
| Maintenance (OAM) Tools"; | ||||
| } | } | |||
| identity protocol-id-meta-data { | identity protocol-id-meta-data { | |||
| description | description | |||
| "This is the base identity for metadata that corresponds | "This is the base identity for metadata that corresponds | |||
| to the protocol ID."; | to the protocol ID."; | |||
| } | } | |||
| identity protocol-internet-number { | identity protocol-internet-number { | |||
| base protocol-id-meta-data; | base protocol-id-meta-data; | |||
| description | description | |||
| "Internet Protocol number for standard | "Internet Protocol number for standard | |||
| Internet Protocols (IANA-assigned Internet | Internet Protocols (IANA-assigned Internet | |||
| Protocol numbers) to help in protocol processing. | Protocol numbers) to help in protocol processing. | |||
| The Protocol Numbers registry can be found at | The Protocol Numbers registry can be found at | |||
| https://www.iana.org/assignments/protocol-numbers."; | https://www.iana.org/assignments/protocol-numbers."; | |||
| } | } | |||
| grouping rpc-input-parameters { | grouping rpc-input-parameters { | |||
| container destination-tp { | container destination-tp { | |||
| uses cl-oam:tp-address; | uses cl-oam:tp-address; | |||
| description | description | |||
| "Destination test point."; | "Destination test point."; | |||
| } | } | |||
| leaf source-interface { | leaf source-interface { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Source interface."; | "Source interface."; | |||
| } | } | |||
| leaf outbound-interface { | leaf outbound-interface { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Outbound interface."; | "Outbound interface."; | |||
| } | } | |||
| leaf vrf { | leaf vrf { | |||
| type cl-oam:routing-instance-ref; | type cl-oam:routing-instance-ref; | |||
| description | description | |||
| "Virtual Routing and Forwarding (VRF) instance."; | "Virtual Routing and Forwarding (VRF) instance."; | |||
| } | } | |||
| description | description | |||
| "Grouping for RPC input parameters"; | "Grouping for RPC input parameters"; | |||
| } | } | |||
| rpc continuity-check { | rpc continuity-check { | |||
| if-feature "cl-oam:continuity-check"; | if-feature "cl-oam:continuity-check"; | |||
| description | description | |||
| "Continuity-check RPC operation as per RFC 7276."; | "Continuity Check RPC operation as per RFC 7276."; | |||
| reference | ||||
| "RFC 7276: An Overview of Operations, Administration, and | ||||
| Maintenance (OAM) Tools"; | ||||
| input { | input { | |||
| uses rpc-input-parameters; | uses rpc-input-parameters; | |||
| uses cl-oam:session-type { | uses cl-oam:session-type { | |||
| description | description | |||
| "If session-type is specified, then session-type | "If session-type is specified, then session-type | |||
| must be set to on demand"; | must be set to on demand"; | |||
| } | } | |||
| leaf count { | leaf count { | |||
| type uint32 { | type uint32 { | |||
| range 0..4294967295 { | range "0..4294967295" { | |||
| description | description | |||
| "The overall number of packets to be transmitted | "The overall number of packets to be transmitted | |||
| by the sender. The value of the count will be set | by the sender. The value of the count will be set | |||
| to zero (0) on creation and will thereafter | to zero (0) on creation and will thereafter | |||
| increase monotonically until it reaches a maximum | increase monotonically until it reaches a maximum | |||
| value of 2^32-1 (4294967295 decimal), when it wraps | value of 2^32-1 (4294967295 decimal), when it wraps | |||
| around and starts increasing again from zero."; | around and starts increasing again from zero."; | |||
| } | } | |||
| } | } | |||
| default "5"; | default "5"; | |||
| description | description | |||
| "Specifies the number of | "Specifies the number of | |||
| packets that will be sent. By | packets that will be sent. By | |||
| default, the packet number is | default, the packet number is | |||
| set to 5."; | set to 5."; | |||
| } | } | |||
| leaf ttl { | leaf ttl { | |||
| type uint8; | type uint8; | |||
| default "255"; | default "255"; | |||
| description | description | |||
| "Time to live (TTL) used to limit the lifetime | "Time to live (TTL) used to limit the lifetime | |||
| of data packets transmitted in the network | of data packets transmitted in the network | |||
| to prevent looping. The TTL value is decremented | to prevent looping. The TTL value is decremented | |||
| for every hop that the packet traverses. If the | for every hop that the packet traverses. If the | |||
| TTL is zero, the data packet will be discarded."; | TTL is zero, the data packet will be discarded."; | |||
| } | } | |||
| leaf packet-size { | leaf packet-size { | |||
| type uint32 { | type uint32 { | |||
| range "64..10000"; | range "64..10000"; | |||
| } | } | |||
| default "64"; | default "64"; | |||
| description | description | |||
| "Packet size of the continuity-check message, in octets. | "Packet size of the Continuity Check message, in octets. | |||
| By default, the packet size is set to 64 octets."; | By default, the packet size is set to 64 octets."; | |||
| } | } | |||
| } | } | |||
| output { | output { | |||
| container response-info { | container response-info { | |||
| leaf protocol-id { | leaf protocol-id { | |||
| type identityref { | type identityref { | |||
| base protocol-id; | base protocol-id; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Protocol used in the continuity check message. | "Protocol used in the Continuity Check message. | |||
| This could be a standard protocol (e.g., | This could be a standard protocol (e.g., | |||
| TCP/IP protocols, MPLS, etc.) or a proprietary | TCP/IP protocols, MPLS, etc.) or a proprietary | |||
| protocol as identified by this field."; | protocol as identified by this field."; | |||
| } | } | |||
| leaf protocol-id-meta-data { | leaf protocol-id-meta-data { | |||
| type identityref { | type identityref { | |||
| base protocol-id-meta-data; | base protocol-id-meta-data; | |||
| } | } | |||
| description | description | |||
| "An optional metadata related to the protocol ID. | "An optional metadata related to the protocol ID. | |||
| For example, this could be the Internet Protocol | For example, this could be the Internet Protocol | |||
| number for standard Internet Protocols for help | number for standard Internet Protocols used for | |||
| in protocol processing."; | help with protocol processing."; | |||
| } | } | |||
| leaf status-code { | leaf status-code { | |||
| type identityref{ | type identityref { | |||
| base status-code; | base status-code; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Status code for continuity check RPC operation. | "Status code for Continuity Check RPC operation. | |||
| This could be a basic status code (e.g., destination | This could be a basic status code (e.g., destination | |||
| is reachable or destination is not reachable; see RFC 7276) | is reachable or destination is not reachable; see RFC 7276) | |||
| or some customized status code as identified by this field."; | or some customized status code as identified by this | |||
| field."; | ||||
| reference | ||||
| "RFC 7276: An Overview of Operations, Administration, and | ||||
| Maintenance (OAM) Tools"; | ||||
| } | } | |||
| leaf status-sub-code { | leaf status-sub-code { | |||
| type identityref{ | type identityref { | |||
| base status-sub-code; | base status-sub-code; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "An optional status sub code for continuity check | "An optional status-sub-code for Continuity Check | |||
| RPC operation. If the basic status code is destination | RPC operation. If the basic status code is destination | |||
| reachable, this status-sub-code doesn't need to be specified. | reachable, this status-sub-code doesn't need to be | |||
| If the basic status code is destination unreachable, the | specified. If the basic status code is destination | |||
| status-sub-code can be used to specify the detailed reasons. | unreachable, the status-sub-code can be used to specify | |||
| This could be a basic sub-status-code (such as an invalid | the detailed reasons. This could be a basic | |||
| CC) or other error codes specific to the protocol under | sub-status-code (such as an invalid Continuity Check) or | |||
| use for the CC. For example, if ICMP is the protocol under | other error codes specific to the protocol under use for | |||
| use, the error codes defined in RFC 4443 can be used to | the Continuity Checks. For example, if ICMP is the | |||
| specify the reasons specific to ICMP. This technology- | protocol under use, the error codes defined in RFC 4443 | |||
| specific status-sub-code can be defined in technology- | can be used to specify the reasons specific to ICMP. | |||
| specific models."; | This technology-specific status-sub-code can be | |||
| defined in technology-specific models."; | ||||
| reference | ||||
| "RFC 4443: The IETF Administrative Oversight Committee | ||||
| (IAOC) Member Selection Guidelines and Process."; | ||||
| } | } | |||
| description | description | |||
| "Status code and status sub code for continuity check RPC | "Status code and status-sub-code for Continuity Check RPC | |||
| operation."; | operation."; | |||
| } | } | |||
| uses cl-oam:continuity-check-data; | uses cl-oam:continuity-check-data; | |||
| } | } | |||
| } | } | |||
| rpc path-discovery { | rpc path-discovery { | |||
| if-feature "cl-oam:path-discovery"; | if-feature "cl-oam:path-discovery"; | |||
| description | description | |||
| "Path discovery RPC operation as per RFC 7276."; | "Path discovery RPC operation as per RFC 7276."; | |||
| reference | ||||
| "RFC 7276: An Overview of Operations, Administration, and | ||||
| Maintenance (OAM) Tools"; | ||||
| input { | input { | |||
| uses rpc-input-parameters; | uses rpc-input-parameters; | |||
| uses cl-oam:session-type { | uses cl-oam:session-type { | |||
| description | description | |||
| "If session-type is specified, then session-type | "If session-type is specified, then session-type | |||
| must be set to on demand"; | must be set to on demand"; | |||
| } | } | |||
| leaf max-ttl { | leaf max-ttl { | |||
| type uint8; | type uint8; | |||
| default "255"; | default "255"; | |||
| description | description | |||
| "Maximum TTL indicates the maximum number of hops that | "Maximum TTL indicates the maximum number of hops that | |||
| a packet is permitted to travel before being discarded | a packet is permitted to travel before being discarded | |||
| by a router. By default, the maximum TTL is set to | by a router. By default, the maximum TTL is set to | |||
| 255."; | 255."; | |||
| } | } | |||
| } | } | |||
| output { | output { | |||
| list response-list { | list response-list { | |||
| key "response-index"; | key "response-index"; | |||
| description | description | |||
| "Path discovery response list."; | "Path discovery response list."; | |||
| leaf response-index { | leaf response-index { | |||
| type uint32; | type uint32; | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Response index."; | "Response index."; | |||
| } | } | |||
| leaf protocol-id { | leaf protocol-id { | |||
| type identityref { | type identityref { | |||
| base protocol-id; | base protocol-id; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Protocol used in path discovery. This could be a | "Protocol used in path discovery. This could be a | |||
| standard protocol (e.g., TCP/IP protocols, MPLS, etc.) | standard protocol (e.g., TCP/IP protocols, MPLS, etc.) | |||
| or a proprietary protocol as identified by | or a proprietary protocol as identified by | |||
| this field."; | this field."; | |||
| } | } | |||
| leaf protocol-id-meta-data { | leaf protocol-id-meta-data { | |||
| type identityref { | type identityref { | |||
| base protocol-id-meta-data; | base protocol-id-meta-data; | |||
| } | } | |||
| description | description | |||
| "An optional metadata related to the protocol ID. | "An optional metadata related to the protocol ID. | |||
| For example, this could be the Internet Protocol | For example, this could be the Internet Protocol | |||
| number for standard Internet Protocols for help | number for standard Internet Protocols used for | |||
| in protocol processing."; | help with protocol processing."; | |||
| } | } | |||
| leaf status-code { | leaf status-code { | |||
| type identityref{ | type identityref { | |||
| base status-code; | base status-code; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Status code for continuity check RPC operation. | "Status code for Continuity Check RPC operation. | |||
| This could be a basic status code (e.g., destination | This could be a basic status code (e.g., destination | |||
| is reachable or destination is not reachable) or some | is reachable or destination is not reachable) or some | |||
| customized status code as identified by this field."; | customized status code as identified by this field."; | |||
| } | } | |||
| leaf status-sub-code { | leaf status-sub-code { | |||
| type identityref{ | type identityref { | |||
| base status-sub-code; | base status-sub-code; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "An optional status sub code for continuity check | "An optional status-sub-code for Continuity Check | |||
| RPC operation. If the basic status code is destination | RPC operation. If the basic status code is destination | |||
| reachable, this status-sub-code doesn't need to be specified. | reachable, this status-sub-code doesn't need to be | |||
| If the basic status code is destination unreachable, the | specified. If the basic status code is destination | |||
| status-sub-code can be used to specify the detailed reasons. | unreachable, the status-sub-code can be used to specify | |||
| This could be a basic sub-status-code (such as an invalid | the detailed reasons. This could be a basic | |||
| CC) or other error codes specific to the protocol under use | sub-status-code (such as an invalid Continuity Check) or | |||
| for CCs. For example, if ICMP is the protocol under use, the | other error codes specific to the protocol under use for | |||
| error codes defined in RFC 4443 can be used to specify the | Continuity Checks. For example, if ICMP is the protocol | |||
| reasons specific to ICMP. This technology-specific | under use, the error codes defined in RFC 4443 | |||
| status-sub-code can be defined in technology-specific | can be used to specify the reasons specific to ICMP. | |||
| models."; | This technology-specific status-sub-code can be defined | |||
| in technology-specific models."; | ||||
| reference | ||||
| "RFC 4443: The IETF Administrative Oversight Committee | ||||
| (IAOC) Member Selection Guidelines and Process."; | ||||
| } | } | |||
| } | } | |||
| uses cl-oam:path-discovery-data; | uses cl-oam:path-discovery-data; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| End of changes. 65 change blocks. | ||||
| 159 lines changed or deleted | 220 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||