diff --git a/README.md b/README.md
index 2b6bea12..7d1b5ae9 100644
--- a/README.md
+++ b/README.md
@@ -22,6 +22,12 @@ Internal data structure of prepared performance data follows ONF information mod
## Latest Update
+### v1.1.1
+
+This release adds changes for bugs, findings and still outstanding items observed during implementation of v1.0.0 and v1.1.0.
+
+Details on changes are found in [DPMDP v1.1.1_spec](https://github.com/openBackhaul/DevicePerformanceManagementDataProcessor/milestone/8).
+
### v1.1.0
This release adds new functionality and changes inner workings of DPMDP.
diff --git a/spec/DevicePerformanceManagementDataProcessor+config.json b/spec/DevicePerformanceManagementDataProcessor+config.json
index 45e693cc..921a8106 100644
--- a/spec/DevicePerformanceManagementDataProcessor+config.json
+++ b/spec/DevicePerformanceManagementDataProcessor+config.json
@@ -1754,7 +1754,7 @@
"profile-name": "function-profile-1-0:PROFILE_NAME_TYPE_FUNCTION_PROFILE",
"function-profile-1-0:function-profile-pac": {
"function-profile-capability": {
- "function-name": "p1CalculateUtilization",
+ "function-name": "p2CalculateUtilization",
"function-description": "Calculates utilization of the aggregated physical resources in a performance data slice",
"parameter-list": [],
"sub-function-list": []
diff --git a/spec/DevicePerformanceManagementDataProcessor+profileInstances.yaml b/spec/DevicePerformanceManagementDataProcessor+profileInstances.yaml
index 64546b49..7c03e5d6 100644
--- a/spec/DevicePerformanceManagementDataProcessor+profileInstances.yaml
+++ b/spec/DevicePerformanceManagementDataProcessor+profileInstances.yaml
@@ -1100,11 +1100,11 @@ profile-instances:
string-value: '-1'
- # p1CalculateUtilization
+ # p2CalculateUtilization
- profile-name: 'FunctionProfile'
uuid: 'dpmdp-1-1-0-function-p-500'
capability:
- function-name: 'p1CalculateUtilization'
+ function-name: 'p2CalculateUtilization'
function-description: 'Calculates utilization of the aggregated physical resources in a performance data slice'
parameter-list:
sub-function-list:
diff --git a/spec/Functions/p1StreamPmData/p1ProcessDevice/p1CreateResultCc/1.0.0/interface.yaml b/spec/Functions/p1StreamPmData/p1ProcessDevice/p1CreateResultCc/1.0.0/interface.yaml
index a37f39af..10f1d0bf 100644
--- a/spec/Functions/p1StreamPmData/p1ProcessDevice/p1CreateResultCc/1.0.0/interface.yaml
+++ b/spec/Functions/p1StreamPmData/p1ProcessDevice/p1CreateResultCc/1.0.0/interface.yaml
@@ -373,7 +373,6 @@ x-javascript-interface:
required:
- parameters
- historical-performance-data-list
- - aggregation-group
- result-cc
properties:
parameters:
diff --git a/spec/Functions/p1StreamPmData/p1ProcessDevice/p1CreateResultCc/p1IterateEcPmSlices/1.0.0/interface.yaml b/spec/Functions/p1StreamPmData/p1ProcessDevice/p1CreateResultCc/p1IterateEcPmSlices/1.0.0/interface.yaml
index 537a9a11..61d31dfa 100644
--- a/spec/Functions/p1StreamPmData/p1ProcessDevice/p1CreateResultCc/p1IterateEcPmSlices/1.0.0/interface.yaml
+++ b/spec/Functions/p1StreamPmData/p1ProcessDevice/p1CreateResultCc/p1IterateEcPmSlices/1.0.0/interface.yaml
@@ -15,7 +15,6 @@ x-javascript-interface:
required:
- parameters
- historical-performance-data-list
- - aggregation-group
- result-cc
properties:
parameters:
@@ -165,7 +164,6 @@ x-javascript-interface:
type: object
required:
- historical-performance-data
- - aggregation-group
- result-cc
properties:
historical-performance-data:
diff --git a/spec/Functions/p1StreamPmData/p1ProcessDevice/p1CreateResultCc/p1IterateEcPmSlices/1.0.0/variables.yaml b/spec/Functions/p1StreamPmData/p1ProcessDevice/p1CreateResultCc/p1IterateEcPmSlices/1.0.0/variables.yaml
index 466af942..2fe2a049 100644
--- a/spec/Functions/p1StreamPmData/p1ProcessDevice/p1CreateResultCc/p1IterateEcPmSlices/1.0.0/variables.yaml
+++ b/spec/Functions/p1StreamPmData/p1ProcessDevice/p1CreateResultCc/p1IterateEcPmSlices/1.0.0/variables.yaml
@@ -3,7 +3,6 @@ iterate-ec-pm-slices:
required:
- parameters
- historical-performance-data-list
- - aggregation-group
- result-cc
properties:
parameters:
diff --git a/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p1CalculateUtilization/1.0.0/README.md b/spec/Functions/p1StreamPmData/p1ProcessDevice/p1CreateResultCc/p1IterateEcPmSlices/p1CalculateUtilization/1.0.0/README.md
similarity index 86%
rename from spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p1CalculateUtilization/1.0.0/README.md
rename to spec/Functions/p1StreamPmData/p1ProcessDevice/p1CreateResultCc/p1IterateEcPmSlices/p1CalculateUtilization/1.0.0/README.md
index dd5f3226..ff91e2b4 100644
--- a/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p1CalculateUtilization/1.0.0/README.md
+++ b/spec/Functions/p1StreamPmData/p1ProcessDevice/p1CreateResultCc/p1IterateEcPmSlices/p1CalculateUtilization/1.0.0/README.md
@@ -1,24 +1,27 @@
-# p1CalculateUtilization
-
-Calculates the utilization of the aggregated physical TX resources in a performance data slice.
-
-Sums up the interval capacity of all AirInterfaces in the aggregation group that is transporting the EthernetContainer.
-Divides the totalBytesOutput by the aggregated interval capacity to get the utilization in %.
-
-## Diagram
-
-
-
-
-
-## Interface
-
-Please find a detailed description of the [interface](./interface.yaml).
-
-## Variables
-
-Please find a detailed description of the [variables](./variables.yaml).
-
-## NPM Module
-
-[mw-sdn-p1-calculate-utilization](https://www.npmjs.com/package/mw-sdn-p1-calculate-utilization)
+# p1CalculateUtilization
+
+Calculates the utilization of the aggregated physical TX resources in a performance data slice.
+
+Sums up the interval capacity of all AirInterfaces in the aggregation group that is transporting the EthernetContainer.
+Divides the totalBytesOutput by the aggregated interval capacity to get the utilization in %.
+
+### Diagram
+
+
+
+
+
+
+### Interface
+
+Please find a detailed description of the [interface](./interface.yaml).
+
+
+### Variables
+
+Please find a detailed description of the [variables](./variables.yaml).
+
+
+### NPM Module
+
+[mw-sdn-p1-calculate-utilization](https://www.npmjs.com/package/mw-sdn-p1-calculate-utilization)
diff --git a/spec/Functions/p1StreamPmData/p1ProcessDevice/p1CreateResultCc/p1IterateEcPmSlices/p1CalculateUtilization/1.0.0/interface.yaml b/spec/Functions/p1StreamPmData/p1ProcessDevice/p1CreateResultCc/p1IterateEcPmSlices/p1CalculateUtilization/1.0.0/interface.yaml
new file mode 100644
index 00000000..31f5fa51
--- /dev/null
+++ b/spec/Functions/p1StreamPmData/p1ProcessDevice/p1CreateResultCc/p1IterateEcPmSlices/p1CalculateUtilization/1.0.0/interface.yaml
@@ -0,0 +1,177 @@
+openapi: 3.0.0
+info:
+ title: p1CalculateUtilization
+ version: 1.0.0
+
+x-javascript-interface:
+ p1CalculateUtilization:
+ summary: 'Calculates utilization of the aggregated physical resources in a performance data slice'
+ input:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - historical-performance-data
+ - result-cc
+ properties:
+ historical-performance-data:
+ type: object
+ description: >
+ 'historicalPerformanceData set'
+ aggregation-group:
+ type: object
+ description: >
+ 'aggregationGroup'
+ result-cc:
+ type: object
+ description: >
+ 'resultCc'
+ output:
+ success:
+ description: 'Utilization added'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - historical-performance-data
+ properties:
+ historical-performance-data:
+ type: object
+ description: >
+ 'historicalPerformanceData
+ from [/calculate-utilization/historical-performance-data]'
+ error:
+ description: 'Utilization could not be added'
+ content:
+ application/json:
+ schema:
+ type: string
+ enum:
+ - 'historicalPerformanceData not provided'
+ - 'historicalPerformanceData invalid'
+ - 'aggregationGroup invalid'
+ - 'result-cc not provided'
+ - 'result-cc invalid'
+ - 'Utilization could not be added'
+ - 'General processing error'
+ processing:
+ calculateTotalAirInterfaceIntervalCapacity:
+ summary: 'Aggregates the interval capacity of all transporting AirInterfaces'
+ input:
+ required: true
+ content:
+ application/json:
+ schema:
+ required:
+ - logical-termination-point
+ - physical-server-ltp-list
+ - period-end-time
+ properties:
+ logical-termination-point:
+ type: array
+ description: >
+ 'logicalTerminationPoint list
+ from [/calculate-utilization/result-cc/logical-termination-point]'
+ physical-server-ltp-list:
+ type: array
+ description: >
+ 'List of UUIDs of transporting PhysicalServerLTPs
+ from [/calculate-utilization/aggregation-group/physical-server-ltp-list]'
+ period-end-time:
+ type: string
+ description: >
+ 'Period end time of the performance data slice
+ from [/calculate-utilization/historical-performance-data/period-end-time]'
+ output:
+ success:
+ description: 'totalAirInterfaceIntervalCapacity provided'
+ content:
+ application/json:
+ schema:
+ properties:
+ type: object
+ properties:
+ total-air-interface-interval-capacity:
+ type: integer
+ description: >
+ 'Sum of the intervalCapacity of all AirInterfaces in the aggregation group that is transporting this EthernetContainer in kbps
+ from [sum of all {[/logical-termination-point={physical-server-ltp-list[*]}/layer-protocol=*/air-interface-2-0:air-interface-pac/air-interface-historical-performances/historical-performance-data-list={$input.period-end-time}/performance-data/interval-capacity}]
+ with {[/logical-termination-point={physical-server-ltp-list[*]}/layer-protocol=*/air-interface-2-0:air-interface-pac/air-interface-historical-performances/historical-performance-data-list={$input.period-end-time}/granularity-period]}==air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN'
+ error:
+ description: 'totalAirInterfaceIntervalCapacity could not be provided'
+ content:
+ application/json:
+ schema:
+ type: string
+ enum:
+ - 'logicalTerminationPoint list not provided'
+ - 'logicalTerminationPoint list invalid'
+ - 'physicalServerLtpList not provided'
+ - 'physicalServerLtpList invalid'
+ - 'periodEndTime not provided'
+ - 'periodEndTime invalid'
+ - 'totalAirInterfaceIntervalCapacity could not be provided'
+ - 'General processing error'
+ calculateUtilization:
+ summary: 'Calculates the utilization'
+ input:
+ required: true
+ content:
+ application/json:
+ schema:
+ required:
+ - total-bytes-output
+ - total-air-interface-interval-capacity
+ - time-period
+ properties:
+ total-bytes-output:
+ type: string
+ description: >
+ 'totalBytesOutput
+ from [/calculate-utilization/historical-performance-data/performance-data/total-bytes-output]'
+ total-air-interface-interval-capacity:
+ type: integer
+ description: >
+ 'totalAirInterfaceIntervalCapacity
+ from [/calculate-utilization/historical-performance-data/performance-data/total-air-interface-interval-capacity]'
+ time-period:
+ type: integer
+ description: >
+ 'Length of the measurement interval in seconds
+ from [/calculate-utilization/historical-performance-data/performance-data/time-period]'
+ output:
+ success:
+ description: 'utilization provided'
+ content:
+ application/json:
+ schema:
+ properties:
+ type: object
+ properties:
+ utilization:
+ type: integer
+ description: >
+ 'Interval utilization in %
+ from [ {total-bytes-output}*8 / ( {total-air-interface-interval-capacity}*1000 * {time-period} ) ]'
+ error:
+ description: 'utilization could not be provided'
+ content:
+ application/json:
+ schema:
+ type: string
+ enum:
+ - 'totalBytesOutput not provided'
+ - 'totalBytesOutput invalid'
+ - 'totalAirInterfaceIntervalCapacity not provided'
+ - 'totalAirInterfaceIntervalCapacity invalid'
+ - 'timePeriod not provided'
+ - 'timePeriod invalid'
+ - 'utilization could not be provided'
+ - 'General processing error'
+
+paths:
+ /:
+ description: 'no rest path provided by this module'
\ No newline at end of file
diff --git a/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p1CalculateUtilization/1.0.0/p1CalculateUtilization.plantuml b/spec/Functions/p1StreamPmData/p1ProcessDevice/p1CreateResultCc/p1IterateEcPmSlices/p1CalculateUtilization/1.0.0/p1CalculateUtilization.plantuml
similarity index 71%
rename from spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p1CalculateUtilization/1.0.0/p1CalculateUtilization.plantuml
rename to spec/Functions/p1StreamPmData/p1ProcessDevice/p1CreateResultCc/p1IterateEcPmSlices/p1CalculateUtilization/1.0.0/p1CalculateUtilization.plantuml
index 4c4d05db..68b46aec 100644
--- a/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p1CalculateUtilization/1.0.0/p1CalculateUtilization.plantuml
+++ b/spec/Functions/p1StreamPmData/p1ProcessDevice/p1CreateResultCc/p1IterateEcPmSlices/p1CalculateUtilization/1.0.0/p1CalculateUtilization.plantuml
@@ -1,49 +1,43 @@
-@startuml p1CalculateUtilization
-skinparam responseMessageBelowArrow true
-
-title
- p1CalculateUtilization
-end title
-
-participant "p2IterateEcPmSlices\n" as requestor
-participant "p1CalculateUtilization\n" as p1CalcUtil
-
-
-requestor -> p1CalcUtil : { {historical-performance-data},\n{aggregation-group},\n{result-cc},\nuuidOfEthernetContainer }
-activate p1CalcUtil
-
- note over p1CalcUtil
- IF /historical-performance-data/granularity-period == '15min'
- end note
-
- note left p1CalcUtil
- ELSE
- end note
- requestor <-- p1CalcUtil : { {historical-performance-data} }
-
- note over p1CalcUtil
- THEN
- end note
-
- note over p1CalcUtil
- derive [physicalServerLtpList] from
- either {aggregationGroup} (if link aggregation)
- or {EthernetContainerLtp} (if 1+0 configuration)
- end note
-
- loop FOR physicalServerLtpList[*]
- note over p1CalcUtil
- totalAirInterfaceIntervalCapacity += AirInterfaceIntervalCapacity
- end note
- end loop
-
- note over p1CalcUtil
- utilization = totalBytesOutput / totalAirInterfaceIntervalCapacity
- end note
-
-requestor <-- p1CalcUtil : { {historical-performance-data} }
-deactivate p1CalcUtil
-
-deactivate requestor
-
-@enduml
+@startuml p1CalculateUtilization
+skinparam responseMessageBelowArrow true
+
+title
+ p1CalculateUtilization
+end title
+
+participant "p1IterateEcPmSlices\n" as requestor
+participant "p1CalculateUtilization\n" as p1CalcUtil
+
+
+requestor -> p1CalcUtil : { {historical-performance-data},\n{aggregation-group},\n{result-cc} }
+activate p1CalcUtil
+
+ note over p1CalcUtil
+ IF /historical-performance-data/granularity-period == '15min'
+ end note
+
+ note left p1CalcUtil
+ ELSE
+ end note
+ requestor <-- p1CalcUtil : { {historical-performance-data} }
+
+ note over p1CalcUtil
+ THEN
+ end note
+
+ loop FOR /aggregation-group/physical-server-ltp-list[*]
+ note over p1CalcUtil
+ totalAirInterfaceIntervalCapacity += AirInterfaceIntervalCapacity
+ end note
+ end loop
+
+ note over p1CalcUtil
+ utilization = totalBytesOutput / totalAirInterfaceIntervalCapacity
+ end note
+
+requestor <-- p1CalcUtil : { {historical-performance-data} }
+deactivate p1CalcUtil
+
+deactivate requestor
+
+@enduml
\ No newline at end of file
diff --git a/spec/Functions/p1StreamPmData/p1ProcessDevice/p1CreateResultCc/p1IterateEcPmSlices/p1CalculateUtilization/1.0.0/p1CalculateUtilization.png b/spec/Functions/p1StreamPmData/p1ProcessDevice/p1CreateResultCc/p1IterateEcPmSlices/p1CalculateUtilization/1.0.0/p1CalculateUtilization.png
new file mode 100644
index 00000000..dfb6b711
Binary files /dev/null and b/spec/Functions/p1StreamPmData/p1ProcessDevice/p1CreateResultCc/p1IterateEcPmSlices/p1CalculateUtilization/1.0.0/p1CalculateUtilization.png differ
diff --git a/spec/Functions/p1StreamPmData/p1ProcessDevice/p1CreateResultCc/p1IterateEcPmSlices/p1CalculateUtilization/1.0.0/variables.yaml b/spec/Functions/p1StreamPmData/p1ProcessDevice/p1CreateResultCc/p1IterateEcPmSlices/p1CalculateUtilization/1.0.0/variables.yaml
new file mode 100644
index 00000000..68f7df99
--- /dev/null
+++ b/spec/Functions/p1StreamPmData/p1ProcessDevice/p1CreateResultCc/p1IterateEcPmSlices/p1CalculateUtilization/1.0.0/variables.yaml
@@ -0,0 +1,110 @@
+calculate-utilization:
+ type: object
+ required:
+ - historical-performance-data
+ - result-cc
+ properties:
+ historical-performance-data:
+ type: object
+ description: >
+ 'historicalPerformanceData set
+ from {$input#/historical-performance-data}
+ ! simplified representation !'
+ properties:
+ granularity-period:
+ type: string
+ description: >
+ 'Granularity period of the historical performance data slice
+ IF NOT ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN THEN terminate without change or error message'
+ enum:
+ - 'ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN'
+ - 'ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS'
+ - 'ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-UNKNOWN'
+ - 'ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-NOT_YET_DEFINED'
+ period-end-time:
+ type: string
+ performance-data:
+ type: object
+ properties:
+ total-bytes-output:
+ type: string
+ description: 'String representation of int64 value'
+ time-period:
+ type: integer
+ description: 'Length of the measurement interval in seconds'
+ total-air-interface-interval-capacity:
+ type: integer
+ description: >
+ 'Sum of the intervalCapacity of all AirInterfaces in the aggregation group that is transporting this EthernetContainer in kbps
+ from {$calculateTotalAirInterfaceIntervalCapacity.output#/total-air-interface-interval-capacity}'
+ utilization:
+ type: integer
+ description: >
+ 'Interval utilization in %
+ from {$calculateUtilization.output#/utilization}'
+ aggregation-group:
+ type: object
+ description: >
+ 'aggregationGroup
+ from {$input#/aggregation-group}
+ ! simplified representation !'
+ properties:
+ physical-server-ltp-list:
+ type: array
+ description: >
+ 'List of UUIDs of transporting AirInterface and WireInterface LTPs'
+ items:
+ type: string
+ result-cc:
+ type: object
+ description: >
+ 'resultCc
+ from {$input#/result-cc}
+ ! simplified representation !'
+ properties:
+ logical-termination-point:
+ type: array
+ x-key: uuid
+ items:
+ type: object
+ properties:
+ uuid:
+ type: string
+ layer-protocol:
+ type: array
+ x-key: local-id
+ items:
+ type: object
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'air-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER'
+ air-interface-2-0:air-interface-pac:
+ type: object
+ properties:
+ air-interface-historical-performances:
+ type: object
+ properties:
+ historical-performance-data-list:
+ type: array
+ x-key: period-end-time
+ items:
+ type: object
+ properties:
+ granularity-period:
+ type: string
+ enum:
+ - 'air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN'
+ period-end-time:
+ type: string
+ performance-data:
+ type: object
+ properties:
+ interval-capacity:
+ type: integer
+ description: >
+ 'AirInterface capacity weighted by duration of operation of the respective transmission mode in kbps
+ requires {$p1PrepareTxModes}'
\ No newline at end of file
diff --git a/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/1.0.0/variables.yaml b/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/1.0.0/variables.yaml
index 13a69c7b..0e9ffd9b 100644
--- a/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/1.0.0/variables.yaml
+++ b/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/1.0.0/variables.yaml
@@ -379,12 +379,12 @@ create-result-cc:
type: integer
description: >
'Sum of the intervalCapacity of all AirInterfaces in the aggregation group that is transporting this EthernetContainer in kbps
- requires {$p2IterateEcPmSlices} and {p1CalculateUtilization}'
+ requires {$p2IterateEcPmSlices} and {p2CalculateUtilization}'
utilization:
type: integer
description: >
'Interval utilization (=totalBytesOutput/totalAirInterfaceIntervalCapacity) in %
- requires {$p2IterateEcPmSlices} and {p1CalculateUtilization}'
+ requires {$p2IterateEcPmSlices} and {p2CalculateUtilization}'
time-period:
type: integer
transmit-traffic:
diff --git a/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/1.0.0/interface.yaml b/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/1.0.0/interface.yaml
index 250a51fe..2e67b41c 100644
--- a/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/1.0.0/interface.yaml
+++ b/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/1.0.0/interface.yaml
@@ -166,7 +166,7 @@ x-javascript-interface:
application/json:
schema:
type: string
- p1CalculateUtilization:
+ p2CalculateUtilization:
summary: 'Calculates utilization of the aggregated physical resources in a performance data slice'
input:
required: true
diff --git a/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/1.0.0/p2IterateEcPmSlices.plantuml b/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/1.0.0/p2IterateEcPmSlices.plantuml
index 32d752af..524d7d31 100644
--- a/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/1.0.0/p2IterateEcPmSlices.plantuml
+++ b/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/1.0.0/p2IterateEcPmSlices.plantuml
@@ -10,7 +10,7 @@ participant "p2CreateResultCc\n" as cur
participant "p2IterateEcPmSlices\n" as iterateSlices
participant "p1Calculate\nEthernetKpis" as intCC
participant "p1Remove\nDefaultValues" as p1RemDefault
-participant "p1Calculate\nUtilization" as p1CalcUtil
+participant "p2Calculate\nUtilization" as p2CalcUtil
participant "p1CategorizeDataVolume\n" as p1CatDataVo
participant "p1CalculateBusyHour\nPerformanceIndicators" as p1CalcBH
@@ -45,13 +45,13 @@ activate iterateSlices
end note
- iterateSlices -> p1CalcUtil : { {historical-performance-data},\n{aggregation-group},\n{result-cc},\nuuidOfEthernetContainer }
- activate p1CalcUtil
- note over p1CalcUtil
+ iterateSlices -> p2CalcUtil : { {historical-performance-data},\n{aggregation-group},\n{result-cc},\nuuidOfEthernetContainer }
+ activate p2CalcUtil
+ note over p2CalcUtil
Adds utilization
end note
- iterateSlices <-- p1CalcUtil: { {historical-performance-data} }
- deactivate p1CalcUtil
+ iterateSlices <-- p2CalcUtil: { {historical-performance-data} }
+ deactivate p2CalcUtil
note over iterateSlices
IF granularityPeriod == 15-MIN
diff --git a/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/1.0.0/p2IterateEcPmSlices.png b/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/1.0.0/p2IterateEcPmSlices.png
index 39ac857a..7fe88b2f 100644
Binary files a/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/1.0.0/p2IterateEcPmSlices.png and b/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/1.0.0/p2IterateEcPmSlices.png differ
diff --git a/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/1.0.0/variables.yaml b/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/1.0.0/variables.yaml
index 0671ed25..621dd626 100644
--- a/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/1.0.0/variables.yaml
+++ b/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/1.0.0/variables.yaml
@@ -23,7 +23,7 @@ iterate-ec-pm-slices:
type: object
description: >
'historicalPerformanceData
- overwritten by {$p1CalculateUtilization.output#/historical-performance-data}
+ overwritten by {$p2CalculateUtilization.output#/historical-performance-data}
properties:
granularity-period:
type: string
diff --git a/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p1CalculateUtilization/1.0.0/p1CalculateUtilization.png b/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p1CalculateUtilization/1.0.0/p1CalculateUtilization.png
deleted file mode 100644
index 9ae90858..00000000
Binary files a/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p1CalculateUtilization/1.0.0/p1CalculateUtilization.png and /dev/null differ
diff --git a/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p2CalculateUtilization/1.0.0/README.md b/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p2CalculateUtilization/1.0.0/README.md
new file mode 100644
index 00000000..81cf42ee
--- /dev/null
+++ b/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p2CalculateUtilization/1.0.0/README.md
@@ -0,0 +1,24 @@
+# p2CalculateUtilization
+
+Calculates the utilization of the aggregated physical TX resources in a performance data slice.
+
+Sums up the interval capacity of all AirInterfaces in the aggregation group that is transporting the EthernetContainer.
+Divides the totalBytesOutput by the aggregated interval capacity to get the utilization in %.
+
+## Diagram
+
+
+
+
+
+## Interface
+
+Please find a detailed description of the [interface](./interface.yaml).
+
+## Variables
+
+Please find a detailed description of the [variables](./variables.yaml).
+
+## NPM Module
+
+[mw-sdn-p2-calculate-utilization](https://www.npmjs.com/package/mw-sdn-p2-calculate-utilization)
diff --git a/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p1CalculateUtilization/1.0.0/interface.yaml b/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p2CalculateUtilization/1.0.0/interface.yaml
similarity index 99%
rename from spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p1CalculateUtilization/1.0.0/interface.yaml
rename to spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p2CalculateUtilization/1.0.0/interface.yaml
index d090bad6..c960d1ec 100644
--- a/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p1CalculateUtilization/1.0.0/interface.yaml
+++ b/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p2CalculateUtilization/1.0.0/interface.yaml
@@ -1,10 +1,10 @@
openapi: 3.0.0
info:
- title: p1CalculateUtilization
+ title: p2CalculateUtilization
version: 1.0.0
x-javascript-interface:
- p1CalculateUtilization:
+ p2CalculateUtilization:
summary: 'Calculates utilization of the aggregated physical resources in a performance data slice'
input:
required: true
diff --git a/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p2CalculateUtilization/1.0.0/p2CalculateUtilization.plantuml b/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p2CalculateUtilization/1.0.0/p2CalculateUtilization.plantuml
new file mode 100644
index 00000000..e671a5bf
--- /dev/null
+++ b/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p2CalculateUtilization/1.0.0/p2CalculateUtilization.plantuml
@@ -0,0 +1,49 @@
+@startuml p2CalculateUtilization
+skinparam responseMessageBelowArrow true
+
+title
+ p2CalculateUtilization
+end title
+
+participant "p2IterateEcPmSlices\n" as requestor
+participant "p2CalculateUtilization\n" as p2CalcUtil
+
+
+requestor -> p2CalcUtil : { {historical-performance-data},\n{aggregation-group},\n{result-cc},\nuuidOfEthernetContainer }
+activate p2CalcUtil
+
+ note over p2CalcUtil
+ IF /historical-performance-data/granularity-period == '15min'
+ end note
+
+ note left p2CalcUtil
+ ELSE
+ end note
+ requestor <-- p2CalcUtil : { {historical-performance-data} }
+
+ note over p2CalcUtil
+ THEN
+ end note
+
+ note over p2CalcUtil
+ derive [physicalServerLtpList] from
+ either {aggregationGroup} (if link aggregation)
+ or {EthernetContainerLtp} (if 1+0 configuration)
+ end note
+
+ loop FOR physicalServerLtpList[*]
+ note over p2CalcUtil
+ totalAirInterfaceIntervalCapacity += AirInterfaceIntervalCapacity
+ end note
+ end loop
+
+ note over p2CalcUtil
+ utilization = totalBytesOutput / totalAirInterfaceIntervalCapacity
+ end note
+
+requestor <-- p2CalcUtil : { {historical-performance-data} }
+deactivate p2CalcUtil
+
+deactivate requestor
+
+@enduml
diff --git a/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p2CalculateUtilization/1.0.0/p2CalculateUtilization.png b/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p2CalculateUtilization/1.0.0/p2CalculateUtilization.png
new file mode 100644
index 00000000..5b0610d2
Binary files /dev/null and b/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p2CalculateUtilization/1.0.0/p2CalculateUtilization.png differ
diff --git a/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p1CalculateUtilization/1.0.0/variables.yaml b/spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p2CalculateUtilization/1.0.0/variables.yaml
similarity index 100%
rename from spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p1CalculateUtilization/1.0.0/variables.yaml
rename to spec/Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p2CalculateUtilization/1.0.0/variables.yaml
diff --git a/spec/README.md b/spec/README.md
index c8e2f6e8..d1b2097c 100644
--- a/spec/README.md
+++ b/spec/README.md
@@ -116,7 +116,7 @@ Lot 8: Red
- [p2IterateEcPmSlices](./Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/1.0.0)
- [p1CalculateEthernetKpis](./Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p1CalculateEthernetKpis/1.0.0)
- [p1RemoveDefaultValues](./Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateAiPmSlices/p1RemoveDefaultValues/1.0.0)
- - [p1CalculateUtilization](./Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p1CalculateUtilization/1.0.0)
+ - [p2CalculateUtilization](./Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p2CalculateUtilization/1.0.0)
- [p1CategorizeDataVolume](./Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p1CategorizeDataVolume/1.0.0)
- [p1CalculateBusyHourPerformanceIndicators](./Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p2IterateEcPmSlices/p1CalculateBusyHourPerformanceIndicators/1.0.0)
- [p1RemoveOutOfRangeTemperatures](./Functions/p2StreamPmData/p2ProcessDevice/p2CreateResultCc/p1RemoveOutOfRangeTemperature/1.0.0)
diff --git a/spec/diagrams/hl_sequence.plantuml b/spec/diagrams/hl_sequence.plantuml
index 68c5bd99..981cf7f9 100644
--- a/spec/diagrams/hl_sequence.plantuml
+++ b/spec/diagrams/hl_sequence.plantuml
@@ -32,7 +32,7 @@ participant "p1RemoveOutOf\nRangeLevels" as p1RORL
participant "p1Remove\nDefaultValues" as p1RemDefault
participant "p2IterateEc\nPmSlices" as ecSlices #LightYellow
participant "p1Calculate\nEthernetKpis" as p1EthKpi
-participant "p1Calculate\nUtilization" as p1Util
+participant "p2Calculate\nUtilization" as p2Utils #LightYellow
participant "p1Categorize\nDataVolume" as p1CatDV #LightSalmon
participant "p1CalculateBusyHour\nPerformanceIndicators" as p1CalcBH #LightSalmon
participant "p1RemoveOutOf\nRangeTemperature" as p1ROoRT
@@ -312,15 +312,15 @@ activate p2StreamPm
deactivate p1RemDefault
' Utilization
- ecSlices -> p1Util
- activate p1Util
+ ecSlices -> p2Util
+ activate p2Util
- note over p1Util
+ note over p2Util
Add utilization
end note
- ecSlices <-- p1Util
- deactivate p1Util
+ ecSlices <-- p2Util
+ deactivate p2Util
' categorizeDataVolume
ecSlices -> p1CatDV
diff --git a/spec/diagrams/hl_sequence.png b/spec/diagrams/hl_sequence.png
index 421153b4..0e44f02f 100644
Binary files a/spec/diagrams/hl_sequence.png and b/spec/diagrams/hl_sequence.png differ
diff --git a/spec/diagrams/hl_sequence_bh_changes.plantuml b/spec/diagrams/hl_sequence_bh_changes.plantuml
index 62c76646..88774e7b 100644
--- a/spec/diagrams/hl_sequence_bh_changes.plantuml
+++ b/spec/diagrams/hl_sequence_bh_changes.plantuml
@@ -32,7 +32,7 @@ participant "p1RemoveOutOf\nRangeLevels" as p1RORL
participant "p1Remove\nDefaultValues" as p1RemDefault
participant "p2IterateEc\nPmSlices" as ecSlices #LightYellow
participant "p1Calculate\nEthernetKpis" as p1EthKpi
-participant "p1Calculate\nUtilization" as p1Util
+participant "p2Calculate\nUtilization" as p2Util #LightYellow
participant "p1Categorize\nDataVolume" as p1CatDV #LightSalmon
participant "p1CalculateBusyHour\nPerformanceIndicators" as p1CalcBH #LightSalmon
participant "p1RemoveOutOf\nRangeTemperature" as p1ROoRT
@@ -389,15 +389,15 @@ activate p2StreamPm
deactivate p1RemDefault
' Utilization
- ecSlices -> p1Util
- activate p1Util
+ ecSlices -> p2Util
+ activate p2Util
- note over p1Util
+ note over p2Util
Add utilization
end note
- ecSlices <-- p1Util
- deactivate p1Util
+ ecSlices <-- p2Util
+ deactivate p2Util
' categorizeDataVolume
ecSlices -> p1CatDV
diff --git a/spec/diagrams/hl_sequence_bh_changes.png b/spec/diagrams/hl_sequence_bh_changes.png
index c16d8993..0cfdf4a6 100644
Binary files a/spec/diagrams/hl_sequence_bh_changes.png and b/spec/diagrams/hl_sequence_bh_changes.png differ
diff --git a/spec/diagrams/hl_sequence_other_changes.plantuml b/spec/diagrams/hl_sequence_other_changes.plantuml
index b459db70..a3638d6b 100644
--- a/spec/diagrams/hl_sequence_other_changes.plantuml
+++ b/spec/diagrams/hl_sequence_other_changes.plantuml
@@ -32,7 +32,7 @@ participant "p1RemoveOutOf\nRangeLevels" as p1RORL
participant "p1Remove\nDefaultValues" as p1RemDefault
participant "p2IterateEc\nPmSlices" as ecSlices #LightYellow
participant "p1Calculate\nEthernetKpis" as p1EthKpi
-participant "p1Calculate\nUtilization" as p1Util
+participant "p2Calculate\nUtilization" as p2Util #LightYellow
participant "p1Categorize\nDataVolume" as p1CatDV #LightSalmon
participant "p1CalculateBusyHour\nPerformanceIndicators" as p1CalcBH #LightSalmon
participant "p1RemoveOutOf\nRangeTemperature" as p1ROoRT
@@ -337,15 +337,15 @@ activate p2StreamPm
deactivate p1RemDefault
' Utilization
- ecSlices -> p1Util
- activate p1Util
+ ecSlices -> p2Util
+ activate p2Util
- note over p1Util
+ note over p2Util
Add utilization
end note
- ecSlices <-- p1Util
- deactivate p1Util
+ ecSlices <-- p2Util
+ deactivate p2Util
' categorizeDataVolume
ecSlices -> p1CatDV
diff --git a/spec/diagrams/hl_sequence_other_changes.png b/spec/diagrams/hl_sequence_other_changes.png
index 282503c1..58c822ab 100644
Binary files a/spec/diagrams/hl_sequence_other_changes.png and b/spec/diagrams/hl_sequence_other_changes.png differ
diff --git a/spec/diagrams/hl_sequence_poison_pill_changes.plantuml b/spec/diagrams/hl_sequence_poison_pill_changes.plantuml
index 7cbdfb56..1efca081 100644
--- a/spec/diagrams/hl_sequence_poison_pill_changes.plantuml
+++ b/spec/diagrams/hl_sequence_poison_pill_changes.plantuml
@@ -32,7 +32,7 @@ participant "p1RemoveOutOf\nRangeLevels" as p1RORL
participant "p1Remove\nDefaultValues" as p1RemDefault
participant "p2IterateEc\nPmSlices" as ecSlices #LightYellow
participant "p1Calculate\nEthernetKpis" as p1EthKpi
-participant "p1Calculate\nUtilization" as p1Util
+participant "p2Calculate\nUtilization" as p2Util #LightYellow
participant "p1Categorize\nDataVolume" as p1CatDV #LightSalmon
participant "p1CalculateBusyHour\nPerformanceIndicators" as p1CalcBH #LightSalmon
participant "p1RemoveOutOf\nRangeTemperature" as p1ROoRT
@@ -384,15 +384,15 @@ activate p2StreamPm
deactivate p1RemDefault
' Utilization
- ecSlices -> p1Util
- activate p1Util
+ ecSlices -> p2Util
+ activate p2Util
- note over p1Util
+ note over p2Util
Add utilization
end note
- ecSlices <-- p1Util
- deactivate p1Util
+ ecSlices <-- p2Util
+ deactivate p2Util
' categorizeDataVolume
ecSlices -> p1CatDV
diff --git a/spec/diagrams/hl_sequence_poison_pill_changes.png b/spec/diagrams/hl_sequence_poison_pill_changes.png
index 97c198b6..86874152 100644
Binary files a/spec/diagrams/hl_sequence_poison_pill_changes.png and b/spec/diagrams/hl_sequence_poison_pill_changes.png differ
diff --git a/spec/diagrams/hl_sequence_quality_changes.plantuml b/spec/diagrams/hl_sequence_quality_changes.plantuml
index fb9d673a..6df2a339 100644
--- a/spec/diagrams/hl_sequence_quality_changes.plantuml
+++ b/spec/diagrams/hl_sequence_quality_changes.plantuml
@@ -32,7 +32,7 @@ participant "p1RemoveOutOf\nRangeLevels" as p1RORL
participant "p1Remove\nDefaultValues" as p1RemDefault
participant "p2IterateEc\nPmSlices" as ecSlices #LightYellow
participant "p1Calculate\nEthernetKpis" as p1EthKpi
-participant "p1Calculate\nUtilization" as p1Util
+participant "p2Calculate\nUtilization" as p2Util #LightYellow
participant "p1Categorize\nDataVolume" as p1CatDV #LightSalmon
participant "p1CalculateBusyHour\nPerformanceIndicators" as p1CalcBH #LightSalmon
participant "p1RemoveOutOf\nRangeTemperature" as p1ROoRT
@@ -365,15 +365,15 @@ activate p2StreamPm
deactivate p1RemDefault
' Utilization
- ecSlices -> p1Util
- activate p1Util
+ ecSlices -> p2Util
+ activate p2Util
- note over p1Util
+ note over p2Util
Add utilization
end note
- ecSlices <-- p1Util
- deactivate p1Util
+ ecSlices <-- p2Util
+ deactivate p2Util
' categorizeDataVolume
ecSlices -> p1CatDV
diff --git a/spec/diagrams/hl_sequence_quality_changes.png b/spec/diagrams/hl_sequence_quality_changes.png
index 6bfddb35..76be6ee6 100644
Binary files a/spec/diagrams/hl_sequence_quality_changes.png and b/spec/diagrams/hl_sequence_quality_changes.png differ
diff --git a/spec/diagrams/hl_sequence_service_changes.plantuml b/spec/diagrams/hl_sequence_service_changes.plantuml
index eda33ccf..b33fcb43 100644
--- a/spec/diagrams/hl_sequence_service_changes.plantuml
+++ b/spec/diagrams/hl_sequence_service_changes.plantuml
@@ -32,7 +32,7 @@ participant "p1RemoveOutOf\nRangeLevels" as p1RORL
participant "p1Remove\nDefaultValues" as p1RemDefault
participant "p2IterateEc\nPmSlices" as ecSlices #LightYellow
participant "p1Calculate\nEthernetKpis" as p1EthKpi
-participant "p1Calculate\nUtilization" as p1Util
+participant "p2Calculate\nUtilization" as p2Util #LightYellow
participant "p1Categorize\nDataVolume" as p1CatDV #LightSalmon
participant "p1CalculateBusyHour\nPerformanceIndicators" as p1CalcBH #LightSalmon
participant "p1RemoveOutOf\nRangeTemperature" as p1ROoRT
diff --git a/spec/diagrams/hl_sequence_service_changes.png b/spec/diagrams/hl_sequence_service_changes.png
index 48f1227a..25d29e44 100644
Binary files a/spec/diagrams/hl_sequence_service_changes.png and b/spec/diagrams/hl_sequence_service_changes.png differ
diff --git a/spec/diagrams/hl_sequence_v11_lots.plantuml b/spec/diagrams/hl_sequence_v11_lots.plantuml
index c7fc3964..201fbf2f 100644
--- a/spec/diagrams/hl_sequence_v11_lots.plantuml
+++ b/spec/diagrams/hl_sequence_v11_lots.plantuml
@@ -32,7 +32,7 @@ participant "p1RemoveOutOf\nRangeLevels" as p1RORL
participant "p1Remove\nDefaultValues" as p1RemDefault
participant "p2IterateEc\nPmSlices" as ecSlices #LightSkyBlue
participant "p1Calculate\nEthernetKpis" as p1EthKpi
-participant "p1Calculate\nUtilization" as p1Util
+participant "p2Calculate\nUtilization" as p2Util
participant "p1Categorize\nDataVolume" as p1CatDV #Orange
participant "p1CalculateBusyHour\nPerformanceIndicators" as p1CalcBH #Orange
participant "p1RemoveOutOf\nRangeTemperature" as p1ROoRT
@@ -312,15 +312,15 @@ activate p2StreamPm
deactivate p1RemDefault
' Utilization
- ecSlices -> p1Util
- activate p1Util
+ ecSlices -> p2Util
+ activate p2Util
- note over p1Util
+ note over p2Util
Add utilization
end note
- ecSlices <-- p1Util
- deactivate p1Util
+ ecSlices <-- p2Util
+ deactivate p2Util
' categorizeDataVolume
ecSlices -> p1CatDV
diff --git a/spec/diagrams/hl_sequence_v11_lots.png b/spec/diagrams/hl_sequence_v11_lots.png
index 3b1a5ab2..53a3d5cc 100644
Binary files a/spec/diagrams/hl_sequence_v11_lots.png and b/spec/diagrams/hl_sequence_v11_lots.png differ