| module yrt-ietf-otn-tunnel { |
| |
| yang-version 1.1; |
| |
| namespace "urn:ietf:params:xml:ns:yang:yrt-ietf-otn-tunnel"; |
| prefix "otn-tunnel"; |
| |
| import actn-ietf-te { prefix "te"; } |
| import yrt-ietf-transport-types { prefix "tran-types"; } |
| //import yang-ext { prefix ext; revision-date 2013-07-09; } |
| import actn-ietf-te-types { |
| prefix te-types; |
| } |
| |
| import yrt-ietf-inet-types { |
| prefix inet; |
| } |
| |
| organization |
| "IETF CCAMP Working Group"; |
| |
| contact |
| "WG Web: <http://tools.ietf.org/wg/ccamp/> |
| WG List: <mailto:ccamp@ietf.org> |
| |
| Editor: Anurag Sharma |
| <mailto:AnSharma@infinera.com> |
| |
| Editor: Rajan Rao |
| <mailto:rrao@infinera.com> |
| |
| Editor: Xian Zhang |
| <mailto:zhang.xian@huawei.com> |
| |
| Editor: Kun Xiang |
| <mailto:xiangkun@huawei.com>"; |
| |
| description |
| "This module defines a model for OTN Tunnel Services."; |
| |
| revision "2017-03-11" { |
| description |
| "Revision 0.3"; |
| reference "TBD"; |
| } |
| |
| grouping otn-tunnel-endpoint { |
| description "Parameters for OTN tunnel."; |
| |
| leaf payload-treatment { |
| type enumeration { |
| enum switching; |
| enum transport; |
| } |
| default switching; |
| description |
| "Treatment of the incoming payload. Payload can |
| either be switched, or transported as is."; |
| } |
| |
| leaf src-client-signal { |
| type identityref { |
| base tran-types:client-signal; |
| } |
| description |
| "Client signal at the source endpoint of |
| the tunnel."; |
| } |
| |
| leaf src-tpn { |
| type uint16 { |
| range "0..4095"; |
| } |
| description |
| "Tributary Port Number. Applicable in case of mux |
| services."; |
| reference |
| "RFC7139: GMPLS Signaling Extensions for Control of |
| Evolving G.709 Optical Transport Networks."; |
| } |
| |
| leaf src-tsg { |
| type identityref { |
| base tran-types:tributary-slot-granularity; |
| } |
| description |
| "Tributary slot granularity. Applicable in case of mux |
| services."; |
| reference |
| "G.709/Y.1331, February 2016: Interfaces for the |
| Optical Transport Network (OTN)"; |
| } |
| |
| leaf src-tributary-slot-count { |
| type uint16; |
| description |
| "Number of tributary slots used at the source."; |
| } |
| |
| container src-tributary-slots { |
| description |
| "A list of tributary slots used by the client |
| service. Applicable in case of mux services."; |
| leaf-list values { |
| type uint8; |
| description |
| "Tributary tributary slot value."; |
| reference |
| "G.709/Y.1331, February 2016: Interfaces for the |
| Optical Transport Network (OTN)"; |
| } |
| } |
| |
| leaf dst-client-signal { |
| type identityref { |
| base tran-types:client-signal; |
| } |
| description |
| "Client signal at the destination endpoint of |
| the tunnel."; |
| } |
| |
| leaf dst-tpn { |
| type uint16 { |
| range "0..4095"; |
| } |
| description |
| "Tributary Port Number. Applicable in case of mux |
| services."; |
| reference |
| "RFC7139: GMPLS Signaling Extensions for Control of |
| Evolving G.709 Optical Transport Networks."; |
| } |
| |
| leaf dst-tsg { |
| type identityref { |
| base tran-types:tributary-slot-granularity; |
| } |
| description |
| "Tributary slot granularity. Applicable in case of mux |
| services."; |
| reference |
| "G.709/Y.1331, February 2016: Interfaces for the |
| Optical Transport Network (OTN)"; |
| } |
| |
| leaf dst-tributary-slot-count { |
| type uint16; |
| description |
| "Number of tributary slots used at the destination."; |
| } |
| |
| container dst-tributary-slots { |
| description |
| "A list of tributary slots used by the client |
| service. Applicable in case of mux services."; |
| leaf-list values { |
| type uint8; |
| description |
| "Tributary slot value."; |
| reference |
| "G.709/Y.1331, February 2016: Interfaces for the |
| Optical Transport Network (OTN)"; |
| } |
| } |
| } |
| |
| /* |
| Note: Comment has been given to authors of TE Tunnel model to add |
| tunnel-types to the model in order to identify the technology |
| type of the service. |
| |
| grouping otn-service-type { |
| description |
| "Identifies the OTN Service type."; |
| container otn-service { |
| presence "Indicates OTN Service."; |
| description |
| "Its presence identifies the OTN Service type."; |
| } |
| } // otn-service-type |
| |
| augment "/te:te/te:tunnels/te:tunnel/te:tunnel-types" { |
| description |
| "Introduce OTN service type for tunnel."; |
| ext:augment-identifier otn-service-type-augment; |
| uses otn-service-type; |
| } |
| */ |
| |
| /* |
| Note: Comment has been given to authors of TE Tunnel model to add |
| list of endpoints under config to support P2MP tunnel. |
| */ |
| augment "/te:te/te:tunnels/te:tunnel/te:config" { |
| description |
| "Augment with additional parameters required for OTN |
| service."; |
| //ext:augment-identifier otn-tunnel-endpoint-config-augment; |
| uses otn-tunnel-endpoint; |
| } |
| |
| augment "/te:te/te:tunnels/te:tunnel/te:state" { |
| description |
| "Augment with additional parameters required for OTN |
| service."; |
| //ext:augment-identifier otn-tunnel-endpoint-state-augment; |
| uses otn-tunnel-endpoint; |
| } |
| |
| /* |
| Note: Comment has been given to authors of TE Tunnel model to add |
| tunnel-lifecycle-event to the model. This notification is reported |
| for all lifecycle changes (create, delete, and update) to the |
| tunnel or lsp. |
| augment "/te:tunnel-lifecycle-event" { |
| description |
| "OTN service event"; |
| uses otn-service-type; |
| uses otn-tunnel-params; |
| |
| list endpoint { |
| key |
| "endpoint-address tp-id"; |
| description |
| "List of Tunnel Endpoints."; |
| uses te:tunnel-endpoint; |
| uses otn-tunnel-params; |
| } |
| } |
| */ |
| |
| |
| grouping p2p-path-ero { |
| description |
| "TE tunnel ERO configuration grouping"; |
| |
| leaf te-default-metric { |
| type uint32; |
| description |
| "Traffic engineering metric."; |
| } |
| leaf te-delay-metric { |
| type uint32; |
| description |
| "Traffic engineering delay metric."; |
| } |
| leaf te-hop-metric { |
| type uint32; |
| description |
| "Traffic engineering hop metric."; |
| } |
| container explicit-route-objects { |
| description "Explicit route objects container"; |
| leaf explicit-route-usage { |
| type identityref { |
| base te-types:route-usage-type; |
| } |
| description "An explicit-route hop action."; |
| } |
| list explicit-route-object { |
| key "index"; |
| description |
| "List of explicit route objects"; |
| leaf index { |
| type uint32; |
| description "Index of this explicit route object"; |
| } |
| uses te-types:explicit-route-hop; |
| } |
| } |
| } |
| |
| |
| rpc otn-te-tunnel-path-compute { |
| description "OTN TE tunnel path computation"; |
| input { |
| list request { |
| key "id"; |
| description "A list of path computation requests."; |
| |
| leaf id { |
| type uint8; |
| description |
| "Request ID."; |
| } |
| leaf type { |
| type identityref { |
| base te-types:tunnel-type; |
| } |
| description "TE tunnel type."; |
| } |
| leaf source { |
| type inet:ip-address; |
| description |
| "TE tunnel source address."; |
| } |
| leaf destination { |
| /* Add when check */ |
| type inet:ip-address; |
| description |
| "TE tunnel destination address"; |
| } |
| leaf src-tp-id { |
| type binary; |
| description |
| "TE tunnel source termination point identifier."; |
| } |
| leaf dst-tp-id { |
| type binary; |
| description |
| "TE tunnel destination termination point identifier."; |
| } |
| leaf switching-layer { |
| type identityref { |
| base te-types:switching-capabilities; |
| } |
| description |
| "Switching layer where the requests are computed."; |
| } |
| leaf encoding { |
| type identityref { |
| base te-types:lsp-encoding-types; |
| } |
| description "LSP encoding type"; |
| } |
| leaf protection-type { |
| type identityref { |
| base te-types:lsp-prot-type; |
| } |
| description "LSP protection type."; |
| } |
| leaf provider-id { |
| type te-types:te-global-id; |
| description |
| "An identifier to uniquely identify a provider."; |
| } |
| leaf client-id { |
| type te-types:te-global-id; |
| description |
| "An identifier to uniquely identify a client."; |
| } |
| leaf te-topology-id { |
| type te-types:te-topology-id; |
| description |
| "It is presumed that a datastore will contain many |
| topologies. To distinguish between topologies it is |
| vital to have UNIQUE topology identifiers."; |
| } |
| leaf setup-priority { |
| type uint8 { |
| range "0..7"; |
| } |
| description |
| "TE LSP setup priority"; |
| } |
| leaf hold-priority { |
| type uint8 { |
| range "0..7"; |
| } |
| description |
| "TE LSP hold priority"; |
| } |
| leaf te-path-metric-type { |
| type identityref { |
| base te-types:path-metric-type; |
| } |
| default te-types:path-metric-te; |
| description |
| "The tunnel path metric type."; |
| } |
| |
| leaf odu-type { |
| type identityref{ |
| base tran-types:tributary-protocol-type; |
| } |
| description "Type of ODU"; |
| } |
| container p2p-primary-paths { |
| description "Set of P2P primary paths container"; |
| list p2p-primary-path { |
| key "name"; |
| description |
| "List of primary paths for this tunnel."; |
| leaf name { |
| type string; |
| description "TE path name"; |
| } |
| uses p2p-path-ero; |
| } |
| } |
| container p2p-secondary-paths { |
| description "Set of P2P secondary paths container"; |
| list p2p-secondary-path { |
| key "name"; |
| description |
| "List of secondary paths for this tunnel."; |
| leaf name { |
| type string; |
| description "TE path name"; |
| } |
| uses p2p-path-ero; |
| } |
| } |
| uses otn-tunnel-endpoint; |
| } |
| } |
| output { |
| leaf return-code { |
| type enumeration { |
| enum success { |
| description "success"; |
| } |
| enum aborted { |
| description ""; |
| } |
| enum destination-not-found { |
| description ""; |
| } |
| enum invalid-argument { |
| description ""; |
| } |
| enum no-memory { |
| description ""; |
| } |
| enum no-path-found{ |
| description ""; |
| } |
| enum other-error { |
| description ""; |
| } |
| enum some-path-not-found{ |
| description ""; |
| } |
| enum source-not-found { |
| description ""; |
| } |
| enum topology-error { |
| description ""; |
| } |
| } |
| description |
| "Return code."; |
| } |
| list result { |
| key "id"; |
| description |
| "A list of results for all requests."; |
| |
| leaf id { |
| type uint8; |
| description |
| "Request ID."; |
| } |
| container p2p-primary-paths { |
| description "Set of P2P primary paths container"; |
| list p2p-primary-path { |
| key "name"; |
| description |
| "List of resultant primary paths for this tunnel."; |
| leaf name { |
| type string; |
| description "TE path name"; |
| } |
| uses p2p-path-ero; |
| } |
| } |
| container p2p-secondary-paths { |
| description "Set of P2P secondary paths container"; |
| list p2p-secondary-path { |
| key "name"; |
| description |
| "List of resultant secondary paths for this tunnel."; |
| leaf name { |
| type string; |
| description "TE path name"; |
| } |
| uses p2p-path-ero; |
| } |
| } |
| } |
| } |
| } |
| } |