From: PatrikBuhr Date: Wed, 8 Mar 2023 13:45:16 +0000 (+0100) Subject: Removed pmlog from this repo X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=ff3afde70cdc9519d527fa096c31df1151d84765;p=nonrtric.git Removed pmlog from this repo It is moved to an another repo, nonrtric/plt/ranpm Signed-off-by: PatrikBuhr Issue-ID: NONRTRIC-840 Change-Id: I737283673aebb1685f36ad9c7b058baa5cb9a262 --- diff --git a/pmlog/Dockerfile b/pmlog/Dockerfile deleted file mode 100644 index c1d6be50..00000000 --- a/pmlog/Dockerfile +++ /dev/null @@ -1,51 +0,0 @@ -# -# ============LICENSE_START======================================================= -# O-RAN-SC -# ================================================================================ -# Copyright (C) 2023 Nordix Foundation. All rights reserved. -# ================================================================================ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# SPDX-License-Identifier: Apache-2.0 -# ============LICENSE_END========================================================= - - -FROM openjdk:17-jdk-slim - -EXPOSE 8084 8435 - -ARG JAR - -WORKDIR /opt/app/pmlog-service -RUN mkdir -p /var/log/pmlog-service -RUN mkdir -p /opt/app/pmlog-service/etc/cert/ -RUN mkdir -p /var/pmlog-service - -ADD /config/application.yaml /opt/app/pmlog-service/config/application.yaml -ADD /config/jobDefinition.json /opt/app/pmlog-service/config/jobDefinition.json -ADD /config/keystore.jks /opt/app/pmlog-service/etc/cert/keystore.jks -ADD /config/truststore.jks /opt/app/pmlog-service/etc/cert/truststore.jks - -ARG user=nonrtric -ARG group=nonrtric - -RUN groupadd $user && \ - useradd -r -g $group $user -RUN chown -R $user:$group /opt/app/pmlog-service -RUN chown -R $user:$group /var/log/pmlog-service -RUN chown -R $user:$group /var/pmlog-service - -USER ${user} - -ADD target/${JAR} /opt/app/pmlog-service/pmlog.jar -CMD ["java", "-jar", "/opt/app/pmlog-service/pmlog.jar"] diff --git a/pmlog/INFO.yaml b/pmlog/INFO.yaml deleted file mode 100644 index b2dfb2b9..00000000 --- a/pmlog/INFO.yaml +++ /dev/null @@ -1,55 +0,0 @@ ---- -project: "nonrtric_plt_pmlog" -project_creation_date: "2022-02-01" -project_category: "" -lifecycle_state: "Incubation" -project_lead: &oran_nonrtric_ptl - name: "John Keeney" - email: "John.Keeney@est.tech" - id: "johnkeeney" - company: "Ericsson Software Technology" - timezone: "Europe/Dublin" -primary_contact: *oran_nonrtric_ptl -issue_tracking: - type: "jira" - url: "https://jira.o-ran-sc.org/projects/NONRTRIC" - key: "NONRTRIC" -mailing_list: - type: "groups.io" - url: "https://lists.o-ran-sc.org/g/discuss" -realtime_discussion: - type: "irc" - server: "freenode.net" - channel: "#o-ran-sc" -meetings: - - type: "zoom" - agenda: "" - url: "https://wiki.o-ran-sc.org/display/RICNR/Meetings" - server: "n/a" - channel: "n/a" - repeats: "weekly" - time: "Wednesdays, 16:00/17:00 UTC" -repositories: - - "nonrtric/plt/pmlog" -committers: - - <<: *oran_nonrtric_ptl - - name: "Henrik Andersson" - email: "henrik.b.andersson@est.tech" - company: "Ericsson Software Technology" - id: "elinuxhenrik" - timezone: "Sweden/Stockholm" - - name: "Patrik Buhr" - email: "patrik.buhr@est.tech" - company: "Ericsson Software Technology" - id: "PatrikBuhr" - timezone: "Sweden/Stockholm" - - name: "Bjorn Magnusson" - email: "bjorn.magnusson@est.tech" - company: "Ericsson Software Technology" - id: "BjornMagnussonXA" - timezone: "Sweden/Stockholm" -tsc: - # yamllint disable-line rule:line-length - approval: - "https://wiki.o-ran-sc.org/display/TOC#ORANSCTechnicalOversightCommittee(TOC)-20220126 - sect.5.a-o" diff --git a/pmlog/LICENSE.txt b/pmlog/LICENSE.txt deleted file mode 100644 index 96589bff..00000000 --- a/pmlog/LICENSE.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/pmlog/README.md b/pmlog/README.md deleted file mode 100644 index 30404ce4..00000000 --- a/pmlog/README.md +++ /dev/null @@ -1 +0,0 @@ -TODO \ No newline at end of file diff --git a/pmlog/api/pmlog-api.json b/pmlog/api/pmlog-api.json deleted file mode 100644 index 4ad7230b..00000000 --- a/pmlog/api/pmlog-api.json +++ /dev/null @@ -1,255 +0,0 @@ -{ - "components": {"schemas": {"Link": { - "type": "object", - "properties": { - "templated": {"type": "boolean"}, - "href": {"type": "string"} - } - }}}, - "openapi": "3.0.1", - "paths": { - "/actuator/threaddump": {"get": { - "summary": "Actuator web endpoint 'threaddump'", - "operationId": "threaddump", - "responses": {"200": { - "description": "OK", - "content": { - "text/plain;charset=UTF-8": {"schema": {"type": "object"}}, - "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}}, - "application/json": {"schema": {"type": "object"}}, - "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}} - } - }}, - "tags": ["Actuator"] - }}, - "/actuator/info": {"get": { - "summary": "Actuator web endpoint 'info'", - "operationId": "info", - "responses": {"200": { - "description": "OK", - "content": { - "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}}, - "application/json": {"schema": {"type": "object"}}, - "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}} - } - }}, - "tags": ["Actuator"] - }}, - "/actuator/loggers": {"get": { - "summary": "Actuator web endpoint 'loggers'", - "operationId": "loggers", - "responses": {"200": { - "description": "OK", - "content": { - "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}}, - "application/json": {"schema": {"type": "object"}}, - "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}} - } - }}, - "tags": ["Actuator"] - }}, - "/actuator/health/**": {"get": { - "summary": "Actuator web endpoint 'health-path'", - "operationId": "health-path", - "responses": {"200": { - "description": "OK", - "content": { - "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}}, - "application/json": {"schema": {"type": "object"}}, - "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}} - } - }}, - "tags": ["Actuator"] - }}, - "/actuator/shutdown": {"post": { - "summary": "Actuator web endpoint 'shutdown'", - "operationId": "shutdown", - "responses": {"200": { - "description": "OK", - "content": { - "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}}, - "application/json": {"schema": {"type": "object"}}, - "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}} - } - }}, - "tags": ["Actuator"] - }}, - "/actuator/metrics/{requiredMetricName}": {"get": { - "summary": "Actuator web endpoint 'metrics-requiredMetricName'", - "operationId": "metrics-requiredMetricName", - "responses": {"200": { - "description": "OK", - "content": { - "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}}, - "application/json": {"schema": {"type": "object"}}, - "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}} - } - }}, - "parameters": [{ - "schema": {"type": "string"}, - "in": "path", - "name": "requiredMetricName", - "required": true - }], - "tags": ["Actuator"] - }}, - "/actuator": {"get": { - "summary": "Actuator root web endpoint", - "operationId": "links", - "responses": {"200": { - "description": "OK", - "content": { - "application/vnd.spring-boot.actuator.v3+json": {"schema": { - "additionalProperties": { - "additionalProperties": {"$ref": "#/components/schemas/Link"}, - "type": "object" - }, - "type": "object" - }}, - "application/json": {"schema": { - "additionalProperties": { - "additionalProperties": {"$ref": "#/components/schemas/Link"}, - "type": "object" - }, - "type": "object" - }}, - "application/vnd.spring-boot.actuator.v2+json": {"schema": { - "additionalProperties": { - "additionalProperties": {"$ref": "#/components/schemas/Link"}, - "type": "object" - }, - "type": "object" - }} - } - }}, - "tags": ["Actuator"] - }}, - "/actuator/logfile": {"get": { - "summary": "Actuator web endpoint 'logfile'", - "operationId": "logfile", - "responses": {"200": { - "description": "OK", - "content": {"text/plain;charset=UTF-8": {"schema": {"type": "object"}}} - }}, - "tags": ["Actuator"] - }}, - "/data-consumer/v1/info-jobs/{infoJobId}": {"put": { - "requestBody": { - "content": {"application/json": {"schema": {"type": "string"}}}, - "required": true - }, - "operationId": "putIndividualInfoJob", - "responses": {"200": { - "description": "OK", - "content": {"application/json": {"schema": {"type": "object"}}} - }}, - "parameters": [{ - "schema": {"type": "string"}, - "in": "path", - "name": "infoJobId", - "required": true - }], - "tags": ["Information Coordinator Service Simulator (exists only in test)"] - }}, - "/actuator/loggers/{name}": { - "post": { - "summary": "Actuator web endpoint 'loggers-name'", - "requestBody": {"content": {"application/json": {"schema": { - "type": "string", - "enum": [ - "TRACE", - "DEBUG", - "INFO", - "WARN", - "ERROR", - "FATAL", - "OFF" - ] - }}}}, - "operationId": "loggers-name_2", - "responses": {"200": { - "description": "OK", - "content": {"*/*": {"schema": {"type": "object"}}} - }}, - "parameters": [{ - "schema": {"type": "string"}, - "in": "path", - "name": "name", - "required": true - }], - "tags": ["Actuator"] - }, - "get": { - "summary": "Actuator web endpoint 'loggers-name'", - "operationId": "loggers-name", - "responses": {"200": { - "description": "OK", - "content": { - "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}}, - "application/json": {"schema": {"type": "object"}}, - "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}} - } - }}, - "parameters": [{ - "schema": {"type": "string"}, - "in": "path", - "name": "name", - "required": true - }], - "tags": ["Actuator"] - } - }, - "/actuator/health": {"get": { - "summary": "Actuator web endpoint 'health'", - "operationId": "health", - "responses": {"200": { - "description": "OK", - "content": { - "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}}, - "application/json": {"schema": {"type": "object"}}, - "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}} - } - }}, - "tags": ["Actuator"] - }}, - "/actuator/metrics": {"get": { - "summary": "Actuator web endpoint 'metrics'", - "operationId": "metrics", - "responses": {"200": { - "description": "OK", - "content": { - "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}}, - "application/json": {"schema": {"type": "object"}}, - "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}} - } - }}, - "tags": ["Actuator"] - }}, - "/actuator/heapdump": {"get": { - "summary": "Actuator web endpoint 'heapdump'", - "operationId": "heapdump", - "responses": {"200": { - "description": "OK", - "content": {"application/octet-stream": {"schema": {"type": "object"}}} - }}, - "tags": ["Actuator"] - }} - }, - "info": { - "license": { - "name": "Copyright (C) 2023 Nordix Foundation. Licensed under the Apache License.", - "url": "http://www.apache.org/licenses/LICENSE-2.0" - }, - "description": "Receives PM reports from a Kafka topic and writes the PM counters into an Influx database.", - "title": "PM Logger", - "version": "1.0" - }, - "tags": [{ - "name": "Actuator", - "description": "Monitor and interact", - "externalDocs": { - "description": "Spring Boot Actuator Web API Documentation", - "url": "https://docs.spring.io/spring-boot/docs/current/actuator-api/html/" - } - }] -} \ No newline at end of file diff --git a/pmlog/api/pmlog-api.yaml b/pmlog/api/pmlog-api.yaml deleted file mode 100644 index 638f2bb5..00000000 --- a/pmlog/api/pmlog-api.yaml +++ /dev/null @@ -1,333 +0,0 @@ -openapi: 3.0.1 -info: - title: PM Logger - description: Receives PM reports from a Kafka topic and writes the PM counters into - an Influx database. - license: - name: Copyright (C) 2023 Nordix Foundation. Licensed under the Apache License. - url: http://www.apache.org/licenses/LICENSE-2.0 - version: "1.0" -servers: -- url: / -tags: -- name: Actuator - description: Monitor and interact - externalDocs: - description: Spring Boot Actuator Web API Documentation - url: https://docs.spring.io/spring-boot/docs/current/actuator-api/html/ -paths: - /actuator/threaddump: - get: - tags: - - Actuator - summary: Actuator web endpoint 'threaddump' - operationId: threaddump - responses: - 200: - description: OK - content: - text/plain;charset=UTF-8: - schema: - type: object - application/vnd.spring-boot.actuator.v3+json: - schema: - type: object - application/json: - schema: - type: object - application/vnd.spring-boot.actuator.v2+json: - schema: - type: object - /actuator/info: - get: - tags: - - Actuator - summary: Actuator web endpoint 'info' - operationId: info - responses: - 200: - description: OK - content: - application/vnd.spring-boot.actuator.v3+json: - schema: - type: object - application/json: - schema: - type: object - application/vnd.spring-boot.actuator.v2+json: - schema: - type: object - /actuator/loggers: - get: - tags: - - Actuator - summary: Actuator web endpoint 'loggers' - operationId: loggers - responses: - 200: - description: OK - content: - application/vnd.spring-boot.actuator.v3+json: - schema: - type: object - application/json: - schema: - type: object - application/vnd.spring-boot.actuator.v2+json: - schema: - type: object - /actuator/health/**: - get: - tags: - - Actuator - summary: Actuator web endpoint 'health-path' - operationId: health-path - responses: - 200: - description: OK - content: - application/vnd.spring-boot.actuator.v3+json: - schema: - type: object - application/json: - schema: - type: object - application/vnd.spring-boot.actuator.v2+json: - schema: - type: object - /actuator/shutdown: - post: - tags: - - Actuator - summary: Actuator web endpoint 'shutdown' - operationId: shutdown - responses: - 200: - description: OK - content: - application/vnd.spring-boot.actuator.v3+json: - schema: - type: object - application/json: - schema: - type: object - application/vnd.spring-boot.actuator.v2+json: - schema: - type: object - /actuator/metrics/{requiredMetricName}: - get: - tags: - - Actuator - summary: Actuator web endpoint 'metrics-requiredMetricName' - operationId: metrics-requiredMetricName - parameters: - - name: requiredMetricName - in: path - required: true - style: simple - explode: false - schema: - type: string - responses: - 200: - description: OK - content: - application/vnd.spring-boot.actuator.v3+json: - schema: - type: object - application/json: - schema: - type: object - application/vnd.spring-boot.actuator.v2+json: - schema: - type: object - /actuator: - get: - tags: - - Actuator - summary: Actuator root web endpoint - operationId: links - responses: - 200: - description: OK - content: - application/vnd.spring-boot.actuator.v3+json: - schema: - type: object - additionalProperties: - type: object - additionalProperties: - $ref: '#/components/schemas/Link' - application/json: - schema: - type: object - additionalProperties: - type: object - additionalProperties: - $ref: '#/components/schemas/Link' - application/vnd.spring-boot.actuator.v2+json: - schema: - type: object - additionalProperties: - type: object - additionalProperties: - $ref: '#/components/schemas/Link' - /actuator/logfile: - get: - tags: - - Actuator - summary: Actuator web endpoint 'logfile' - operationId: logfile - responses: - 200: - description: OK - content: - text/plain;charset=UTF-8: - schema: - type: object - /data-consumer/v1/info-jobs/{infoJobId}: - put: - tags: - - Information Coordinator Service Simulator (exists only in test) - operationId: putIndividualInfoJob - parameters: - - name: infoJobId - in: path - required: true - style: simple - explode: false - schema: - type: string - requestBody: - content: - application/json: - schema: - type: string - required: true - responses: - 200: - description: OK - content: - application/json: - schema: - type: object - /actuator/loggers/{name}: - get: - tags: - - Actuator - summary: Actuator web endpoint 'loggers-name' - operationId: loggers-name - parameters: - - name: name - in: path - required: true - style: simple - explode: false - schema: - type: string - responses: - 200: - description: OK - content: - application/vnd.spring-boot.actuator.v3+json: - schema: - type: object - application/json: - schema: - type: object - application/vnd.spring-boot.actuator.v2+json: - schema: - type: object - post: - tags: - - Actuator - summary: Actuator web endpoint 'loggers-name' - operationId: loggers-name_2 - parameters: - - name: name - in: path - required: true - style: simple - explode: false - schema: - type: string - requestBody: - content: - application/json: - schema: - type: string - enum: - - TRACE - - DEBUG - - INFO - - WARN - - ERROR - - FATAL - - OFF - responses: - 200: - description: OK - content: - '*/*': - schema: - type: object - /actuator/health: - get: - tags: - - Actuator - summary: Actuator web endpoint 'health' - operationId: health - responses: - 200: - description: OK - content: - application/vnd.spring-boot.actuator.v3+json: - schema: - type: object - application/json: - schema: - type: object - application/vnd.spring-boot.actuator.v2+json: - schema: - type: object - /actuator/metrics: - get: - tags: - - Actuator - summary: Actuator web endpoint 'metrics' - operationId: metrics - responses: - 200: - description: OK - content: - application/vnd.spring-boot.actuator.v3+json: - schema: - type: object - application/json: - schema: - type: object - application/vnd.spring-boot.actuator.v2+json: - schema: - type: object - /actuator/heapdump: - get: - tags: - - Actuator - summary: Actuator web endpoint 'heapdump' - operationId: heapdump - responses: - 200: - description: OK - content: - application/octet-stream: - schema: - type: object -components: - schemas: - Link: - type: object - properties: - templated: - type: boolean - href: - type: string diff --git a/pmlog/config/README b/pmlog/config/README deleted file mode 100644 index 46f0c4ae..00000000 --- a/pmlog/config/README +++ /dev/null @@ -1,43 +0,0 @@ -The keystore.jks and truststore.jks files are created by using the following commands (note that this is an example): - -1) Create a CA certificate and a private key: - -openssl genrsa -des3 -out CA-key.pem 2048 -openssl req -new -key CA-key.pem -x509 -days 3600 -out CA-cert.pem - -2) Create a keystore with a private key entry that is signed by the CA: - -Note: your name must be "localhost" for the unittest. - -keytool -genkeypair -alias policy_agent -keyalg RSA -keysize 2048 -keystore keystore.jks -validity 3650 -storepass policy_agent -keytool -certreq -alias policy_agent -file request.csr -keystore keystore.jks -ext san=dns:your.domain.com -storepass policy_agent -openssl x509 -req -days 365 -in request.csr -CA CA-cert.pem -CAkey CA-key.pem -CAcreateserial -out ca_signed-cert.pem -keytool -importcert -alias ca_cert -file CA-cert.pem -keystore keystore.jks -trustcacerts -storepass policy_agent -keytool -importcert -alias policy_agent -file ca_signed-cert.pem -keystore keystore.jks -trustcacerts -storepass policy_agent - - -3) Create a trust store containing the CA cert (to trust all certs signed by the CA): - -keytool -genkeypair -alias not_used -keyalg RSA -keysize 2048 -keystore truststore.jks -validity 3650 -storepass policy_agent -keytool -importcert -alias ca_cert -file CA-cert.pem -keystore truststore.jks -trustcacerts -storepass policy_agent - - -4) Command for listing of the contents of jks files, examples: -keytool -list -v -keystore keystore.jks -storepass policy_agent -keytool -list -v -keystore truststore.jks -storepass policy_agent - -## License - -Copyright (C) 2022 Nordix Foundation. All rights reserved. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - diff --git a/pmlog/config/application.yaml b/pmlog/config/application.yaml deleted file mode 100644 index 8c82f93a..00000000 --- a/pmlog/config/application.yaml +++ /dev/null @@ -1,99 +0,0 @@ -# ============LICENSE_START=============================================== -# Copyright (C) 2023-2022 Nordix Foundation. All rights reserved. -# ======================================================================== -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ============LICENSE_END================================================= -# - -spring: - profiles: - active: prod - main: - allow-bean-definition-overriding: true - aop: - auto: false -management: - endpoints: - web: - exposure: - # Enabling of springboot actuator features. See springboot documentation. - include: "loggers,logfile,health,info,metrics,threaddump,heapdump,shutdown" - endpoint: - shutdown: - enabled: true -lifecycle: - timeout-per-shutdown-phase: "20s" -springdoc: - show-actuator: true -logging: - # Configuration of logging - level: - ROOT: WARN - org.apache.kafka: WARN - org.springframework: ERROR - org.springframework.data: ERROR - org.springframework.web.reactive.function.client.ExchangeFunctions: ERROR - org.oran.pmlog: INFO - pattern: - console: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %logger{20} - %msg%n" - file: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %logger{20} - %msg%n" - - file: - name: /var/log/pmlog-service/application.log -server: - # Configuration of the HTTP/REST server. The parameters are defined and handeled by the springboot framework. - # See springboot documentation. - port : 8436 - http-port: 8084 - ssl: - key-store-type: JKS - key-store-password: policy_agent - key-store: /opt/app/pmlog-service/etc/cert/keystore.jks - key-password: policy_agent - key-alias: policy_agent - shutdown: "graceful" -app: - webclient: - # Configuration of the trust store used for the HTTP client (outgoing requests) - # The file location and the password for the truststore is only relevant if trust-store-used == true - # Note that the same keystore as for the server is used. - trust-store-used: false - trust-store-password: policy_agent - trust-store: /opt/app/pmlog-service/etc/cert/truststore.jks - # Configuration of usage of HTTP Proxy for the southbound accesses. - # The HTTP proxy (if configured) will only be used for accessing NearRT RIC:s - http.proxy-host: - http.proxy-port: 0 - kafka: - # KAFKA boostrap servers. - # several redundant boostrap servers can be specified, separated by a comma ','. - # bootstrap-servers and input-topic is overriden if defined in deliveryInfo in config/jobDefinition.json - bootstrap-servers: localhost:9092 - input-topic: - # The maximum number of records returned in a single call to poll() (default 100) - max-poll-records: 500 - group-id: kafkaGroupId - client-id: kafkaClientId - influx: - url: http://localhost:8086 - access-token: xmrt1YobMTl-Nx-a8iiO6fC8xJc5BvKZLSU8U18VfAYza4N0YHTFrLy15W4Ss2bxXhgX95qagxsBJ0GCBSFveQ== - bucket: pm_data - org: est - # The user, password and database can be blank if the access-token is defined - user: admin - password: adminadmin - database: pm_data - ics-base-url: https://localhost:8434 - consumer-job-id: "pmlog" - - diff --git a/pmlog/config/jobDefinition.json b/pmlog/config/jobDefinition.json deleted file mode 100644 index bfe30905..00000000 --- a/pmlog/config/jobDefinition.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "info_type_id": "PmDataOverKafka", - "job_owner": "owner", - "job_result_uri": "", - "job_definition": { - "filterType": "pmdata", - "filter": { - "sourceNames": [], - "measObjInstIds": [], - "measTypeSpecs": [], - "measuredEntityDns": [] - }, - "deliveryInfo": { - "topic": "pmreports", - "bootStrapServers": "localhost:9092" - } - } -} \ No newline at end of file diff --git a/pmlog/config/keystore.jks b/pmlog/config/keystore.jks deleted file mode 100644 index 563c67b3..00000000 Binary files a/pmlog/config/keystore.jks and /dev/null differ diff --git a/pmlog/config/truststore.jks b/pmlog/config/truststore.jks deleted file mode 100644 index 50a0f9e9..00000000 Binary files a/pmlog/config/truststore.jks and /dev/null differ diff --git a/pmlog/eclipse-formatter.xml b/pmlog/eclipse-formatter.xml deleted file mode 100644 index b2e86eb5..00000000 --- a/pmlog/eclipse-formatter.xml +++ /dev/null @@ -1,362 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/pmlog/pom.xml b/pmlog/pom.xml deleted file mode 100644 index 89f9902e..00000000 --- a/pmlog/pom.xml +++ /dev/null @@ -1,363 +0,0 @@ - - - - 4.0.0 - - org.springframework.boot - spring-boot-starter-parent - 3.0.3 - - - org.o-ran-sc.nonrtric.plt - pmlog - 1.0.0-SNAPSHOT - - - The Apache Software License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - - - - - onap-releases - onap-releases - https://nexus.onap.org/content/repositories/releases/ - - - - 17 - 2.9.0 - 20211205 - 3.8.0 - 2.12.2 - 1.24.3 - 0.30.0 - 3.7.0.1746 - 0.8.8 - 3.0.11 - 2.0.2 - true - - - - org.springdoc - springdoc-openapi-starter-webmvc-ui - ${springdoc.version} - - - org.springdoc - springdoc-openapi-ui - ${springdoc.version} - - - com.influxdb - influxdb-client-java - 6.3.0 - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-thymeleaf - - - org.springframework.boot - spring-boot-starter-webflux - - - org.springframework - spring-webflux - - - com.google.code.gson - gson - - - org.projectlombok - lombok - provided - - - - org.springframework.boot - spring-boot-starter-actuator - - - - org.springframework.boot - spring-boot-devtools - true - - - org.springframework.boot - spring-boot-configuration-processor - true - - - - - org.springdoc - springdoc-openapi-ui - 1.6.3 - test - - - com.github.erosb - everit-json-schema - 1.12.1 - test - - - com.schibsted.spt.data - jslt - 0.1.11 - - - com.jayway.jsonpath - json-path - 2.7.0 - - - org.springframework.boot - spring-boot-starter-test - test - - - org.awaitility - awaitility - test - - - io.projectreactor - reactor-test - test - - - org.junit.jupiter - junit-jupiter-engine - test - - - org.mockito - mockito-junit-jupiter - test - - - org.mockito - mockito-core - test - - - io.projectreactor.kafka - reactor-kafka - 1.3.13 - - - com.google.guava - guava - 31.0.1-jre - - - software.amazon.awssdk - s3 - 2.17.292 - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - net.revelc.code.formatter - formatter-maven-plugin - ${formatter-maven-plugin.version} - - ${project.basedir}/eclipse-formatter.xml - - - - - com.diffplug.spotless - spotless-maven-plugin - ${spotless-maven-plugin.version} - - - - - com,java,javax,org - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - false - - - - maven-failsafe-plugin - - - org.codehaus.mojo - build-helper-maven-plugin - - - add-source - generate-sources - - add-source - - - - ${project.build.directory}/generated-sources/annotations/ - - - - - - - org.jacoco - jacoco-maven-plugin - ${jacoco-maven-plugin.version} - - - default-prepare-agent - - prepare-agent - - - - default-report - prepare-package - - report - - - - - - io.fabric8 - docker-maven-plugin - ${docker-maven-plugin} - false - - - generate-nonrtric-plt-pmlog-image - package - - build - - - ${env.CONTAINER_PULL_REGISTRY} - - - o-ran-sc/nonrtric-plt-pmlog:${project.version} - - try - ${basedir} - Dockerfile - - ${project.build.finalName}.jar - - - ${project.version} - - - - - - - - push-nonrtric-plt-pmlog-image - - build - push - - - ${env.CONTAINER_PULL_REGISTRY} - ${env.CONTAINER_PUSH_REGISTRY} - - - o-ran-sc/nonrtric-plt-pmlog:${project.version} - - ${basedir} - Dockerfile - - ${project.build.finalName}.jar - - - ${project.version} - latest - - - - - - - - - - - org.sonarsource.scanner.maven - sonar-maven-plugin - ${sonar-maven-plugin.version} - - - io.swagger.codegen.v3 - swagger-codegen-maven-plugin - ${swagger-codegen-maven-plugin.version} - - - test - - generate - - - ${project.basedir}/api/pmlog-api.json - openapi-yaml - ${project.basedir}/api - - pmlog-api.yaml - - - - - - - - - JIRA - https://jira.o-ran-sc.org/ - - \ No newline at end of file diff --git a/pmlog/src/main/java/org/oran/pmlog/Application.java b/pmlog/src/main/java/org/oran/pmlog/Application.java deleted file mode 100644 index 65c48d2e..00000000 --- a/pmlog/src/main/java/org/oran/pmlog/Application.java +++ /dev/null @@ -1,48 +0,0 @@ -/*- - * ========================LICENSE_START================================= - * O-RAN-SC - * %% - * Copyright (C) 2023 Nordix Foundation - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================LICENSE_END=================================== - */ - -package org.oran.pmlog; - - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.ConfigurableApplicationContext; - -@SpringBootApplication -public class Application { - - private static final Logger logger = LoggerFactory.getLogger(Application.class); - private static ConfigurableApplicationContext applicationContext; - - public static void main(String[] args) { - applicationContext = SpringApplication.run(Application.class); - Runtime.getRuntime().addShutdownHook(new Thread() { - @Override - public void run() { - logger.warn("Shutting down, received signal SIGTERM"); - SpringApplication.exit(applicationContext); - applicationContext = null; - } - }); - } - -} diff --git a/pmlog/src/main/java/org/oran/pmlog/BeanFactory.java b/pmlog/src/main/java/org/oran/pmlog/BeanFactory.java deleted file mode 100644 index e04e44e0..00000000 --- a/pmlog/src/main/java/org/oran/pmlog/BeanFactory.java +++ /dev/null @@ -1,73 +0,0 @@ -/*- - * ========================LICENSE_START================================= - * O-RAN-SC - * %% - * Copyright (C) 2023 Nordix Foundation - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================LICENSE_END=================================== - */ - -package org.oran.pmlog; - -import org.apache.catalina.connector.Connector; -import org.oran.pmlog.configuration.ApplicationConfig; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; -import org.springframework.boot.web.servlet.server.ServletWebServerFactory; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -@Configuration -public class BeanFactory { - - @Value("${server.http-port}") - private int httpPort = 0; - - @Bean - public ApplicationConfig getApplicationConfig() { - return new ApplicationConfig(); - } - - @Bean - public ServletWebServerFactory servletContainer() { - TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory(); - if (httpPort > 0) { - tomcat.addAdditionalTomcatConnectors(getHttpConnector(httpPort)); - } - return tomcat; - } - - private static Connector getHttpConnector(int httpPort) { - Connector connector = new Connector(TomcatServletWebServerFactory.DEFAULT_PROTOCOL); - connector.setScheme("http"); - connector.setPort(httpPort); - connector.setSecure(false); - return connector; - } - - @Bean - public KafkaTopicListener getKafkaTopicListener(@Autowired ApplicationConfig appConfig) { - return new KafkaTopicListener(appConfig); - } - - @Bean - public InfluxStore getInfluxStore(@Autowired ApplicationConfig appConfig, @Autowired KafkaTopicListener listener) { - - InfluxStore distr = new InfluxStore(appConfig); - distr.start(listener.getFlux()); - return distr; - } - -} diff --git a/pmlog/src/main/java/org/oran/pmlog/ConsumerRegstrationTask.java b/pmlog/src/main/java/org/oran/pmlog/ConsumerRegstrationTask.java deleted file mode 100644 index 573b2c3b..00000000 --- a/pmlog/src/main/java/org/oran/pmlog/ConsumerRegstrationTask.java +++ /dev/null @@ -1,110 +0,0 @@ -/*- - * ========================LICENSE_START================================= - * O-RAN-SC - * %% - * Copyright (C) 2023 Nordix Foundation - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================LICENSE_END=================================== - */ - -package org.oran.pmlog; - -import java.time.Duration; - -import lombok.Getter; - -import org.oran.pmlog.clients.AsyncRestClient; -import org.oran.pmlog.clients.AsyncRestClientFactory; -import org.oran.pmlog.clients.SecurityContext; -import org.oran.pmlog.configuration.ApplicationConfig; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Component; - -import reactor.core.publisher.Mono; -import reactor.util.retry.Retry; - -/** - * Registers the types and this producer in Innformation Coordinator Service. - * This is done when needed. - */ -@Component -@SuppressWarnings("squid:S2629") // Invoke method(s) only conditionally -public class ConsumerRegstrationTask { - - private static final Logger logger = LoggerFactory.getLogger(ConsumerRegstrationTask.class); - private final AsyncRestClient restClient; - private final ApplicationConfig applicationConfig; - - private static com.google.gson.Gson gson = new com.google.gson.GsonBuilder() // - .disableHtmlEscaping() // - .excludeFieldsWithoutExposeAnnotation() // - .create(); - - @Getter - private boolean isRegisteredInIcs = false; - - public ConsumerRegstrationTask(@Autowired ApplicationConfig applicationConfig, - @Autowired SecurityContext securityContext) { - AsyncRestClientFactory restClientFactory = - new AsyncRestClientFactory(applicationConfig.getWebClientConfig(), securityContext); - this.restClient = restClientFactory.createRestClientNoHttpProxy(""); - this.applicationConfig = applicationConfig; - - if (this.applicationConfig.getIcsBaseUrl().isEmpty()) { - logger.info("Skipping createtion of info job. app.ics-base-url is empty."); - } else { - createSubscription(); - } - } - - private void createSubscription() { - putInfoJob() // - .doOnError(this::handleRegistrationFailure) - .retryWhen(Retry.fixedDelay(100, Duration.ofMillis(5 * 1000))) // - .subscribe( // - null, // - this::handleRegistrationFailure, // - this::handleRegistrationCompleted); - } - - private void handleRegistrationCompleted() { - logger.info("Registration of subscription/info job succeeded"); - isRegisteredInIcs = true; - } - - private void handleRegistrationFailure(Throwable t) { - logger.warn("Creation of subscription/info job failed {}", t.getMessage()); - } - - private Mono> putInfoJob() { - try { - String jobId = this.applicationConfig.getConsumerJobId(); - - if (jobId.isBlank()) { - logger.info("Skipping creation of infojob. job_id is empty."); - return Mono.empty(); - } - String url = applicationConfig.getIcsBaseUrl() + "/data-consumer/v1/info-jobs/" + jobId; - String body = this.applicationConfig.getConsumerJobInfo(); - return restClient.putForEntity(url, body); - } catch (Exception e) { - logger.error("Registration of subscription failed {}", e.getMessage()); - return Mono.error(e); - } - } - -} diff --git a/pmlog/src/main/java/org/oran/pmlog/DataFromKafkaTopic.java b/pmlog/src/main/java/org/oran/pmlog/DataFromKafkaTopic.java deleted file mode 100644 index 2d08cde8..00000000 --- a/pmlog/src/main/java/org/oran/pmlog/DataFromKafkaTopic.java +++ /dev/null @@ -1,97 +0,0 @@ -/*- - * ========================LICENSE_START================================= - * O-RAN-SC - * %% - * Copyright (C) 2023 Nordix Foundation - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================LICENSE_END=================================== - */ - -package org.oran.pmlog; - -import java.io.ByteArrayInputStream; -import java.util.zip.GZIPInputStream; - -import lombok.ToString; - -import org.apache.kafka.common.header.Header; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -@ToString -public class DataFromKafkaTopic { - private final byte[] key; - private final byte[] value; - private String stringValue = null; - private static final Logger logger = LoggerFactory.getLogger(DataFromKafkaTopic.class); - - public final Iterable
headers; - - private static byte[] noBytes = new byte[0]; - - public DataFromKafkaTopic(Iterable
headers, byte[] key, byte[] value) { - this.key = key == null ? noBytes : key; - this.value = value == null ? noBytes : value; - this.headers = headers; - } - - public String valueAsString() { - if (stringValue == null) { - if (isZipped()) { - stringValue = unzip(this.value); - } else { - stringValue = new String(this.value); - } - - } - return this.stringValue; - } - - private String unzip(byte[] bytes) { - try (final GZIPInputStream gzipInput = new GZIPInputStream(new ByteArrayInputStream(bytes))) { - return new String(gzipInput.readAllBytes()); - } catch (Exception e) { - logger.error("Could not unzip received info, reason: {}, typeId: {}", e.getMessage(), - getTypeIdFromHeaders()); - return ""; - } - } - - public static final String ZIPPED_PROPERTY = "gzip"; - public static final String TYPE_ID_PROPERTY = "type-id"; - - public boolean isZipped() { - if (headers == null) { - return false; - } - for (Header h : headers) { - if (h.key().equals(ZIPPED_PROPERTY)) { - return true; - } - } - return false; - } - - public String getTypeIdFromHeaders() { - if (headers == null) { - return ""; - } - for (Header h : headers) { - if (h.key().equals(TYPE_ID_PROPERTY)) { - return new String(h.value()); - } - } - return ""; - } -} diff --git a/pmlog/src/main/java/org/oran/pmlog/InfluxStore.java b/pmlog/src/main/java/org/oran/pmlog/InfluxStore.java deleted file mode 100644 index ba9f21ca..00000000 --- a/pmlog/src/main/java/org/oran/pmlog/InfluxStore.java +++ /dev/null @@ -1,186 +0,0 @@ -/*- - * ========================LICENSE_START================================= - * O-RAN-SC - * %% - * Copyright (C) 2023 Nordix Foundation - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================LICENSE_END=================================== - */ - -package org.oran.pmlog; - -import com.influxdb.client.InfluxDBClient; -import com.influxdb.client.InfluxDBClientFactory; -import com.influxdb.client.WriteApiBlocking; -import com.influxdb.client.domain.Ready; -import com.influxdb.client.domain.WritePrecision; -import com.influxdb.client.write.Point; - -import java.time.Instant; -import java.util.ArrayList; -import java.util.List; - -import lombok.Getter; - -import org.oran.pmlog.configuration.ApplicationConfig; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import reactor.core.Disposable; -import reactor.core.publisher.Flux; -import reactor.core.publisher.Mono; - -/** - * The class receives PM reports and stores these in an Influx DB - */ -@SuppressWarnings("squid:S2629") // Invoke method(s) only conditionally -public class InfluxStore { - private static final Logger logger = LoggerFactory.getLogger(InfluxStore.class); - - @Getter - private Disposable subscription; - - private static com.google.gson.Gson gson = new com.google.gson.GsonBuilder().disableHtmlEscaping().create(); - private final ApplicationConfig applConfig; - - private final InfluxDBClient influxClient; - - public InfluxStore(ApplicationConfig applConfig) { - this.applConfig = applConfig; - this.influxClient = createInfluxClient(); - - pingDb(); - } - - private void pingDb() { - try { - String version = this.influxClient.version(); - logger.info("Influx version {} ", version); - Ready ready = this.influxClient.ready(); - logger.info("Ready {}", ready); - logger.info("Onboarding {}", this.influxClient.isOnboardingAllowed()); - } catch (Exception e) { - logger.error("Could not connect to influx DB, reason: {}", e.getMessage()); - } - } - - private InfluxDBClient createInfluxClient() { - try { - // org = est bucket = pm_data - String token = applConfig.getInfluxAccessToken(); - if (!token.isBlank()) { - return InfluxDBClientFactory.create(applConfig.getInfluxUrl(), token.toCharArray()); - } else { - return InfluxDBClientFactory.createV1(applConfig.getInfluxUrl(), // - applConfig.getInfluxUser(), applConfig.getInfluxPassword().toCharArray(), // - applConfig.getInfluxDatabase(), // - null); - } - } catch (Exception e) { - logger.error("Exception,could not create influx client {}", e.getMessage()); - return null; - } - } - - public void start(Flux input) { - this.subscription = input.flatMap(this::storeInInflux) // - .subscribe(this::handleSentOk, // - this::handleExceptionInStream, // - () -> stop()); - - } - - private String measType(PmReport.MeasResult measResult, PmReport.MeasInfoList measInfoList) { - return measInfoList.getMeasTypes().getMeasType(measResult.getP()); - } - - private void addCounterFieldToPoint(Point point, PmReport.MeasInfoList measInfoList, - PmReport.MeasValuesList measValueList, PmReport.MeasResult measResult) { - String measType = measType(measResult, measInfoList); - - try { - Long value = Long.valueOf(measResult.getSValue()); - point.addField(measType, value); - } catch (Exception e) { - point.addField(measType, measResult.getSValue()); - } - } - - private Instant endTime(PmReport report) { - return Instant.ofEpochMilli(report.lastTimeEpochMili()); - } - - private Mono storeInInflux(DataFromKafkaTopic data) { - PmReport report = PmReport.parse(data); - - List points = new ArrayList<>(); - PmReport.MeasDataCollection measDataCollection = report.event.getPerf3gppFields().getMeasDataCollection(); - for (PmReport.MeasInfoList measInfoList : measDataCollection.getMeasInfoList()) { - - for (PmReport.MeasValuesList measValueList : measInfoList.getMeasValuesList()) { - if (measValueList.getSuspectFlag().equals("true")) { - continue; - } - Point point = Point.measurement(report.fullDistinguishedName(measValueList)).time(endTime(report), - WritePrecision.MS); - - point.addField("GranularityPeriod", measDataCollection.getGranularityPeriod()); - - for (PmReport.MeasResult measResult : measValueList.getMeasResults()) { - addCounterFieldToPoint(point, measInfoList, measValueList, measResult); - } - points.add(point); - } - } - - store(points, report); - - logger.info("Processed file from: {}", report.event.getCommonEventHeader().getSourceName()); - - return Mono.just("ok"); - - } - - public void store(List points, PmReport report) { - try { - WriteApiBlocking writeApi = influxClient.getWriteApiBlocking(); - writeApi.writePoints(applConfig.getInfluxBucket(), applConfig.getInfluxOrg(), points); - } catch (Exception e) { - logger.error("Could not write points from {}, reason: {}", - report.event.getCommonEventHeader().getSourceName(), e.getMessage()); - } - } - - public synchronized void stop() { - if (this.subscription != null) { - this.subscription.dispose(); - this.subscription = null; - } - logger.info("InfluxStore stopped"); - } - - private void handleExceptionInStream(Throwable t) { - logger.warn(" exception: {}", t.getMessage()); - stop(); - } - - public synchronized boolean isRunning() { - return this.subscription != null; - } - - private void handleSentOk(String data) { - logger.debug("Stored data"); - } - -} diff --git a/pmlog/src/main/java/org/oran/pmlog/KafkaTopicListener.java b/pmlog/src/main/java/org/oran/pmlog/KafkaTopicListener.java deleted file mode 100644 index 390ccaee..00000000 --- a/pmlog/src/main/java/org/oran/pmlog/KafkaTopicListener.java +++ /dev/null @@ -1,97 +0,0 @@ -/*- - * ========================LICENSE_START================================= - * O-RAN-SC - * %% - * Copyright (C) 2023 Nordix Foundation - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================LICENSE_END=================================== - */ - -package org.oran.pmlog; - -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; - -import org.apache.kafka.clients.consumer.ConsumerConfig; -import org.apache.kafka.common.serialization.ByteArrayDeserializer; -import org.oran.pmlog.configuration.ApplicationConfig; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import reactor.core.publisher.Flux; -import reactor.core.publisher.Mono; -import reactor.kafka.receiver.KafkaReceiver; -import reactor.kafka.receiver.ReceiverOptions; - -/** - * The class streams incoming requests from a Kafka topic and sends them further - * to a multi cast sink, which several other streams can connect to. - */ -@SuppressWarnings("squid:S2629") // Invoke method(s) only conditionally -public class KafkaTopicListener { - - private static final Logger logger = LoggerFactory.getLogger(KafkaTopicListener.class); - private final ApplicationConfig applicationConfig; - private Flux dataFromTopic; - private static com.google.gson.Gson gson = new com.google.gson.GsonBuilder().disableHtmlEscaping().create(); - - public KafkaTopicListener(ApplicationConfig applConfig) { - this.applicationConfig = applConfig; - } - - public Flux getFlux() { - if (this.dataFromTopic == null) { - this.dataFromTopic = startReceiveFromTopic(this.applicationConfig.getKafkaClientId()); - } - return this.dataFromTopic; - } - - private Flux startReceiveFromTopic(String clientId) { - logger.debug("Listening to kafka topic: {}", this.applicationConfig.getKafkaInputTopic()); - - return KafkaReceiver.create(kafkaInputProperties(clientId)) // - .receiveAutoAck() // - .concatMap(consumerRecord -> consumerRecord) // - .doOnNext(input -> logger.trace("Received from kafka topic: {}", - this.applicationConfig.getKafkaInputTopic())) // - .doOnError(t -> logger.error("Received error: {}", t.getMessage())) // - .onErrorResume(t -> Mono.empty()) // - .doFinally(sig -> logger.error("KafkaTopicListener stopped, reason: {}", sig)) // - .filter(t -> t.value().length > 0 || t.key().length > 0) // - .map(input -> new DataFromKafkaTopic(input.headers(), input.key(), input.value())) // - .publish() // - .autoConnect(1); - } - - private ReceiverOptions kafkaInputProperties(String clientId) { - Map consumerProps = new HashMap<>(); - if (this.applicationConfig.getKafkaBootStrapServers().isEmpty()) { - logger.error("No kafka boostrap server is setup"); - } - - consumerProps.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, "false"); - consumerProps.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, this.applicationConfig.getKafkaBootStrapServers()); - consumerProps.put(ConsumerConfig.GROUP_ID_CONFIG, applicationConfig.getKafkaGroupId()); - consumerProps.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, ByteArrayDeserializer.class); - consumerProps.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, ByteArrayDeserializer.class); - consumerProps.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, false); - - consumerProps.put(ConsumerConfig.CLIENT_ID_CONFIG, clientId + "_" + applicationConfig.getKafkaGroupId()); - - return ReceiverOptions.create(consumerProps) - .subscription(Collections.singleton(this.applicationConfig.getKafkaInputTopic())); - } - -} diff --git a/pmlog/src/main/java/org/oran/pmlog/PmReport.java b/pmlog/src/main/java/org/oran/pmlog/PmReport.java deleted file mode 100644 index 3b102456..00000000 --- a/pmlog/src/main/java/org/oran/pmlog/PmReport.java +++ /dev/null @@ -1,196 +0,0 @@ -/*- - * ========================LICENSE_START================================= - * O-RAN-SC - * %% - * Copyright (C) 2023 Nordix Foundation - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================LICENSE_END=================================== - */ - -package org.oran.pmlog; - -import com.google.gson.annotations.Expose; - -import java.util.ArrayList; -import java.util.Collection; - -import lombok.Builder; -import lombok.Getter; -import lombok.Setter; - -@Builder(toBuilder = true) -public class PmReport { - - private static com.google.gson.Gson gson = new com.google.gson.GsonBuilder() // - .disableHtmlEscaping() // - .create(); - - public static PmReport parse(DataFromKafkaTopic data) { - return gson.fromJson(data.valueAsString(), PmReport.class); - } - - public long lastTimeEpochMili() { - return event.commonEventHeader.lastEpochMicrosec / 1000; - } - - public String fullDistinguishedName(PmReport.MeasValuesList measValueList) { - return event.getPerf3gppFields().getMeasDataCollection().getMeasuredEntityDn() + "," - + measValueList.getMeasObjInstId(); - } - - @Expose - public Event event; - - public static class CommonEventHeader { - @Expose - private String domain; - - @Expose - private String eventId; - - @Expose - private String eventName; - - @Expose - @Getter - private String sourceName; - - @Expose - private String reportingEntityName; - - @Expose - private long startEpochMicrosec; - - @Expose - @Setter - private long lastEpochMicrosec; - - @Expose - private String timeZoneOffset; - - /* Not reported elements */ - int sequence; - String priority; - String version; - String vesEventListenerVersion; - } - - public static class MeasInfoId { - @Expose - private String sMeasInfoId = ""; - } - - public static class MeasTypes { - public String getMeasType(int pValue) { - if (pValue > sMeasTypesList.size()) { - return "MeasTypeIndexOutOfBounds:" + pValue; - } - return sMeasTypesList.get(pValue - 1); - } - - @Expose - protected ArrayList sMeasTypesList = new ArrayList<>(); - } - - @Getter - @Builder(toBuilder = true) - public static class MeasResult { - @Expose - @Setter - private int p; - - @Expose - @Setter - private String sValue; - } - - @Builder(toBuilder = true) - public static class MeasValuesList { - @Expose - @Getter - private String measObjInstId; - - @Expose - @Getter - private String suspectFlag; - - @Expose - @Getter - private Collection measResults; - - public boolean isEmpty() { - return this.measResults.isEmpty(); - } - - static MeasValuesList emptyList = MeasValuesList.builder().measResults(new ArrayList<>()).build(); - - public static MeasValuesList empty() { - return emptyList; - } - } - - @Getter - @Builder(toBuilder = true) - public static class MeasInfoList { - @Expose - private MeasInfoId measInfoId; - - @Expose - private MeasTypes measTypes; - - @Expose - private Collection measValuesList; - - } - - @Builder(toBuilder = true) - @Getter - public static class MeasDataCollection { - @Expose - private int granularityPeriod; - - @Expose - private String measuredEntityUserName; - - @Expose - private String measuredEntityDn; - - @Expose - private String measuredEntitySoftwareVersion; - - @Expose - private Collection measInfoList; - } - - @Builder(toBuilder = true) - @Getter - public static class Perf3gppFields { - @Expose - private String perf3gppFieldsVersion; - - @Expose - private MeasDataCollection measDataCollection; - } - - @Getter - @Builder(toBuilder = true) - public static class Event { - @Expose - private CommonEventHeader commonEventHeader; - - @Expose - private Perf3gppFields perf3gppFields; - } - -} diff --git a/pmlog/src/main/java/org/oran/pmlog/SwaggerConfig.java b/pmlog/src/main/java/org/oran/pmlog/SwaggerConfig.java deleted file mode 100644 index 3bad66b2..00000000 --- a/pmlog/src/main/java/org/oran/pmlog/SwaggerConfig.java +++ /dev/null @@ -1,44 +0,0 @@ -/*- - * ========================LICENSE_START================================= - * O-RAN-SC - * %% - * Copyright (C) 2023 Nordix Foundation - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================LICENSE_END=================================== - */ - -package org.oran.pmlog; - -import io.swagger.v3.oas.annotations.OpenAPIDefinition; -import io.swagger.v3.oas.annotations.info.Info; -import io.swagger.v3.oas.annotations.info.License; - -/** - * Swagger configuration class that uses swagger documentation type and scans - * all the controllers. To access the swagger gui go to - * http://ip:port/swagger-ui.html - */ -@OpenAPIDefinition( // - info = @Info(title = SwaggerConfig.API_TITLE, // - version = "1.0", // - description = SwaggerConfig.DESCRIPTION, // - license = @License(name = "Copyright (C) 2023 Nordix Foundation. Licensed under the Apache License.", - url = "http://www.apache.org/licenses/LICENSE-2.0"))) -public class SwaggerConfig { - private SwaggerConfig() {} - - static final String API_TITLE = "PM Logger"; - static final String DESCRIPTION = - "Receives PM reports from a Kafka topic and writes the PM counters into an Influx database."; -} diff --git a/pmlog/src/main/java/org/oran/pmlog/clients/AsyncRestClient.java b/pmlog/src/main/java/org/oran/pmlog/clients/AsyncRestClient.java deleted file mode 100644 index 106b68e2..00000000 --- a/pmlog/src/main/java/org/oran/pmlog/clients/AsyncRestClient.java +++ /dev/null @@ -1,222 +0,0 @@ -/*- - * ========================LICENSE_START================================= - * O-RAN-SC - * %% - * Copyright (C) 2022 Nordix Foundation - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================LICENSE_END=================================== - */ - -package org.oran.pmlog.clients; - -import io.netty.channel.ChannelOption; -import io.netty.handler.ssl.SslContext; -import io.netty.handler.timeout.ReadTimeoutHandler; -import io.netty.handler.timeout.WriteTimeoutHandler; - -import java.lang.invoke.MethodHandles; -import java.util.concurrent.atomic.AtomicInteger; - -import org.oran.pmlog.configuration.WebClientConfig.HttpProxyConfig; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.http.client.reactive.ReactorClientHttpConnector; -import org.springframework.lang.Nullable; -import org.springframework.web.reactive.function.client.ExchangeFilterFunction; -import org.springframework.web.reactive.function.client.ExchangeStrategies; -import org.springframework.web.reactive.function.client.WebClient; -import org.springframework.web.reactive.function.client.WebClient.RequestHeadersSpec; -import org.springframework.web.reactive.function.client.WebClientResponseException; - -import reactor.core.publisher.Mono; -import reactor.netty.http.client.HttpClient; -import reactor.netty.transport.ProxyProvider; - -/** - * Generic reactive REST client. - */ -public class AsyncRestClient { - - private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); - private WebClient webClient = null; - private final String baseUrl; - private static final AtomicInteger sequenceNumber = new AtomicInteger(); - private final SslContext sslContext; - private final HttpProxyConfig httpProxyConfig; - private final SecurityContext securityContext; - - public AsyncRestClient(String baseUrl, @Nullable SslContext sslContext, @Nullable HttpProxyConfig httpProxyConfig, - SecurityContext securityContext) { - this.baseUrl = baseUrl; - this.sslContext = sslContext; - this.httpProxyConfig = httpProxyConfig; - this.securityContext = securityContext; - } - - @SuppressWarnings("java:S4449") // contentType, is not @Nullable - public Mono> postForEntity(String uri, @Nullable String body, - @Nullable MediaType mediaType) { - Mono bodyProducer = body != null ? Mono.just(body) : Mono.empty(); - - RequestHeadersSpec request = getWebClient() // - .post() // - .uri(uri) // - .contentType(mediaType) // - .body(bodyProducer, String.class); - return retrieve(request); - } - - public Mono post(String uri, @Nullable String body, @Nullable MediaType mediaType) { - return postForEntity(uri, body, mediaType) // - .map(this::toBody); - } - - public Mono> putForEntity(String uri, String body) { - RequestHeadersSpec request = getWebClient() // - .put() // - .uri(uri) // - .contentType(MediaType.APPLICATION_JSON) // - .bodyValue(body); - return retrieve(request); - } - - public Mono put(String uri, String body) { - return putForEntity(uri, body) // - .map(this::toBody); - } - - public Mono> getForEntity(String uri) { - RequestHeadersSpec request = getWebClient().get().uri(uri); - return retrieve(request); - } - - public Mono get(String uri) { - return getForEntity(uri) // - .map(this::toBody); - } - - public Mono> deleteForEntity(String uri) { - RequestHeadersSpec request = getWebClient().delete().uri(uri); - return retrieve(request); - } - - public Mono delete(String uri) { - return deleteForEntity(uri) // - .map(this::toBody); - } - - public Mono> postForEntity(String uri, @Nullable String body) { - Mono bodyProducer = body != null ? Mono.just(body) : Mono.empty(); - - RequestHeadersSpec request = getWebClient() // - .post() // - .uri(uri) // - .contentType(MediaType.APPLICATION_JSON) // - .body(bodyProducer, String.class); - return retrieve(request); - } - - public Mono post(String uri, @Nullable String body) { - return postForEntity(uri, body) // - .map(this::toBody); - } - - private Mono> retrieve(RequestHeadersSpec request) { - if (securityContext.isConfigured()) { - request.headers(h -> h.setBearerAuth(securityContext.getBearerAuthToken())); - } - return request.retrieve() // - .toEntity(String.class) // - .doOnError(this::onError); // - } - - private void onError(Throwable t) { - if (t instanceof WebClientResponseException) { - WebClientResponseException e = (WebClientResponseException) t; - logger.debug("Response error: {}", e.getResponseBodyAsString()); - } - } - - private static Object createTraceTag() { - return sequenceNumber.incrementAndGet(); - } - - private String toBody(ResponseEntity entity) { - if (entity.getBody() == null) { - return ""; - } else { - return entity.getBody(); - } - } - - private boolean isHttpProxyConfigured() { - return httpProxyConfig != null && httpProxyConfig.getHttpProxyPort() > 0 - && !httpProxyConfig.getHttpProxyHost().isEmpty(); - } - - private HttpClient buildHttpClient() { - HttpClient httpClient = HttpClient.create() // - .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 10_000) // - .doOnConnected(connection -> { - connection.addHandlerLast(new ReadTimeoutHandler(30)); - connection.addHandlerLast(new WriteTimeoutHandler(30)); - }); - - if (this.sslContext != null) { - httpClient = httpClient.secure(ssl -> ssl.sslContext(sslContext)); - } - - if (isHttpProxyConfigured()) { - httpClient = httpClient.proxy(proxy -> proxy.type(ProxyProvider.Proxy.HTTP) - .host(httpProxyConfig.getHttpProxyHost()).port(httpProxyConfig.getHttpProxyPort())); - } - return httpClient; - } - - public WebClient buildWebClient(String baseUrl) { - Object traceTag = createTraceTag(); - - final HttpClient httpClient = buildHttpClient(); - ExchangeStrategies exchangeStrategies = ExchangeStrategies.builder() // - .codecs(configurer -> configurer.defaultCodecs().maxInMemorySize(-1)) // - .build(); - - ExchangeFilterFunction reqLogger = ExchangeFilterFunction.ofRequestProcessor(req -> { - logger.debug("{} {} uri = '{}''", traceTag, req.method(), req.url()); - return Mono.just(req); - }); - - ExchangeFilterFunction respLogger = ExchangeFilterFunction.ofResponseProcessor(resp -> { - logger.debug("{} resp: {}", traceTag, resp.statusCode()); - return Mono.just(resp); - }); - - return WebClient.builder() // - .clientConnector(new ReactorClientHttpConnector(httpClient)) // - .baseUrl(baseUrl) // - .exchangeStrategies(exchangeStrategies) // - .filter(reqLogger) // - .filter(respLogger) // - .build(); - } - - private WebClient getWebClient() { - if (this.webClient == null) { - this.webClient = buildWebClient(baseUrl); - } - return this.webClient; - } -} diff --git a/pmlog/src/main/java/org/oran/pmlog/clients/AsyncRestClientFactory.java b/pmlog/src/main/java/org/oran/pmlog/clients/AsyncRestClientFactory.java deleted file mode 100644 index b0821882..00000000 --- a/pmlog/src/main/java/org/oran/pmlog/clients/AsyncRestClientFactory.java +++ /dev/null @@ -1,194 +0,0 @@ -/*- - * ========================LICENSE_START================================= - * O-RAN-SC - * %% - * Copyright (C) 2022 Nordix Foundation - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================LICENSE_END=================================== - */ - -package org.oran.pmlog.clients; - -import io.netty.handler.ssl.SslContext; -import io.netty.handler.ssl.SslContextBuilder; -import io.netty.handler.ssl.util.InsecureTrustManagerFactory; - -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.lang.invoke.MethodHandles; -import java.security.KeyStore; -import java.security.KeyStoreException; -import java.security.NoSuchAlgorithmException; -import java.security.UnrecoverableKeyException; -import java.security.cert.Certificate; -import java.security.cert.CertificateException; -import java.security.cert.X509Certificate; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - -import javax.net.ssl.KeyManagerFactory; - -import org.oran.pmlog.configuration.WebClientConfig; -import org.oran.pmlog.configuration.WebClientConfig.HttpProxyConfig; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.util.ResourceUtils; - -/** - * Factory for a generic reactive REST client. - */ -public class AsyncRestClientFactory { - private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); - - private final SslContextFactory sslContextFactory; - private final HttpProxyConfig httpProxyConfig; - private final SecurityContext securityContext; - - public AsyncRestClientFactory(WebClientConfig clientConfig, SecurityContext securityContext) { - if (clientConfig != null) { - this.sslContextFactory = new CachingSslContextFactory(clientConfig); - this.httpProxyConfig = clientConfig.getHttpProxyConfig(); - } else { - logger.warn("No configuration for web client defined, HTTPS will not work"); - this.sslContextFactory = null; - this.httpProxyConfig = null; - } - this.securityContext = securityContext; - } - - public AsyncRestClient createRestClientNoHttpProxy(String baseUrl) { - return createRestClient(baseUrl, false); - } - - public AsyncRestClient createRestClientUseHttpProxy(String baseUrl) { - return createRestClient(baseUrl, true); - } - - private AsyncRestClient createRestClient(String baseUrl, boolean useHttpProxy) { - if (this.sslContextFactory != null) { - try { - return new AsyncRestClient(baseUrl, this.sslContextFactory.createSslContext(), - useHttpProxy ? httpProxyConfig : null, this.securityContext); - } catch (Exception e) { - String exceptionString = e.toString(); - logger.error("Could not init SSL context, reason: {}", exceptionString); - } - } - return new AsyncRestClient(baseUrl, null, httpProxyConfig, this.securityContext); - } - - private class SslContextFactory { - private final WebClientConfig clientConfig; - - public SslContextFactory(WebClientConfig clientConfig) { - this.clientConfig = clientConfig; - } - - public SslContext createSslContext() throws UnrecoverableKeyException, NoSuchAlgorithmException, - CertificateException, KeyStoreException, IOException { - return this.createSslContext(createKeyManager()); - } - - private SslContext createSslContext(KeyManagerFactory keyManager) - throws NoSuchAlgorithmException, CertificateException, KeyStoreException, IOException { - if (this.clientConfig.isTrustStoreUsed()) { - return createSslContextRejectingUntrustedPeers(this.clientConfig.getTrustStore(), - this.clientConfig.getTrustStorePassword(), keyManager); - } else { - // Trust anyone - return SslContextBuilder.forClient() // - .keyManager(keyManager) // - .trustManager(InsecureTrustManagerFactory.INSTANCE) // - .build(); - } - } - - private SslContext createSslContextRejectingUntrustedPeers(String trustStorePath, String trustStorePass, - KeyManagerFactory keyManager) - throws NoSuchAlgorithmException, CertificateException, IOException, KeyStoreException { - - final KeyStore trustStore = getTrustStore(trustStorePath, trustStorePass); - List certificateList = Collections.list(trustStore.aliases()).stream() // - .filter(alias -> isCertificateEntry(trustStore, alias)) // - .map(alias -> getCertificate(trustStore, alias)) // - .collect(Collectors.toList()); - final X509Certificate[] certificates = certificateList.toArray(new X509Certificate[certificateList.size()]); - - return SslContextBuilder.forClient() // - .keyManager(keyManager) // - .trustManager(certificates) // - .build(); - } - - private boolean isCertificateEntry(KeyStore trustStore, String alias) { - try { - return trustStore.isCertificateEntry(alias); - } catch (KeyStoreException e) { - logger.error("Error reading truststore {}", e.getMessage()); - return false; - } - } - - private Certificate getCertificate(KeyStore trustStore, String alias) { - try { - return trustStore.getCertificate(alias); - } catch (KeyStoreException e) { - logger.error("Error reading truststore {}", e.getMessage()); - return null; - } - } - - private KeyManagerFactory createKeyManager() throws NoSuchAlgorithmException, CertificateException, IOException, - UnrecoverableKeyException, KeyStoreException { - final KeyManagerFactory keyManager = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); - final KeyStore keyStore = KeyStore.getInstance(this.clientConfig.getKeyStoreType()); - final String keyStoreFile = this.clientConfig.getKeyStore(); - final String keyStorePassword = this.clientConfig.getKeyStorePassword(); - final String keyPassword = this.clientConfig.getKeyPassword(); - try (final InputStream inputStream = new FileInputStream(keyStoreFile)) { - keyStore.load(inputStream, keyStorePassword.toCharArray()); - } - keyManager.init(keyStore, keyPassword.toCharArray()); - return keyManager; - } - - private synchronized KeyStore getTrustStore(String trustStorePath, String trustStorePass) - throws NoSuchAlgorithmException, CertificateException, IOException, KeyStoreException { - - KeyStore store = KeyStore.getInstance(KeyStore.getDefaultType()); - store.load(new FileInputStream(ResourceUtils.getFile(trustStorePath)), trustStorePass.toCharArray()); - return store; - } - } - - public class CachingSslContextFactory extends SslContextFactory { - private SslContext cachedContext = null; - - public CachingSslContextFactory(WebClientConfig clientConfig) { - super(clientConfig); - } - - @Override - public SslContext createSslContext() throws UnrecoverableKeyException, NoSuchAlgorithmException, - CertificateException, KeyStoreException, IOException { - if (this.cachedContext == null) { - this.cachedContext = super.createSslContext(); - } - return this.cachedContext; - - } - } -} diff --git a/pmlog/src/main/java/org/oran/pmlog/clients/SecurityContext.java b/pmlog/src/main/java/org/oran/pmlog/clients/SecurityContext.java deleted file mode 100644 index 5aeb4a37..00000000 --- a/pmlog/src/main/java/org/oran/pmlog/clients/SecurityContext.java +++ /dev/null @@ -1,76 +0,0 @@ -/*- - * ========================LICENSE_START================================= - * O-RAN-SC - * %% - * Copyright (C) 2022 Nordix Foundation - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================LICENSE_END=================================== - */ - -package org.oran.pmlog.clients; - -import java.lang.invoke.MethodHandles; -import java.nio.file.Files; -import java.nio.file.Path; - -import lombok.Setter; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.stereotype.Component; - -@EnableConfigurationProperties -@ConfigurationProperties() -@Component -public class SecurityContext { - - private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); - - private long tokenTimestamp = 0; - - private String authToken = ""; - - @Setter - private Path authTokenFilePath; - - public SecurityContext(@Value("${app.auth-token-file:}") String authTokenFilename) { - if (!authTokenFilename.isEmpty()) { - this.authTokenFilePath = Path.of(authTokenFilename); - } - } - - public boolean isConfigured() { - return authTokenFilePath != null; - } - - public synchronized String getBearerAuthToken() { - if (!isConfigured()) { - return ""; - } - try { - long lastModified = authTokenFilePath.toFile().lastModified(); - if (tokenTimestamp == 0 || lastModified != this.tokenTimestamp) { - this.authToken = Files.readString(authTokenFilePath); - this.tokenTimestamp = lastModified; - } - } catch (Exception e) { - logger.warn("Could not read auth token file: {}, reason: {}", authTokenFilePath, e.getMessage()); - } - return this.authToken; - } - -} diff --git a/pmlog/src/main/java/org/oran/pmlog/configuration/ApplicationConfig.java b/pmlog/src/main/java/org/oran/pmlog/configuration/ApplicationConfig.java deleted file mode 100644 index 84c50836..00000000 --- a/pmlog/src/main/java/org/oran/pmlog/configuration/ApplicationConfig.java +++ /dev/null @@ -1,192 +0,0 @@ -/*- - * ========================LICENSE_START================================= - * O-RAN-SC - * %% - * Copyright (C) 2023 Nordix Foundation - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================LICENSE_END=================================== - */ - -package org.oran.pmlog.configuration; - -import java.lang.invoke.MethodHandles; -import java.nio.charset.Charset; -import java.nio.file.Files; - -import lombok.Getter; -import lombok.ToString; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.context.properties.EnableConfigurationProperties; - -@EnableConfigurationProperties -@ToString -public class ApplicationConfig { - - private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); - private static com.google.gson.Gson gson = new com.google.gson.GsonBuilder().disableHtmlEscaping().create(); - private static final String JOB_DEFINITION_PATH = "./config/jobDefinition.json"; - - @Value("${server.ssl.key-store-type}") - private String sslKeyStoreType = ""; - - @Value("${server.ssl.key-store-password}") - private String sslKeyStorePassword = ""; - - @Value("${server.ssl.key-store}") - private String sslKeyStore = ""; - - @Value("${server.ssl.key-password}") - private String sslKeyPassword = ""; - - @Value("${app.webclient.trust-store-used}") - private boolean sslTrustStoreUsed = false; - - @Value("${app.webclient.trust-store-password}") - private String sslTrustStorePassword = ""; - - @Value("${app.webclient.trust-store}") - private String sslTrustStore = ""; - - @Value("${app.webclient.http.proxy-host:}") - private String httpProxyHost = ""; - - @Value("${app.webclient.http.proxy-port:0}") - private int httpProxyPort = 0; - - @Getter - @Value("${server.port}") - private int localServerHttpsPort; - - @Getter - @Value("${app.kafka.max-poll-records:300}") - private int kafkaMaxPollRecords; - - @Getter - @Value("${app.kafka.group-id}") - private String kafkaGroupId; - - @Getter - @Value("${app.kafka.client-id}") - private String kafkaClientId; - - @Value("${app.kafka.bootstrap-servers}") - private String kafkaBootstrapServers; - - @Value("${app.kafka.input-topic}") - private String kafkaInputTopic; - - @Getter - @Value("${app.influx.url}") - private String influxUrl; - - @Getter - @Value("${app.influx.access-token}") - private String influxAccessToken; - - @Getter - @Value("${app.ics-base-url}") - private String icsBaseUrl; - - @Getter - @Value("${app.consumer-job-id:shouldHaveBeenDefinedInYaml}") - private String consumerJobId; - - @Getter - @Value("${app.influx.user}") - private String influxUser; - - @Getter - @Value("${app.influx.password}") - private String influxPassword; - - @Getter - @Value("${app.influx.database}") - private String influxDatabase; - - @Getter - @Value("${app.influx.bucket}") - private String influxBucket; - - @Getter - @Value("${app.influx.org}") - private String influxOrg; - - private WebClientConfig webClientConfig = null; - - public WebClientConfig getWebClientConfig() { - if (this.webClientConfig == null) { - WebClientConfig.HttpProxyConfig httpProxyConfig = WebClientConfig.HttpProxyConfig.builder() // - .httpProxyHost(this.httpProxyHost) // - .httpProxyPort(this.httpProxyPort) // - .build(); - - this.webClientConfig = WebClientConfig.builder() // - .keyStoreType(this.sslKeyStoreType) // - .keyStorePassword(this.sslKeyStorePassword) // - .keyStore(this.sslKeyStore) // - .keyPassword(this.sslKeyPassword) // - .isTrustStoreUsed(this.sslTrustStoreUsed) // - .trustStore(this.sslTrustStore) // - .trustStorePassword(this.sslTrustStorePassword) // - .httpProxyConfig(httpProxyConfig) // - .build(); - } - return this.webClientConfig; - } - - public String getConsumerJobInfo() { - - try { - return Files.readString(java.nio.file.Path.of(JOB_DEFINITION_PATH), Charset.defaultCharset()); - } catch (Exception e) { - logger.error("Could not load configuration file: {}, reason: {}", JOB_DEFINITION_PATH, e.getMessage()); - return "{}"; - } - } - - private ConsumerJobInfo.KafkaDeliveryInfo getKafkaDeliveryInfoFromAplicationYaml() { - return ConsumerJobInfo.KafkaDeliveryInfo.builder() // - .bootStrapServers(this.kafkaBootstrapServers) // - .topic(kafkaInputTopic) // - .build(); - } - - private ConsumerJobInfo.KafkaDeliveryInfo getKafkaDeliveryInfo() { - try { - ConsumerJobInfo infoFromFile = gson.fromJson(getConsumerJobInfo(), ConsumerJobInfo.class); - if (infoFromFile != null && infoFromFile.jobDefinition != null - && infoFromFile.jobDefinition.getDeliveryInfo() != null) { - return infoFromFile.jobDefinition.getDeliveryInfo(); - } - - } catch (Exception e) { - logger.warn("Could not parse file: {}, reason: {}, falling back to parameters in Application.yaml", - JOB_DEFINITION_PATH, e.getMessage()); - } - return getKafkaDeliveryInfoFromAplicationYaml(); - - } - - public String getKafkaInputTopic() { - return getKafkaDeliveryInfo().getTopic(); - } - - public String getKafkaBootStrapServers() { - return getKafkaDeliveryInfo().getBootStrapServers(); - } - -} diff --git a/pmlog/src/main/java/org/oran/pmlog/configuration/ConsumerJobInfo.java b/pmlog/src/main/java/org/oran/pmlog/configuration/ConsumerJobInfo.java deleted file mode 100644 index be3b23ca..00000000 --- a/pmlog/src/main/java/org/oran/pmlog/configuration/ConsumerJobInfo.java +++ /dev/null @@ -1,114 +0,0 @@ -/*- - * ========================LICENSE_START================================= - * O-RAN-SC - * %% - * Copyright (C) 2023 Nordix Foundation - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================LICENSE_END=================================== - */ - -package org.oran.pmlog.configuration; - -import com.google.gson.annotations.Expose; -import com.google.gson.annotations.SerializedName; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashSet; -import java.util.Set; - -import lombok.Builder; -import lombok.Getter; -import lombok.Setter; - -public class ConsumerJobInfo { - - @Getter - public static class PmFilterData { - - public static class MeasTypeSpec { - @Setter - @Getter - @Expose - String measuredObjClass; - - @Getter - @Expose - final Set measTypes = new HashSet<>(); - } - - @Expose - final Set sourceNames = new HashSet<>(); - - @Expose - final Set measObjInstIds = new HashSet<>(); - - @Expose - final Collection measTypeSpecs = new ArrayList<>(); - - @Expose - final Set measuredEntityDns = new HashSet<>(); - } - - @Builder - public static class KafkaDeliveryInfo { - @Getter - @Expose - private String topic; - - @Getter - @Expose - private String bootStrapServers; - } - - @Builder - public static class PmJobParameters { - - public static final String PM_FILTER_TYPE = "pmdata"; - - @Getter - @Builder.Default - @Expose - private String filterType = PM_FILTER_TYPE; - - @Getter - @Expose - private PmFilterData filter; - - @Getter - @Expose - private KafkaDeliveryInfo deliveryInfo; - - } - - @SerializedName("info_type_id") - @Expose - public String infoTypeId = ""; - - @SerializedName("job_owner") - @Expose - public String owner = ""; - - @SerializedName("job_definition") - @Expose - public PmJobParameters jobDefinition; - - public ConsumerJobInfo() {} - - public ConsumerJobInfo(String infoTypeId, PmJobParameters jobData, String owner) { - this.infoTypeId = infoTypeId; - this.jobDefinition = jobData; - this.owner = owner; - } -} diff --git a/pmlog/src/main/java/org/oran/pmlog/configuration/WebClientConfig.java b/pmlog/src/main/java/org/oran/pmlog/configuration/WebClientConfig.java deleted file mode 100644 index 21da61eb..00000000 --- a/pmlog/src/main/java/org/oran/pmlog/configuration/WebClientConfig.java +++ /dev/null @@ -1,60 +0,0 @@ -/*- - * ========================LICENSE_START================================= - * O-RAN-SC - * %% - * Copyright (C) 2023 Nordix Foundation - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================LICENSE_END=================================== - */ - -package org.oran.pmlog.configuration; - -import lombok.Builder; -import lombok.Getter; -import lombok.ToString; -import reactor.netty.transport.ProxyProvider; - -@Builder -@Getter -@ToString -public class WebClientConfig { - private String keyStoreType; - - private String keyStorePassword; - - private String keyStore; - - @ToString.Exclude - private String keyPassword; - - private boolean isTrustStoreUsed; - - @ToString.Exclude - private String trustStorePassword; - - private String trustStore; - - @ToString - @Builder - @Getter - public static class HttpProxyConfig { - private String httpProxyHost; - - private int httpProxyPort; - - private ProxyProvider.Proxy httpProxyType; - } - - private HttpProxyConfig httpProxyConfig; -} diff --git a/pmlog/src/main/java/org/oran/pmlog/exceptions/ServiceException.java b/pmlog/src/main/java/org/oran/pmlog/exceptions/ServiceException.java deleted file mode 100644 index f05d955f..00000000 --- a/pmlog/src/main/java/org/oran/pmlog/exceptions/ServiceException.java +++ /dev/null @@ -1,39 +0,0 @@ -/*- - * ========================LICENSE_START================================= - * O-RAN-SC - * %% - * Copyright (C) 2023 Nordix Foundation - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================LICENSE_END=================================== - */ - -package org.oran.pmlog.exceptions; - -import lombok.Getter; - -import org.springframework.http.HttpStatus; - -public class ServiceException extends Exception { - - private static final long serialVersionUID = 1L; - - @Getter - private final HttpStatus httpStatus; - - public ServiceException(String message, HttpStatus httpStatus) { - super(message); - this.httpStatus = httpStatus; - } - -} diff --git a/pmlog/src/test/java/org/oran/pmlog/ApplicationTest.java b/pmlog/src/test/java/org/oran/pmlog/ApplicationTest.java deleted file mode 100644 index da12e0af..00000000 --- a/pmlog/src/test/java/org/oran/pmlog/ApplicationTest.java +++ /dev/null @@ -1,214 +0,0 @@ -/*- - * ========================LICENSE_START================================= - * O-RAN-SC - * %% - * Copyright (C) 2023 Nordix Foundation - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================LICENSE_END=================================== - */ - -package org.oran.pmlog; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.awaitility.Awaitility.await; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.spy; - -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.PrintStream; -import java.lang.invoke.MethodHandles; -import java.nio.charset.Charset; -import java.nio.file.Files; -import java.nio.file.Path; - -import org.json.JSONObject; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.MethodOrderer; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.TestMethodOrder; -import org.mockito.Mockito; -import org.oran.pmlog.clients.AsyncRestClient; -import org.oran.pmlog.clients.AsyncRestClientFactory; -import org.oran.pmlog.clients.SecurityContext; -import org.oran.pmlog.configuration.ApplicationConfig; -import org.oran.pmlog.configuration.ConsumerJobInfo; -import org.oran.pmlog.configuration.WebClientConfig; -import org.oran.pmlog.configuration.WebClientConfig.HttpProxyConfig; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; -import org.springframework.boot.test.context.TestConfiguration; -import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; -import org.springframework.boot.web.servlet.server.ServletWebServerFactory; -import org.springframework.context.annotation.Bean; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.test.context.TestPropertySource; -import reactor.core.publisher.Flux; - -@TestMethodOrder(MethodOrderer.MethodName.class) -@SpringBootTest(webEnvironment = WebEnvironment.DEFINED_PORT) -@TestPropertySource(properties = { // - "server.ssl.key-store=./config/keystore.jks", // - "app.webclient.trust-store=./config/truststore.jks", // - "app.webclient.trust-store-used=true" // -}) -class ApplicationTest { - - @Autowired - private ApplicationConfig applicationConfig; - - @Autowired - SecurityContext securityContext; - - @Autowired - private IcsSimulatorController icsSimulatorController; - - @Autowired - private ConsumerRegstrationTask consumerRegstrationTask; - - private com.google.gson.Gson gson = new com.google.gson.GsonBuilder().disableHtmlEscaping().create(); - - private final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); - - static class TestApplicationConfig extends ApplicationConfig { - - @Override - public String getIcsBaseUrl() { - return thisProcessUrl(); - } - - String thisProcessUrl() { - final String url = "https://localhost:" + getLocalServerHttpsPort(); - return url; - } - } - - /** - * Overrides the BeanFactory. - */ - @TestConfiguration - static class TestBeanFactory extends BeanFactory { - - static final TestApplicationConfig applicationConfig = new TestApplicationConfig(); - static KafkaTopicListener kafkaListener; - static InfluxStore influxStore; - - @Override - @Bean - public ServletWebServerFactory servletContainer() { - return new TomcatServletWebServerFactory(); - } - - @Override - @Bean - public ApplicationConfig getApplicationConfig() { - return applicationConfig; - } - - @Override - @Bean - public KafkaTopicListener getKafkaTopicListener(@Autowired ApplicationConfig appConfig) { - kafkaListener = new KafkaTopicListener(applicationConfig); - return kafkaListener; - } - - @Override - @Bean - public InfluxStore getInfluxStore(@Autowired ApplicationConfig appConfig, - @Autowired KafkaTopicListener listener) { - influxStore = spy(new InfluxStore(applicationConfig)); - return influxStore; - } - - } - - @BeforeEach - public void init() {} - - @AfterEach - void reset() { - this.icsSimulatorController.testResults.reset(); - } - - @Test - void generateApiDoc() throws FileNotFoundException { - String url = "/v3/api-docs"; - ResponseEntity resp = restClient().getForEntity(url).block(); - assertThat(resp.getStatusCode()).isEqualTo(HttpStatus.OK); - - JSONObject jsonObj = new JSONObject(resp.getBody()); - assertThat(jsonObj.remove("servers")).isNotNull(); - - String indented = jsonObj.toString(4); - try (PrintStream out = new PrintStream(new FileOutputStream("api/pmlog-api.json"))) { - out.print(indented); - } - } - - @Test - void testPmReport() throws IOException { - String path = "./src/test/resources/pm_report.json"; - String str = Files.readString(Path.of(path), Charset.defaultCharset()); - DataFromKafkaTopic data = new DataFromKafkaTopic(null, null, str.getBytes()); - - Mockito.doNothing().when(TestBeanFactory.influxStore).store(any(), any()); - TestBeanFactory.influxStore.start(Flux.just(data)); - - Mockito.verify(TestBeanFactory.influxStore, Mockito.times(1)).store(any(), any()); - } - - @Test - void testJobCreation() throws Exception { - await().untilAsserted(() -> assertThat(consumerRegstrationTask.isRegisteredInIcs()).isTrue()); - ConsumerJobInfo createdJob = this.icsSimulatorController.testResults.createdJob; - assertThat(createdJob).isNotNull(); - assertThat(createdJob.jobDefinition.getDeliveryInfo().getTopic()) - .isEqualTo(applicationConfig.getKafkaInputTopic()); - } - - private AsyncRestClient restClient() { - return restClient(false); - } - - private String baseUrl() { - return "https://localhost:" + this.applicationConfig.getLocalServerHttpsPort(); - } - - private AsyncRestClient restClient(boolean useTrustValidation) { - WebClientConfig config = this.applicationConfig.getWebClientConfig(); - HttpProxyConfig httpProxyConfig = HttpProxyConfig.builder() // - .httpProxyHost("") // - .httpProxyPort(0) // - .build(); - config = WebClientConfig.builder() // - .keyStoreType(config.getKeyStoreType()) // - .keyStorePassword(config.getKeyStorePassword()) // - .keyStore(config.getKeyStore()) // - .keyPassword(config.getKeyPassword()) // - .isTrustStoreUsed(useTrustValidation) // - .trustStore(config.getTrustStore()) // - .trustStorePassword(config.getTrustStorePassword()) // - .httpProxyConfig(httpProxyConfig).build(); - - AsyncRestClientFactory restClientFactory = new AsyncRestClientFactory(config, securityContext); - return restClientFactory.createRestClientNoHttpProxy(baseUrl()); - } - -} diff --git a/pmlog/src/test/java/org/oran/pmlog/IcsSimulatorController.java b/pmlog/src/test/java/org/oran/pmlog/IcsSimulatorController.java deleted file mode 100644 index 918733ec..00000000 --- a/pmlog/src/test/java/org/oran/pmlog/IcsSimulatorController.java +++ /dev/null @@ -1,82 +0,0 @@ -/*- - * ========================LICENSE_START================================= - * O-RAN-SC - * %% - * Copyright (C) 2023 Nordix Foundation - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================LICENSE_END=================================== - */ - -package org.oran.pmlog; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; - -import io.swagger.v3.oas.annotations.tags.Tag; - -import java.lang.invoke.MethodHandles; - -import org.oran.pmlog.configuration.ConsumerJobInfo; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -@RestController("IcsSimulatorController") -@Tag(name = "Information Coordinator Service Simulator (exists only in test)") -public class IcsSimulatorController { - - private final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); - private final static Gson gson = new GsonBuilder().disableHtmlEscaping().create(); - - public static class TestResults { - - ConsumerJobInfo createdJob = null; - - public TestResults() {} - - public synchronized void reset() { - createdJob = null; - } - - public void setCreatedJob(ConsumerJobInfo informationJobObject) { - this.createdJob = informationJobObject; - } - } - - final TestResults testResults = new TestResults(); - - @PutMapping(path = "/data-consumer/v1/info-jobs/{infoJobId}", // - produces = MediaType.APPLICATION_JSON_VALUE, // - consumes = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity putIndividualInfoJob( // - @PathVariable("infoJobId") String jobId, // - @RequestBody String body) { - logger.debug("*** added consumer job {}", jobId); - try { - ConsumerJobInfo informationJobObject = gson.fromJson(body, ConsumerJobInfo.class); - testResults.setCreatedJob(informationJobObject); - return new ResponseEntity<>(HttpStatus.OK); - } catch (Exception e) { - logger.error("Received malformed data: {}, {}", body, e.getMessage()); - return new ResponseEntity<>(HttpStatus.BAD_REQUEST); - } - } - -} diff --git a/pmlog/src/test/java/org/oran/pmlog/Integration.java b/pmlog/src/test/java/org/oran/pmlog/Integration.java deleted file mode 100644 index 840298d4..00000000 --- a/pmlog/src/test/java/org/oran/pmlog/Integration.java +++ /dev/null @@ -1,246 +0,0 @@ -/*- - * ========================LICENSE_START================================= - * O-RAN-SC - * %% - * Copyright (C) 2023 Nordix Foundation - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================LICENSE_END=================================== - */ - -package org.oran.pmlog; - -import java.nio.charset.Charset; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.HashMap; -import java.util.Map; - -import org.apache.kafka.clients.producer.ProducerConfig; -import org.apache.kafka.clients.producer.ProducerRecord; -import org.apache.kafka.common.serialization.ByteArraySerializer; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.oran.pmlog.configuration.ApplicationConfig; -import org.oran.pmlog.configuration.ConsumerJobInfo; -import org.oran.pmlog.configuration.ConsumerJobInfo.PmFilterData; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; -import org.springframework.boot.test.context.TestConfiguration; -import org.springframework.boot.test.web.server.LocalServerPort; -import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; -import org.springframework.boot.web.servlet.server.ServletWebServerFactory; -import org.springframework.context.annotation.Bean; -import org.springframework.test.context.TestPropertySource; - -import reactor.core.publisher.Flux; -import reactor.kafka.sender.KafkaSender; -import reactor.kafka.sender.SenderOptions; -import reactor.kafka.sender.SenderRecord; - -@SuppressWarnings("java:S3577") // Rename class -@SpringBootTest(webEnvironment = WebEnvironment.DEFINED_PORT) -@TestPropertySource(properties = { // - "server.ssl.key-store=./config/keystore.jks", // - "app.webclient.trust-store=./config/truststore.jks", // - "app.configuration-filepath=./src/test/resources/test_application_configuration.json", // - "app.pm-files-path=./src/test/resources/" // -}) // -class Integration { - - @Autowired - private ApplicationConfig applicationConfig; - - private static com.google.gson.Gson gson = new com.google.gson.GsonBuilder().disableHtmlEscaping().create(); - - private final Logger logger = LoggerFactory.getLogger(Integration.class); - - @LocalServerPort - int localServerHttpPort; - - static class TestApplicationConfig extends ApplicationConfig { - String thisProcessUrl() { - final String url = "https://localhost:" + getLocalServerHttpsPort(); - return url; - } - } - - /** - * Overrides the BeanFactory. - */ - @TestConfiguration - static class TestBeanFactory extends BeanFactory { - - @Override - @Bean - public ServletWebServerFactory servletContainer() { - return new TomcatServletWebServerFactory(); - } - - @Override - @Bean - public ApplicationConfig getApplicationConfig() { - TestApplicationConfig cfg = new TestApplicationConfig(); - return cfg; - } - } - - @BeforeEach - void init() {} - - @AfterEach - void reset() {} - - private SenderOptions kafkaSenderOptions() { - String bootstrapServers = this.applicationConfig.getKafkaBootStrapServers(); - - Map props = new HashMap<>(); - props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers); - // props.put(ProducerConfig.CLIENT_ID_CONFIG, "sample-producerx"); - props.put(ProducerConfig.ACKS_CONFIG, "all"); - props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, ByteArraySerializer.class); - props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, ByteArraySerializer.class); - return SenderOptions.create(props); - } - - private SenderRecord kafkaSenderRecord(String data, String key) { - String topic = this.applicationConfig.getKafkaInputTopic(); - int correlationMetadata = 2; - return SenderRecord.create(new ProducerRecord<>(topic, key.getBytes(), data.getBytes()), correlationMetadata); - } - - private void sendDataToKafka(Flux> dataToSend) { - final KafkaSender sender = KafkaSender.create(kafkaSenderOptions()); - - sender.send(dataToSend) // - .doOnError(e -> logger.error("Send failed", e)) // - .blockLast(); - - sender.close(); - } - - @SuppressWarnings("squid:S2925") // "Thread.sleep" should not be used in tests. - private static void waitForKafkaListener() throws InterruptedException { - Thread.sleep(4000); - } - - private String generateCounterValue(int sequenceValue, int noOfObjects, String counterName, String resourceFdn) { - long value = (random.nextInt() % 100) * sequenceValue + (counterName.hashCode() % 5000); - return Long.toString(value); - } - - static java.util.Random random = new java.util.Random(System.currentTimeMillis()); - - private long currentEpochMicroSeconds() { - return java.util.concurrent.TimeUnit.MILLISECONDS.toMicros(System.currentTimeMillis()); - } - - private String measType(PmReport.MeasResult measResult, PmReport.MeasInfoList measInfoList) { - return measInfoList.getMeasTypes().getMeasType(measResult.getP()); - } - - // Set end time. Now - (GP * sequenceValue) - private void setEndTime(PmReport report, int sequenceValue, int noOfObjects) { - long gpMicro = report.event.getPerf3gppFields().getMeasDataCollection().getGranularityPeriod() * 1000 * 1000; - long endTime = currentEpochMicroSeconds() - ((noOfObjects - sequenceValue - 1) * gpMicro); - report.event.getCommonEventHeader().setLastEpochMicrosec(endTime); - - } - - final String PM_REPORT_FILE_BIG = "./src/test/resources/A20000626.2315+0200-2330+0200_HTTPS-6-73.json"; - final String PM_REPORT_FILE = "./src/test/resources/pm_report.json"; - - String pmReport(int sequenceValue, int noOfObjects) { - try { - String str = Files.readString(Path.of(PM_REPORT_FILE), Charset.defaultCharset()); - PmReport report = gson.fromJson(str, PmReport.class); - PmReport.MeasDataCollection measDataCollection = report.event.getPerf3gppFields().getMeasDataCollection(); - - setEndTime(report, sequenceValue, noOfObjects); - - // Fill it with generated values - for (PmReport.MeasInfoList measInfoList : measDataCollection.getMeasInfoList()) { - for (PmReport.MeasValuesList measValueList : measInfoList.getMeasValuesList()) { - for (PmReport.MeasResult measResult : measValueList.getMeasResults()) { - String value = this.generateCounterValue(sequenceValue, noOfObjects, - measType(measResult, measInfoList), report.fullDistinguishedName(measValueList)); - measResult.setSValue(value); - } - } - } - return gson.toJson(report); - } catch (Exception e) { - logger.error("Could not loadPM report {}", e.getMessage(), e); - return null; - } - - } - - @Test - void testStoreReportsInflux() throws Exception { - final int NO_OF_OBJECTS = 24 * 4; - InfluxStore influxStore = new InfluxStore(this.applicationConfig); - - Flux input = Flux.range(0, NO_OF_OBJECTS) // - .map(i -> pmReport(i, NO_OF_OBJECTS)) // - .map(str -> new DataFromKafkaTopic(null, null, str.getBytes())); - - influxStore.start(input); - - } - - @SuppressWarnings("squid:S2925") // "Thread.sleep" should not be used in tests. - @Test - void sendPmReportsThroughKafka() throws Exception { - waitForKafkaListener(); - - final int NO_OF_OBJECTS = 20; - - var dataToSend = Flux.range(0, NO_OF_OBJECTS).map(i -> kafkaSenderRecord(pmReport(i, NO_OF_OBJECTS), "key")); - sendDataToKafka(dataToSend); - - Thread.sleep(1000 * 1000); - } - - @Test - void printConfiguration() { - PmFilterData f = new PmFilterData(); - f.getMeasObjInstIds().add("measObj"); - PmFilterData.MeasTypeSpec spec = new PmFilterData.MeasTypeSpec(); - spec.setMeasuredObjClass("measuredObjClass"); - spec.getMeasTypes().add("measType"); - f.getMeasTypeSpecs().add(spec); - f.getSourceNames().add("sourceName"); - ConsumerJobInfo.KafkaDeliveryInfo deliveryInfo = ConsumerJobInfo.KafkaDeliveryInfo.builder() // - .topic("topic").bootStrapServers("bootStrapServers") // - .build(); - ConsumerJobInfo.PmJobParameters params = ConsumerJobInfo.PmJobParameters.builder() // - .filter(f) // - .deliveryInfo(deliveryInfo).build(); - - ConsumerJobInfo info = new ConsumerJobInfo("type", params, "owner"); - String str = gson.toJson(info); - System.out.print(str); - } - - @SuppressWarnings("squid:S2925") // "Thread.sleep" should not be used in tests. - @Test - void tet() throws Exception { - Thread.sleep(1000 * 1000); - } - -} diff --git a/pmlog/src/test/resources/A20000626.2315+0200-2330+0200_HTTPS-6-73.json b/pmlog/src/test/resources/A20000626.2315+0200-2330+0200_HTTPS-6-73.json deleted file mode 100644 index 451279ab..00000000 --- a/pmlog/src/test/resources/A20000626.2315+0200-2330+0200_HTTPS-6-73.json +++ /dev/null @@ -1 +0,0 @@ -{"event":{"commonEventHeader":{"domain":"","eventId":"","sequence":0,"eventName":"","sourceName":"HTTPST2-0","reportingEntityName":"","priority":"","startEpochMicrosec":15198378,"lastEpochMicrosec":151983,"version":"","vesEventListenerVersion":"","timeZoneOffset":"UTC+05.30"},"perf3gppFields":{"perf3gppFieldsVersion":"1.0","measDataCollection":{"granularityPeriod":900,"measuredEntityUserName":"","measuredEntityDn":"nodedntest","measuredEntitySoftwareVersion":"CXP2010174_1 R44B17","measInfoList":[{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=NRCellCU_GNBCUCP"},"measTypes":{"sMeasTypesList":["pmCounterNumber0","pmCounterNumber1","pmCounterNumber2","pmCounterNumber3","pmCounterNumber4","pmCounterNumber5","pmCounterNumber6","pmCounterNumber7","pmCounterNumber8","pmCounterNumber9","pmCounterNumber10","pmCounterNumber11","pmCounterNumber12","pmCounterNumber13","pmCounterNumber14","pmCounterNumber15","pmCounterNumber16","pmCounterNumber17","pmCounterNumber18","pmCounterNumber19","pmCounterNumber20","pmCounterNumber21","pmCounterNumber22","pmCounterNumber23","pmCounterNumber24","pmCounterNumber25","pmCounterNumber26","pmCounterNumber27","pmCounterNumber28","pmCounterNumber29","pmCounterNumber30","pmCounterNumber31","pmCounterNumber32","pmCounterNumber33","pmCounterNumber34","pmCounterNumber35","pmCounterNumber36","pmCounterNumber37","pmCounterNumber38","pmCounterNumber39","pmCounterNumber40","pmCounterNumber41","pmCounterNumber42","pmCounterNumber43","pmCounterNumber44","pmCounterNumber45","pmCounterNumber46","pmCounterNumber47","pmCounterNumber48","pmCounterNumber49","pmCounterNumber50","pmCounterNumber51","pmCounterNumber51Act","pmCounterNumber53","pmCounterNumber53Act","pmCounterNumber55","pmCounterNumber56","pmCounterNumber57","pmCounterNumber58","pmCounterNumber59","pmCounterNumber60","pmCounterNumber60IntgProt64kbps","pmCounterNumber62","pmCounterNumber63","pmCounterNumber64","pmCounterNumber65","pmCounterNumber66","pmCounterNumber67","pmCounterNumber68","pmCounterNumber69","pmCounterNumber70","pmCounterNumber71","pmCounterNumber72","pmCounterNumber73","pmCounterNumber74","pmCounterNumber75","pmCounterNumber76","pmCounterNumber77","pmCounterNumber78","pmCounterNumber79","pmCounterNumber80","pmCounterNumber81","pmCounterNumber82","pmCounterNumber83","pmCounterNumber84","pmCounterNumber84Em","pmCounterNumber84EmFbInd","pmCounterNumber87","pmCounterNumber88","pmCounterNumber89","pmCounterNumber90","pmCounterNumber91"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,GNBCUCPFunction=1,NRCellCU=32","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"0"},{"p":8,"sValue":"180"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0"},{"p":11,"sValue":"0"},{"p":12,"sValue":"0"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0"},{"p":17,"sValue":"0"},{"p":18,"sValue":"0"},{"p":19,"sValue":"0"},{"p":20,"sValue":"0"},{"p":21,"sValue":"0"},{"p":22,"sValue":"0"},{"p":23,"sValue":"0"},{"p":24,"sValue":"0"},{"p":25,"sValue":"0"},{"p":26,"sValue":"0"},{"p":27,"sValue":"0"},{"p":28,"sValue":"0"},{"p":29,"sValue":"0"},{"p":30,"sValue":"0"},{"p":31,"sValue":"0"},{"p":32,"sValue":"0"},{"p":33,"sValue":"0"},{"p":34,"sValue":"0"},{"p":35,"sValue":"0"},{"p":36,"sValue":"0"},{"p":37,"sValue":"0"},{"p":38,"sValue":"0"},{"p":39,"sValue":"0"},{"p":40,"sValue":"0"},{"p":41,"sValue":"0"},{"p":42,"sValue":"0"},{"p":43,"sValue":"0"},{"p":44,"sValue":"0"},{"p":45,"sValue":"0"},{"p":46,"sValue":"0"},{"p":47,"sValue":"0"},{"p":48,"sValue":"0"},{"p":49,"sValue":"0"},{"p":50,"sValue":"0"},{"p":51,"sValue":"0"},{"p":52,"sValue":"0"},{"p":53,"sValue":"0"},{"p":54,"sValue":"0"},{"p":55,"sValue":"0"},{"p":56,"sValue":"0"},{"p":57,"sValue":"0"},{"p":58,"sValue":"0"},{"p":59,"sValue":"0"},{"p":60,"sValue":"0"},{"p":61,"sValue":"0"},{"p":62,"sValue":"0"},{"p":63,"sValue":"0"},{"p":64,"sValue":"0"},{"p":65,"sValue":"0"},{"p":66,"sValue":"0"},{"p":67,"sValue":"0"},{"p":68,"sValue":"0"},{"p":69,"sValue":"0"},{"p":70,"sValue":"0"},{"p":71,"sValue":"0"},{"p":72,"sValue":"0"},{"p":73,"sValue":"0"},{"p":74,"sValue":"0"},{"p":75,"sValue":"0"},{"p":76,"sValue":"0"},{"p":77,"sValue":"0"},{"p":78,"sValue":"0"},{"p":79,"sValue":"0"},{"p":80,"sValue":"0"},{"p":81,"sValue":"0"},{"p":82,"sValue":"0"},{"p":83,"sValue":"0"},{"p":84,"sValue":"0"},{"p":85,"sValue":"0"},{"p":86,"sValue":"0"},{"p":87,"sValue":"0"},{"p":88,"sValue":"0"},{"p":89,"sValue":"0"},{"p":90,"sValue":"0"},{"p":91,"sValue":"0"},{"p":92,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,GNBCUCPFunction=1,NRCellCU=31","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"0"},{"p":8,"sValue":"180"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0"},{"p":11,"sValue":"0"},{"p":12,"sValue":"0"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0"},{"p":17,"sValue":"0"},{"p":18,"sValue":"0"},{"p":19,"sValue":"0"},{"p":20,"sValue":"0"},{"p":21,"sValue":"0"},{"p":22,"sValue":"0"},{"p":23,"sValue":"0"},{"p":24,"sValue":"0"},{"p":25,"sValue":"0"},{"p":26,"sValue":"0"},{"p":27,"sValue":"0"},{"p":28,"sValue":"0"},{"p":29,"sValue":"0"},{"p":30,"sValue":"0"},{"p":31,"sValue":"0"},{"p":32,"sValue":"0"},{"p":33,"sValue":"0"},{"p":34,"sValue":"0"},{"p":35,"sValue":"0"},{"p":36,"sValue":"0"},{"p":37,"sValue":"0"},{"p":38,"sValue":"0"},{"p":39,"sValue":"0"},{"p":40,"sValue":"0"},{"p":41,"sValue":"0"},{"p":42,"sValue":"0"},{"p":43,"sValue":"0"},{"p":44,"sValue":"0"},{"p":45,"sValue":"0"},{"p":46,"sValue":"0"},{"p":47,"sValue":"0"},{"p":48,"sValue":"0"},{"p":49,"sValue":"0"},{"p":50,"sValue":"0"},{"p":51,"sValue":"0"},{"p":52,"sValue":"0"},{"p":53,"sValue":"0"},{"p":54,"sValue":"0"},{"p":55,"sValue":"0"},{"p":56,"sValue":"0"},{"p":57,"sValue":"0"},{"p":58,"sValue":"0"},{"p":59,"sValue":"0"},{"p":60,"sValue":"0"},{"p":61,"sValue":"0"},{"p":62,"sValue":"0"},{"p":63,"sValue":"0"},{"p":64,"sValue":"0"},{"p":65,"sValue":"0"},{"p":66,"sValue":"0"},{"p":67,"sValue":"0"},{"p":68,"sValue":"0"},{"p":69,"sValue":"0"},{"p":70,"sValue":"0"},{"p":71,"sValue":"0"},{"p":72,"sValue":"0"},{"p":73,"sValue":"0"},{"p":74,"sValue":"0"},{"p":75,"sValue":"0"},{"p":76,"sValue":"0"},{"p":77,"sValue":"0"},{"p":78,"sValue":"0"},{"p":79,"sValue":"0"},{"p":80,"sValue":"0"},{"p":81,"sValue":"0"},{"p":82,"sValue":"0"},{"p":83,"sValue":"0"},{"p":84,"sValue":"0"},{"p":85,"sValue":"0"},{"p":86,"sValue":"0"},{"p":87,"sValue":"0"},{"p":88,"sValue":"0"},{"p":89,"sValue":"0"},{"p":90,"sValue":"0"},{"p":91,"sValue":"0"},{"p":92,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,GNBCUCPFunction=1,NRCellCU=2","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"0"},{"p":8,"sValue":"180"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0"},{"p":11,"sValue":"0"},{"p":12,"sValue":"0"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0"},{"p":17,"sValue":"0"},{"p":18,"sValue":"0"},{"p":19,"sValue":"0"},{"p":20,"sValue":"0"},{"p":21,"sValue":"0"},{"p":22,"sValue":"0"},{"p":23,"sValue":"0"},{"p":24,"sValue":"0"},{"p":25,"sValue":"0"},{"p":26,"sValue":"0"},{"p":27,"sValue":"0"},{"p":28,"sValue":"0"},{"p":29,"sValue":"0"},{"p":30,"sValue":"0"},{"p":31,"sValue":"0"},{"p":32,"sValue":"0"},{"p":33,"sValue":"0"},{"p":34,"sValue":"0"},{"p":35,"sValue":"0"},{"p":36,"sValue":"0"},{"p":37,"sValue":"0"},{"p":38,"sValue":"0"},{"p":39,"sValue":"0"},{"p":40,"sValue":"0"},{"p":41,"sValue":"0"},{"p":42,"sValue":"0"},{"p":43,"sValue":"0"},{"p":44,"sValue":"0"},{"p":45,"sValue":"0"},{"p":46,"sValue":"0"},{"p":47,"sValue":"0"},{"p":48,"sValue":"0"},{"p":49,"sValue":"0"},{"p":50,"sValue":"0"},{"p":51,"sValue":"0"},{"p":52,"sValue":"0"},{"p":53,"sValue":"0"},{"p":54,"sValue":"0"},{"p":55,"sValue":"0"},{"p":56,"sValue":"0"},{"p":57,"sValue":"0"},{"p":58,"sValue":"0"},{"p":59,"sValue":"0"},{"p":60,"sValue":"0"},{"p":61,"sValue":"0"},{"p":62,"sValue":"0"},{"p":63,"sValue":"0"},{"p":64,"sValue":"0"},{"p":65,"sValue":"0"},{"p":66,"sValue":"0"},{"p":67,"sValue":"0"},{"p":68,"sValue":"0"},{"p":69,"sValue":"0"},{"p":70,"sValue":"0"},{"p":71,"sValue":"0"},{"p":72,"sValue":"0"},{"p":73,"sValue":"0"},{"p":74,"sValue":"0"},{"p":75,"sValue":"0"},{"p":76,"sValue":"0"},{"p":77,"sValue":"0"},{"p":78,"sValue":"0"},{"p":79,"sValue":"0"},{"p":80,"sValue":"0"},{"p":81,"sValue":"0"},{"p":82,"sValue":"0"},{"p":83,"sValue":"0"},{"p":84,"sValue":"0"},{"p":85,"sValue":"0"},{"p":86,"sValue":"0"},{"p":87,"sValue":"0"},{"p":88,"sValue":"0"},{"p":89,"sValue":"0"},{"p":90,"sValue":"0"},{"p":91,"sValue":"0"},{"p":92,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,GNBCUCPFunction=1,NRCellCU=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"0"},{"p":8,"sValue":"180"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0"},{"p":11,"sValue":"0"},{"p":12,"sValue":"0"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0"},{"p":17,"sValue":"0"},{"p":18,"sValue":"0"},{"p":19,"sValue":"0"},{"p":20,"sValue":"0"},{"p":21,"sValue":"0"},{"p":22,"sValue":"0"},{"p":23,"sValue":"0"},{"p":24,"sValue":"0"},{"p":25,"sValue":"0"},{"p":26,"sValue":"0"},{"p":27,"sValue":"0"},{"p":28,"sValue":"0"},{"p":29,"sValue":"0"},{"p":30,"sValue":"0"},{"p":31,"sValue":"0"},{"p":32,"sValue":"0"},{"p":33,"sValue":"0"},{"p":34,"sValue":"0"},{"p":35,"sValue":"0"},{"p":36,"sValue":"0"},{"p":37,"sValue":"0"},{"p":38,"sValue":"0"},{"p":39,"sValue":"0"},{"p":40,"sValue":"0"},{"p":41,"sValue":"0"},{"p":42,"sValue":"0"},{"p":43,"sValue":"0"},{"p":44,"sValue":"0"},{"p":45,"sValue":"0"},{"p":46,"sValue":"0"},{"p":47,"sValue":"0"},{"p":48,"sValue":"0"},{"p":49,"sValue":"0"},{"p":50,"sValue":"0"},{"p":51,"sValue":"0"},{"p":52,"sValue":"0"},{"p":53,"sValue":"0"},{"p":54,"sValue":"0"},{"p":55,"sValue":"0"},{"p":56,"sValue":"0"},{"p":57,"sValue":"0"},{"p":58,"sValue":"0"},{"p":59,"sValue":"0"},{"p":60,"sValue":"0"},{"p":61,"sValue":"0"},{"p":62,"sValue":"0"},{"p":63,"sValue":"0"},{"p":64,"sValue":"0"},{"p":65,"sValue":"0"},{"p":66,"sValue":"0"},{"p":67,"sValue":"0"},{"p":68,"sValue":"0"},{"p":69,"sValue":"0"},{"p":70,"sValue":"0"},{"p":71,"sValue":"0"},{"p":72,"sValue":"0"},{"p":73,"sValue":"0"},{"p":74,"sValue":"0"},{"p":75,"sValue":"0"},{"p":76,"sValue":"0"},{"p":77,"sValue":"0"},{"p":78,"sValue":"0"},{"p":79,"sValue":"0"},{"p":80,"sValue":"0"},{"p":81,"sValue":"0"},{"p":82,"sValue":"0"},{"p":83,"sValue":"0"},{"p":84,"sValue":"0"},{"p":85,"sValue":"0"},{"p":86,"sValue":"0"},{"p":87,"sValue":"0"},{"p":88,"sValue":"0"},{"p":89,"sValue":"0"},{"p":90,"sValue":"0"},{"p":91,"sValue":"0"},{"p":92,"sValue":"0"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=NRCellDU_GNBDU"},"measTypes":{"sMeasTypesList":["pmCounterNumber92","pmCounterNumber93","pmCounterNumber94","pmCounterNumber95","pmCounterNumber96","pmCounterNumber97","pmCounterNumber98","pmCounterNumber99","pmCounterNumber100","pmCounterNumber101","pmCounterNumber102","pmCounterNumber103","pmCounterNumber104","pmCounterNumber105","pmCounterNumber106","pmCounterNumber107","pmCounterNumber108","pmCounterNumber108Init","pmCounterNumber110","pmCounterNumber110Init","pmCounterNumber112","pmCounterNumber112Init","pmCounterNumber114","pmCounterNumber114Init","pmCounterNumber116","pmCounterNumber116Init","pmCounterNumber118","pmCounterNumber118Init","pmCounterNumber120","pmCounterNumber120Init","pmCounterNumber122","pmCounterNumber122Init","pmCounterNumber124","pmCounterNumber125","pmCounterNumber125Init","pmCounterNumber127","pmCounterNumber127Init","pmCounterNumber129","pmCounterNumber129Init","pmCounterNumber131","pmCounterNumber131Init","pmCounterNumber133","pmCounterNumber133Init","pmCounterNumber135","pmCounterNumber135Init","pmCounterNumber137","pmCounterNumber137Init","pmCounterNumber139","pmCounterNumber139Init","pmCounterNumber141","pmCounterNumber141Init","pmCounterNumber143","pmCounterNumber143Init","pmCounterNumber145","pmCounterNumber145Init","pmCounterNumber147","pmCounterNumber147Init","pmCounterNumber149","pmCounterNumber150","pmCounterNumber150Init","pmCounterNumber152","pmCounterNumber152Init","pmCounterNumber154","pmCounterNumber154Init","pmCounterNumber156","pmCounterNumber156Init","pmCounterNumber158","pmCounterNumber158Ext","pmCounterNumber160","pmCounterNumber161","pmCounterNumber162","pmCounterNumber163","pmCounterNumber164","pmCounterNumber165","pmCounterNumber166","pmCounterNumber1666","pmCounterNumber168","pmCounterNumber169","pmCounterNumber170","pmCounterNumber171","pmCounterNumber172","pmCounterNumber173","pmCounterNumber174","pmCounterNumber175","pmCounterNumber176","pmCounterNumber177","pmCounterNumber178","pmCounterNumber179","pmCounterNumber180","pmCounterNumber181","pmCounterNumber182","pmCounterNumber183","pmCounterNumber184","pmCounterNumber185","pmCounterNumber185Qos","pmCounterNumber185Samp","pmCounterNumber185SampQos","pmCounterNumber189","pmCounterNumber189Qos","pmCounterNumber191","pmCounterNumber191Qos","pmCounterNumber193","pmCounterNumber193Samp","pmCounterNumber195","pmCounterNumber195Ext","pmCounterNumber197","pmCounterNumber198","pmCounterNumber199","pmCounterNumber200","pmCounterNumber200BsrGrant","pmCounterNumber200PreemptGrant","pmCounterNumber200PucchSrGrant","pmCounterNumber204","pmCounterNumber205","pmCounterNumber206","pmCounterNumber207","pmCounterNumber208","pmCounterNumber209","pmCounterNumber210","pmCounterNumber211","pmCounterNumber212","pmCounterNumber213","pmCounterNumber214","pmCounterNumber215","pmCounterNumber216","pmCounterNumber216MacCe","pmCounterNumber218","pmCounterNumber219","pmCounterNumber220","pmCounterNumber221","pmCounterNumber222","pmCounterNumber223","pmCounterNumber224","pmCounterNumber225","pmCounterNumber226","pmCounterNumber227","pmCounterNumber228","pmCounterNumber228Forced","pmCounterNumber230","pmCounterNumber231","pmCounterNumber232","pmCounterNumber233","pmCounterNumber234","pmCounterNumber235","pmCounterNumber236","pmCounterNumber237","pmCounterNumber238","pmCounterNumber239","pmCounterNumber240","pmCounterNumber241","pmCounterNumber242","pmCounterNumber243","pmCounterNumber244","pmCounterNumber245","pmCounterNumber246","pmCounterNumber247","pmCounterNumber248","pmCounterNumber249","pmCounterNumber250","pmCounterNumber251","pmCounterNumber252","pmCounterNumber252Qos","pmCounterNumber254","pmCounterNumber254Qos"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,GNBDUFunction=1,NRCellDU=32","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":7,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":8,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":9,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":10,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":11,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":12,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":13,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":14,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":17,"sValue":"0"},{"p":18,"sValue":"0"},{"p":19,"sValue":"0"},{"p":20,"sValue":"0"},{"p":21,"sValue":"0"},{"p":22,"sValue":"0"},{"p":23,"sValue":"0"},{"p":24,"sValue":"0"},{"p":25,"sValue":"0"},{"p":26,"sValue":"0"},{"p":27,"sValue":"0"},{"p":28,"sValue":"0"},{"p":29,"sValue":"0"},{"p":30,"sValue":"0"},{"p":31,"sValue":"0"},{"p":32,"sValue":"0"},{"p":33,"sValue":"0"},{"p":34,"sValue":"0"},{"p":35,"sValue":"0"},{"p":36,"sValue":"0"},{"p":37,"sValue":"0"},{"p":38,"sValue":"0"},{"p":39,"sValue":"0"},{"p":40,"sValue":"0"},{"p":41,"sValue":"0"},{"p":42,"sValue":"0"},{"p":43,"sValue":"0"},{"p":44,"sValue":"0"},{"p":45,"sValue":"0"},{"p":46,"sValue":"0"},{"p":47,"sValue":"0"},{"p":48,"sValue":"0"},{"p":49,"sValue":"0"},{"p":50,"sValue":"0"},{"p":51,"sValue":"0"},{"p":52,"sValue":"0"},{"p":53,"sValue":"0"},{"p":54,"sValue":"0"},{"p":55,"sValue":"0"},{"p":56,"sValue":"0"},{"p":57,"sValue":"0"},{"p":58,"sValue":"0"},{"p":59,"sValue":"0"},{"p":60,"sValue":"0"},{"p":61,"sValue":"0"},{"p":62,"sValue":"0"},{"p":63,"sValue":"0"},{"p":64,"sValue":"0"},{"p":65,"sValue":"0"},{"p":66,"sValue":"0"},{"p":67,"sValue":"0"},{"p":68,"sValue":"0"},{"p":69,"sValue":"0"},{"p":70,"sValue":"0"},{"p":71,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":72,"sValue":"0"},{"p":73,"sValue":"0"},{"p":74,"sValue":"0"},{"p":75,"sValue":"0"},{"p":76,"sValue":"0"},{"p":77,"sValue":"0"},{"p":78,"sValue":"0"},{"p":79,"sValue":"2880"},{"p":80,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":81,"sValue":"0,0,0,0,0,0,0,0"},{"p":82,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":83,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":84,"sValue":"0,0,0,0,0,0,0,0"},{"p":85,"sValue":"0,0,0,0,0,0,0,0"},{"p":86,"sValue":"0,0,0,0,0,0,0,0"},{"p":87,"sValue":"0,0,0,0,0,0,0,0"},{"p":88,"sValue":"0,0,0,0,0,0,0,0"},{"p":89,"sValue":"0,0,0,0,0,0,0,0"},{"p":90,"sValue":"0,0,0,0,0,0,0,0"},{"p":91,"sValue":"0,0,0,0,0,0,0,0"},{"p":92,"sValue":"0,0,0,0,0,0,0,0"},{"p":93,"sValue":"0"},{"p":94,"sValue":"0"},{"p":95,"sValue":"0"},{"p":96,"sValue":"0"},{"p":97,"sValue":"0"},{"p":98,"sValue":"0"},{"p":99,"sValue":"0"},{"p":100,"sValue":"0"},{"p":101,"sValue":"0"},{"p":102,"sValue":"0"},{"p":103,"sValue":"0"},{"p":104,"sValue":"0"},{"p":105,"sValue":"0"},{"p":106,"sValue":"0"},{"p":107,"sValue":"0"},{"p":108,"sValue":"0"},{"p":109,"sValue":"0"},{"p":110,"sValue":"0"},{"p":111,"sValue":"0"},{"p":112,"sValue":"0"},{"p":113,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":114,"sValue":"0"},{"p":115,"sValue":"0"},{"p":116,"sValue":"0"},{"p":117,"sValue":"179"},{"p":118,"sValue":"0"},{"p":119,"sValue":"0,0,0,0"},{"p":120,"sValue":"0,0,0,0"},{"p":121,"sValue":"0"},{"p":122,"sValue":"0"},{"p":123,"sValue":"0"},{"p":124,"sValue":"0"},{"p":125,"sValue":"0"},{"p":126,"sValue":"0"},{"p":127,"sValue":"0"},{"p":128,"sValue":"0"},{"p":129,"sValue":"0"},{"p":130,"sValue":"0"},{"p":131,"sValue":"0"},{"p":132,"sValue":"0"},{"p":133,"sValue":"0"},{"p":134,"sValue":"900,0,0,0,0"},{"p":135,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":136,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":137,"sValue":"1440001"},{"p":138,"sValue":"0"},{"p":139,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":140,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":141,"sValue":"0"},{"p":142,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":143,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":144,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":145,"sValue":"0"},{"p":146,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":147,"sValue":"0,0,0,0,0,0,0,0,0,0,0,1800001,0,0,0,0,0,0,0,0,0"},{"p":148,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":149,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":150,"sValue":"0,0,0,0,0,0,0,0"},{"p":151,"sValue":"0,0,0,0,0,0,0,0,0,0"},{"p":152,"sValue":"0,0,0,0,0,0,0,0,0,0"},{"p":153,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0"},{"p":154,"sValue":"0"},{"p":155,"sValue":"0"},{"p":156,"sValue":"0"},{"p":157,"sValue":"0"},{"p":158,"sValue":"0"},{"p":159,"sValue":"0"},{"p":160,"sValue":"0"},{"p":161,"sValue":"0"},{"p":162,"sValue":"0"},{"p":163,"sValue":"0"},{"p":164,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,GNBDUFunction=1,NRCellDU=31","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":7,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":8,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":9,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":10,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":11,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":12,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":13,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":14,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":17,"sValue":"0"},{"p":18,"sValue":"0"},{"p":19,"sValue":"0"},{"p":20,"sValue":"0"},{"p":21,"sValue":"0"},{"p":22,"sValue":"0"},{"p":23,"sValue":"0"},{"p":24,"sValue":"0"},{"p":25,"sValue":"0"},{"p":26,"sValue":"0"},{"p":27,"sValue":"0"},{"p":28,"sValue":"0"},{"p":29,"sValue":"0"},{"p":30,"sValue":"0"},{"p":31,"sValue":"0"},{"p":32,"sValue":"0"},{"p":33,"sValue":"0"},{"p":34,"sValue":"0"},{"p":35,"sValue":"0"},{"p":36,"sValue":"0"},{"p":37,"sValue":"0"},{"p":38,"sValue":"0"},{"p":39,"sValue":"0"},{"p":40,"sValue":"0"},{"p":41,"sValue":"0"},{"p":42,"sValue":"0"},{"p":43,"sValue":"0"},{"p":44,"sValue":"0"},{"p":45,"sValue":"0"},{"p":46,"sValue":"0"},{"p":47,"sValue":"0"},{"p":48,"sValue":"0"},{"p":49,"sValue":"0"},{"p":50,"sValue":"0"},{"p":51,"sValue":"0"},{"p":52,"sValue":"0"},{"p":53,"sValue":"0"},{"p":54,"sValue":"0"},{"p":55,"sValue":"0"},{"p":56,"sValue":"0"},{"p":57,"sValue":"0"},{"p":58,"sValue":"0"},{"p":59,"sValue":"0"},{"p":60,"sValue":"0"},{"p":61,"sValue":"0"},{"p":62,"sValue":"0"},{"p":63,"sValue":"0"},{"p":64,"sValue":"0"},{"p":65,"sValue":"0"},{"p":66,"sValue":"0"},{"p":67,"sValue":"0"},{"p":68,"sValue":"0"},{"p":69,"sValue":"0"},{"p":70,"sValue":"0"},{"p":71,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":72,"sValue":"0"},{"p":73,"sValue":"0"},{"p":74,"sValue":"0"},{"p":75,"sValue":"0"},{"p":76,"sValue":"5376"},{"p":77,"sValue":"0"},{"p":78,"sValue":"0"},{"p":79,"sValue":"0"},{"p":80,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":81,"sValue":"0,0,0,0,0,0,0,0"},{"p":82,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":83,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":84,"sValue":"0,0,0,0,0,0,0,0"},{"p":85,"sValue":"0,0,0,0,0,0,0,0"},{"p":86,"sValue":"0,0,0,0,0,0,0,0"},{"p":87,"sValue":"0,0,0,0,0,0,0,0"},{"p":88,"sValue":"0,0,0,0,0,0,0,0"},{"p":89,"sValue":"0,0,0,0,0,0,0,0"},{"p":90,"sValue":"0,0,0,0,0,0,0,0"},{"p":91,"sValue":"0,0,0,0,0,0,0,0"},{"p":92,"sValue":"0,0,0,0,0,0,0,0"},{"p":93,"sValue":"0"},{"p":94,"sValue":"0"},{"p":95,"sValue":"0"},{"p":96,"sValue":"0"},{"p":97,"sValue":"0"},{"p":98,"sValue":"0"},{"p":99,"sValue":"0"},{"p":100,"sValue":"0"},{"p":101,"sValue":"0"},{"p":102,"sValue":"0"},{"p":103,"sValue":"0"},{"p":104,"sValue":"0"},{"p":105,"sValue":"0"},{"p":106,"sValue":"0"},{"p":107,"sValue":"0"},{"p":108,"sValue":"0"},{"p":109,"sValue":"0"},{"p":110,"sValue":"0"},{"p":111,"sValue":"0"},{"p":112,"sValue":"0"},{"p":113,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":114,"sValue":"0"},{"p":115,"sValue":"0"},{"p":116,"sValue":"0"},{"p":117,"sValue":"179"},{"p":118,"sValue":"0"},{"p":119,"sValue":"0,0,0,0"},{"p":120,"sValue":"0,0,0,0"},{"p":121,"sValue":"0"},{"p":122,"sValue":"0"},{"p":123,"sValue":"0"},{"p":124,"sValue":"0"},{"p":125,"sValue":"0"},{"p":126,"sValue":"0"},{"p":127,"sValue":"0"},{"p":128,"sValue":"0"},{"p":129,"sValue":"0"},{"p":130,"sValue":"0"},{"p":131,"sValue":"0"},{"p":132,"sValue":"0"},{"p":133,"sValue":"0"},{"p":134,"sValue":"900,0,0,0,0"},{"p":135,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":136,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":137,"sValue":"1440001"},{"p":138,"sValue":"0"},{"p":139,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":140,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":141,"sValue":"0"},{"p":142,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":143,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":144,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":145,"sValue":"0"},{"p":146,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":147,"sValue":"0,0,0,0,0,0,0,0,0,0,0,1800001,0,0,0,0,0,0,0,0,0"},{"p":148,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":149,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":150,"sValue":"0,0,0,0,0,0,0,0"},{"p":151,"sValue":"0,0,0,0,0,0,0,0,0,0"},{"p":152,"sValue":"0,0,0,0,0,0,0,0,0,0"},{"p":153,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0"},{"p":154,"sValue":"0"},{"p":155,"sValue":"0"},{"p":156,"sValue":"0"},{"p":157,"sValue":"0"},{"p":158,"sValue":"0"},{"p":159,"sValue":"0"},{"p":160,"sValue":"0"},{"p":161,"sValue":"0"},{"p":162,"sValue":"0"},{"p":163,"sValue":"0"},{"p":164,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,GNBDUFunction=1,NRCellDU=2","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":7,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":8,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":9,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":10,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":11,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":12,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":13,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":14,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":17,"sValue":"0"},{"p":18,"sValue":"0"},{"p":19,"sValue":"0"},{"p":20,"sValue":"0"},{"p":21,"sValue":"0"},{"p":22,"sValue":"0"},{"p":23,"sValue":"0"},{"p":24,"sValue":"0"},{"p":25,"sValue":"0"},{"p":26,"sValue":"0"},{"p":27,"sValue":"0"},{"p":28,"sValue":"0"},{"p":29,"sValue":"0"},{"p":30,"sValue":"0"},{"p":31,"sValue":"0"},{"p":32,"sValue":"0"},{"p":33,"sValue":"0"},{"p":34,"sValue":"0"},{"p":35,"sValue":"0"},{"p":36,"sValue":"0"},{"p":37,"sValue":"0"},{"p":38,"sValue":"0"},{"p":39,"sValue":"0"},{"p":40,"sValue":"0"},{"p":41,"sValue":"0"},{"p":42,"sValue":"0"},{"p":43,"sValue":"0"},{"p":44,"sValue":"0"},{"p":45,"sValue":"0"},{"p":46,"sValue":"0"},{"p":47,"sValue":"0"},{"p":48,"sValue":"0"},{"p":49,"sValue":"0"},{"p":50,"sValue":"0"},{"p":51,"sValue":"0"},{"p":52,"sValue":"0"},{"p":53,"sValue":"0"},{"p":54,"sValue":"0"},{"p":55,"sValue":"0"},{"p":56,"sValue":"0"},{"p":57,"sValue":"0"},{"p":58,"sValue":"0"},{"p":59,"sValue":"0"},{"p":60,"sValue":"0"},{"p":61,"sValue":"0"},{"p":62,"sValue":"0"},{"p":63,"sValue":"0"},{"p":64,"sValue":"0"},{"p":65,"sValue":"0"},{"p":66,"sValue":"0"},{"p":67,"sValue":"0"},{"p":68,"sValue":"0"},{"p":69,"sValue":"0"},{"p":70,"sValue":"0"},{"p":71,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":72,"sValue":"0"},{"p":73,"sValue":"0"},{"p":74,"sValue":"0"},{"p":75,"sValue":"0"},{"p":76,"sValue":"0"},{"p":77,"sValue":"0"},{"p":78,"sValue":"0"},{"p":79,"sValue":"0"},{"p":80,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":81,"sValue":"0,0,0,0,0,0,0,0"},{"p":82,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":83,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":84,"sValue":"0,0,0,0,0,0,0,0"},{"p":85,"sValue":"0,0,0,0,0,0,0,0"},{"p":86,"sValue":"0,0,0,0,0,0,0,0"},{"p":87,"sValue":"0,0,0,0,0,0,0,0"},{"p":88,"sValue":"0,0,0,0,0,0,0,0"},{"p":89,"sValue":"0,0,0,0,0,0,0,0"},{"p":90,"sValue":"0,0,0,0,0,0,0,0"},{"p":91,"sValue":"0,0,0,0,0,0,0,0"},{"p":92,"sValue":"0,0,0,0,0,0,0,0"},{"p":93,"sValue":"0"},{"p":94,"sValue":"0"},{"p":95,"sValue":"0"},{"p":96,"sValue":"0"},{"p":97,"sValue":"0"},{"p":98,"sValue":"0"},{"p":99,"sValue":"0"},{"p":100,"sValue":"0"},{"p":101,"sValue":"0"},{"p":102,"sValue":"0"},{"p":103,"sValue":"0"},{"p":104,"sValue":"0"},{"p":105,"sValue":"0"},{"p":106,"sValue":"0"},{"p":107,"sValue":"0"},{"p":108,"sValue":"0"},{"p":109,"sValue":"0"},{"p":110,"sValue":"0"},{"p":111,"sValue":"0"},{"p":112,"sValue":"0"},{"p":113,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":114,"sValue":"0"},{"p":115,"sValue":"0"},{"p":116,"sValue":"0"},{"p":117,"sValue":"0"},{"p":118,"sValue":"0"},{"p":119,"sValue":"0,0,0,0"},{"p":120,"sValue":"0,0,0,0"},{"p":121,"sValue":"0"},{"p":122,"sValue":"0"},{"p":123,"sValue":"0"},{"p":124,"sValue":"0"},{"p":125,"sValue":"0"},{"p":126,"sValue":"0"},{"p":127,"sValue":"0"},{"p":128,"sValue":"0"},{"p":129,"sValue":"0"},{"p":130,"sValue":"0"},{"p":131,"sValue":"0"},{"p":132,"sValue":"0"},{"p":133,"sValue":"0"},{"p":134,"sValue":"0,0,0,0,0"},{"p":135,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":136,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":137,"sValue":"0"},{"p":138,"sValue":"0"},{"p":139,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":140,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":141,"sValue":"0"},{"p":142,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":143,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":144,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":145,"sValue":"0"},{"p":146,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":147,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":148,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":149,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":150,"sValue":"0,0,0,0,0,0,0,0"},{"p":151,"sValue":"0,0,0,0,0,0,0,0,0,0"},{"p":152,"sValue":"0,0,0,0,0,0,0,0,0,0"},{"p":153,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0"},{"p":154,"sValue":"0"},{"p":155,"sValue":"0"},{"p":156,"sValue":"0"},{"p":157,"sValue":"0"},{"p":158,"sValue":"0"},{"p":159,"sValue":"0"},{"p":160,"sValue":"0"},{"p":161,"sValue":"0"},{"p":162,"sValue":"0"},{"p":163,"sValue":"0"},{"p":164,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,GNBDUFunction=1,NRCellDU=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":7,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":8,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":9,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":10,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":11,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":12,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":13,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":14,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":17,"sValue":"0"},{"p":18,"sValue":"0"},{"p":19,"sValue":"0"},{"p":20,"sValue":"0"},{"p":21,"sValue":"0"},{"p":22,"sValue":"0"},{"p":23,"sValue":"0"},{"p":24,"sValue":"0"},{"p":25,"sValue":"0"},{"p":26,"sValue":"0"},{"p":27,"sValue":"0"},{"p":28,"sValue":"0"},{"p":29,"sValue":"0"},{"p":30,"sValue":"0"},{"p":31,"sValue":"0"},{"p":32,"sValue":"0"},{"p":33,"sValue":"0"},{"p":34,"sValue":"0"},{"p":35,"sValue":"0"},{"p":36,"sValue":"0"},{"p":37,"sValue":"0"},{"p":38,"sValue":"0"},{"p":39,"sValue":"0"},{"p":40,"sValue":"0"},{"p":41,"sValue":"0"},{"p":42,"sValue":"0"},{"p":43,"sValue":"0"},{"p":44,"sValue":"0"},{"p":45,"sValue":"0"},{"p":46,"sValue":"0"},{"p":47,"sValue":"0"},{"p":48,"sValue":"0"},{"p":49,"sValue":"0"},{"p":50,"sValue":"0"},{"p":51,"sValue":"0"},{"p":52,"sValue":"0"},{"p":53,"sValue":"0"},{"p":54,"sValue":"0"},{"p":55,"sValue":"0"},{"p":56,"sValue":"0"},{"p":57,"sValue":"0"},{"p":58,"sValue":"0"},{"p":59,"sValue":"0"},{"p":60,"sValue":"0"},{"p":61,"sValue":"0"},{"p":62,"sValue":"0"},{"p":63,"sValue":"0"},{"p":64,"sValue":"0"},{"p":65,"sValue":"0"},{"p":66,"sValue":"0"},{"p":67,"sValue":"0"},{"p":68,"sValue":"0"},{"p":69,"sValue":"0"},{"p":70,"sValue":"0"},{"p":71,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":72,"sValue":"0"},{"p":73,"sValue":"0"},{"p":74,"sValue":"0"},{"p":75,"sValue":"0"},{"p":76,"sValue":"0"},{"p":77,"sValue":"0"},{"p":78,"sValue":"0"},{"p":79,"sValue":"0"},{"p":80,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":81,"sValue":"0,0,0,0,0,0,0,0"},{"p":82,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":83,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":84,"sValue":"0,0,0,0,0,0,0,0"},{"p":85,"sValue":"0,0,0,0,0,0,0,0"},{"p":86,"sValue":"0,0,0,0,0,0,0,0"},{"p":87,"sValue":"0,0,0,0,0,0,0,0"},{"p":88,"sValue":"0,0,0,0,0,0,0,0"},{"p":89,"sValue":"0,0,0,0,0,0,0,0"},{"p":90,"sValue":"0,0,0,0,0,0,0,0"},{"p":91,"sValue":"0,0,0,0,0,0,0,0"},{"p":92,"sValue":"0,0,0,0,0,0,0,0"},{"p":93,"sValue":"0"},{"p":94,"sValue":"0"},{"p":95,"sValue":"0"},{"p":96,"sValue":"0"},{"p":97,"sValue":"0"},{"p":98,"sValue":"0"},{"p":99,"sValue":"0"},{"p":100,"sValue":"0"},{"p":101,"sValue":"0"},{"p":102,"sValue":"0"},{"p":103,"sValue":"0"},{"p":104,"sValue":"0"},{"p":105,"sValue":"0"},{"p":106,"sValue":"0"},{"p":107,"sValue":"0"},{"p":108,"sValue":"0"},{"p":109,"sValue":"0"},{"p":110,"sValue":"0"},{"p":111,"sValue":"0"},{"p":112,"sValue":"0"},{"p":113,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":114,"sValue":"0"},{"p":115,"sValue":"0"},{"p":116,"sValue":"0"},{"p":117,"sValue":"0"},{"p":118,"sValue":"0"},{"p":119,"sValue":"0,0,0,0"},{"p":120,"sValue":"0,0,0,0"},{"p":121,"sValue":"0"},{"p":122,"sValue":"0"},{"p":123,"sValue":"0"},{"p":124,"sValue":"0"},{"p":125,"sValue":"0"},{"p":126,"sValue":"0"},{"p":127,"sValue":"0"},{"p":128,"sValue":"0"},{"p":129,"sValue":"0"},{"p":130,"sValue":"0"},{"p":131,"sValue":"0"},{"p":132,"sValue":"0"},{"p":133,"sValue":"0"},{"p":134,"sValue":"0,0,0,0,0"},{"p":135,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":136,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":137,"sValue":"0"},{"p":138,"sValue":"0"},{"p":139,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":140,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":141,"sValue":"0"},{"p":142,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":143,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":144,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":145,"sValue":"0"},{"p":146,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":147,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":148,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":149,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":150,"sValue":"0,0,0,0,0,0,0,0"},{"p":151,"sValue":"0,0,0,0,0,0,0,0,0,0"},{"p":152,"sValue":"0,0,0,0,0,0,0,0,0,0"},{"p":153,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0"},{"p":154,"sValue":"0"},{"p":155,"sValue":"0"},{"p":156,"sValue":"0"},{"p":157,"sValue":"0"},{"p":158,"sValue":"0"},{"p":159,"sValue":"0"},{"p":160,"sValue":"0"},{"p":161,"sValue":"0"},{"p":162,"sValue":"0"},{"p":163,"sValue":"0"},{"p":164,"sValue":"0"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=NRSectorCarrier_GNBDU"},"measTypes":{"sMeasTypesList":["pmCounterNumber256","pmCounterNumber257","pmCounterNumber258","pmCounterNumber259","pmCounterNumber260","pmCounterNumber261","pmCounterNumber262","pmCounterNumber263","pmCounterNumber263On","pmCounterNumber265","pmCounterNumber266","pmCounterNumber267","pmCounterNumber267Auto","pmCounterNumber267AutoCbrs","pmCounterNumber267Man","pmCounterNumber267ManCbrs"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,GNBDUFunction=1,NRSectorCarrier=32","suspectFlag":"false","measResults":[{"p":1,"sValue":"0,0,0,0,0,0,0,0,0,15,0,0,0,0,0"},{"p":2,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":5,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":8,"sValue":"0"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":11,"sValue":"10000"},{"p":12,"sValue":"0"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,GNBDUFunction=1,NRSectorCarrier=31","suspectFlag":"false","measResults":[{"p":1,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,15,0"},{"p":2,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":5,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":8,"sValue":"0"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":11,"sValue":"15000"},{"p":12,"sValue":"0"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,GNBDUFunction=1,NRSectorCarrier=2","suspectFlag":"false","measResults":[{"p":1,"sValue":"15,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":2,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":5,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":8,"sValue":"0"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":11,"sValue":"0"},{"p":12,"sValue":"0"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,GNBDUFunction=1,NRSectorCarrier=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"15,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":2,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":5,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":8,"sValue":"0"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":11,"sValue":"0"},{"p":12,"sValue":"0"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=EUtranCellFDD"},"measTypes":{"sMeasTypesList":["pmCounterNumber272","pmCounterNumber273","pmCounterNumber274","pmCounterNumber275","pmCounterNumber276","pmCounterNumber277","pmCounterNumber278"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,ENodeBFunction=1,EUtranCellFDD=2","suspectFlag":"false","measResults":[{"p":1,"sValue":"0,0,0,0"},{"p":2,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":3,"sValue":"0,0,0,0"},{"p":4,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":5,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":6,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":7,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"}]},{"measObjInstId":"ManagedElement=nodedntest,ENodeBFunction=1,EUtranCellFDD=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0,0,0,0"},{"p":2,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":3,"sValue":"0,0,0,0"},{"p":4,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":5,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":6,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":7,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=NRCellDU_GNBDU"},"measTypes":{"sMeasTypesList":["pmCounterNumber279","pmCounterNumber280","pmCounterNumber281","pmCounterNumber282","pmCounterNumber283","pmCounterNumber284","pmCounterNumber285","pmCounterNumber286","pmCounterNumber287","pmCounterNumber288","pmCounterNumber289","pmCounterNumber290","pmCounterNumber291","pmCounterNumber292","pmCounterNumber293","pmCounterNumber294","pmCounterNumber295","pmCounterNumber296","pmCounterNumber274"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,GNBDUFunction=1,NRCellDU=32","suspectFlag":"false","measResults":[{"p":1,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":2,"sValue":"0,0,0,0"},{"p":3,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":4,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":5,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":6,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":7,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":8,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":9,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":10,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":11,"sValue":"0"},{"p":12,"sValue":"0"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0"},{"p":17,"sValue":"0"},{"p":18,"sValue":"0"},{"p":19,"sValue":"0,0,0,0"}]},{"measObjInstId":"ManagedElement=nodedntest,GNBDUFunction=1,NRCellDU=31","suspectFlag":"false","measResults":[{"p":1,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":2,"sValue":"0,0,0,0"},{"p":3,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":4,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":5,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":6,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":7,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":8,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":9,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":10,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":11,"sValue":"0"},{"p":12,"sValue":"0"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0"},{"p":17,"sValue":"0"},{"p":18,"sValue":"0"},{"p":19,"sValue":"0,0,0,0"}]},{"measObjInstId":"ManagedElement=nodedntest,GNBDUFunction=1,NRCellDU=2","suspectFlag":"false","measResults":[{"p":1,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":2,"sValue":"0,0,0,0"},{"p":3,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":4,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":5,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":6,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":7,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":8,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":9,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":10,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":11,"sValue":"0"},{"p":12,"sValue":"0"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0"},{"p":17,"sValue":"0"},{"p":18,"sValue":"0"},{"p":19,"sValue":"0,0,0,0"}]},{"measObjInstId":"ManagedElement=nodedntest,GNBDUFunction=1,NRCellDU=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":2,"sValue":"0,0,0,0"},{"p":3,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":4,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":5,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":6,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":7,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":8,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":9,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":10,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":11,"sValue":"0"},{"p":12,"sValue":"0"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0"},{"p":17,"sValue":"0"},{"p":18,"sValue":"0"},{"p":19,"sValue":"0,0,0,0"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=EUtranCellFDD"},"measTypes":{"sMeasTypesList":["pmCounterNumber297"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,ENodeBFunction=1,EUtranCellFDD=2","suspectFlag":"false","measResults":[{"p":1,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"}]},{"measObjInstId":"ManagedElement=nodedntest,ENodeBFunction=1,EUtranCellFDD=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=NRCellDU_GNBDU"},"measTypes":{"sMeasTypesList":["pmCounterNumber297F0Distr","pmCounterNumber297F2Distr"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,GNBDUFunction=1,NRCellDU=32","suspectFlag":"false","measResults":[{"p":1,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":2,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"}]},{"measObjInstId":"ManagedElement=nodedntest,GNBDUFunction=1,NRCellDU=31","suspectFlag":"false","measResults":[{"p":1,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":2,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"}]},{"measObjInstId":"ManagedElement=nodedntest,GNBDUFunction=1,NRCellDU=2","suspectFlag":"false","measResults":[{"p":1,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":2,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"}]},{"measObjInstId":"ManagedElement=nodedntest,GNBDUFunction=1,NRCellDU=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":2,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=GNBCUCPFunction_GNBCUCP"},"measTypes":{"sMeasTypesList":["pmCounterNumber300","pmCounterNumber301","pmCounterNumber302","pmCounterNumber303","pmCounterNumber304","pmCounterNumber305"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,GNBCUCPFunction=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"180"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=NRCellCU_GNBCUCP"},"measTypes":{"sMeasTypesList":["pmCounterNumber306","pmCounterNumber307","pmCounterNumber308","pmCounterNumber309","pmCounterNumber310","pmCounterNumber311","pmCounterNumber312","pmCounterNumber313","pmCounterNumber314","pmCounterNumber315","pmCounterNumber316","pmCounterNumber317","pmCounterNumber318","pmCounterNumber319","pmCounterNumber320","pmCounterNumber321","pmCounterNumber322","pmCounterNumber323","pmCounterNumber324","pmCounterNumber324Act","pmCounterNumber326","pmCounterNumber326Act","pmCounterNumber328","pmCounterNumber329","pmCounterNumber330","pmCounterNumber331","pmCounterNumber332","pmCounterNumber333","pmCounterNumber334","pmCounterNumber335","pmCounterNumber336","pmCounterNumber337","pmCounterNumber338","pmCounterNumber339","pmCounterNumber340","pmCounterNumber341","pmCounterNumber342","pmCounterNumber343","pmCounterNumber343Mos","pmCounterNumber345","pmCounterNumber345Mos","pmCounterNumber347","pmCounterNumber348","pmCounterNumber349","pmCounterNumber350","pmCounterNumber350Mos","pmCounterNumber350Reatt","pmCounterNumber350ReattMos","pmCounterNumber354","pmCounterNumber354Mos","pmCounterNumber301","pmCounterNumber302","pmCounterNumber303","pmCounterNumber304","pmCounterNumber305","pmCounterNumber356","pmCounterNumber357","pmCounterNumber358"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,GNBCUCPFunction=1,NRCellCU=32","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"180"},{"p":8,"sValue":"0"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0"},{"p":11,"sValue":"0"},{"p":12,"sValue":"0"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0"},{"p":17,"sValue":"0"},{"p":18,"sValue":"0"},{"p":19,"sValue":"0"},{"p":20,"sValue":"0"},{"p":21,"sValue":"0"},{"p":22,"sValue":"0"},{"p":23,"sValue":"0"},{"p":24,"sValue":"0"},{"p":25,"sValue":"0"},{"p":26,"sValue":"0"},{"p":27,"sValue":"0"},{"p":28,"sValue":"0"},{"p":29,"sValue":"0"},{"p":30,"sValue":"0"},{"p":31,"sValue":"0"},{"p":32,"sValue":"0"},{"p":33,"sValue":"0"},{"p":34,"sValue":"0"},{"p":35,"sValue":"0"},{"p":36,"sValue":"0"},{"p":37,"sValue":"0"},{"p":38,"sValue":"0"},{"p":39,"sValue":"0"},{"p":40,"sValue":"0"},{"p":41,"sValue":"0"},{"p":42,"sValue":"0"},{"p":43,"sValue":"180"},{"p":44,"sValue":"0"},{"p":45,"sValue":"0"},{"p":46,"sValue":"0"},{"p":47,"sValue":"0"},{"p":48,"sValue":"0"},{"p":49,"sValue":"0"},{"p":50,"sValue":"0"},{"p":51,"sValue":"0"},{"p":52,"sValue":"0"},{"p":53,"sValue":"180"},{"p":54,"sValue":"0"},{"p":55,"sValue":"0"},{"p":56,"sValue":"0"},{"p":57,"sValue":"0"},{"p":58,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,GNBCUCPFunction=1,NRCellCU=31","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"180"},{"p":8,"sValue":"0"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0"},{"p":11,"sValue":"0"},{"p":12,"sValue":"0"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0"},{"p":17,"sValue":"0"},{"p":18,"sValue":"0"},{"p":19,"sValue":"0"},{"p":20,"sValue":"0"},{"p":21,"sValue":"0"},{"p":22,"sValue":"0"},{"p":23,"sValue":"0"},{"p":24,"sValue":"0"},{"p":25,"sValue":"0"},{"p":26,"sValue":"0"},{"p":27,"sValue":"0"},{"p":28,"sValue":"0"},{"p":29,"sValue":"0"},{"p":30,"sValue":"0"},{"p":31,"sValue":"0"},{"p":32,"sValue":"0"},{"p":33,"sValue":"0"},{"p":34,"sValue":"0"},{"p":35,"sValue":"0"},{"p":36,"sValue":"0"},{"p":37,"sValue":"0"},{"p":38,"sValue":"0"},{"p":39,"sValue":"0"},{"p":40,"sValue":"0"},{"p":41,"sValue":"0"},{"p":42,"sValue":"0"},{"p":43,"sValue":"180"},{"p":44,"sValue":"0"},{"p":45,"sValue":"0"},{"p":46,"sValue":"0"},{"p":47,"sValue":"0"},{"p":48,"sValue":"0"},{"p":49,"sValue":"0"},{"p":50,"sValue":"0"},{"p":51,"sValue":"0"},{"p":52,"sValue":"0"},{"p":53,"sValue":"180"},{"p":54,"sValue":"0"},{"p":55,"sValue":"0"},{"p":56,"sValue":"0"},{"p":57,"sValue":"0"},{"p":58,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,GNBCUCPFunction=1,NRCellCU=2","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"180"},{"p":8,"sValue":"0"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0"},{"p":11,"sValue":"0"},{"p":12,"sValue":"0"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0"},{"p":17,"sValue":"0"},{"p":18,"sValue":"0"},{"p":19,"sValue":"0"},{"p":20,"sValue":"0"},{"p":21,"sValue":"0"},{"p":22,"sValue":"0"},{"p":23,"sValue":"0"},{"p":24,"sValue":"0"},{"p":25,"sValue":"0"},{"p":26,"sValue":"0"},{"p":27,"sValue":"0"},{"p":28,"sValue":"0"},{"p":29,"sValue":"0"},{"p":30,"sValue":"0"},{"p":31,"sValue":"0"},{"p":32,"sValue":"0"},{"p":33,"sValue":"0"},{"p":34,"sValue":"0"},{"p":35,"sValue":"0"},{"p":36,"sValue":"0"},{"p":37,"sValue":"0"},{"p":38,"sValue":"0"},{"p":39,"sValue":"0"},{"p":40,"sValue":"0"},{"p":41,"sValue":"0"},{"p":42,"sValue":"0"},{"p":43,"sValue":"180"},{"p":44,"sValue":"0"},{"p":45,"sValue":"0"},{"p":46,"sValue":"0"},{"p":47,"sValue":"0"},{"p":48,"sValue":"0"},{"p":49,"sValue":"0"},{"p":50,"sValue":"0"},{"p":51,"sValue":"0"},{"p":52,"sValue":"0"},{"p":53,"sValue":"180"},{"p":54,"sValue":"0"},{"p":55,"sValue":"0"},{"p":56,"sValue":"0"},{"p":57,"sValue":"0"},{"p":58,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,GNBCUCPFunction=1,NRCellCU=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"180"},{"p":8,"sValue":"0"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0"},{"p":11,"sValue":"0"},{"p":12,"sValue":"0"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0"},{"p":17,"sValue":"0"},{"p":18,"sValue":"0"},{"p":19,"sValue":"0"},{"p":20,"sValue":"0"},{"p":21,"sValue":"0"},{"p":22,"sValue":"0"},{"p":23,"sValue":"0"},{"p":24,"sValue":"0"},{"p":25,"sValue":"0"},{"p":26,"sValue":"0"},{"p":27,"sValue":"0"},{"p":28,"sValue":"0"},{"p":29,"sValue":"0"},{"p":30,"sValue":"0"},{"p":31,"sValue":"0"},{"p":32,"sValue":"0"},{"p":33,"sValue":"0"},{"p":34,"sValue":"0"},{"p":35,"sValue":"0"},{"p":36,"sValue":"0"},{"p":37,"sValue":"0"},{"p":38,"sValue":"0"},{"p":39,"sValue":"0"},{"p":40,"sValue":"0"},{"p":41,"sValue":"0"},{"p":42,"sValue":"0"},{"p":43,"sValue":"180"},{"p":44,"sValue":"0"},{"p":45,"sValue":"0"},{"p":46,"sValue":"0"},{"p":47,"sValue":"0"},{"p":48,"sValue":"0"},{"p":49,"sValue":"0"},{"p":50,"sValue":"0"},{"p":51,"sValue":"0"},{"p":52,"sValue":"0"},{"p":53,"sValue":"180"},{"p":54,"sValue":"0"},{"p":55,"sValue":"0"},{"p":56,"sValue":"0"},{"p":57,"sValue":"0"},{"p":58,"sValue":"0"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=GNBDUFunction_GNBDU"},"measTypes":{"sMeasTypesList":["pmCounterNumber359","pmCounterNumber360","pmCounterNumber361","pmCounterNumber362","pmCounterNumber363","pmCounterNumber364","pmCounterNumber365","pmCounterNumber366","pmCounterNumber367","pmCounterNumber368","pmCounterNumber369","pmCounterNumber370","pmCounterNumber371","pmCounterNumber372","pmCounterNumber373","pmCounterNumber374","pmCounterNumber375","pmCounterNumber376","pmCounterNumber377"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,GNBDUFunction=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"},{"p":5,"sValue":"32"},{"p":6,"sValue":"16"},{"p":7,"sValue":"0"},{"p":8,"sValue":"16"},{"p":9,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":10,"sValue":"0"},{"p":11,"sValue":"0"},{"p":12,"sValue":"0"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":17,"sValue":"0"},{"p":18,"sValue":"0"},{"p":19,"sValue":"0"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=NRCellDU_GNBDU"},"measTypes":{"sMeasTypesList":["pmCounterNumber378","pmCounterNumber379","pmCounterNumber380","pmCounterNumber381","pmCounterNumber382","pmCounterNumber383","pmCounterNumber384","pmCounterNumber385","pmCounterNumber386","pmCounterNumber306","pmCounterNumber307","pmCounterNumber307ual","pmCounterNumber388","pmCounterNumber389","pmCounterNumber390","pmCounterNumber391","pmCounterNumber392","pmCounterNumber393","pmCounterNumber394","pmCounterNumber395","pmCounterNumber396","pmCounterNumber397","pmCounterNumber398","pmCounterNumber399","pmCounterNumber399Broadcasting","pmCounterNumber401","pmCounterNumber402","pmCounterNumber403","pmCounterNumber404","pmCounterNumber405","pmCounterNumber406","pmCounterNumber407","pmCounterNumber407Qos","pmCounterNumber409","pmCounterNumber410","pmCounterNumber410Drb","pmCounterNumber410DrbQos","pmCounterNumber413","pmCounterNumber413ResUe","pmCounterNumber415","pmCounterNumber416","pmCounterNumber417","pmCounterNumber418","pmCounterNumber419","pmCounterNumber420","pmCounterNumber421","pmCounterNumber422","pmCounterNumber423","pmCounterNumber424","pmCounterNumber425","pmCounterNumber426","pmCounterNumber427","pmCounterNumber428","pmCounterNumber429","pmCounterNumber430","pmCounterNumber431","pmCounterNumber432","pmCounterNumber433","pmCounterNumber434","pmCounterNumber435","pmCounterNumber436","pmCounterNumber437","pmCounterNumber438","pmCounterNumber439","pmCounterNumber440","pmCounterNumber441"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,GNBDUFunction=1,NRCellDU=32","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"1800000"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"0"},{"p":8,"sValue":"1800001"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0"},{"p":11,"sValue":"0"},{"p":12,"sValue":"0"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0"},{"p":17,"sValue":"3032642268"},{"p":18,"sValue":"20160056"},{"p":19,"sValue":"15120000"},{"p":20,"sValue":"816482268"},{"p":21,"sValue":"0"},{"p":22,"sValue":"2880"},{"p":23,"sValue":"0"},{"p":24,"sValue":"0"},{"p":25,"sValue":"3780540"},{"p":26,"sValue":"2520"},{"p":27,"sValue":"0"},{"p":28,"sValue":"900,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":29,"sValue":"0"},{"p":30,"sValue":"900,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":31,"sValue":"0"},{"p":32,"sValue":"0"},{"p":33,"sValue":"0"},{"p":34,"sValue":"0"},{"p":35,"sValue":"0"},{"p":36,"sValue":"0"},{"p":37,"sValue":"0"},{"p":38,"sValue":"0"},{"p":39,"sValue":"0"},{"p":40,"sValue":"5760004"},{"p":41,"sValue":"0"},{"p":42,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":43,"sValue":"1440004"},{"p":44,"sValue":"0"},{"p":45,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":46,"sValue":"2,1,1,2,2,3,2,1,1,0,0,0"},{"p":47,"sValue":"15"},{"p":48,"sValue":"0"},{"p":49,"sValue":"0"},{"p":50,"sValue":"0"},{"p":51,"sValue":"0"},{"p":52,"sValue":"0"},{"p":53,"sValue":"60"},{"p":54,"sValue":"15"},{"p":55,"sValue":"0"},{"p":56,"sValue":"0"},{"p":57,"sValue":"0"},{"p":58,"sValue":"0"},{"p":59,"sValue":"0"},{"p":60,"sValue":"0"},{"p":61,"sValue":"0"},{"p":62,"sValue":"0"},{"p":63,"sValue":"179"},{"p":64,"sValue":"0"},{"p":65,"sValue":"0"},{"p":66,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,GNBDUFunction=1,NRCellDU=31","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"1800000"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"0"},{"p":8,"sValue":"1800001"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0"},{"p":11,"sValue":"0"},{"p":12,"sValue":"0"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0"},{"p":17,"sValue":"5110563822"},{"p":18,"sValue":"20160056"},{"p":19,"sValue":"15120000"},{"p":20,"sValue":"1375923822"},{"p":21,"sValue":"0"},{"p":22,"sValue":"5376"},{"p":23,"sValue":"0"},{"p":24,"sValue":"0"},{"p":25,"sValue":"3780504"},{"p":26,"sValue":"2352"},{"p":27,"sValue":"0"},{"p":28,"sValue":"900,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":29,"sValue":"0"},{"p":30,"sValue":"900,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":31,"sValue":"0"},{"p":32,"sValue":"0"},{"p":33,"sValue":"0"},{"p":34,"sValue":"0"},{"p":35,"sValue":"0"},{"p":36,"sValue":"0"},{"p":37,"sValue":"0"},{"p":38,"sValue":"0"},{"p":39,"sValue":"0"},{"p":40,"sValue":"5760004"},{"p":41,"sValue":"0"},{"p":42,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":43,"sValue":"1440004"},{"p":44,"sValue":"0"},{"p":45,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":46,"sValue":"3,1,2,1,2,0,3,2,0,0,0,0"},{"p":47,"sValue":"14"},{"p":48,"sValue":"0"},{"p":49,"sValue":"0"},{"p":50,"sValue":"0"},{"p":51,"sValue":"0"},{"p":52,"sValue":"0"},{"p":53,"sValue":"56"},{"p":54,"sValue":"14"},{"p":55,"sValue":"0"},{"p":56,"sValue":"0"},{"p":57,"sValue":"0"},{"p":58,"sValue":"0"},{"p":59,"sValue":"0"},{"p":60,"sValue":"0"},{"p":61,"sValue":"0"},{"p":62,"sValue":"0"},{"p":63,"sValue":"179"},{"p":64,"sValue":"0"},{"p":65,"sValue":"0"},{"p":66,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,GNBDUFunction=1,NRCellDU=2","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"0"},{"p":8,"sValue":"0"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0"},{"p":11,"sValue":"900"},{"p":12,"sValue":"900"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0"},{"p":17,"sValue":"0"},{"p":18,"sValue":"0"},{"p":19,"sValue":"0"},{"p":20,"sValue":"0"},{"p":21,"sValue":"0"},{"p":22,"sValue":"0"},{"p":23,"sValue":"0"},{"p":24,"sValue":"0"},{"p":25,"sValue":"0"},{"p":26,"sValue":"0"},{"p":27,"sValue":"0"},{"p":28,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":29,"sValue":"0"},{"p":30,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":31,"sValue":"0"},{"p":32,"sValue":"0"},{"p":33,"sValue":"0"},{"p":34,"sValue":"0"},{"p":35,"sValue":"0"},{"p":36,"sValue":"0"},{"p":37,"sValue":"0"},{"p":38,"sValue":"0"},{"p":39,"sValue":"0"},{"p":40,"sValue":"0"},{"p":41,"sValue":"0"},{"p":42,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":43,"sValue":"0"},{"p":44,"sValue":"0"},{"p":45,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":46,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0"},{"p":47,"sValue":"0"},{"p":48,"sValue":"0"},{"p":49,"sValue":"0"},{"p":50,"sValue":"0"},{"p":51,"sValue":"0"},{"p":52,"sValue":"0"},{"p":53,"sValue":"0"},{"p":54,"sValue":"0"},{"p":55,"sValue":"0"},{"p":56,"sValue":"0"},{"p":57,"sValue":"0"},{"p":58,"sValue":"0"},{"p":59,"sValue":"0"},{"p":60,"sValue":"0"},{"p":61,"sValue":"0"},{"p":62,"sValue":"0"},{"p":63,"sValue":"0"},{"p":64,"sValue":"0"},{"p":65,"sValue":"0"},{"p":66,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,GNBDUFunction=1,NRCellDU=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"0"},{"p":8,"sValue":"0"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0"},{"p":11,"sValue":"900"},{"p":12,"sValue":"900"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0"},{"p":17,"sValue":"0"},{"p":18,"sValue":"0"},{"p":19,"sValue":"0"},{"p":20,"sValue":"0"},{"p":21,"sValue":"0"},{"p":22,"sValue":"0"},{"p":23,"sValue":"0"},{"p":24,"sValue":"0"},{"p":25,"sValue":"0"},{"p":26,"sValue":"0"},{"p":27,"sValue":"0"},{"p":28,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":29,"sValue":"0"},{"p":30,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":31,"sValue":"0"},{"p":32,"sValue":"0"},{"p":33,"sValue":"0"},{"p":34,"sValue":"0"},{"p":35,"sValue":"0"},{"p":36,"sValue":"0"},{"p":37,"sValue":"0"},{"p":38,"sValue":"0"},{"p":39,"sValue":"0"},{"p":40,"sValue":"0"},{"p":41,"sValue":"0"},{"p":42,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":43,"sValue":"0"},{"p":44,"sValue":"0"},{"p":45,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":46,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0"},{"p":47,"sValue":"0"},{"p":48,"sValue":"0"},{"p":49,"sValue":"0"},{"p":50,"sValue":"0"},{"p":51,"sValue":"0"},{"p":52,"sValue":"0"},{"p":53,"sValue":"0"},{"p":54,"sValue":"0"},{"p":55,"sValue":"0"},{"p":56,"sValue":"0"},{"p":57,"sValue":"0"},{"p":58,"sValue":"0"},{"p":59,"sValue":"0"},{"p":60,"sValue":"0"},{"p":61,"sValue":"0"},{"p":62,"sValue":"0"},{"p":63,"sValue":"0"},{"p":64,"sValue":"0"},{"p":65,"sValue":"0"},{"p":66,"sValue":"0"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=PpControlLink_GNBCUUP"},"measTypes":{"sMeasTypesList":["pmCounterNumber310","pmCounterNumber311","pmCounterNumber312","pmCounterNumber313","pmCounterNumber314","pmCounterNumber347","pmCounterNumber348","pmCounterNumber349"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,GNBCUUPFunction=1,PpControlTermination=1,PpControlLink=internal","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"900"},{"p":4,"sValue":"0"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"900"},{"p":8,"sValue":"0"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=EUtranCellFDD"},"measTypes":{"sMeasTypesList":["pmCounterNumber442","pmCounterNumber443","pmCounterNumber444","pmCounterNumber445","pmCounterNumber446","pmCounterNumber447","pmCounterNumber448","pmCounterNumber448PCell","pmCounterNumber448SCell","pmCounterNumber448Volte","pmCounterNumber452","pmCounterNumber453","pmCounterNumber454","pmCounterNumber455","pmCounterNumber114","pmCounterNumber456","pmCounterNumber457","pmCounterNumber458","pmCounterNumber122","pmCounterNumber459","pmCounterNumber460","pmCounterNumber461","pmCounterNumber462","pmCounterNumber131","pmCounterNumber463","pmCounterNumber464","pmCounterNumber143","pmCounterNumber145","pmCounterNumber147","pmCounterNumber14916qam","pmCounterNumber149256Qam","pmCounterNumber14964Qam","pmCounterNumber149Iua16qam","pmCounterNumber149IuaQpsk","pmCounterNumber149Qpsk","pmCounterNumber471","pmCounterNumber472","pmCounterNumber473","pmCounterNumber474","pmCounterNumber475","pmCounterNumber476","pmCounterNumber477","pmCounterNumber478","pmCounterNumber248","pmCounterNumber249","pmCounterNumber479","pmCounterNumber250","pmCounterNumber251"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,ENodeBFunction=1,EUtranCellFDD=2","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"0"},{"p":8,"sValue":"0"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0"},{"p":11,"sValue":"0"},{"p":12,"sValue":"0"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0"},{"p":17,"sValue":"0"},{"p":18,"sValue":"0"},{"p":19,"sValue":"0"},{"p":20,"sValue":"0"},{"p":21,"sValue":"0"},{"p":22,"sValue":"0"},{"p":23,"sValue":"0"},{"p":24,"sValue":"0"},{"p":25,"sValue":"0"},{"p":26,"sValue":"0"},{"p":27,"sValue":"0"},{"p":28,"sValue":"0"},{"p":29,"sValue":"0"},{"p":30,"sValue":"0"},{"p":31,"sValue":"0"},{"p":32,"sValue":"0"},{"p":33,"sValue":"0"},{"p":34,"sValue":"0"},{"p":35,"sValue":"0"},{"p":36,"sValue":"0"},{"p":37,"sValue":"0"},{"p":38,"sValue":"0"},{"p":39,"sValue":"0"},{"p":40,"sValue":"0"},{"p":41,"sValue":"0"},{"p":42,"sValue":"0"},{"p":43,"sValue":"0"},{"p":44,"sValue":"0"},{"p":45,"sValue":"0"},{"p":46,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":47,"sValue":"0"},{"p":48,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,ENodeBFunction=1,EUtranCellFDD=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"0"},{"p":8,"sValue":"0"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0"},{"p":11,"sValue":"0"},{"p":12,"sValue":"0"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0"},{"p":17,"sValue":"0"},{"p":18,"sValue":"0"},{"p":19,"sValue":"0"},{"p":20,"sValue":"0"},{"p":21,"sValue":"0"},{"p":22,"sValue":"0"},{"p":23,"sValue":"0"},{"p":24,"sValue":"0"},{"p":25,"sValue":"0"},{"p":26,"sValue":"0"},{"p":27,"sValue":"0"},{"p":28,"sValue":"0"},{"p":29,"sValue":"0"},{"p":30,"sValue":"0"},{"p":31,"sValue":"0"},{"p":32,"sValue":"0"},{"p":33,"sValue":"0"},{"p":34,"sValue":"0"},{"p":35,"sValue":"0"},{"p":36,"sValue":"0"},{"p":37,"sValue":"0"},{"p":38,"sValue":"0"},{"p":39,"sValue":"0"},{"p":40,"sValue":"0"},{"p":41,"sValue":"0"},{"p":42,"sValue":"0"},{"p":43,"sValue":"0"},{"p":44,"sValue":"0"},{"p":45,"sValue":"0"},{"p":46,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":47,"sValue":"0"},{"p":48,"sValue":"0"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=FieldReplaceableUnit"},"measTypes":{"sMeasTypesList":["pmCounterNumber480","pmCounterNumber481"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=Radio-S3-1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"4,4,4"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=Radio-S2-1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"4,4,4"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=Radio-S1-1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"4,4,4"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=R608","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":" , , "}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=BB-1","suspectFlag":"false","measResults":[{"p":1,"sValue":" "},{"p":2,"sValue":"4,4,4"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=RiEthernetPort"},"measTypes":{"sMeasTypesList":["pmCounterNumber482","pmCounterNumber483","pmCounterNumber484","pmCounterNumber485","pmCounterNumber486","pmCounterNumber487","pmCounterNumber488","pmCounterNumber489","pmCounterNumber490","pmCounterNumber491"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=R608,RiPort=P,RiEthernetPort=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"51885"},{"p":3,"sValue":"4628315"},{"p":4,"sValue":"9190"},{"p":5,"sValue":"0"},{"p":6,"sValue":"15493"},{"p":7,"sValue":"1956503"},{"p":8,"sValue":"7326"},{"p":9,"sValue":"0"},{"p":10,"sValue":" "}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=R608,RiPort=N,RiEthernetPort=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"37309"},{"p":3,"sValue":"2868954"},{"p":4,"sValue":"4551"},{"p":5,"sValue":"0"},{"p":6,"sValue":"915"},{"p":7,"sValue":"380361"},{"p":8,"sValue":"4549"},{"p":9,"sValue":"0"},{"p":10,"sValue":" "}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=BB-1,RiPort=B,RiEthernetPort=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"15490"},{"p":3,"sValue":"1512626"},{"p":4,"sValue":"7326"},{"p":5,"sValue":"0"},{"p":6,"sValue":"51883"},{"p":7,"sValue":"3492085"},{"p":8,"sValue":"9190"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=BB-1,RiPort=A,RiEthernetPort=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"916"},{"p":3,"sValue":"260228"},{"p":4,"sValue":"4549"},{"p":5,"sValue":"0"},{"p":6,"sValue":"37309"},{"p":7,"sValue":"2097258"},{"p":8,"sValue":"4551"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=RiLink"},"measTypes":{"sMeasTypesList":["pmCounterNumber492","pmCounterNumber493","pmCounterNumber494","pmCounterNumber495"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,RiLink=S3-1","suspectFlag":"false","measResults":[{"p":1,"sValue":"1077"},{"p":2,"sValue":"1076"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,RiLink=S2-1","suspectFlag":"false","measResults":[{"p":1,"sValue":"450"},{"p":2,"sValue":"450"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,RiLink=S1-1","suspectFlag":"false","measResults":[{"p":1,"sValue":"427"},{"p":2,"sValue":"427"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,RiLink=R608-2","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"2147483647"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,RiLink=R608-1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"2147483647"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=RiPort"},"measTypes":{"sMeasTypesList":["pmCounterNumber496","pmCounterNumber497","pmCounterNumber498"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=Radio-S3-1,RiPort=DATA_2","suspectFlag":"false","measResults":[{"p":1,"sValue":"0,0,0,0,0,0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=Radio-S3-1,RiPort=DATA_1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0,0,0,0,0,0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=Radio-S2-1,RiPort=DATA_2","suspectFlag":"false","measResults":[{"p":1,"sValue":"0,0,0,0,0,0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=Radio-S2-1,RiPort=DATA_1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0,0,0,0,0,0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=Radio-S1-1,RiPort=DATA_2","suspectFlag":"false","measResults":[{"p":1,"sValue":"0,0,0,0,0,0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=Radio-S1-1,RiPort=DATA_1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0,0,0,0,0,0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=R608,RiPort=P","suspectFlag":"false","measResults":[{"p":1,"sValue":"0,0,0,0,0,0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=R608,RiPort=N","suspectFlag":"false","measResults":[{"p":1,"sValue":"0,0,0,0,0,0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=R608,RiPort=B","suspectFlag":"false","measResults":[{"p":1,"sValue":"0,0,0,0,0,0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=R608,RiPort=A","suspectFlag":"false","measResults":[{"p":1,"sValue":"0,0,0,0,0,0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=BB-1,RiPort=K","suspectFlag":"false","measResults":[{"p":1,"sValue":"0,0,0,0,0,0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=BB-1,RiPort=C","suspectFlag":"false","measResults":[{"p":1,"sValue":"0,0,0,0,0,0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=BB-1,RiPort=B","suspectFlag":"false","measResults":[{"p":1,"sValue":"0,0,0,0,0,0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=BB-1,RiPort=A","suspectFlag":"false","measResults":[{"p":1,"sValue":"0,0,0,0,0,0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=SfpChannel"},"measTypes":{"sMeasTypesList":["pmCounterNumber499","pmCounterNumber500","pmCounterNumber501"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=R608,SfpModule=P,SfpChannel=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"2951"},{"p":2,"sValue":"3600"},{"p":3,"sValue":"2922"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=R608,SfpModule=N,SfpChannel=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"3018"},{"p":2,"sValue":"4200"},{"p":3,"sValue":"2953"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=BB-1,SfpModule=K,SfpChannel=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"2809"},{"p":2,"sValue":"3500"},{"p":3,"sValue":"2812"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=Radio-S3-1,SfpModule=DATA_2,SfpChannel=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=Radio-S2-1,SfpModule=DATA_2,SfpChannel=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=Radio-S1-1,SfpModule=DATA_2,SfpChannel=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=Radio-S3-1,SfpModule=DATA_1,SfpChannel=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"2810"},{"p":2,"sValue":"3100"},{"p":3,"sValue":"2830"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=Radio-S2-1,SfpModule=DATA_1,SfpChannel=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"2717"},{"p":2,"sValue":"3600"},{"p":3,"sValue":"2775"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=Radio-S1-1,SfpModule=DATA_1,SfpChannel=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"2700"},{"p":2,"sValue":"3900"},{"p":3,"sValue":"2773"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=BB-1,SfpModule=C,SfpChannel=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=R608,SfpModule=B,SfpChannel=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"2744"},{"p":2,"sValue":"3200"},{"p":3,"sValue":"2775"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=BB-1,SfpModule=B,SfpChannel=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"2863"},{"p":2,"sValue":"3800"},{"p":3,"sValue":"2898"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=R608,SfpModule=A,SfpChannel=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"2684"},{"p":2,"sValue":"3900"},{"p":3,"sValue":"2737"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=BB-1,SfpModule=A,SfpChannel=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"2892"},{"p":2,"sValue":"4400"},{"p":3,"sValue":"2893"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=SfpModule"},"measTypes":{"sMeasTypesList":["pmCounterNumber502","pmCounterNumber503"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=Radio-S3-1,SfpModule=DATA_2","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=Radio-S3-1,SfpModule=DATA_1","suspectFlag":"false","measResults":[{"p":1,"sValue":"1310"},{"p":2,"sValue":"32552"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=Radio-S2-1,SfpModule=DATA_2","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=Radio-S2-1,SfpModule=DATA_1","suspectFlag":"false","measResults":[{"p":1,"sValue":"1430"},{"p":2,"sValue":"32904"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=Radio-S1-1,SfpModule=DATA_2","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=Radio-S1-1,SfpModule=DATA_1","suspectFlag":"false","measResults":[{"p":1,"sValue":"1410"},{"p":2,"sValue":"33141"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=R608,SfpModule=P","suspectFlag":"false","measResults":[{"p":1,"sValue":"1388"},{"p":2,"sValue":"32558"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=R608,SfpModule=N","suspectFlag":"false","measResults":[{"p":1,"sValue":"1384"},{"p":2,"sValue":"32505"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=R608,SfpModule=B","suspectFlag":"false","measResults":[{"p":1,"sValue":"1297"},{"p":2,"sValue":"32999"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=R608,SfpModule=A","suspectFlag":"false","measResults":[{"p":1,"sValue":"1297"},{"p":2,"sValue":"33041"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=BB-1,SfpModule=K","suspectFlag":"false","measResults":[{"p":1,"sValue":"1474"},{"p":2,"sValue":"32588"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=BB-1,SfpModule=C","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=BB-1,SfpModule=B","suspectFlag":"false","measResults":[{"p":1,"sValue":"1463"},{"p":2,"sValue":"32493"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=BB-1,SfpModule=A","suspectFlag":"false","measResults":[{"p":1,"sValue":"1464"},{"p":2,"sValue":"32534"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=EthernetPort"},"measTypes":{"sMeasTypesList":["pmCounterNumber482","pmCounterNumber483","pmCounterNumber484","pmCounterNumber485","pmCounterNumber486","pmCounterNumber487","pmCounterNumber488","pmCounterNumber489","pmCounterNumber504","pmCounterNumber490","pmCounterNumber505","pmCounterNumber506","pmCounterNumber507","pmCounterNumber491"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,Transport=1,EthernetPort=TN_IDL_B_1","suspectFlag":"false","measResults":[{"p":1,"sValue":"22345"},{"p":2,"sValue":"1057"},{"p":3,"sValue":"2921772"},{"p":4,"sValue":"4472"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"9147991"},{"p":8,"sValue":"17099"},{"p":9,"sValue":"0"},{"p":10,"sValue":"7627"},{"p":11,"sValue":"3582"},{"p":12,"sValue":"0"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=InterfaceIPv4"},"measTypes":{"sMeasTypesList":["pmCounterNumber508","pmCounterNumber509","pmCounterNumber510","pmCounterNumber511","pmCounterNumber512","pmCounterNumber513","pmCounterNumber514","pmCounterNumber515","pmCounterNumber516","pmCounterNumber517"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,Transport=1,Router=vr_OAM,InterfaceIPv4=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"314834"},{"p":2,"sValue":"4561"},{"p":3,"sValue":"8697703"},{"p":4,"sValue":"16811"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"0"},{"p":8,"sValue":"0"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Transport=1,Router=vr_NR,InterfaceIPv4=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"19900"},{"p":2,"sValue":"388"},{"p":3,"sValue":"1260"},{"p":4,"sValue":"30"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"0"},{"p":8,"sValue":"0"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Transport=1,Router=vr_LTE,InterfaceIPv4=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"26656"},{"p":2,"sValue":"574"},{"p":3,"sValue":"14580"},{"p":4,"sValue":"243"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"0"},{"p":8,"sValue":"0"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Transport=1,Router=Node_Internal_F1,InterfaceIPv4=NRDU","suspectFlag":"false","measResults":[{"p":1,"sValue":" "},{"p":2,"sValue":" "},{"p":3,"sValue":" "},{"p":4,"sValue":" "},{"p":5,"sValue":" "},{"p":6,"sValue":" "},{"p":7,"sValue":" "},{"p":8,"sValue":" "},{"p":9,"sValue":" "},{"p":10,"sValue":" "}]},{"measObjInstId":"ManagedElement=nodedntest,Transport=1,Router=Node_Internal_F1,InterfaceIPv4=NRCUCP","suspectFlag":"false","measResults":[{"p":1,"sValue":" "},{"p":2,"sValue":" "},{"p":3,"sValue":" "},{"p":4,"sValue":" "},{"p":5,"sValue":" "},{"p":6,"sValue":" "},{"p":7,"sValue":" "},{"p":8,"sValue":" "},{"p":9,"sValue":" "},{"p":10,"sValue":" "}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=SctpAssociation"},"measTypes":{"sMeasTypesList":["pmCounterNumber518","pmCounterNumber519","pmCounterNumber520","pmCounterNumber521","pmCounterNumber522","pmCounterNumber523","pmCounterNumber524","pmCounterNumber525","pmCounterNumber526","pmCounterNumber527","pmCounterNumber528","pmCounterNumber529"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,Transport=1,SctpEndpoint=F1_NRDU,SctpAssociation=38472-10.0.0.1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"833"},{"p":4,"sValue":"0"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"87820"},{"p":8,"sValue":"0"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0"},{"p":11,"sValue":"87820"},{"p":12,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Transport=1,SctpEndpoint=F1_NRCUCP,SctpAssociation=38472-10.0.0.2","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"833"},{"p":4,"sValue":"0"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"87820"},{"p":8,"sValue":"0"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0"},{"p":11,"sValue":"87820"},{"p":12,"sValue":"0"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=VlanPort"},"measTypes":{"sMeasTypesList":["pmCounterNumber482","pmCounterNumber483","pmCounterNumber484","pmCounterNumber485","pmCounterNumber486","pmCounterNumber487","pmCounterNumber488","pmCounterNumber489","pmCounterNumber507"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,Transport=1,VlanPort=vr_OAM.IF1","suspectFlag":"false","measResults":[{"p":1,"sValue":"1996"},{"p":2,"sValue":"341"},{"p":3,"sValue":"657544"},{"p":4,"sValue":"4205"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"9067777"},{"p":8,"sValue":"16814"},{"p":9,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Transport=1,VlanPort=vr_NR.IF1","suspectFlag":"false","measResults":[{"p":1,"sValue":"8457"},{"p":2,"sValue":"343"},{"p":3,"sValue":"711892"},{"p":4,"sValue":"33"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"2368"},{"p":8,"sValue":"37"},{"p":9,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,Transport=1,VlanPort=vr_LTE.IF1","suspectFlag":"false","measResults":[{"p":1,"sValue":"11894"},{"p":2,"sValue":"343"},{"p":3,"sValue":"1006906"},{"p":4,"sValue":"234"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"20246"},{"p":8,"sValue":"248"},{"p":9,"sValue":"0"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=ConsumedEnergyMeasurement"},"measTypes":{"sMeasTypesList":["pmCounterNumber530","pmCounterNumber530Accumulated","pmCounterNumber532"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,NodeSupport=1,ConsumedEnergyMeasurement=1","suspectFlag":"true","measResults":[{"p":1,"sValue":" "},{"p":2,"sValue":" "},{"p":3,"sValue":" , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , "}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=EnergyMeter"},"measTypes":{"sMeasTypesList":["pmCounterNumber530","pmCounterNumber530Accumulated","pmCounterNumber532","pmCounterNumber533"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=BB-1,EnergyMeter=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"83"},{"p":2,"sValue":"34846"},{"p":3,"sValue":"333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,334,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333"},{"p":4,"sValue":"52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=Radio-S1-1,EnergyMeter=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"12"},{"p":2,"sValue":"4947"},{"p":3,"sValue":"47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47"},{"p":4,"sValue":"53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=Radio-S2-1,EnergyMeter=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"13"},{"p":2,"sValue":"5394"},{"p":3,"sValue":"52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,51,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,51,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52"},{"p":4,"sValue":"54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=Radio-S3-1,EnergyMeter=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"22"},{"p":2,"sValue":"9338"},{"p":3,"sValue":"89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89"},{"p":4,"sValue":"53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,52,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,52,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=R608,EnergyMeter=1","suspectFlag":"true","measResults":[{"p":1,"sValue":" "},{"p":2,"sValue":" "},{"p":3,"sValue":" , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , "},{"p":4,"sValue":" , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , "}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=SupportUnit"},"measTypes":{"sMeasTypesList":["pmCounterNumber534"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,SupportUnit=2","suspectFlag":"false","measResults":[{"p":1,"sValue":"18,18,18"}]},{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,SupportUnit=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"30,30,30"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=BbProcessingResource"},"measTypes":{"sMeasTypesList":["pmCounterNumber535","pmCounterNumber367","pmCounterNumber368","pmCounterNumber369","pmCounterNumber370","pmCounterNumber536","pmCounterNumber537","pmCounterNumber538","pmCounterNumber539","pmCounterNumber540","pmCounterNumber541","pmCounterNumber542","pmCounterNumber543","pmCounterNumber374","pmCounterNumber375","pmCounterNumber376","pmCounterNumber377","pmCounterNumber544","pmCounterNumber545","pmCounterNumber546","pmCounterNumber547","pmCounterNumber548","pmCounterNumber549","pmCounterNumber550","pmCounterNumber551"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=BB-1,BbProcessingResource=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":8,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0"},{"p":11,"sValue":"0"},{"p":12,"sValue":"0"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0"},{"p":17,"sValue":"0"},{"p":18,"sValue":"0"},{"p":19,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":20,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":21,"sValue":"0"},{"p":22,"sValue":"0"},{"p":23,"sValue":"0"},{"p":24,"sValue":"0"},{"p":25,"sValue":"0"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=ENodeBFunction"},"measTypes":{"sMeasTypesList":["pmCounterNumber359Aas","pmCounterNumber360Aas","pmCounterNumber554","pmCounterNumber555","pmCounterNumber365Actual","pmCounterNumber366Actual","pmCounterNumber558","pmCounterNumber559","pmCounterNumber560","pmCounterNumber561","pmCounterNumber562","pmCounterNumber563","pmCounterNumber564","pmCounterNumber565","pmCounterNumber566","pmCounterNumber567","pmCounterNumber568","pmCounterNumber569","pmCounterNumber570","pmCounterNumber571","pmCounterNumber572","pmCounterNumber573"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,ENodeBFunction=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"5"},{"p":8,"sValue":"900,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":9,"sValue":"180"},{"p":10,"sValue":"0"},{"p":11,"sValue":"8000"},{"p":12,"sValue":"0"},{"p":13,"sValue":"0"},{"p":14,"sValue":"10000"},{"p":15,"sValue":"1800"},{"p":16,"sValue":"10000"},{"p":17,"sValue":"1800"},{"p":18,"sValue":"0"},{"p":19,"sValue":"0"},{"p":20,"sValue":"0"},{"p":21,"sValue":"0"},{"p":22,"sValue":"0"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=EUtranCellFDD"},"measTypes":{"sMeasTypesList":["pmCounterNumber306","pmCounterNumber307","pmCounterNumber574","pmCounterNumber575","pmCounterNumber576","pmCounterNumber577","pmCounterNumber578","pmCounterNumber579","pmCounterNumber580","pmCounterNumber581","pmCounterNumber582","pmCounterNumber33","pmCounterNumber34","pmCounterNumber329","pmCounterNumber330","pmCounterNumber583","pmCounterNumber583Arp","pmCounterNumber583Csfb","pmCounterNumber583CsfbArp","pmCounterNumber583CsfbQci","pmCounterNumber583HoOngoing","pmCounterNumber583HoOngoingArp","pmCounterNumber583HoOngoingQci","pmCounterNumber583Qci","pmCounterNumber592","pmCounterNumber592Arp","pmCounterNumber594","pmCounterNumber595","pmCounterNumber596","pmCounterNumber597","pmCounterNumber598","pmCounterNumber599","pmCounterNumber599Arp","pmCounterNumber599Qci","pmCounterNumber602","pmCounterNumber602Arp","pmCounterNumber604","pmCounterNumber605","pmCounterNumber606","pmCounterNumber607","pmCounterNumber608","pmCounterNumber609","pmCounterNumber610","pmCounterNumber611","pmCounterNumber612","pmCounterNumber613","pmCounterNumber614","pmCounterNumber615","pmCounterNumber616","pmCounterNumber617","pmCounterNumber618","pmCounterNumber619","pmCounterNumber620","pmCounterNumber621","pmCounterNumber409","pmCounterNumber622","pmCounterNumber623","pmCounterNumber624","pmCounterNumber625","pmCounterNumber626","pmCounterNumber627","pmCounterNumber413ResUe","pmCounterNumber570","pmCounterNumber213Ce","pmCounterNumber629","pmCounterNumber630","pmCounterNumber631","pmCounterNumber631Uu","pmCounterNumber633","pmCounterNumber634","pmCounterNumber635","pmCounterNumber636","pmCounterNumber637","pmCounterNumber637FiltQci","pmCounterNumber637LastTTI","pmCounterNumber637LastTTIQci","pmCounterNumber641","pmCounterNumber642","pmCounterNumber643","pmCounterNumber350","pmCounterNumber350Ce","pmCounterNumber350Dta","pmCounterNumber350DtaCe","pmCounterNumber350Reatt","pmCounterNumber350ReattCe","pmCounterNumber350ReattDta","pmCounterNumber350ReattDtaCe","pmCounterNumber650","pmCounterNumber650ActiveUsers","pmCounterNumber652","pmCounterNumber652Ce","pmCounterNumber654","pmCounterNumber654Ce","pmCounterNumber354","pmCounterNumber354Ce","pmCounterNumber354Dta","pmCounterNumber354DtaCe","pmCounterNumber354GummeiNative","pmCounterNumber660","pmCounterNumber661","pmCounterNumber662","pmCounterNumber663","pmCounterNumber664","pmCounterNumber664Ce","pmCounterNumber664Dta","pmCounterNumber664DtaCe","pmCounterNumber664Em","pmCounterNumber664Hpa","pmCounterNumber664Mod","pmCounterNumber664ModCe","pmCounterNumber664Mos","pmCounterNumber664Mta","pmCounterNumber664MtaCe","pmCounterNumber675","pmCounterNumber675Ce","pmCounterNumber677","pmCounterNumber677Ce","pmCounterNumber677Dta","pmCounterNumber677DtaCe","pmCounterNumber677Em","pmCounterNumber677Hpa","pmCounterNumber677Mod","pmCounterNumber677ModCe","pmCounterNumber677Mos","pmCounterNumber677Mta","pmCounterNumber677MtaCe","pmCounterNumber688","pmCounterNumber689","pmCounterNumber690","pmCounterNumber691","pmCounterNumber692","pmCounterNumber693","pmCounterNumber694","pmCounterNumber694Em","pmCounterNumber696","pmCounterNumber696Em","pmCounterNumber698","pmCounterNumber699","pmCounterNumber699Em","pmCounterNumber701","pmCounterNumber701Em","pmCounterNumber703","pmCounterNumber704","pmCounterNumber705","pmCounterNumber706","pmCounterNumber7062","pmCounterNumber708","pmCounterNumber709","pmCounterNumber710","pmCounterNumber711","pmCounterNumber712","pmCounterNumber713","pmCounterNumber714","pmCounterNumber715","pmCounterNumber716","pmCounterNumber717","pmCounterNumber718","pmCounterNumber719","pmCounterNumber720"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,ENodeBFunction=1,EUtranCellFDD=2","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"900"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"0"},{"p":8,"sValue":"0"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0"},{"p":11,"sValue":"0"},{"p":12,"sValue":"0"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0"},{"p":17,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":18,"sValue":"0"},{"p":19,"sValue":"0"},{"p":20,"sValue":"0"},{"p":21,"sValue":"0"},{"p":22,"sValue":"0"},{"p":23,"sValue":"0"},{"p":24,"sValue":"0"},{"p":25,"sValue":"0"},{"p":26,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":27,"sValue":"0"},{"p":28,"sValue":"0"},{"p":29,"sValue":"0"},{"p":30,"sValue":"0"},{"p":31,"sValue":"0"},{"p":32,"sValue":"0"},{"p":33,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":34,"sValue":"0"},{"p":35,"sValue":"0"},{"p":36,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":37,"sValue":"0"},{"p":38,"sValue":"0"},{"p":39,"sValue":"0"},{"p":40,"sValue":"0"},{"p":41,"sValue":"0"},{"p":42,"sValue":"0"},{"p":43,"sValue":"0"},{"p":44,"sValue":"0"},{"p":45,"sValue":"0"},{"p":46,"sValue":"0"},{"p":47,"sValue":"0,0,0,0"},{"p":48,"sValue":"0,0,0,0"},{"p":49,"sValue":"0"},{"p":50,"sValue":"0"},{"p":51,"sValue":"0"},{"p":52,"sValue":"0"},{"p":53,"sValue":"0,0,0,0"},{"p":54,"sValue":"0,0,0,0"},{"p":55,"sValue":"0"},{"p":56,"sValue":"0"},{"p":57,"sValue":"0"},{"p":58,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":59,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":60,"sValue":"0"},{"p":61,"sValue":"0"},{"p":62,"sValue":"0"},{"p":63,"sValue":"0"},{"p":64,"sValue":"0,0,0,0"},{"p":65,"sValue":"0"},{"p":66,"sValue":"0"},{"p":67,"sValue":"0"},{"p":68,"sValue":"0"},{"p":69,"sValue":"0"},{"p":70,"sValue":"0"},{"p":71,"sValue":"0"},{"p":72,"sValue":"0"},{"p":73,"sValue":"0"},{"p":74,"sValue":"0"},{"p":75,"sValue":"0"},{"p":76,"sValue":"0"},{"p":77,"sValue":"0"},{"p":78,"sValue":"0"},{"p":79,"sValue":"0"},{"p":80,"sValue":"0"},{"p":81,"sValue":"0,0,0,0"},{"p":82,"sValue":"0"},{"p":83,"sValue":"0,0,0,0"},{"p":84,"sValue":"0"},{"p":85,"sValue":"0,0,0,0"},{"p":86,"sValue":"0"},{"p":87,"sValue":"0,0,0,0"},{"p":88,"sValue":"0"},{"p":89,"sValue":"0"},{"p":90,"sValue":"0"},{"p":91,"sValue":"0,0,0,0"},{"p":92,"sValue":"0"},{"p":93,"sValue":"0,0,0,0"},{"p":94,"sValue":"0"},{"p":95,"sValue":"0,0,0,0"},{"p":96,"sValue":"0"},{"p":97,"sValue":"0,0,0,0"},{"p":98,"sValue":"0"},{"p":99,"sValue":"0"},{"p":100,"sValue":"0"},{"p":101,"sValue":"0"},{"p":102,"sValue":"0"},{"p":103,"sValue":"0"},{"p":104,"sValue":"0,0,0,0"},{"p":105,"sValue":"0"},{"p":106,"sValue":"0,0,0,0"},{"p":107,"sValue":"0"},{"p":108,"sValue":"0"},{"p":109,"sValue":"0"},{"p":110,"sValue":"0,0,0,0"},{"p":111,"sValue":"0"},{"p":112,"sValue":"0"},{"p":113,"sValue":"0,0,0,0"},{"p":114,"sValue":"0"},{"p":115,"sValue":"0,0,0,0"},{"p":116,"sValue":"0"},{"p":117,"sValue":"0,0,0,0"},{"p":118,"sValue":"0"},{"p":119,"sValue":"0,0,0,0"},{"p":120,"sValue":"0"},{"p":121,"sValue":"0"},{"p":122,"sValue":"0"},{"p":123,"sValue":"0,0,0,0"},{"p":124,"sValue":"0"},{"p":125,"sValue":"0"},{"p":126,"sValue":"0,0,0,0"},{"p":127,"sValue":"0"},{"p":128,"sValue":"0"},{"p":129,"sValue":"0"},{"p":130,"sValue":"0"},{"p":131,"sValue":"0"},{"p":132,"sValue":"0"},{"p":133,"sValue":"0"},{"p":134,"sValue":"0"},{"p":135,"sValue":"0"},{"p":136,"sValue":"0"},{"p":137,"sValue":"0"},{"p":138,"sValue":"0"},{"p":139,"sValue":"0"},{"p":140,"sValue":"0"},{"p":141,"sValue":"0"},{"p":142,"sValue":"0"},{"p":143,"sValue":"0"},{"p":144,"sValue":"0"},{"p":145,"sValue":"0"},{"p":146,"sValue":"0"},{"p":147,"sValue":"0"},{"p":148,"sValue":"0"},{"p":149,"sValue":"0"},{"p":150,"sValue":"0"},{"p":151,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":152,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":153,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":154,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":155,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":156,"sValue":"0"},{"p":157,"sValue":"0"},{"p":158,"sValue":"0,0,0,0,0,0,0,0"},{"p":159,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,ENodeBFunction=1,EUtranCellFDD=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"900"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"0"},{"p":8,"sValue":"0"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0"},{"p":11,"sValue":"0"},{"p":12,"sValue":"0"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0"},{"p":17,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":18,"sValue":"0"},{"p":19,"sValue":"0"},{"p":20,"sValue":"0"},{"p":21,"sValue":"0"},{"p":22,"sValue":"0"},{"p":23,"sValue":"0"},{"p":24,"sValue":"0"},{"p":25,"sValue":"0"},{"p":26,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":27,"sValue":"0"},{"p":28,"sValue":"0"},{"p":29,"sValue":"0"},{"p":30,"sValue":"0"},{"p":31,"sValue":"0"},{"p":32,"sValue":"0"},{"p":33,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":34,"sValue":"0"},{"p":35,"sValue":"0"},{"p":36,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":37,"sValue":"0"},{"p":38,"sValue":"0"},{"p":39,"sValue":"0"},{"p":40,"sValue":"0"},{"p":41,"sValue":"0"},{"p":42,"sValue":"0"},{"p":43,"sValue":"0"},{"p":44,"sValue":"0"},{"p":45,"sValue":"0"},{"p":46,"sValue":"0"},{"p":47,"sValue":"0,0,0,0"},{"p":48,"sValue":"0,0,0,0"},{"p":49,"sValue":"0"},{"p":50,"sValue":"0"},{"p":51,"sValue":"0"},{"p":52,"sValue":"0"},{"p":53,"sValue":"0,0,0,0"},{"p":54,"sValue":"0,0,0,0"},{"p":55,"sValue":"0"},{"p":56,"sValue":"0"},{"p":57,"sValue":"0"},{"p":58,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":59,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":60,"sValue":"0"},{"p":61,"sValue":"0"},{"p":62,"sValue":"0"},{"p":63,"sValue":"0"},{"p":64,"sValue":"0,0,0,0"},{"p":65,"sValue":"0"},{"p":66,"sValue":"0"},{"p":67,"sValue":"0"},{"p":68,"sValue":"0"},{"p":69,"sValue":"0"},{"p":70,"sValue":"0"},{"p":71,"sValue":"0"},{"p":72,"sValue":"0"},{"p":73,"sValue":"0"},{"p":74,"sValue":"0"},{"p":75,"sValue":"0"},{"p":76,"sValue":"0"},{"p":77,"sValue":"0"},{"p":78,"sValue":"0"},{"p":79,"sValue":"0"},{"p":80,"sValue":"0"},{"p":81,"sValue":"0,0,0,0"},{"p":82,"sValue":"0"},{"p":83,"sValue":"0,0,0,0"},{"p":84,"sValue":"0"},{"p":85,"sValue":"0,0,0,0"},{"p":86,"sValue":"0"},{"p":87,"sValue":"0,0,0,0"},{"p":88,"sValue":"0"},{"p":89,"sValue":"0"},{"p":90,"sValue":"0"},{"p":91,"sValue":"0,0,0,0"},{"p":92,"sValue":"0"},{"p":93,"sValue":"0,0,0,0"},{"p":94,"sValue":"0"},{"p":95,"sValue":"0,0,0,0"},{"p":96,"sValue":"0"},{"p":97,"sValue":"0,0,0,0"},{"p":98,"sValue":"0"},{"p":99,"sValue":"0"},{"p":100,"sValue":"0"},{"p":101,"sValue":"0"},{"p":102,"sValue":"0"},{"p":103,"sValue":"0"},{"p":104,"sValue":"0,0,0,0"},{"p":105,"sValue":"0"},{"p":106,"sValue":"0,0,0,0"},{"p":107,"sValue":"0"},{"p":108,"sValue":"0"},{"p":109,"sValue":"0"},{"p":110,"sValue":"0,0,0,0"},{"p":111,"sValue":"0"},{"p":112,"sValue":"0"},{"p":113,"sValue":"0,0,0,0"},{"p":114,"sValue":"0"},{"p":115,"sValue":"0,0,0,0"},{"p":116,"sValue":"0"},{"p":117,"sValue":"0,0,0,0"},{"p":118,"sValue":"0"},{"p":119,"sValue":"0,0,0,0"},{"p":120,"sValue":"0"},{"p":121,"sValue":"0"},{"p":122,"sValue":"0"},{"p":123,"sValue":"0,0,0,0"},{"p":124,"sValue":"0"},{"p":125,"sValue":"0"},{"p":126,"sValue":"0,0,0,0"},{"p":127,"sValue":"0"},{"p":128,"sValue":"0"},{"p":129,"sValue":"0"},{"p":130,"sValue":"0"},{"p":131,"sValue":"0"},{"p":132,"sValue":"0"},{"p":133,"sValue":"0"},{"p":134,"sValue":"0"},{"p":135,"sValue":"0"},{"p":136,"sValue":"0"},{"p":137,"sValue":"0"},{"p":138,"sValue":"0"},{"p":139,"sValue":"0"},{"p":140,"sValue":"0"},{"p":141,"sValue":"0"},{"p":142,"sValue":"0"},{"p":143,"sValue":"0"},{"p":144,"sValue":"0"},{"p":145,"sValue":"0"},{"p":146,"sValue":"0"},{"p":147,"sValue":"0"},{"p":148,"sValue":"0"},{"p":149,"sValue":"0"},{"p":150,"sValue":"0"},{"p":151,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":152,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":153,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":154,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":155,"sValue":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"},{"p":156,"sValue":"0"},{"p":157,"sValue":"0"},{"p":158,"sValue":"0,0,0,0,0,0,0,0"},{"p":159,"sValue":"0"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=BbProcessingResource"},"measTypes":{"sMeasTypesList":["pmCounterNumber550Burst","pmCounterNumber550Format","pmCounterNumber550X2Fwd","pmCounterNumber724","pmCounterNumber725"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,Equipment=1,FieldReplaceableUnit=BB-1,BbProcessingResource=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"},{"p":5,"sValue":"0"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=EUtranCellFDD"},"measTypes":{"sMeasTypesList":["pmCounterNumber726","pmCounterNumber727","pmCounterNumber728","pmCounterNumber729","pmCounterNumber730","pmCounterNumber731","pmCounterNumber732","pmCounterNumber733","pmCounterNumber734","pmCounterNumber735","pmCounterNumber629CatMDrxNoSyncQci","pmCounterNumber629CatMDrxSyncQci","pmCounterNumber629CatMNoDrxNoSyncQci","pmCounterNumber629CatMNoDrxSyncQci","pmCounterNumber629DrxNoSyncQci","pmCounterNumber629DrxSync","pmCounterNumber629DrxSyncQci","pmCounterNumber629NoDrxNoSyncQci","pmCounterNumber629NoDrxSyncQci","pmCounterNumber629Qci","pmCounterNumber630CatMDrxNoSyncQci","pmCounterNumber630CatMDrxSyncQci","pmCounterNumber630CatMNoDrxNoSyncQci","pmCounterNumber630CatMNoDrxSyncQci","pmCounterNumber630DrxNoSyncQci","pmCounterNumber630DrxSync","pmCounterNumber630DrxSyncQci","pmCounterNumber630NoDrxNoSyncQci","pmCounterNumber630NoDrxSyncQci","pmCounterNumber630Qci","pmCounterNumber756","pmCounterNumber756Qci","pmCounterNumber758","pmCounterNumber758Qci","pmCounterNumber631Qci","pmCounterNumber631UuQci","pmCounterNumber762","pmCounterNumber633Limitations","pmCounterNumber633MissingPdus2Qci","pmCounterNumber633Qci","pmCounterNumber633RohcFail2Qci","pmCounterNumber633SrbTooLarge","pmCounterNumber768","pmCounterNumber769","pmCounterNumber770","pmCounterNumber771","pmCounterNumber771Qci","pmCounterNumber634Qci","pmCounterNumber635Qci","pmCounterNumber775","pmCounterNumber637Ca","pmCounterNumber637LastTTICa","pmCounterNumber637Qci","pmCounterNumber637TransPlmn0","pmCounterNumber637TransPlmn1","pmCounterNumber637TransPlmn2","pmCounterNumber637TransPlmn3","pmCounterNumber637TransPlmn4","pmCounterNumber637TransPlmn5","pmCounterNumber637TransPlmn6","pmCounterNumber637TransQci","pmCounterNumber787","pmCounterNumber641Trans","pmCounterNumber789","pmCounterNumber642Plmn0","pmCounterNumber642Plmn1","pmCounterNumber642Plmn2","pmCounterNumber642Plmn3","pmCounterNumber642Plmn4","pmCounterNumber642Plmn5","pmCounterNumber642Plmn6","pmCounterNumber642Qci","pmCounterNumber798"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,ENodeBFunction=1,EUtranCellFDD=2","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"},{"p":5,"sValue":"0,0,0,0,0,0,0,0,0,0"},{"p":6,"sValue":"0,0,0,0,0,0,0,0,0,0"},{"p":7,"sValue":"0,0,0,0,0,0,0,0,0,0"},{"p":8,"sValue":"0,0,0,0,0,0,0,0,0,0"},{"p":9,"sValue":"0,0,0,0,0,0,0,0,0,0"},{"p":10,"sValue":"0,0,0,0,0,0,0,0,0,0"},{"p":11,"sValue":"0"},{"p":12,"sValue":"0"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0"},{"p":17,"sValue":"0"},{"p":18,"sValue":"0"},{"p":19,"sValue":"0"},{"p":20,"sValue":"0"},{"p":21,"sValue":"0"},{"p":22,"sValue":"0"},{"p":23,"sValue":"0"},{"p":24,"sValue":"0"},{"p":25,"sValue":"0"},{"p":26,"sValue":"0"},{"p":27,"sValue":"0"},{"p":28,"sValue":"0"},{"p":29,"sValue":"0"},{"p":30,"sValue":"0"},{"p":31,"sValue":"0"},{"p":32,"sValue":"0"},{"p":33,"sValue":"0"},{"p":34,"sValue":"0"},{"p":35,"sValue":"0"},{"p":36,"sValue":"0"},{"p":37,"sValue":"0"},{"p":38,"sValue":"0"},{"p":39,"sValue":"0"},{"p":40,"sValue":"0"},{"p":41,"sValue":"0"},{"p":42,"sValue":"0,0,0,0,0,0,0,0,0,0"},{"p":43,"sValue":"0"},{"p":44,"sValue":"0"},{"p":45,"sValue":"0"},{"p":46,"sValue":"0"},{"p":47,"sValue":"0"},{"p":48,"sValue":"0"},{"p":49,"sValue":"0"},{"p":50,"sValue":"0"},{"p":51,"sValue":"0"},{"p":52,"sValue":"0"},{"p":53,"sValue":"0"},{"p":54,"sValue":"0"},{"p":55,"sValue":"0"},{"p":56,"sValue":"0"},{"p":57,"sValue":"0"},{"p":58,"sValue":"0"},{"p":59,"sValue":"0"},{"p":60,"sValue":"0"},{"p":61,"sValue":"0"},{"p":62,"sValue":"0"},{"p":63,"sValue":"0"},{"p":64,"sValue":"0"},{"p":65,"sValue":"0"},{"p":66,"sValue":"0"},{"p":67,"sValue":"0"},{"p":68,"sValue":"0"},{"p":69,"sValue":"0"},{"p":70,"sValue":"0"},{"p":71,"sValue":"0"},{"p":72,"sValue":"0"},{"p":73,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,ENodeBFunction=1,EUtranCellFDD=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"},{"p":5,"sValue":"0,0,0,0,0,0,0,0,0,0"},{"p":6,"sValue":"0,0,0,0,0,0,0,0,0,0"},{"p":7,"sValue":"0,0,0,0,0,0,0,0,0,0"},{"p":8,"sValue":"0,0,0,0,0,0,0,0,0,0"},{"p":9,"sValue":"0,0,0,0,0,0,0,0,0,0"},{"p":10,"sValue":"0,0,0,0,0,0,0,0,0,0"},{"p":11,"sValue":"0"},{"p":12,"sValue":"0"},{"p":13,"sValue":"0"},{"p":14,"sValue":"0"},{"p":15,"sValue":"0"},{"p":16,"sValue":"0"},{"p":17,"sValue":"0"},{"p":18,"sValue":"0"},{"p":19,"sValue":"0"},{"p":20,"sValue":"0"},{"p":21,"sValue":"0"},{"p":22,"sValue":"0"},{"p":23,"sValue":"0"},{"p":24,"sValue":"0"},{"p":25,"sValue":"0"},{"p":26,"sValue":"0"},{"p":27,"sValue":"0"},{"p":28,"sValue":"0"},{"p":29,"sValue":"0"},{"p":30,"sValue":"0"},{"p":31,"sValue":"0"},{"p":32,"sValue":"0"},{"p":33,"sValue":"0"},{"p":34,"sValue":"0"},{"p":35,"sValue":"0"},{"p":36,"sValue":"0"},{"p":37,"sValue":"0"},{"p":38,"sValue":"0"},{"p":39,"sValue":"0"},{"p":40,"sValue":"0"},{"p":41,"sValue":"0"},{"p":42,"sValue":"0,0,0,0,0,0,0,0,0,0"},{"p":43,"sValue":"0"},{"p":44,"sValue":"0"},{"p":45,"sValue":"0"},{"p":46,"sValue":"0"},{"p":47,"sValue":"0"},{"p":48,"sValue":"0"},{"p":49,"sValue":"0"},{"p":50,"sValue":"0"},{"p":51,"sValue":"0"},{"p":52,"sValue":"0"},{"p":53,"sValue":"0"},{"p":54,"sValue":"0"},{"p":55,"sValue":"0"},{"p":56,"sValue":"0"},{"p":57,"sValue":"0"},{"p":58,"sValue":"0"},{"p":59,"sValue":"0"},{"p":60,"sValue":"0"},{"p":61,"sValue":"0"},{"p":62,"sValue":"0"},{"p":63,"sValue":"0"},{"p":64,"sValue":"0"},{"p":65,"sValue":"0"},{"p":66,"sValue":"0"},{"p":67,"sValue":"0"},{"p":68,"sValue":"0"},{"p":69,"sValue":"0"},{"p":70,"sValue":"0"},{"p":71,"sValue":"0"},{"p":72,"sValue":"0"},{"p":73,"sValue":"0"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=GNBCUUPFunction_GNBCUUP"},"measTypes":{"sMeasTypesList":["pmCounterNumber799","pmCounterNumber799Gtpu","pmCounterNumber799NoCtxt","pmCounterNumber802","pmCounterNumber803","pmCounterNumber804","pmCounterNumber805","pmCounterNumber806","pmCounterNumber807","pmCounterNumber808"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,GNBCUUPFunction=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"},{"p":3,"sValue":"0"},{"p":4,"sValue":"0"},{"p":5,"sValue":"0"},{"p":6,"sValue":"0"},{"p":7,"sValue":"0"},{"p":8,"sValue":"0"},{"p":9,"sValue":"0"},{"p":10,"sValue":"0"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=NRCellCU_GNBCUCP"},"measTypes":{"sMeasTypesList":["pmEndcUeCapabilityUlPdcpDelay"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,GNBCUCPFunction=1,NRCellCU=32","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,GNBCUCPFunction=1,NRCellCU=31","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,GNBCUCPFunction=1,NRCellCU=2","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"}]},{"measObjInstId":"ManagedElement=nodedntest,GNBCUCPFunction=1,NRCellCU=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"}]}]},{"measInfoId":{"sMeasInfoId":"PM=1,PmGroup=X2UTermination_GNBCUUP"},"measTypes":{"sMeasTypesList":["pmCounterNumber802","pmCounterNumber803"]},"measValuesList":[{"measObjInstId":"ManagedElement=nodedntest,GNBCUUPFunction=1,X2UTermination=1","suspectFlag":"false","measResults":[{"p":1,"sValue":"0"},{"p":2,"sValue":"0"}]}]}]}}}} \ No newline at end of file diff --git a/pmlog/src/test/resources/pm_report.json b/pmlog/src/test/resources/pm_report.json deleted file mode 100644 index 585c972c..00000000 --- a/pmlog/src/test/resources/pm_report.json +++ /dev/null @@ -1,223 +0,0 @@ -{ - "event": { - "commonEventHeader": { - "domain": "perf3gpp", - "eventName": "perf3gpp_gnb-Ericsson_pmMeasResult", - "sourceName": "O-DU-1122", - "reportingEntityName": "", - "startEpochMicrosec": 1465839830100400, - "lastEpochMicrosec": 1676378616564000, - "timeZoneOffset": "+00:00" - }, - "perf3gppFields": { - "perf3gppFieldsVersion": "1.0", - "measDataCollection": { - "granularityPeriod": 900, - "measuredEntityUserName": "RNC Telecomville", - "measuredEntityDn": "SubNetwork=CountryNN,MeContext=MEC-Gbg-1,ManagedElement=RNC-Gbg-1", - "measuredEntitySoftwareVersion": "", - "measInfoList": [ - { - "measInfoId": { - "sMeasInfoId": "" - }, - "measTypes": { - "sMeasTypesList": [ - "attTCHSeizures", - "succTCHSeizures", - "attImmediateAssignProcs", - "succImmediateAssignProcs" - ] - }, - "measValuesList": [ - { - "measObjInstId": "RncFunction=RF-1,UtranCell=Gbg-997", - "suspectFlag": "false", - "measResults": [ - { - "p": 1, - "sValue": "813" - }, - { - "p": 2, - "sValue": "913" - }, - { - "p": 3, - "sValue": "1013" - }, - { - "p": 4, - "sValue": "1113" - } - ] - }, - { - "measObjInstId": "RncFunction=RF-1,UtranCell=Gbg-998", - "suspectFlag": "false", - "measResults": [ - { - "p": 1, - "sValue": "890" - }, - { - "p": 2, - "sValue": "901" - }, - { - "p": 3, - "sValue": "123" - }, - { - "p": 4, - "sValue": "234" - } - ] - }, - { - "measObjInstId": "RncFunction=RF-1,UtranCell=Gbg-999", - "suspectFlag": "true", - "measResults": [ - { - "p": 1, - "sValue": "456" - }, - { - "p": 2, - "sValue": "567" - }, - { - "p": 3, - "sValue": "678" - }, - { - "p": 4, - "sValue": "789" - } - ] - } - ] - }, - { - "measInfoId": { - "sMeasInfoId": "ENodeBFunction" - }, - "measTypes": { - "sMeasTypesList": [ - "attTCHSeizures1", - "succTCHSeizures2", - "attImmediateAssignProcs3", - "succImmediateAssignProcs4" - ] - }, - "measValuesList": [ - { - "measObjInstId": "ManagedElement=RNC-Gbg-1,ENodeBFunction=1", - "suspectFlag": "false", - "measResults": [ - { - "p": 1, - "sValue": "4" - }, - { - "p": 2, - "sValue": "86,87,2,6,77,96,75,33,24" - }, - { - "p": 3, - "sValue": "40" - }, - { - "p": 4, - "sValue": "90" - } - ] - } - ] - }, - { - "measInfoId": { - "sMeasInfoId": "" - }, - "measTypes": { - "sMeasTypesList": [ - "attTCHSeizures5", - "succTCHSeizures6", - "attImmediateAssignProcs7", - "succImmediateAssignProcs8" - ] - }, - "measValuesList": [ - { - "measObjInstId": "RncFunction=RF-1,UtranCell=Gbg-997", - "suspectFlag": "false", - "measResults": [ - { - "p": 1, - "sValue": "238" - }, - { - "p": 2, - "sValue": "344" - }, - { - "p": 3, - "sValue": "563" - }, - { - "p": 4, - "sValue": "787" - } - ] - }, - { - "measObjInstId": "RncFunction=RF-1,UtranCell=Gbg-998", - "suspectFlag": "false", - "measResults": [ - { - "p": 1, - "sValue": "898" - }, - { - "p": 2, - "sValue": "905" - }, - { - "p": 3, - "sValue": "127" - }, - { - "p": 4, - "sValue": "238" - } - ] - }, - { - "measObjInstId": "RncFunction=RF-1,UtranCell=Gbg-999", - "suspectFlag": "true", - "measResults": [ - { - "p": 1, - "sValue": "454" - }, - { - "p": 2, - "sValue": "569" - }, - { - "p": 3, - "sValue": "672" - }, - { - "p": 4, - "sValue": "785" - } - ] - } - ] - } - ] - } - } - } -} \ No newline at end of file diff --git a/pmlog/src/test/resources/pm_report.json.gz b/pmlog/src/test/resources/pm_report.json.gz deleted file mode 100644 index 2d191d15..00000000 Binary files a/pmlog/src/test/resources/pm_report.json.gz and /dev/null differ diff --git a/pmlog/src/test/resources/pm_report_filtered.json b/pmlog/src/test/resources/pm_report_filtered.json deleted file mode 100644 index b308ff4c..00000000 --- a/pmlog/src/test/resources/pm_report_filtered.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "event": { - "commonEventHeader": { - "domain": "perf3gpp", - "eventId": "9efa1210-f285-455f-9c6a-3a659b1f1882", - "eventName": "perf3gpp_gnb-Ericsson_pmMeasResult", - "sourceName": "O-DU-1122", - "reportingEntityName": "", - "startEpochMicrosec": 951912000000, - "lastEpochMicrosec": 951912900000, - "timeZoneOffset": "+00:00" - }, - "perf3gppFields": { - "perf3gppFieldsVersion": "1.0", - "measDataCollection": { - "granularityPeriod": 900, - "measuredEntityUserName": "RNC Telecomville", - "measuredEntityDn": "SubNetwork=CountryNN,MeContext=MEC-Gbg-1,ManagedElement=RNC-Gbg-1", - "measuredEntitySoftwareVersion": "", - "measInfoList": [ - { - "measInfoId": { - "sMeasInfoId": "" - }, - "measTypes": { - "sMeasTypesList": [ - "succImmediateAssignProcs" - ] - }, - "measValuesList": [ - { - "measObjInstId": "RncFunction=RF-1,UtranCell=Gbg-997", - "suspectFlag": "false", - "measResults": [ - { - "p": 1, - "sValue": "1113" - } - ] - }, - { - "measObjInstId": "RncFunction=RF-1,UtranCell=Gbg-998", - "suspectFlag": "false", - "measResults": [ - { - "p": 1, - "sValue": "234" - } - ] - }, - { - "measObjInstId": "RncFunction=RF-1,UtranCell=Gbg-999", - "suspectFlag": "true", - "measResults": [ - { - "p": 1, - "sValue": "789" - } - ] - } - ] - } - ] - } - } - } -} \ No newline at end of file