...
Interface B relies on service path Yang model and rpc "path-calculation-request".
Service path Yang model and rpc "path-calculation-request"
Interface C
based on service path Yang model and rpc "service implementation-request" & "service-delete".
rpc "service implementation-request" & "service-delete"A tree view (Yang Model sent separately by email) is proposed here to modelize the input/output parameters to be passed over B interface. These parameters come from the service model with still some variations. These variations come mainly from PCE requirements section (but not only).
For discussion
module: org-openroadm-servicepath
+--rw service-path-list
+--rw service-paths* [service-path]
+--rw service-path-name string
+--rw service-handler-header
| +--rw request-id string
+--rw service-a-end
| +--rw service-format org-openroadm-common-service-types:service-format
| +--rw service-rate uint32
| +--rw clli string
| +--rw node-id? string
| +--rw tx-direction
| | +--rw port
| | +--rw port-device-name? string
| | +--rw port-type? string
| | +--rw port-name? string
| | +--rw port-rack? string
| | +--rw port-shelf? string
| | +--rw port-slot? string
| | +--rw port-sub-slot? string
| +--rw rx-direction
| +--rw port
| +--rw port-device-name? string
| +--rw port-type? string
| +--rw port-name? string
| +--rw port-rack? string
| +--rw port-shelf? string
| +--rw port-slot? string
| +--rw port-sub-slot? string
+--rw service-z-end
| +--rw service-format org-openroadm-common-service-types:service-format
| +--rw service-rate uint32
| +--rw clli string
| +--rw node-id? string
| +--rw tx-direction
| | +--rw port
| | +--rw port-device-name? string
| | +--rw port-type? string
| | +--rw port-name? string
| | +--rw port-rack? string
| | +--rw port-shelf? string
| | +--rw port-slot? string
| | +--rw port-sub-slot? string
| +--rw rx-direction
| +--rw port
| +--rw port-device-name? string
| +--rw port-type? string
| +--rw port-name? string
| +--rw port-rack? string
| +--rw port-shelf? string
| +--rw port-slot? string
| +--rw port-sub-slot? string
+--rw hard-constraints
| +--rw customer-code* string
| +--rw (co-routing-or-general)?
| +--:(general)
| | +--rw diversity
| | | +--rw existing-service* string
| | | +--rw existing-service-applicability
| | | +--rw clli? boolean
| | | +--rw node? boolean
| | | +--rw srlg? boolean
| | +--rw exclude_
| | | +--rw SRLG* string
| | | +--rw clli* string
| | | +--rw node-id* string
| | | +--rw supporting-service-name* string
| | | +--rw affinity? uint32
| | +--rw include_
| | | +--rw ordered-hops* [hop-number]
| | | +--rw hop-number uint16
| | | +--rw hop-type
| | | +--rw (hop-type)?
| | | +--:(SRLG)
| | | | +--rw SRLG? string
| | | +--:(clli)
| | | | +--rw clli? string
| | | +--:(node)
| | | +--rw node-id? string
| | +--rw latency
| | +--rw max-latency? uint32
| +--:(co-routing)
| +--rw co-routing
| +--rw existing-service* string
+--rw soft-constraints
| +--rw customer-code* string
| +--rw (co-routing-or-general)?
| +--:(general)
| | +--rw diversity
| | | +--rw existing-service* string
| | | +--rw existing-service-applicability
| | | +--rw clli? boolean
| | | +--rw node? boolean
| | | +--rw srlg? boolean
| | +--rw exclude_
| | | +--rw SRLG* string
| | | +--rw clli* string
| | | +--rw node-id* string
| | | +--rw supporting-service-name* string
| | | +--rw affinity? uint32
| | +--rw include_
| | | +--rw ordered-hops* [hop-number]
| | | +--rw hop-number uint16
| | | +--rw hop-type
| | | +--rw (hop-type)?
| | | +--:(SRLG)
| | | | +--rw SRLG? string
| | | +--:(clli)
| | | | +--rw clli? string
| | | +--:(node)
| | | +--rw node-id? string
| | +--rw latency
| | +--rw max-latency? uint32
| +--:(co-routing)
| +--rw co-routing
| +--rw existing-service* string
+--rw pce-metric? enumeration
+--rw locally-protected-links? boolean
+--rw latency? uint32
+--rw fiber-span-srlgs* string
+--rw equipment-srgs* [srg-number]
| +--rw srg-number uint16
+--rw supporting-service-name* string
+--rw path-description
+--rw aToZ-direction
| +--rw aToZ-wavelength-number uint32
| +--rw rate uint32
| +--rw modulation-format? string
| +--rw aToZ* [id]
| +--rw id string
| +--rw resource
| +--rw (resource)?
| +--:(termination-point)
| | +--rw tp-id? string
| | +--rw node-id? string
| +--:(link)
| | +--rw link-id? string
| +--:(node)
| +--rw node-id? string
+--rw zToA-direction
+--rw zToA-wavelength-number uint32
+--rw rate uint32
+--rw modulation-format? string
+--rw zToA* [id]
+--rw id string
+--rw resource
+--rw (resource)?
+--:(termination-point)
| +--rw tp-id? string
| +--rw node-id? string
+--:(link)
| +--rw link-id? string
+--:(node)
+--rw node-id? string
rpcs:
+---x path-computation-request
| +---w input
| | +---w service-name string
| | +---w resource-reserve boolean
| | +---w service-handler-header
| | | +---w request-id string
| | +---w service-a-end
| | | +---w service-format org-openroadm-common-service-types:service-format
| | | +---w service-rate uint32
| | | +---w clli string
| | | +---w node-id? string
| | | +---w tx-direction
| | | | +---w port
| | | | +---w port-device-name? string
| | | | +---w port-type? string
| | | | +---w port-name? string
| | | | +---w port-rack? string
| | | | +---w port-shelf? string
| | | | +---w port-slot? string
| | | | +---w port-sub-slot? string
| | | +---w rx-direction
| | | +---w port
| | | +---w port-device-name? string
| | | +---w port-type? string
| | | +---w port-name? string
| | | +---w port-rack? string
| | | +---w port-shelf? string
| | | +---w port-slot? string
| | | +---w port-sub-slot? string
| | +---w service-z-end
| | | +---w service-format org-openroadm-common-service-types:service-format
| | | +---w service-rate uint32
| | | +---w clli string
| | | +---w node-id? string
| | | +---w tx-direction
| | | | +---w port
| | | | +---w port-device-name? string
| | | | +---w port-type? string
| | | | +---w port-name? string
| | | | +---w port-rack? string
| | | | +---w port-shelf? string
| | | | +---w port-slot? string
| | | | +---w port-sub-slot? string
| | | +---w rx-direction
| | | +---w port
| | | +---w port-device-name? string
| | | +---w port-type? string
| | | +---w port-name? string
| | | +---w port-rack? string
| | | +---w port-shelf? string
| | | +---w port-slot? string
| | | +---w port-sub-slot? string
| | +---w hard-constraints
| | | +---w customer-code* string
| | | +---w (co-routing-or-general)?
| | | +--:(general)
| | | | +---w diversity
| | | | | +---w existing-service* string
| | | | | +---w existing-service-applicability
| | | | | +---w clli? boolean
| | | | | +---w node? boolean
| | | | | +---w srlg? boolean
| | | | +---w exclude_
| | | | | +---w SRLG* string
| | | | | +---w clli* string
| | | | | +---w node-id* string
| | | | | +---w supporting-service-name* string
| | | | | +---w affinity? uint32
| | | | +---w include_
| | | | | +---w ordered-hops* [hop-number]
| | | | | +---w hop-number uint16
| | | | | +---w hop-type
| | | | | +---w (hop-type)?
| | | | | +--:(SRLG)
| | | | | | +---w SRLG? string
| | | | | +--:(clli)
| | | | | | +---w clli? string
| | | | | +--:(node)
| | | | | +---w node-id? string
| | | | +---w latency
| | | | +---w max-latency? uint32
| | | +--:(co-routing)
| | | +---w co-routing
| | | +---w existing-service* string
| | +---w soft-constraints
| | | +---w customer-code* string
| | | +---w (co-routing-or-general)?
| | | +--:(general)
| | | | +---w diversity
| | | | | +---w existing-service* string
| | | | | +---w existing-service-applicability
| | | | | +---w clli? boolean
| | | | | +---w node? boolean
| | | | | +---w srlg? boolean
| | | | +---w exclude_
| | | | | +---w SRLG* string
| | | | | +---w clli* string
| | | | | +---w node-id* string
| | | | | +---w supporting-service-name* string
| | | | | +---w affinity? uint32
| | | | +---w include_
| | | | | +---w ordered-hops* [hop-number]
| | | | | +---w hop-number uint16
| | | | | +---w hop-type
| | | | | +---w (hop-type)?
| | | | | +--:(SRLG)
| | | | | | +---w SRLG? string
| | | | | +--:(clli)
| | | | | | +---w clli? string
| | | | | +--:(node)
| | | | | +---w node-id? string
| | | | +---w latency
| | | | +---w max-latency? uint32
| | | +--:(co-routing)
| | | +---w co-routing
| | | +---w existing-service* string
| | +---w pce-metric? enumeration
| | +---w locally-protected-links? boolean
| +--ro output
| +--ro configuration-response-common
| | +--ro request-id string
| | +--ro response-code string
| | +--ro response-message? string
| | +--ro ack-final-indicator string
| +--ro response-parameters
| +--ro hard-constraints
| | +--ro customer-code* string
| | +--ro (co-routing-or-general)?
| | +--:(general)
| | | +--ro diversity
| | | | +--ro existing-service* string
| | | | +--ro existing-service-applicability
| | | | +--ro clli? boolean
| | | | +--ro node? boolean
| | | | +--ro srlg? boolean
| | | +--ro exclude_
| | | | +--ro SRLG* string
| | | | +--ro clli* string
| | | | +--ro node-id* string
| | | | +--ro supporting-service-name* string
| | | | +--ro affinity? uint32
| | | +--ro include_
| | | | +--ro ordered-hops* [hop-number]
| | | | +--ro hop-number uint16
| | | | +--ro hop-type
| | | | +--ro (hop-type)?
| | | | +--:(SRLG)
| | | | | +--ro SRLG? string
| | | | +--:(clli)
| | | | | +--ro clli? string
| | | | +--:(node)
| | | | +--ro node-id? string
| | | +--ro latency
| | | +--ro max-latency? uint32
| | +--:(co-routing)
| | +--ro co-routing
| | +--ro existing-service* string
| +--ro soft-constraints
| | +--ro customer-code* string
| | +--ro (co-routing-or-general)?
| | +--:(general)
| | | +--ro diversity
| | | | +--ro existing-service* string
| | | | +--ro existing-service-applicability
| | | | +--ro clli? boolean
| | | | +--ro node? boolean
| | | | +--ro srlg? boolean
| | | +--ro exclude_
| | | | +--ro SRLG* string
| | | | +--ro clli* string
| | | | +--ro node-id* string
| | | | +--ro supporting-service-name* string
| | | | +--ro affinity? uint32
| | | +--ro include_
| | | | +--ro ordered-hops* [hop-number]
| | | | +--ro hop-number uint16
| | | | +--ro hop-type
| | | | +--ro (hop-type)?
| | | | +--:(SRLG)
| | | | | +--ro SRLG? string
| | | | +--:(clli)
| | | | | +--ro clli? string
| | | | +--:(node)
| | | | +--ro node-id? string
| | | +--ro latency
| | | +--ro max-latency? uint32
| | +--:(co-routing)
| | +--ro co-routing
| | +--ro existing-service* string
| +--ro pce-metric? enumeration
| +--ro locally-protected-links? boolean
| +--ro path-description
| +--ro aToZ-direction
| | +--ro aToZ-wavelength-number uint32
| | +--ro rate uint32
| | +--ro modulation-format? string
| | +--ro aToZ* [id]
| | +--ro id string
| | +--ro resource
| | +--ro (resource)?
| | +--:(termination-point)
| | | +--ro tp-id? string
| | | +--ro node-id? string
| | +--:(link)
| | | +--ro link-id? string
| | +--:(node)
| | +--ro node-id? string
| +--ro zToA-direction
| +--ro zToA-wavelength-number uint32
| +--ro rate uint32
| +--ro modulation-format? string
| +--ro zToA* [id]
| +--ro id string
| +--ro resource
| +--ro (resource)?
| +--:(termination-point)
| | +--ro tp-id? string
| | +--ro node-id? string
| +--:(link)
| | +--ro link-id? string
| +--:(node)
| +--ro node-id? string
notifications:
+---n service-path-rpc-result
| +--ro notification-type? org-openroadm-common-service-path-types:service-path-notification-types
| +--ro path-description
| | +--ro aToZ-direction
| | | +--ro aToZ-wavelength-number uint32
| | | +--ro rate uint32
| | | +--ro modulation-format? string
| | | +--ro aToZ* [id]
| | | +--ro id string
| | | +--ro resource
| | | +--ro (resource)?
| | | +--:(termination-point)
| | | | +--ro tp-id? string
| | | | +--ro node-id? string
| | | +--:(link)
| | | | +--ro link-id? string
| | | +--:(node)
| | | +--ro node-id? string
| | +--ro zToA-direction
| | +--ro zToA-wavelength-number uint32
| | +--ro rate uint32
| | +--ro modulation-format? string
| | +--ro zToA* [id]
| | +--ro id string
| | +--ro resource
| | +--ro (resource)?
| | +--:(termination-point)
| | | +--ro tp-id? string
| | | +--ro node-id? string
| | +--:(link)
| | | +--ro link-id? string
| | +--:(node)
| | +--ro node-id? string
| +--ro status rpc-status-ex
| +--ro service-name string
| +--ro actual-date? yang:date-and-time
Interface C
based on service path Yang model and rpc "service implementation-request" & "service-delete".
Here below the tree view of the two RPCs, and of the notification service-rpc-result-sp
module: org-openroadm-servicepath
rpcs :
+---x service-implementation-request
| +---w input
| | +---w service-name string
| | +---w service-handler-header
| | | +---w request-id string
| | +---w service-a-end
| | | +---w service-format org-openroadm-common-service-types:service-format
| | | +---w service-rate uint32
| | | +---w clli string
| | | +---w node-id? string
| | | +---w tx-direction
| | | | +---w port
| | | | +---w port-device-name? string
| | | | +---w port-type? string
| | | | +---w port-name? string
| | | | +---w port-rack? string
| | | | +---w port-shelf? string
| | | | +---w port-slot? string
| | | | +---w port-sub-slot? string
| | | +---w rx-direction
| | | +---w port
| | | +---w port-device-name? string
| | | +---w port-type? string
| | | +---w port-name? string
| | | +---w port-rack? string
| | | +---w port-shelf? string
| | | +---w port-slot? string
| | | +---w port-sub-slot? string
| | +---w service-z-end
| | | +---w service-format org-openroadm-common-service-types:service-format
| | | +---w service-rate uint32
| | | +---w clli string
| | | +---w node-id? string
| | | +---w tx-direction
| | | | +---w port
| | | | +---w port-device-name? string
| | | | +---w port-type? string
| | | | +---w port-name? string
| | | | +---w port-rack? string
| | | | +---w port-shelf? string
| | | | +---w port-slot? string
| | | | +---w port-sub-slot? string
| | | +---w rx-direction
| | | +---w port
| | | +---w port-device-name? string
| | | +---w port-type? string
| | | +---w port-name? string
| | | +---w port-rack? string
| | | +---w port-shelf? string
| | | +---w port-slot? string
| | | +---w port-sub-slot? string
| | +---w path-description
| | +---w aToZ-direction
| | | +---w aToZ-wavelength-number uint32
| | | +---w rate uint32
| | | +---w modulation-format? string
| | | +---w aToZ* [id]
| | | +---w id string
| | | +---w resource
| | | +---w (resource)?
| | | +--:(termination-point)
| | | | +---w tp-id? string
| | | | +---w node-id? string
| | | +--:(link)
| | | | +---w link-id? string
| | | +--:(node)
| | | +---w node-id? string
| | +---w zToA-direction
| | +---w zToA-wavelength-number uint32
| | +---w rate uint32
| | +---w modulation-format? string
| | +---w zToA* [id]
| | +---w id string
| | +---w resource
| | +---w (resource)?
| | +--:(termination-point)
| | | +---w tp-id? string
| | | +---w node-id? string
| | +--:(link)
| | | +---w link-id? string
| | +--:(node)
| | +---w node-id? string
| +--ro output
| +--ro configuration-response-common
| +--ro request-id string
| +--ro response-code string
| +--ro response-message? string
| +--ro ack-final-indicator string
+---x service-delete
+---w input
| +---w service-name string
| +---w service-handler-header
| +---w request-id string
+--ro output
+--ro configuration-response-common
+--ro request-id string
+--ro response-code string
+--ro response-message? string
+--ro ack-final-indicator string
+---x cancel-resource-reserve
| +---w input
| | +---w service-name string
| | +---w service-handler-header
| | +---w request-id string
| +--ro output
| +--ro configuration-response-common
| +--ro request-id string
| +--ro response-code string
| +--ro response-message? string
| +--ro ack-final-indicator string
notifications:
+---n service-rpc-result-sp
+--ro notification-type? org-openroadm-common-service-path-types:service-path-notification-types
+--ro path-topology
| +--ro aToZ* [id]
| | +--ro id string
| | +--ro hop-type? enumeration
| | +--ro device
| | | +--ro node-id? string
| | +--ro resource
| | | +--ro (resource)?
| | | +--:(circuit-pack)
| | | | +--ro circuit-pack-name string
| | | +--:(port)
| | | | +--ro port
| | | | +--ro circuit-pack-name string
| | | | +--ro port-name? string
| | | +--:(connection)
| | | | +--ro connection-number string
| | | +--:(physical-link)
| | | | +--ro physical-link-name string
| | | +--:(internal-link)
| | | | +--ro internal-link-name string
| | | +--:(shelf)
| | | | +--ro shelf-name string
| | | +--:(srg)
| | | | +--ro srg-number uint16
| | | +--:(degree)
| | | | +--ro degree-number uint16
| | | +--:(service)
| | | | +--ro service-name string
| | | +--:(interface)
| | | +--ro interface-name string
| | +--ro resourceType
| | +--ro type resource-type-enum
| | +--ro extension? string
| +--ro zToA* [id]
| +--ro id string
| +--ro hop-type? enumeration
| +--ro device
| | +--ro node-id? string
| +--ro resource
| | +--ro (resource)?
| | +--:(circuit-pack)
| | | +--ro circuit-pack-name string
| | +--:(port)
| | | +--ro port
| | | +--ro circuit-pack-name string
| | | +--ro port-name? string
| | +--:(connection)
| | | +--ro connection-number string
| | +--:(physical-link)
| | | +--ro physical-link-name string
| | +--:(internal-link)
| | | +--ro internal-link-name string
| | +--:(shelf)
| | | +--ro shelf-name string
| | +--:(srg)
| | | +--ro srg-number uint16
| | +--:(degree)
| | | +--ro degree-number uint16
| | +--:(service)
| | | +--ro service-name string
| | +--:(interface)
| | +--ro interface-name string
| +--ro resourceType
| +--ro type resource-type-enum
| +--ro extension? string
+--ro status rpc-status-ex
+--ro service-name string
+--ro actual-date? yang:date-and-time
Service handler logic
proposal ongoing...
...