rfc8533example-auth48yang.xml | rfc8533example-yang.xml | |||
---|---|---|---|---|
module example-cl-oam-persistent-methods { | module example-cl-oam-persistent-methods { | |||
namespace "http://example.com/cl-oam-persistent-methods"; | namespace "http://example.com/cl-oam-persistent-methods"; | |||
prefix pcloam-methods; | prefix pcloam-methods; | |||
import ietf-interfaces { | ||||
import ietf-interfaces { | ||||
prefix if; | prefix if; | |||
} | } | |||
import ietf-connectionless-oam { | import ietf-connectionless-oam { | |||
prefix cl-oam; | prefix cl-oam; | |||
} | } | |||
import ietf-yang-types { | import ietf-yang-types { | |||
prefix yang; | prefix yang; | |||
} | } | |||
identity export-method { | ||||
description | identity export-method { | |||
"Base identity to represent a conceptual | description | |||
export-method."; | "Base identity to represent a conceptual | |||
} | export-method."; | |||
identity ipfix-export { | } | |||
base export-method; | ||||
description | identity ipfix-export { | |||
"IPFIX-based export. Configuration provided | base export-method; | |||
separately."; | description | |||
} | "IPFIX-based export. Configuration provided | |||
identity yang-push-export { | separately."; | |||
base export-method; | } | |||
description | ||||
"YANG-Push from draft-ietf-netconf-yang-push."; | identity yang-push-export { | |||
} | base export-method; | |||
identity protocol-id { | description | |||
description | "YANG-Push from draft-ietf-netconf-yang-push."; | |||
} | ||||
identity protocol-id { | ||||
description | ||||
"A generic protocol identifier."; | "A generic protocol identifier."; | |||
} | } | |||
identity status-code { | identity status-code { | |||
description | description | |||
"Base status code."; | "Base 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."; | is reachable."; | |||
} | } | |||
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"; | is not reachable"; | |||
} | } | |||
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."; | successfully."; | |||
} | } | |||
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."; | |||
} | } | |||
identity status-sub-code { | identity status-sub-code { | |||
description | description | |||
"Base status sub code."; | "Base 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 | description | |||
invalid."; | "Indicates that the Continuity Check message is | |||
invalid."; | ||||
} | } | |||
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."; | |||
} | } | |||
typedef export-method { | ||||
type identityref { | typedef export-method { | |||
base export-method; | type identityref { | |||
base export-method; | ||||
} | ||||
description | ||||
"Export method type."; | ||||
} | ||||
typedef change-type { | ||||
type enumeration { | ||||
enum create { | ||||
description | ||||
"Change due to a create."; | ||||
} | ||||
enum delete { | ||||
description | ||||
"Change due to a delete."; | ||||
} | ||||
enum modify { | ||||
description | ||||
"Change due to an update."; | ||||
} | } | |||
description | ||||
"Export method type."; | ||||
} | } | |||
typedef change-type { | description | |||
type enumeration { | "Different types of changes that may occur."; | |||
enum "create" { | } | |||
rpc cc-get-persistent-id { | ||||
if-feature "cl-oam:continuity-check"; | ||||
description | ||||
"Obtains Continuity Check persistent identification | ||||
given mapping parameters as input."; | ||||
input { | ||||
container destination-tp { | ||||
uses cl-oam:tp-address; | ||||
description | ||||
"Destination test point."; | ||||
} | ||||
uses cl-oam:session-type; | ||||
leaf source-interface { | ||||
type if:interface-ref; | ||||
description | ||||
"Source interface."; | ||||
} | ||||
leaf outbound-interface { | ||||
type if:interface-ref; | ||||
description | ||||
"Outbound interface."; | ||||
} | ||||
leaf vrf { | ||||
type cl-oam:routing-instance-ref; | ||||
description | ||||
"VRF instance."; | ||||
} | ||||
} | ||||
output { | ||||
container error-code { | ||||
leaf protocol-id { | ||||
type identityref { | ||||
base protocol-id; | ||||
} | ||||
mandatory true; | ||||
description | description | |||
"Change due to a create."; | "Protocol used. This could be a standard | |||
protocol (e.g., TCP/IP protocols, MPLS, etc.) | ||||
or a proprietary protocol as identified by | ||||
this field."; | ||||
} | } | |||
enum "delete" { | leaf protocol-id-meta-data { | |||
type uint64; | ||||
description | description | |||
"Change due to a delete."; | "An optional metadata related to the protocol ID. | |||
For example, this could be the Internet Protocol | ||||
number for standard Internet Protocols used for | ||||
help with protocol processing."; | ||||
} | } | |||
enum "modify" { | leaf status-code { | |||
type identityref { | ||||
base status-code; | ||||
} | ||||
mandatory true; | ||||
description | description | |||
"Change due to an update."; | "Status code."; | |||
} | ||||
leaf status-sub-code { | ||||
type identityref { | ||||
base status-sub-code; | ||||
} | ||||
mandatory true; | ||||
description | ||||
"Sub code for the Continuity Check."; | ||||
} | } | |||
description | ||||
"Status code and sub code."; | ||||
} | ||||
leaf cc-persistent-id { | ||||
type string; | ||||
description | ||||
"Id to act as a cookie."; | ||||
} | } | |||
description | ||||
"Different types of changes that may occur."; | ||||
} | } | |||
} | ||||
rpc cc-get-persistent-id { | rpc cc-persistent-get-export-details { | |||
if-feature "cl-oam:continuity-check"; | if-feature "cl-oam:continuity-check"; | |||
description | description | |||
"Obtains continuity-check persistent identification | "Given the persistent ID, gets the configuration | |||
given mapping parameters as input."; | options and details related to the configured data | |||
input { | export."; | |||
container destination-tp { | input { | |||
uses cl-oam:tp-address; | leaf cc-persistent-id { | |||
type string; | ||||
description | ||||
"Persistent ID for use as a key in search."; | ||||
} | ||||
} | ||||
output { | ||||
container error-code { | ||||
leaf protocol-id { | ||||
type identityref { | ||||
base protocol-id; | ||||
} | ||||
mandatory true; | ||||
description | description | |||
"Destination test point."; | "Protocol used. This could be a standard | |||
protocol (e.g., TCP/IP protocols, MPLS, etc.) | ||||
or a proprietary protocol as identified by | ||||
this field."; | ||||
} | } | |||
uses cl-oam:session-type; | leaf protocol-id-meta-data { | |||
leaf source-interface { | type uint64; | |||
type if:interface-ref; | ||||
description | description | |||
"Source interface."; | "An optional metadata related to the protocol ID. | |||
For example, this could be the Internet Protocol | ||||
number for standard Internet Protocols used for | ||||
help with protocol processing."; | ||||
} | } | |||
leaf outbound-interface { | leaf status-code { | |||
type if:interface-ref; | type identityref { | |||
base status-code; | ||||
} | ||||
mandatory true; | ||||
description | description | |||
"Outbound interface."; | "Status code."; | |||
} | } | |||
leaf vrf { | leaf status-sub-code { | |||
type cl-oam:routing-instance-ref; | type identityref { | |||
base status-sub-code; | ||||
} | ||||
mandatory true; | ||||
description | description | |||
"VRF instance."; | "Sub code for the Continuity Check."; | |||
} | } | |||
description | ||||
"Status code and sub code."; | ||||
} | } | |||
output { | leaf data-export-method { | |||
container error-code { | type export-method; | |||
leaf protocol-id { | description | |||
type identityref { | "Type of export in use."; | |||
base protocol-id; | } | |||
} | choice cc-trigger { | |||
mandatory true; | description | |||
"Necessary conditions for | ||||
periodic or on-change trigger."; | ||||
case periodic { | ||||
description | ||||
"Periodic reports."; | ||||
leaf period { | ||||
type yang:timeticks; | ||||
description | description | |||
"Protocol used. This could be a standard | "Time interval between reports."; | |||
protocol (e.g., TCP/IP protocols, MPLS, etc.) | ||||
or a proprietary protocol as identified by | ||||
this field."; | ||||
} | } | |||
leaf protocol-id-meta-data { | leaf start-time { | |||
type uint64; | type yang:date-and-time; | |||
description | description | |||
"An optional metadata related to the protocol ID. | "Timestamp from which reports were started."; | |||
For example, this could be the Internet Protocol | ||||
number for standard Internet Protocols for help | ||||
in protocol processing."; | ||||
} | } | |||
leaf status-code { | } | |||
type identityref{ | case on-change { | |||
base status-code; | description | |||
} | "On-change trigger and not periodic."; | |||
mandatory true; | leaf all-data-on-start { | |||
type boolean; | ||||
description | description | |||
"Status code."; | "Full update done on start or not."; | |||
} | } | |||
leaf status-sub-code { | leaf-list excluded-change { | |||
type identityref{ | type change-type; | |||
base status-sub-code; | ||||
} | ||||
mandatory true; | ||||
description | description | |||
"Sub code for the CC."; | "Changes that will not trigger an update."; | |||
} | } | |||
description | ||||
"Status code and sub code."; | ||||
} | } | |||
} | ||||
} | ||||
} | ||||
leaf cc-persistent-id { | rpc pd-get-persistent-id { | |||
if-feature "cl-oam:path-discovery"; | ||||
description | ||||
"Obtains persistent path discovery identification."; | ||||
input { | ||||
container destination-tp { | ||||
uses cl-oam:tp-address; | ||||
description | ||||
"Destination test point."; | ||||
} | ||||
uses cl-oam:session-type; | ||||
leaf source-interface { | ||||
type if:interface-ref; | ||||
description | ||||
"Source interface."; | ||||
} | ||||
leaf outbound-interface { | ||||
type if:interface-ref; | ||||
description | ||||
"Outbound interface."; | ||||
} | ||||
leaf vrf { | ||||
type cl-oam:routing-instance-ref; | ||||
description | ||||
"VRF"; | ||||
} | ||||
} | ||||
output { | ||||
list response-list { | ||||
key "response-index"; | ||||
description | ||||
"Path discovery response list."; | ||||
leaf response-index { | ||||
type uint32; | ||||
mandatory true; | ||||
description | ||||
"Response index."; | ||||
} | ||||
leaf protocol-id { | ||||
type identityref { | ||||
base protocol-id; | ||||
} | ||||
mandatory true; | ||||
description | ||||
"Protocol used. This could be a standard | ||||
protocol (e.g., TCP/IP protocols, MPLS, etc.) | ||||
or a proprietary protocol as identified by | ||||
this field."; | ||||
} | ||||
leaf protocol-id-meta-data { | ||||
type uint64; | ||||
description | ||||
"An optional metadata related to the protocol ID. | ||||
For example, this could be the Internet Protocol | ||||
number for standard Internet Protocols used for | ||||
help with protocol processing."; | ||||
} | ||||
leaf status-code { | ||||
type identityref { | ||||
base status-code; | ||||
} | ||||
mandatory true; | ||||
description | ||||
"Status code for persistent path discovery | ||||
information."; | ||||
} | ||||
leaf status-sub-code { | ||||
type identityref { | ||||
base status-sub-code; | ||||
} | ||||
mandatory true; | ||||
description | ||||
"Sub code for persistent path discovery | ||||
information."; | ||||
} | ||||
leaf pd-persistent-id { | ||||
type string; | type string; | |||
description | description | |||
"Id to act as a cookie."; | "Id to act as a cookie."; | |||
} | } | |||
} | } | |||
} | } | |||
} | ||||
rpc cc-persistent-get-export-details { | rpc pd-persistent-get-export-details { | |||
if-feature "cl-oam:continuity-check"; | if-feature "cl-oam:path-discovery"; | |||
description | description | |||
"Given the persistent ID, gets the configuration | "Given the persistent ID, gets the configuration | |||
options and details related to the configured data | options and details related to the configured data | |||
export."; | export."; | |||
input { | input { | |||
leaf cc-persistent-id { | leaf cc-persistent-id { | |||
type string; | type string; | |||
description | ||||
"Persistent ID for use as a key in search."; | ||||
} | ||||
} | ||||
output { | ||||
list response-list { | ||||
key "response-index"; | ||||
description | ||||
"Path discovery response list."; | ||||
leaf response-index { | ||||
type uint32; | ||||
mandatory true; | ||||
description | description | |||
"Persistent ID for use as a key in search."; | "Response index."; | |||
} | } | |||
} | leaf protocol-id { | |||
output { | type identityref { | |||
container error-code { | base protocol-id; | |||
leaf protocol-id { | ||||
type identityref { | ||||
base protocol-id; | ||||
} | ||||
mandatory true; | ||||
description | ||||
"Protocol used. This could be a standard | ||||
protocol (e.g., TCP/IP protocols, MPLS, etc.) | ||||
or a proprietary protocol as identified by | ||||
this field."; | ||||
} | ||||
leaf protocol-id-meta-data { | ||||
type uint64; | ||||
description | ||||
"An optional metadata related to the protocol ID. | ||||
For example, this could be the Internet Protocol | ||||
number for standard Internet Protocols for help | ||||
in protocol processing."; | ||||
} | } | |||
leaf status-code { | mandatory true; | |||
type identityref{ | description | |||
base status-code; | "Protocol used. This could be a standard | |||
} | protocol (e.g., TCP/IP protocols, MPLS, etc.) | |||
mandatory true; | or a proprietary protocol as identified by | |||
description | this field."; | |||
"Status code."; | } | |||
leaf protocol-id-meta-data { | ||||
type uint64; | ||||
description | ||||
"An optional metadata related to the protocol ID. | ||||
For example, this could be the Internet Protocol | ||||
number for standard Internet Protocols used for | ||||
help with protocol processing."; | ||||
} | ||||
leaf status-code { | ||||
type identityref { | ||||
base status-code; | ||||
} | } | |||
leaf status-sub-code { | mandatory true; | |||
type identityref{ | description | |||
base status-sub-code; | "Status code for persistent path discovery | |||
} | creation."; | |||
mandatory true; | } | |||
description | leaf status-sub-code { | |||
"Sub code for the CC."; | type identityref { | |||
base status-sub-code; | ||||
} | } | |||
mandatory true; | ||||
description | description | |||
"Status code and sub code."; | "Sub code for persistent path discovery | |||
creation."; | ||||
} | } | |||
leaf data-export-method { | leaf data-export-method { | |||
type export-method; | type export-method; | |||
description | description | |||
"Type of export in use."; | "Type of export."; | |||
} | } | |||
choice pd-trigger { | ||||
choice cc-trigger { | ||||
description | description | |||
"Necessary conditions for | "Necessary conditions | |||
periodic or on-change trigger."; | for periodic or on-change | |||
trigger."; | ||||
case periodic { | case periodic { | |||
description | description | |||
"Periodic reports."; | "Periodic reports."; | |||
leaf period { | leaf period { | |||
type yang:timeticks; | type yang:timeticks; | |||
description | description | |||
"Time interval between reports."; | "Time interval between reports."; | |||
} | } | |||
leaf start-time { | leaf start-time { | |||
type yang:date-and-time; | type yang:date-and-time; | |||
description | description | |||
"Timestamp from which reports were started."; | "Timestamp from which reports are started."; | |||
} | } | |||
} | } | |||
case on-change { | case on-change { | |||
description | description | |||
"On-change trigger and not periodic."; | "On-change trigger and not periodic."; | |||
leaf all-data-on-start { | leaf all-data-on-start { | |||
type boolean; | type boolean; | |||
description | description | |||
"Full update done on start or not."; | "Full update done on start or not."; | |||
} | } | |||
leaf-list excluded-change { | leaf-list excluded-change { | |||
type change-type; | type change-type; | |||
description | description | |||
"Changes that will not trigger an update."; | "Changes that will not trigger an update."; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | ||||
rpc pd-get-persistent-id { | } | |||
if-feature "cl-oam:path-discovery"; | ||||
description | ||||
"Obtains persistent path discovery identification."; | ||||
input { | ||||
container destination-tp { | ||||
uses cl-oam:tp-address; | ||||
description | ||||
"Destination test point."; | ||||
} | ||||
uses cl-oam:session-type; | ||||
leaf source-interface { | ||||
type if:interface-ref; | ||||
description | ||||
"Source interface."; | ||||
} | ||||
leaf outbound-interface { | ||||
type if:interface-ref; | ||||
description | ||||
"Outbound interface."; | ||||
} | ||||
leaf vrf { | ||||
type cl-oam:routing-instance-ref; | ||||
description | ||||
"VRF"; | ||||
} | ||||
} | ||||
output { | ||||
list response-list { | ||||
key "response-index"; | ||||
description | ||||
"Path discovery response list."; | ||||
leaf response-index { | ||||
type uint32; | ||||
mandatory true; | ||||
description | ||||
"Response index."; | ||||
} | ||||
leaf protocol-id { | ||||
type identityref { | ||||
base protocol-id; | ||||
} | ||||
mandatory true; | ||||
description | ||||
"Protocol used. This could be a standard | ||||
protocol (e.g., TCP/IP protocols, MPLS, etc.) | ||||
or a proprietary protocol as identified by | ||||
this field."; | ||||
} | ||||
leaf protocol-id-meta-data { | ||||
type uint64; | ||||
description | ||||
"An optional metadata related to the protocol ID. | ||||
For example, this could be the Internet Protocol | ||||
number for standard Internet Protocols for help | ||||
in protocol processing."; | ||||
} | ||||
leaf status-code { | ||||
type identityref { | ||||
base status-code; | ||||
} | ||||
mandatory true; | ||||
description | ||||
"Status code for persistent path discovery | ||||
information."; | ||||
} | ||||
leaf status-sub-code { | ||||
type identityref{ | ||||
base status-sub-code; | ||||
} | ||||
mandatory true; | ||||
description | ||||
"Sub code for persistent path discovery | ||||
information."; | ||||
} | ||||
leaf pd-persistent-id { | ||||
type string; | ||||
description | ||||
"Id to act as a cookie."; | ||||
} | ||||
} | ||||
} | ||||
} | ||||
rpc pd-persistent-get-export-details { | ||||
if-feature "cl-oam:path-discovery"; | ||||
description | ||||
"Given the persistent ID, gets the configuration | ||||
options and details related to the configured data | ||||
export."; | ||||
input { | ||||
leaf cc-persistent-id { | ||||
type string; | ||||
description | ||||
"Persistent ID for use as a key in search."; | ||||
} | ||||
} | ||||
output { | ||||
list response-list { | ||||
key "response-index"; | ||||
description | ||||
"Path discovery response list."; | ||||
leaf response-index { | ||||
type uint32; | ||||
mandatory true; | ||||
description | ||||
"Response index."; | ||||
} | ||||
leaf protocol-id { | ||||
type identityref { | ||||
base protocol-id; | ||||
} | ||||
mandatory true; | ||||
description | ||||
"Protocol used. This could be a standard | ||||
protocol (e.g., TCP/IP protocols, MPLS, etc.) | ||||
or a proprietary protocol as identified by | ||||
this field."; | ||||
} | ||||
leaf protocol-id-meta-data { | ||||
type uint64; | ||||
description | ||||
"An optional metadata related to the protocol ID. | ||||
For example, this could be the Internet Protocol | ||||
number for standard Internet Protocols for help | ||||
in protocol processing."; | ||||
} | ||||
leaf status-code { | ||||
type identityref{ | ||||
base status-code; | ||||
} | ||||
mandatory true; | ||||
description | ||||
"Status code for persistent path discovery | ||||
creation."; | ||||
} | ||||
leaf status-sub-code { | ||||
type identityref{ | ||||
base status-sub-code; | ||||
} | ||||
mandatory true; | ||||
description | ||||
"Sub code for persistent path discovery | ||||
creation."; | ||||
} | ||||
leaf data-export-method { | ||||
type export-method; | ||||
description | ||||
"Type of export."; | ||||
} | ||||
choice pd-trigger { | ||||
description | ||||
"Necessary conditions | ||||
for periodic or on-change | ||||
trigger."; | ||||
case periodic { | ||||
description | ||||
"Periodic reports."; | ||||
leaf period { | ||||
type yang:timeticks; | ||||
description | ||||
"Time interval between reports."; | ||||
} | ||||
leaf start-time { | ||||
type yang:date-and-time; | ||||
description | ||||
"Timestamp from which reports are started."; | ||||
} | ||||
} | ||||
case on-change { | ||||
description | ||||
"On-change trigger and not periodic."; | ||||
leaf all-data-on-start { | ||||
type boolean; | ||||
description | ||||
"Full update done on start or not."; | ||||
} | ||||
leaf-list excluded-change { | ||||
type change-type; | ||||
description | ||||
"Changes that will not trigger an update."; | ||||
} | ||||
} | ||||
} | ||||
} | ||||
} | ||||
} | ||||
} | ||||
End of changes. 65 change blocks. | ||||
169 lines changed or deleted | 368 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/ |