diff --git a/UML/TapiPhysicalRoute.di b/UML/TapiPhysicalRoute.di new file mode 100644 index 00000000..8c549eec --- /dev/null +++ b/UML/TapiPhysicalRoute.di @@ -0,0 +1,2 @@ + + diff --git a/UML/TapiPhysicalRoute.notation b/UML/TapiPhysicalRoute.notation new file mode 100644 index 00000000..6ddfd8f2 --- /dev/null +++ b/UML/TapiPhysicalRoute.notation @@ -0,0 +1,687 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/UML/TapiPhysicalRoute.uml b/UML/TapiPhysicalRoute.uml new file mode 100644 index 00000000..aa0e6db3 --- /dev/null +++ b/UML/TapiPhysicalRoute.uml @@ -0,0 +1,223 @@ + + + + + Data types + + + + +
+ + + + + +
+ + + + + +
+ + + + + + + + + + + + + + + + + + + Potential PhysicalRoute states concerning the service support. + + + + The PhysicalRoute instance identified is the current PhysicalRoute, i.e., is the one that is active and selected to support service. + + + + + The PhysicalRoute instance is not the one supporting the service. + + + + + The PhysicalRoute state is unknown. + + + + + + + Logical grouping of physical things + + + Bridge between Logical & Physical + + + TAPI classes from other models + + + As record content is not an extensible the solution will need to use the ANY_CLASS value. The client will need to interpret the content to determine which class is being streamed/ + + + + + + The physical route of a connection is modeled as an ordered sequence of physical route element instances. +The physical route is a description dedicated to the connection. + + + + + + + A point in the PhysicalRoute. A PhysicalRoute must have at least one point. + + + + + + Provides optional resilience and state attributes to the PhysicalRoute. +CONDITION: Mandatory where not always default. + + + + + + + + The list of the PhysicalRoutes of a Connection. + + + + List of PhysicalRoutes composing the physical route of the Connection. +CONDITION: Mandatory where a physical route is to be conveyed. + + + + + + + + A PhysicalRouteElement describes equipment, connectors on those equipments and pins of those connectors that are involved in the physical route of the connection. +The description may be in terms of access port or connector pin in route (at least one of access port or connector pin in route must be provided) or both. +Where access port is provided alone, this may be because all pins in the connectors of the access port are used, because the connector pin detail id not known the and to its subset of connectorPins which are involved in the physical route. +An access port may include connectorPins of more Equipments, e.g., in case of bidirectional access port shared by two "unidirectional"; Equipments. +Connector pin details may be provided alone without an access port where there are no access ports modelled. + + + + The connectors and pins defining this point in the route where the access port alone is not sufficient or the access port is not provided. +CONDITION: Mandatory where AccessPort is not used to define PhysicalRoute or where AccessPort requires clarification as it includes more connectorPins than are used in the route. + + + + + + + + The AccessPort included in the physical route. +CONDITION: Mandatory where AccessPort is used to define physical route. + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + + + + + + +
+
+
+
+
+ + + + + + + + +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /TapiCommon:Context:_context/TapiConnectivity:ConnectivityContext:_connectivityContext/TapiConnectivity:ConnectivityContext:_connection + + + + + + diff --git a/YANG/tapi-physical-route.yang b/YANG/tapi-physical-route.yang new file mode 100644 index 00000000..1297132f --- /dev/null +++ b/YANG/tapi-physical-route.yang @@ -0,0 +1,208 @@ +module tapi-physical-route { + yang-version "1.1"; + namespace "urn:onf:otcc:yang:tapi-physical-route"; + prefix tapi-physical-route; + import tapi-common { + prefix tapi-common; + } + import tapi-streaming { + prefix tapi-streaming; + } + import tapi-connectivity { + prefix tapi-connectivity; + } + organization "Linux Foundation ONMI (Open Network Modeling and Interfaces) Project"; + contact " + Project Web: + Project List: + Editor: Nigel Davis + Arturo Mayoral + Ramon Casellas "; + description " + This module contains TAPI physical route extensions Model definitions. + Source: TapiPhysicalRoute.uml + - The TAPI YANG models included in this TAPI release are a *normative* part of the TAPI SDK. + - The YANG specifications have been generated from the corresponding UML model using the [EAGLE UML2YANG mapping tool] + + and further edited manually to comply with the [ONMI IISOMI UML2YANG mapping guidelines] + + - Status of YANG model artifacts can be determined by referring to the corresponding UML artifacts. + As described in the UML models, some artifacts are considered *experimental*, and thus the corresponding YANG artifacts. + - The LF ONMI TAPI release process does not guarantee backward compatibility of YANG models across major versions of TAPI releases. + The YANG model backward compatibility criteria are outlined in section 11 of . + YANG models included in this release may not be backward compatible with some previous TAPI releases. + - Previous revisions can now be found at https://github.com/Open-Network-Models-and-Interfaces-ONMI/TAPI under the + appropriate tag and, where relevant, fixes to those revisions can be found under the corresponding branches. The documentation for + each significant revision is found at https://github.com/Open-Network-Models-and-Interfaces-ONMI/TAPI-Documentation under the + appropriate tag and, where relevant, fixes to those revisions can be found under the corresponding branches. + License: This module is distributed under the Apache License 2.0."; + revision 2025-12-xx { + description "LF ONMI Transport API version 2.1.5 + Changes included in this TAPI release (v2.1.5) are listed in + "; + reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and LF ONMI TAPI UML model + "; + } + + + + augment "/tapi-common:context/tapi-connectivity:connectivity-context/tapi-connectivity:connection" { + container physical-route-list { + uses physical-route-list; + description "This augment allows Connection to describe its physical route(s) by listing all involved AccessPorts, despite TapiConnectivity model does not import TapiEquipment model."; + } + description "This augment allows Connection to describe its physical route(s) by listing all involved AccessPorts, despite TapiConnectivity model does not import TapiEquipment model."; + } + augment "/tapi-common:context/tapi-notification:notification-context/tapi-notification:event-notification" { + when 'derived-from-or-self(tapi-notification:target-object-type, "EQUIPMENT_OBJECT_TYPE_PHYSICAL_ROUTE")'; + container physical-route { + uses physical-route; + description "none"; + } + description "none"; + } + augment "/tapi-streaming:stream-record/tapi-streaming:log-record/tapi-streaming:log-record-body" { + when 'derived-from-or-self(tapi-streaming:record-content, "EQUIPMENT_OBJECT_TYPE_PHYSICAL_ROUTE")'; + container physical-route { + uses physical-route; + description "none"; + } + description "none"; + } + augment "/tapi-common:context/tapi-notification:notification-context/tapi-notification:event-notification" { + when 'derived-from-or-self(tapi-notification:target-object-type, "EQUIPMENT_OBJECT_TYPE_PHYSICAL_ROUTE_ELEMENT")'; + container physical-route-element { + uses physical-route-element; + description "none"; + } + description "none"; + } + augment "/tapi-streaming:stream-record/tapi-streaming:log-record/tapi-streaming:log-record-body" { + when 'derived-from-or-self(tapi-streaming:record-content, "EQUIPMENT_OBJECT_TYPE_PHYSICAL_ROUTE_ELEMENT")'; + container physical-route-element { + uses physical-route-element; + description "none"; + } + description "none"; + } + + + + augment "/tapi-notification:event-notification" { + when 'derived-from-or-self(tapi-notification:target-object-type, "EQUIPMENT_OBJECT_TYPE_PHYSICAL_ROUTE")'; + container physical-route { + uses physical-route; + description "none"; + } + description "none"; + } + augment "/tapi-notification:event-notification" { + when 'derived-from-or-self(tapi-notification:target-object-type, "EQUIPMENT_OBJECT_TYPE_PHYSICAL_ROUTE_ELEMENT")'; + container physical-route-element { + uses physical-route-element; + description "none"; + } + description "none"; + } + + + + + /************************** + * definitions of references + **************************/ + + + /************************** + * package type-definitions + **************************/ + + identity EQUIPMENT_OBJECT_TYPE_PHYSICAL_ROUTE { + base EQUIPMENT_OBJECT_TYPE; + description "none"; + } + identity EQUIPMENT_OBJECT_TYPE_PHYSICAL_ROUTE_ELEMENT { + base EQUIPMENT_OBJECT_TYPE; + description "none"; + } + + + identity PHYSICAL_ROUTE_STATE { + description "none"; + } + identity PHYSICAL_ROUTE_STATE_CURRENT { + base PHYSICAL_ROUTE_STATE; + description "The PhysicalRoute instance identified is the current PhysicalRoute, i.e., is the one that is active and selected to support service."; + } + identity PHYSICAL_ROUTE_STATE_NOT_CURRENT { + base PHYSICAL_ROUTE_STATE; + description "The PhysicalRoute instance is not the one supporting the service."; + } + identity PHYSICAL_ROUTE_STATE_UNKNOWN { + base PHYSICAL_ROUTE_STATE; + description "The PhysicalRoute state is unknown."; + } + typedef physical-route-state { + type identityref { + base PHYSICAL_ROUTE_STATE; + } + description "Potential PhysicalRoute states concerning the service support."; + } + + + /************************** + * package object-classes + **************************/ + + grouping physical-route { + list physical-route-element { + config false; + uses physical-route-element; + description "A point in the PhysicalRoute. A PhysicalRoute must have at least one point."; + } + leaf physical-route-state { + type physical-route-state; + default "PHYSICAL_ROUTE_STATE_CURRENT"; + config false; + description "Provides optional resilience and state attributes to the PhysicalRoute. + CONDITION: Mandatory where not always default."; + } + uses tapi-common:local-class; + description "The physical route of a connection is modeled as an ordered sequence of physical route element instances. + The physical route is a description dedicated to the connection."; + } + grouping physical-route-list { + list physical-route { + key 'local-id'; + config false; + uses physical-route; + description "List of PhysicalRoutes composing the physical route of the Connection. + CONDITION: Mandatory where a physical route is to be conveyed."; + } + description "The list of the PhysicalRoutes of a Connection."; + } + + grouping physical-route-element { + container access-port-in-route { + uses access-port-ref; + config false; + description "The AccessPort included in the physical route. + CONDITION: Mandatory where AccessPort is used to define physical route."; + } + list connector-pin-in-route { + key 'device-uuid equipment-uuid connector-identification pin-identification'; + /* the reference to equipment is used as a key, but the key statement does not accept container, but only leafs. + Hence the two leafs of the equipment-ref have been explicitly specified.*/ + config false; + uses connector-pin-address; + description "The connectors and pins defining this point in the route where the access port alone is not sufficient or the access port is not provided. + CONDITION: Mandatory where AccessPort is not used to define PhysicalRoute or where AccessPort requires clarification as it includes more connectorPins than are used in the route."; + } + description "A PhysicalRouteElement describes equipment, connectors on those equipments and pins of those connectors that are involved in the physical route of the connection. + The description may be in terms of access port or connector pin in route (at least one of access port or connector pin in route must be provided) or both. + Where access port is provided alone, this may be because all pins in the connectors of the access port are used, because the connector pin detail id not known the and to its subset of connectorPins which are involved in the physical route. + An access port may include connectorPins of more Equipments, e.g., in case of bidirectional access port shared by two 'unidirectional'; Equipments. + Connector pin details may be provided alone without an access port where there are no access ports modelled."; + } + +}