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/