Add PM data generation capabilities. 40/14140/1 k-release-maintenance l-release
authorAlex Stancu <alexandru.stancu@highstreet-technologies.com>
Wed, 5 Feb 2025 18:55:43 +0000 (20:55 +0200)
committerAlex Stancu <alexandru.stancu@highstreet-technologies.com>
Wed, 5 Feb 2025 18:55:53 +0000 (20:55 +0200)
Issue-ID: SIM-123
Change-Id: I872fee2bba475a4d1707cfb72d4150d977d2770e
Signed-off-by: Alex Stancu <alexandru.stancu@highstreet-technologies.com>
.env
.gitignore
base/docker/conf/vsftpd.conf
base/src/performance_management/performance_management.py
doc/performance-management.md
o-du-o1/data/performance-management/index.json
o-du-o1/data/performance-management/template_5G_NR.xml [new file with mode: 0644]

diff --git a/.env b/.env
index 68ee7f4..1cd4ea3 100644 (file)
--- a/.env
+++ b/.env
@@ -15,7 +15,7 @@
 # * limitations under the License.
 # ***************************************************************************/
 
-NTS_VERSION=0.8.1
+NTS_VERSION=0.9.1
 
 # Network settings
 HOST_IP=192.168.10.253
index b0f8294..8a41e4f 100644 (file)
@@ -140,3 +140,5 @@ integration/.env*
 
 # VS Code
 .vscode/
+
+base/docker/conf/*.p12
index f6e0c25..64e577f 100644 (file)
@@ -1,4 +1,4 @@
-listen=YES
+listen=NO
 listen_ipv6=YES
 anonymous_enable=NO
 local_enable=YES
index a5d1ddd..58cbf7c 100644 (file)
@@ -90,8 +90,8 @@ class PerformanceManagement:
         # apply vsftpd changes
         os.system("killall -9 vsftpd")
 
-        # read template from performance-management/template.xml
-        template_path = '/data/performance-management/template.xml'
+        # read template from performance-management/template_5G_NR.xml
+        template_path = '/data/performance-management/template_5G_NR.xml'
         if Path(template_path).exists():
             with open(template_path, 'r') as file:
                 self.template = file.read()
index 3942f5a..f05accc 100644 (file)
@@ -30,7 +30,7 @@ This file configures the performance data generation. It contains two objects:
 - the values are integer format
 - each object *MUST* contain data for *ALL* points defined
 
-### performance-management/template.xml
+### performance-management/template_5G_NR.xml
 
 The template is defined by this file. By design, it is an XML file.
 
index c578f58..1a8a5d4 100644 (file)
@@ -6,25 +6,35 @@
         "points": [
             "DRB.MeanActiveUeDl",
             "DRB.MeanActiveUeUl",
-            "DRB.MaxActiveUeDl"
+            "DRB.UEThpDl",
+            "DRB.UEThpUl"
         ]
     },
 
     "values": [
         {
-            "DRB.MeanActiveUeDl": 0,
-            "DRB.MaxActiveUeDl": 3,
-            "DRB.MeanActiveUeUl": 17
+            "DRB.MeanActiveUeDl": 22,
+            "DRB.MeanActiveUeUl": 3,
+            "DRB.UEThpDl": 17,
+            "DRB.UEThpUl": 5
         },
         {
-            "DRB.MeanActiveUeDl": 1,
-            "DRB.MaxActiveUeDl": 4,
-            "DRB.MeanActiveUeUl": 19
+            "DRB.MeanActiveUeDl": 27,
+            "DRB.MeanActiveUeUl": 4,
+            "DRB.UEThpDl": 19,
+            "DRB.UEThpUl": 7
         },
         {
-            "DRB.MeanActiveUeDl": 2,
-            "DRB.MaxActiveUeDl": 9,
-            "DRB.MeanActiveUeUl": 19
+            "DRB.MeanActiveUeDl": 30,
+            "DRB.MeanActiveUeUl": 9,
+            "DRB.UEThpDl": 19,
+            "DRB.UEThpUl": 3
+        },
+        {
+          "DRB.MeanActiveUeDl": 5,
+          "DRB.MeanActiveUeUl": 4,
+          "DRB.UEThpDl": 3,
+          "DRB.UEThpUl": 3
         }
     ]
 }
diff --git a/o-du-o1/data/performance-management/template_5G_NR.xml b/o-du-o1/data/performance-management/template_5G_NR.xml
new file mode 100644 (file)
index 0000000..dce9318
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="MeasDataCollection.xsl"?>
+<measDataFile xmlns="http://www.3gpp.org/ftp/specs/archive/28_series/28.532#measData" xsi:schemaLocation="http://www.3gpp.org/ftp/specs/archive/28_series/28.532#measData schema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+       <fileHeader fileFormatVersion="28.532 V18.0.0" vendorName="PyNTS" dnPrefix="DC=pynts.domain">
+               <fileSender senderName="ManagedElement=@hostname@" senderType="pynts-element"/>
+               <measData beginTime="@start-time@"/>
+       </fileHeader>
+       <measData>
+    <measEntity localDn="ManagedElement=@hostname@" />
+    <measInfo measInfoId="5.1.1.1.1">
+      <job jobId="0" />
+                       <granPeriod duration="@log-period@" endTime="@end-time@"/>
+                       <repPeriod duration="@rep-period@"/>
+      @point-start@<measType p="@point-id@">@point-name@</measType>@point-end@
+                       <measValue measObjLdn="ManagedElement=@hostname@,GNBDUFunction=1,NRCellDU=1">
+                               @value-start@<r p="@point-id@">@value@</r>@value-end@
+                               @suspect@
+                       </measValue>
+    </measInfo>                
+       </measData>
+       <fileFooter>
+               <measData endTime="@end-time@"/>
+       </fileFooter>
+</measDataFile>