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/ |