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