--- /dev/null
+.tox
+docs/_build/*
--- /dev/null
+#==================================================================================
+## Copyright (c) 2018-2019 AT&T Intellectual Property.
+##
+## 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.
+##==================================================================================
+
+---
+# .readthedocs.yml
+# Read the Docs configuration file
+# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
+# Required
+version: 2
+
+formats:
+ - htmlzip
+
+build:
+ image: latest
+
+python:
+ version: 3.7
+ install:
+ - requirements: docs/requirements-docs.txt
+
+sphinx:
+ configuration: docs/conf.py
--- /dev/null
+from docs_conf.conf import *
+
+branch = 'latest'
+
+linkcheck_ignore = [
+ 'http://localhost',
+]
+
+intersphinx_mapping = {}
+intersphinx_mapping['portal-ric-dashboard'] = ('https://docs.o-ran-sc.org/projects/o-ran-sc-portal-ric-dashboard/en/%s' % branch, None)
--- /dev/null
+---
+project_cfg: oran
+project: oran
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. SPDX-License-Identifier: CC-BY-4.0
+
+
+RIC Measurement Campaign (MC) xApp
+==================================
+
+
+.. toctree::
+ :maxdepth: 1
+ :caption: Documents:
+
+ readme.rst
+
+
+* :ref:`search`
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.\r
+.. SPDX-License-Identifier: CC-BY-4.0\r
+\r
+\r
+RIC Measurement Campaign (MC) supported KPIs\r
+============================================\r
+\r
+name: throughput_ue\r
+description: throughput experienced by UE over a measurement interval. "Active" throughput is throughput while actively downloading, "average" averages bytes transfered over the measurement interval\r
+- ULLONG TS\r
+- LLONG e_RAB_ID\r
+- LLONG UE_ID\r
+- V_STR GNB_ID\r
+- FLOAT measurementInterval\r
+- LLONG active_throughput\r
+- LLONG average_throughput\r
+- LLONG min_throughput\r
+- LLONG max_throughput\r
+\r
+\r
+name: addreq_success_stats\r
+description: statistics on the time to successfully make a DC connection\r
+\r
+- V_STR GNB_ID\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- FLOAT min_success_time\r
+- FLOAT max_success_time\r
+- FLOAT avg_success_time\r
+- FLOAT pctl_05_success_time\r
+- FLOAT pctl_95_success_time\r
+- FLOAT stddev_success_time\r
+\r
+\r
+name: addreq_pdf_nr_cell\r
+description : histogram of neighboring cell RSRP, aggregated by cell id\r
+\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- UINT CELL_ID\r
+- INT cnt\r
+- UINT rsrp_vbad\r
+- UINT rsrp_bad\r
+- UINT rsrp_medium\r
+- UINT rsrp_good\r
+- UINT rsrp_vgood\r
+\r
+\r
+name: addreq_pdf_nr_gnb\r
+description : histogram of neighboring cell RSRP, aggregated by GNB, as computed from addition request events.\r
+\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- V_STR GNB_ID\r
+- INT cnt\r
+- UINT rsrp_vbad\r
+- UINT rsrp_bad\r
+- UINT rsrp_medium\r
+- UINT rsrp_good\r
+- UINT rsrp_vgood\r
+\r
+\r
+name: addreq_stats_nr_cell\r
+description : statistics about neighboring cell RSRP aggregated by cell id\r
+\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- UINT CELL_ID\r
+- INT cnt\r
+- INT min_rsrp\r
+- INT pctl_05_rsrp\r
+- INT median_rsrp\r
+- INT pctl_95_rsrp\r
+- FLOAT stddev_rsrp\r
+- INT max_rsrp\r
+\r
+\r
+name: addreq_stats_nr_gnb\r
+description : statistics about neighboring cell RSRP aggregated by GNB, as computed from addition request events.\r
+\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- V_STR GNB_ID\r
+- INT cnt\r
+- INT min_rsrp\r
+- INT pctl_05_rsrp\r
+- INT median_rsrp\r
+- INT pctl_95_rsrp\r
+- FLOAT stddev_rsrp\r
+- INT max_rsrp\r
+\r
+\r
+name: erab_stats\r
+description: number of admitted bearers and the distribution of their qCI\r
+\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- INT total_erabs\r
+- UINT qCI_1\r
+- UINT qCI_2\r
+- UINT qCI_3\r
+- UINT qCI_4\r
+- UINT qCI_5\r
+- UINT qCI_6\r
+- UINT qCI_7\r
+- UINT qCI_8\r
+- UINT qCI_9\r
+- UINT qCI_other\r
+\r
+\r
+name: mc_connected_cnt\r
+description: Number of dual connected users\r
+\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- INT count_connected_ue\r
+\r
+\r
+name: mc_connection_stats\r
+description : statistics about the length of dual connected sessions\r
+\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- FLOAT min_connected_time\r
+- FLOAT max_connected_time\r
+- FLOAT avg_connected_time\r
+- FLOAT pctl_05_connected_time\r
+- FLOAT pctl_95_connected_time\r
+- FLOAT stddev_connected_time\r
+\r
+\r
+name: mc_connects_cnt\r
+description: number of DC connection requests\r
+\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- INT count_ue_connects\r
+\r
+\r
+name: mc_disconnects_cnt\r
+description: number of DC connection releases\r
+\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- INT count_ue_disconnects\r
+\r
+\r
+name: mc_unique_ue_cnt\r
+description: Number of distinct UEs making a DC request or release\r
+\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- INT count_unique_ue\r
+\r
+\r
+name: mod_req_failure_distribution\r
+description: distribution of causes of a modification requet failure\r
+\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- INT cnt\r
+- UINT count_protobuf_unspecified\r
+- UINT count_t310_Expiry\r
+- UINT count_randomAccessProblem\r
+- UINT count_rlc_MaxNumRetx\r
+- UINT count_synchReconfigFailure_SCG\r
+- UINT count_scg_reconfigFailure\r
+- UINT count_srb3_IntegrityFailure\r
+\r
+\r
+name: reconfig_status_success_rate\r
+description: fraction of DC connect requests which are successful\r
+\r
+- V_STR GNB_ID\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- INT total_reconfiguration_requests\r
+- UINT successful_reconfiguration_requests\r
+- FLOAT success_rate\r
+\r
+\r
+name: reconfig_status_reject_cause\r
+description: distribution of causes for DC rejection\r
+\r
+- V_STR gnb_id\r
+- ULLONG TB\r
+- INT total_reconfig_reject\r
+- UINT count_radio_network\r
+- UINT count_transport\r
+- UINT count_protocol\r
+- UINT count_misc\r
+\r
+\r
+name: mod_status_refuse_cause\r
+description: distribution of causes for a sgnb modification refusal\r
+\r
+- V_STR GNB_ID\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- INT total_reconfig_refuse\r
+- UINT count_radio_network\r
+- UINT count_transport\r
+- UINT count_protocol\r
+- UINT count_misc\r
+\r
+\r
+name: release_cause\r
+description: distribution of the causes of a DC release\r
+\r
+- V_STR GNB_ID\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- INT total_reconfig_refuse\r
+- UINT count_radio_network\r
+- UINT count_transport\r
+- UINT count_protocol\r
+- UINT count_misc\r
+\r
+\r
+name: release_req_success_stats\r
+description: statistics on the time to delease a DC connection\r
+\r
+- V_STR GNB_ID\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- FLOAT min_success_time\r
+- FLOAT max_success_time\r
+- FLOAT avg_success_time\r
+- FLOAT pctl_05_success_time\r
+- FLOAT pctl_95_success_time\r
+- FLOAT stddev_success_time\r
+\r
+\r
+name: rrcx_pdf_neigh_cell_csi\r
+description: distribution of the beam csi rsrp of neighboring cells, aggregated by cell id, computed from rrc transfer\r
+\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- UINT CELL_ID\r
+- INT cnt\r
+- UINT rsrp_vbad\r
+- UINT rsrp_bad\r
+- UINT rsrp_medium\r
+- UINT rsrp_good\r
+- UINT rsrp_vgood\r
+\r
+\r
+name: rrcx_pdf_neigh_gnb_csi\r
+description: distribution of the beam csi rsrp of neighboring cells, aggregated by gNB, computed from rrc transfer\r
+\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- V_STR GNB_ID\r
+- INT cnt\r
+- UINT rsrp_vbad\r
+- UINT rsrp_bad\r
+- UINT rsrp_medium\r
+- UINT rsrp_good\r
+- UINT rsrp_vgood\r
+\r
+\r
+name: rrcx_pdf_neigh_cell_ssb\r
+description: distribution of the beam ssb rsrp of neighboring cells, aggregated by cell id, computed from rrc transfer\r
+\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- UINT CELL_ID\r
+- INT cnt\r
+- UINT rsrp_vbad\r
+- UINT rsrp_bad\r
+- UINT rsrp_medium\r
+- UINT rsrp_good\r
+- UINT rsrp_vgood\r
+\r
+\r
+name: rrcx_pdf_neigh_gnb_ssb\r
+description: distribution of the beam ssb rsrp of neighboring cells, aggregated by gNB, computed from rrc transfer\r
+\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- V_STR GNB_ID\r
+- INT cnt\r
+- UINT rsrp_vbad\r
+- UINT rsrp_bad\r
+- UINT rsrp_medium\r
+- UINT rsrp_good\r
+- UINT rsrp_vgood\r
+\r
+\r
+name: rrcx_pdf_serv_cell\r
+description: distribution of the ssb rsrp of serving cell aggregated by cell id, computed from rrc transfer\r
+\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- UINT CELL_ID\r
+- INT cnt\r
+- UINT rsrp_vbad\r
+- UINT rsrp_bad\r
+- UINT rsrp_medium\r
+- UINT rsrp_good\r
+- UINT rsrp_vgood\r
+\r
+\r
+name: rrcx_pdf_neighbor_cell\r
+description: distribution of the ssb rsrp of neighbor cells aggregated by cell id, computed from rrc transfer\r
+\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- UINT CELL_ID\r
+- INT cnt\r
+- UINT rsrp_vbad\r
+- UINT rsrp_bad\r
+- UINT rsrp_medium\r
+- UINT rsrp_good\r
+- UINT rsrp_vgood\r
+\r
+\r
+name: rrcx_pdf_serv_gnb\r
+description: distribution of the ssb rsrp of serving cell aggregated by gnb, computed from rrc transfer\r
+\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- V_STR GNB_ID\r
+- INT cnt\r
+- UINT rsrp_vbad\r
+- UINT rsrp_bad\r
+- UINT rsrp_medium\r
+- UINT rsrp_good\r
+- UINT rsrp_vgood\r
+\r
+\r
+name: rrcx_pdf_neighbor_gnb\r
+description: distribution of the ssb rsrp of serving cell aggregated by cell id, computed from rrc transfer\r
+\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- V_STR GNB_ID\r
+- INT cnt\r
+- UINT rsrp_vbad\r
+- UINT rsrp_bad\r
+- UINT rsrp_medium\r
+- UINT rsrp_good\r
+- UINT rsrp_vgood\r
+\r
+\r
+name: rrcx_stats_neigh_cell\r
+description: statistics on ssb RSRP on the beams of nrighboring cells, aggregated by cell ID, computed using rrc transfer\r
+\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- UINT CELL_ID\r
+- INT cnt\r
+- INT min_rsrp\r
+- INT pctl_05_rsrp\r
+- INT median_rsrp\r
+- INT pctl_95_rsrp\r
+- FLOAT stddev_rsrp\r
+- INT max_rsrp\r
+\r
+\r
+name: rrcx_stats_neigh_gnb\r
+description: statistics on ssb RSRP on the beams of nrighboring cells, aggregated by gNB, computed using rrc transfer\r
+\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- V_STR GNB_ID\r
+- INT cnt\r
+- INT min_rsrp\r
+- INT pctl_05_rsrp\r
+- INT median_rsrp\r
+- INT pctl_95_rsrp\r
+- FLOAT stddev_rsrp\r
+- INT max_rsrp\r
+\r
+\r
+name: rrcx_stats_serv_cell\r
+description: statistics on the ssb rsrp of the serving cell, aggregated by cell id, computed using rrc transfer\r
+\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- UINT CELL_ID\r
+- INT cnt\r
+- INT min_rsrp\r
+- INT pctl_05_rsrp\r
+- INT median_rsrp\r
+- INT pctl_95_rsrp\r
+- FLOAT stddev_rsrp\r
+- INT max_rsrp\r
+\r
+\r
+name: rrcx_stats_neighbor_cell\r
+description: statistics on the ssb rsrp of the neighbor cells, aggregated by cell id, computed using rrc transfer\r
+\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- UINT CELL_ID\r
+- INT cnt\r
+- INT min_rsrp\r
+- INT pctl_05_rsrp\r
+- INT median_rsrp\r
+- INT pctl_95_rsrp\r
+- FLOAT stddev_rsrp\r
+- INT max_rsrp\r
+\r
+\r
+name: rrcx_stats_serv_gnb\r
+description: statistics on the ssb srp of the serving cell, aggregated by gNB, computed using rrc transfer\r
+\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- V_STR GNB_ID\r
+- INT cnt\r
+- INT min_rsrp\r
+- INT pctl_05_rsrp\r
+- INT median_rsrp\r
+- INT pctl_95_rsrp\r
+- FLOAT stddev_rsrp\r
+- INT max_rsrp\r
+\r
+\r
+name: rrcx_stats_neighbor_gnb\r
+description: statistics on the ssb rsrp of the neighbor cells, aggregated by gNB, computed using rrc transfer\r
+\r
+- ULLONG TS\r
+- FLOAT measurementInterval\r
+- V_STR GNB_ID\r
+- INT cnt\r
+- INT min_rsrp\r
+- INT pctl_05_rsrp\r
+- INT median_rsrp\r
+- INT pctl_95_rsrp\r
+- FLOAT stddev_rsrp\r
+- INT max_rsrp\r
+\r
+\r
+name: throughput_rollup\r
+description: statistics on the per-UE throughput\r
+\r
+- ULLONG TS\r
+- LLONG e_RAB_ID\r
+- V_STR GNB_ID\r
+- FLOAT measurementInterval\r
+- INT count_ues\r
+- UINT average_throughput_percentile_05\r
+- UINT average_throughput_percentile_50\r
+- FLOAT average_average_throughput\r
+- UINT average_throughput_percentile_95\r
+- UINT active_throughput_percentile_05\r
+- UINT active_throughput_percentile_50\r
+- FLOAT average_active_throughput\r
+- UINT active_throughput_percentile_95\r
+\r
+\r
+name: throughput_gnb\r
+description: throughput experienced by a GNB over a measurement interval. "Active" throughput is throughput while actively downloading, "average" averages bytes transfered over the measurement interval\r
+\r
+- ULLONG TS\r
+- LLONG e_RAB_ID\r
+- V_STR GNB_ID\r
+- FLOAT measurementInterval\r
+- LLONG active_throughput\r
+- LLONG average_throughput\r
+- LLONG min_throughput\r
+- LLONG max_throughput\r
+- UINT extr_quant_hfta0_fcn_quant_udaf_hfta0\r
+- UINT extr_quant_hfta0_fcn_quant_udaf_hfta01\r
+\r
+\r
+\r
--- /dev/null
+sphinx
+sphinx-rtd-theme
+sphinxcontrib-httpdomain
+recommonmark
+lfdocs-conf
RUN ldconfig
RUN pip install protobuf
WORKDIR ${STAGE_DIR}
-RUN git clone https://gerrit.o-ran-sc.org/r/com/gs-lite
+RUN git clone -b release/0.1.0 https://gerrit.o-ran-sc.org/r/com/gs-lite
WORKDIR ${STAGE_DIR}/gs-lite
COPY mc/cfg ${STAGE_DIR}/gs-lite/cfg
COPY mc/local_datasource ${STAGE_DIR}/gs-lite/src/lib/gscprts/local_datasource
uint sinr get_serv_nr_cell__sinr;
}
-// Cell-wide CSI-RS measurement tuple and SSB measurement (from neighbor cells)
+// Cell-wide SSB measurement (from neighbor cells)
// Defined in rrc_metrics.json on rrctransfer.proto
// schemaId = 4, interface RRCXFER
PROTOCOL nr_neighbor (base){
llong id_MeNB_UE_X2AP_ID get_sgnb_mod_req__id_MeNB_UE_X2AP_ID (required);
// default=-1
llong cause_transport get_sgnb_mod_req__cause_transport (required);
+// default=-1
+ llong failureType get_sgnb_mod_req__failureType (required);
// default=-1
llong cause_radio_network get_sgnb_mod_req__cause_radio_network (required);
// UE_ID assigned by gNB for the UE over the X2. Is mandatory
llong cause_misc get_sgnb_mod_req__cause_misc (required);
}
+// ???
+// Defined in sgnb_mod_req_ack.json on sgnb_modification_request_acknowledge.proto
+// schemaId = 1701, interface SGNBMODREQACK
+PROTOCOL sgnb_mod_req_ack (base){
+// timestamp in milliseconds
+ ullong timestamp_ms get_sgnb_mod_req_ack__timestamp_ms (required,increasing);
+// gNB ID
+ string gnb_id get_sgnb_mod_req_ack__gnb_id (required);
+// UE_ID assigned by eNB for the UE over an X2. Is mandatory
+ llong id_MeNB_UE_X2AP_ID get_sgnb_mod_req_ack__id_MeNB_UE_X2AP_ID (required);
+// UE_ID assigned by gNB for the UE over the X2. Is mandatory
+ llong id_SgNB_UE_X2AP_ID get_sgnb_mod_req_ack__id_SgNB_UE_X2AP_ID (required);
+}
+
+// ???
+// Defined in sgnb_mod_req_reject.json on sgnb_modification_request_reject.proto
+// schemaId = 1801, interface SGNBMODREQREJECT
+PROTOCOL sgnb_mod_req_reject (base){
+// timestamp in milliseconds
+ ullong timestamp_ms get_sgnb_mod_req_reject__timestamp_ms (required,increasing);
+// gNB ID
+ string gnb_id get_sgnb_mod_req_reject__gnb_id (required);
+// default=-1
+ llong cause_protocol get_sgnb_mod_req_reject__cause_protocol (required);
+// UE_ID assigned by eNB for the UE over an X2. Is mandatory
+ llong id_MeNB_UE_X2AP_ID get_sgnb_mod_req_reject__id_MeNB_UE_X2AP_ID (required);
+// default=-1
+ llong cause_transport get_sgnb_mod_req_reject__cause_transport (required);
+// default=-1
+ llong cause_radio_network get_sgnb_mod_req_reject__cause_radio_network (required);
+// UE_ID assigned by gNB for the UE over the X2. Is mandatory
+ llong id_SgNB_UE_X2AP_ID get_sgnb_mod_req_reject__id_SgNB_UE_X2AP_ID (required);
+// default=-1
+ llong cause_misc get_sgnb_mod_req_reject__cause_misc (required);
+}
+
+// ???
+// Defined in sgnb_mod_rqd.json on sgnb_modification_required.proto
+// schemaId = 1901, interface SGNBMODREQUIRED
+PROTOCOL sgnb_mod_required (base){
+// timestamp in milliseconds
+ ullong timestamp_ms get_sgnb_mod_required__timestamp_ms (required,increasing);
+// gNB ID
+ string gnb_id get_sgnb_mod_required__gnb_id (required);
+// default=-1
+ llong cause_protocol get_sgnb_mod_required__cause_protocol (required);
+// UE_ID assigned by eNB for the UE over an X2. Is mandatory
+ llong id_MeNB_UE_X2AP_ID get_sgnb_mod_required__id_MeNB_UE_X2AP_ID (required);
+// default=-1
+ llong cause_transport get_sgnb_mod_required__cause_transport (required);
+// default=-1
+ llong cause_radio_network get_sgnb_mod_required__cause_radio_network (required);
+// UE_ID assigned by gNB for the UE over the X2. Is mandatory
+ llong id_SgNB_UE_X2AP_ID get_sgnb_mod_required__id_SgNB_UE_X2AP_ID (required);
+// default=-1
+ llong cause_misc get_sgnb_mod_required__cause_misc (required);
+}
+
// ???
// Defined in sgnb_modification_refuse.json on sgnb_modification_refuse.proto
// schemaId = 1401, interface SGNBMODREFUSE
uint sinr get_serv_nr_cell__sinr;
}
-// Cell-wide CSI-RS measurement tuple and SSB measurement (from neighbor cells)
+// Cell-wide SSB measurement (from neighbor cells)
// Defined in rrc_metrics.json on rrctransfer.proto
// schemaId = 4, interface RRCXFER
PROTOCOL nr_neighbor (base){
llong id_MeNB_UE_X2AP_ID get_sgnb_mod_req__id_MeNB_UE_X2AP_ID (required);
// default=-1
llong cause_transport get_sgnb_mod_req__cause_transport (required);
+// default=-1
+ llong failureType get_sgnb_mod_req__failureType (required);
// default=-1
llong cause_radio_network get_sgnb_mod_req__cause_radio_network (required);
// UE_ID assigned by gNB for the UE over the X2. Is mandatory
llong cause_misc get_sgnb_mod_req__cause_misc (required);
}
+// ???
+// Defined in sgnb_mod_req_ack.json on sgnb_modification_request_acknowledge.proto
+// schemaId = 1701, interface SGNBMODREQACK
+PROTOCOL sgnb_mod_req_ack (base){
+// timestamp in milliseconds
+ ullong timestamp_ms get_sgnb_mod_req_ack__timestamp_ms (required,increasing);
+// gNB ID
+ string gnb_id get_sgnb_mod_req_ack__gnb_id (required);
+// UE_ID assigned by eNB for the UE over an X2. Is mandatory
+ llong id_MeNB_UE_X2AP_ID get_sgnb_mod_req_ack__id_MeNB_UE_X2AP_ID (required);
+// UE_ID assigned by gNB for the UE over the X2. Is mandatory
+ llong id_SgNB_UE_X2AP_ID get_sgnb_mod_req_ack__id_SgNB_UE_X2AP_ID (required);
+}
+
+// ???
+// Defined in sgnb_mod_req_reject.json on sgnb_modification_request_reject.proto
+// schemaId = 1801, interface SGNBMODREQREJECT
+PROTOCOL sgnb_mod_req_reject (base){
+// timestamp in milliseconds
+ ullong timestamp_ms get_sgnb_mod_req_reject__timestamp_ms (required,increasing);
+// gNB ID
+ string gnb_id get_sgnb_mod_req_reject__gnb_id (required);
+// default=-1
+ llong cause_protocol get_sgnb_mod_req_reject__cause_protocol (required);
+// UE_ID assigned by eNB for the UE over an X2. Is mandatory
+ llong id_MeNB_UE_X2AP_ID get_sgnb_mod_req_reject__id_MeNB_UE_X2AP_ID (required);
+// default=-1
+ llong cause_transport get_sgnb_mod_req_reject__cause_transport (required);
+// default=-1
+ llong cause_radio_network get_sgnb_mod_req_reject__cause_radio_network (required);
+// UE_ID assigned by gNB for the UE over the X2. Is mandatory
+ llong id_SgNB_UE_X2AP_ID get_sgnb_mod_req_reject__id_SgNB_UE_X2AP_ID (required);
+// default=-1
+ llong cause_misc get_sgnb_mod_req_reject__cause_misc (required);
+}
+
+// ???
+// Defined in sgnb_mod_rqd.json on sgnb_modification_required.proto
+// schemaId = 1901, interface SGNBMODREQUIRED
+PROTOCOL sgnb_mod_required (base){
+// timestamp in milliseconds
+ ullong timestamp_ms get_sgnb_mod_required__timestamp_ms (required,increasing);
+// gNB ID
+ string gnb_id get_sgnb_mod_required__gnb_id (required);
+// default=-1
+ llong cause_protocol get_sgnb_mod_required__cause_protocol (required);
+// UE_ID assigned by eNB for the UE over an X2. Is mandatory
+ llong id_MeNB_UE_X2AP_ID get_sgnb_mod_required__id_MeNB_UE_X2AP_ID (required);
+// default=-1
+ llong cause_transport get_sgnb_mod_required__cause_transport (required);
+// default=-1
+ llong cause_radio_network get_sgnb_mod_required__cause_radio_network (required);
+// UE_ID assigned by gNB for the UE over the X2. Is mandatory
+ llong id_SgNB_UE_X2AP_ID get_sgnb_mod_required__id_SgNB_UE_X2AP_ID (required);
+// default=-1
+ llong cause_misc get_sgnb_mod_required__cause_misc (required);
+}
+
// ???
// Defined in sgnb_modification_refuse.json on sgnb_modification_refuse.proto
// schemaId = 1401, interface SGNBMODREFUSE
if(node_0_10->measresult){
node_0_12 = node_0_11->cellresults;
if(node_0_11->cellresults){
- node_0_13 = node_0_12->resultscsi_rs_cell;
- if(node_0_12->resultscsi_rs_cell){
+ node_0_13 = node_0_12->resultsssb_cell;
+ if(node_0_12->resultsssb_cell){
if(node_0_13->rsrq){
serv_nr_cell->rsrq = node_0_13->rsrq->value;
serv_nr_cell->rsrq_exists = 1;
if(node_1_9->measresult){
node_1_11 = node_1_10->cellresults;
if(node_1_10->cellresults){
- node_1_12 = node_1_11->resultscsi_rs_cell;
- if(node_1_11->resultscsi_rs_cell){
+ node_1_12 = node_1_11->resultsssb_cell;
+ if(node_1_11->resultsssb_cell){
if(node_1_12->rsrq){
nr_neighbor->rsrq = node_1_12->rsrq->value;
nr_neighbor->rsrq_exists = 1;
;
-DEFINE{query_name 'addreq_success_time';}
+DEFINE{query_name 'addreq_success_time';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
select eUE_ID, gnb_id, TB,
UINT(max(end_time)-max(start_time)) as success_time
having max(end_time)>0 and max(start_time)>0 and max(end_time)>max(start_time)
;
-DEFINE{query_name 'addreq_success_stats';}
+DEFINE{query_name 'addreq_success_stats';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
select gnb_id as GNB_ID,
($window*(TB+1))/1000 as TS,
-DEFINE{ query_name 'addreq_pdf_nr_cell'; }
+DEFINE{ query_name 'addreq_pdf_nr_cell';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint;}
// rsrp, rsrq, sinr ranges are 0 .. 127
// for now divide into 5 bins.
group by timestamp_ms/$window as tb, physCellId
;
-DEFINE{ query_name 'addreq_pdf_nr_gnb'; }
+DEFINE{ query_name 'addreq_pdf_nr_gnb';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint;}
// rsrp, rsrq, sinr ranges are 0 .. 127
// for now divide into 5 bins.
-DEFINE{ query_name 'addreq_stats_nr_cell'; }
+DEFINE{ query_name 'addreq_stats_nr_cell';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint;}
// rsrp, rsrq, sinr ranges are 0 .. 127
// to convert rsrp to dbm, subtract 157
group by timestamp_ms/$window as tb, physCellId
;
-DEFINE{ query_name 'addreq_stats_nr_gnb'; }
+DEFINE{ query_name 'addreq_stats_nr_gnb';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint;}
// rsrp, rsrq, sinr ranges are 0 .. 127
// to convert rsrp to dbm, subtract 157
// Compromise between ensuring that most add_req_ack-recon_complete pairs
// are caught while avoiding duplicates due to short sessions
// NB: $window should be a multiple of 10.
-DEFINE{query_name 'erab_stats_join';}
+DEFINE{query_name 'erab_stats_join';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
select e.timestamp_ms/10000 as TB10, e.id_SgNB_UE_X2AP_ID, e.e_RAB_ID, e.qCI
INNER_JOIN from SGNB_ADDITION_REQ_ACK.eRABs_acked_for_admit_for_ue e,
and r.timestamp_ms/10000 = e.timestamp_ms/10000
;
-DEFINE{query_name 'erab_stats';}
+DEFINE{query_name 'erab_stats';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
Select (TB*$window)/1000 as TS,
$window/1000.0 as measurementInterval,
-DEFINE{query_name 'dc_connect';}
+DEFINE{query_name 'dc_connect';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
select timestamp_ms as timestamp,
UINT(id_MeNB_UE_X2AP_ID) as eUE_ID,
where schemaId=101
;
-DEFINE{query_name 'dc_terminate';}
+DEFINE{query_name 'dc_terminate';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
select timestamp_ms as timestamp,
UINT(id_Old_eNB_UE_X2AP_ID) as eUE_ID,
;
-DEFINE{ query_name 'mc_connected_ues'; }
+DEFINE{ query_name 'mc_connected_ues';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
SELECT TB, UE_ID,
((TB+1)*$window-LAST(timestamp))/1000.0 as connected_time
CLOSING_WHEN LAST(event_type) = 0
;
-DEFINE{ query_name 'mc_connected_cnt'; }
+DEFINE{ query_name 'mc_connected_cnt';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
SELECT ($window*(TB+1))/1000 as TS,
$window/1000.0 as measurementInterval, // standard_name
GROUP BY TB
;
-DEFINE{ query_name 'mc_disconnected_ues'; }
+DEFINE{ query_name 'mc_disconnected_ues';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
SELECT TB_1000, UE_ID,
UINT((LAST(timestamp) - FIRST(timestamp))) as connected_time
;
-DEFINE{ query_name 'mc_connection_stats'; }
+DEFINE{ query_name 'mc_connection_stats';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
SELECT ($window*(TB+1))/1000 as TS,
$window/1000.0 as measurementInterval, // standard_name
;
-DEFINE{ query_name 'mc_connects_cnt'; }
+DEFINE{ query_name 'mc_connects_cnt';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
SELECT ($window*(TB+1))/1000 as TS,
$window/1000.0 as measurementInterval, // standard_name
GROUP BY timestamp / $window as TB
;
-DEFINE{ query_name 'mc_disconnects_cnt'; }
+DEFINE{ query_name 'mc_disconnects_cnt';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
SELECT ($window*(TB+1))/1000 as TS,
$window/1000.0 as measurementInterval, // standard_name
GROUP BY timestamp / $window as TB
;
-DEFINE{ query_name 'mc_unique_ues'; }
+DEFINE{ query_name 'mc_unique_ues';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
SELECT TB, UE_ID
FROM dc_events
GROUP BY timestamp / $window as TB, gUE_ID as UE_ID
;
-DEFINE{ query_name 'mc_unique_ue_cnt'; }
+DEFINE{ query_name 'mc_unique_ue_cnt';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
SELECT ($window*(TB+1))/1000 as TS,
$window/1000.0 as measurementInterval, // standard_name
-DEFINE{ query_name 'reconfig_all_debug'; }
+DEFINE{ query_name 'reconfig_all_debug';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
select 'reconfig_all_debug' as name,
count(*) as cnt, ($window*(TB+1))/1000 as TS,
group by timestamp_ms / $window as TB
;
-DEFINE{ query_name 'reconfig_success_debug'; }
+DEFINE{ query_name 'reconfig_success_debug';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
select 'reconfig_success_debug' as name,
count(*) as cnt, ($window*(TB+1))/1000 as TS,
group by timestamp_ms / $window as TB
;
-DEFINE{ query_name 'reconfig_reject_debug'; }
+DEFINE{ query_name 'reconfig_reject_debug';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
select 'reconfig_reject_debug' as name,
count(*) as cnt, ($window*(TB+1))/1000 as TS,
group by timestamp_ms / $window as TB
;
-DEFINE{ query_name 'dc_release_debug'; }
+DEFINE{ query_name 'dc_release_debug';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
select 'dc_release_debug' as name,
count(*) as cnt, ($window*(TB+1))/1000 as TS,
--- /dev/null
+DEFINE{ query_name 'mod_req_failure_distribution';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
+PARAM{ window uint;}
+
+select ($window*(tb+1))/1000 as TS,
+ $window/1000.0 as measurementInterval,
+ count(*) as cnt,
+ sum(EQ(UINT(failureType),0)) as count_protobuf_unspecified,
+ sum(EQ(UINT(failureType),1)) as count_t310_Expiry,
+ sum(EQ(UINT(failureType),2)) as count_randomAccessProblem,
+ sum(EQ(UINT(failureType),3)) as count_rlc_MaxNumRetx,
+ sum(EQ(UINT(failureType),4)) as count_synchReconfigFailure_SCG,
+ sum(EQ(UINT(failureType),5)) as count_scg_reconfigFailure,
+ sum(EQ(UINT(failureType),6)) as count_srb3_IntegrityFailure
+From SGNBMODREQ.sgnb_mod_req
+where schemaId=1201
+group by timestamp_ms/$window as tb
+
rrcx_pdf_neigh_gnb_ssb,stream,,,,,
rrcx_pdf_serv_cell,stream,,,,,
rrcx_pdf_serv_gnb,stream,,,,,
+rrcx_pdf_neighbor_cell,stream,,,,,
+rrcx_pdf_neighbor_gnb,stream,,,,,
rrcx_stats_neigh_cell,stream,,,,,
rrcx_stats_neigh_gnb,stream,,,,,
rrcx_stats_serv_cell,stream,,,,,
rrcx_stats_serv_gnb,stream,,,,,
+rrcx_stats_neighbor_cell,stream,,,,,
+rrcx_stats_neighbor_gnb,stream,,,,,
mc_connected_cnt,stream,,,,,
mc_connection_stats,stream,,,,,
mc_connects_cnt,stream,,,,,
throughput_ue,stream,,,,,
throughput_rollup,stream,,,,,
throughput_gnb,stream,,,,,
+mod_req_failure_distribution,stream,,,,,
;
-DEFINE{query_name 'reconfig_status_merge';}
+DEFINE{query_name 'reconfig_status_merge';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
select eUE_ID, gnb_id, TB,
max(start_time) as max_start_time,
group by eUE_ID, gnb_id, timestamp / $window as TB
;
-DEFINE{query_name 'reconfig_status_success_rate';}
+DEFINE{query_name 'reconfig_status_success_rate';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
select gnb_id as GNB_ID,
($window*(TB+1))/1000 as TS,
// ----------------------------------------------
// Merge in reconfig_reject causes and aggregate with this.
-DEFINE{query_name 'reconfig_status_reject_cause';}
+DEFINE{query_name 'reconfig_status_reject_cause';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
Select gnb_id, TB,
count(*) as total_reconfig_reject,
group by gnb_id, timestamp_ms / $window as TB
;
-DEFINE{query_name 'reconfig_complete_reject_cause';}
+DEFINE{query_name 'reconfig_complete_reject_cause';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
Select gnb_id, TB,
count(*) as total_reconfig_reject,
from reconfig_status_reject_cause p1, reconfig_complete_reject_cause p2
;
-DEFINE{query_name 'reconfig_reject_cause';}
+DEFINE{query_name 'reconfig_reject_cause';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
Select gnb_id as GNB_ID, ($window*(TB+1))/1000 as TS,
$window/1000.0 as measurementInterval,
// ----------------------------------------------
-DEFINE{query_name 'mod_status_refuse_cause';}
+DEFINE{query_name 'mod_status_refuse_cause';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
Select gnb_id as GNB_ID, ($window*(TB+1))/1000 as TS,
$window/1000.0 as measurementInterval,
;
// ----------------------------------------------
-DEFINE{query_name 'release_rqd_cause';}
+DEFINE{query_name 'release_rqd_cause';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
Select gnb_id, TB,
count(*) as total_reconfig_refuse,
group by gnb_id, timestamp_ms / $window as TB
;
-DEFINE{query_name 'release_request_cause';}
+DEFINE{query_name 'release_request_cause';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
Select gnb_id, TB,
count(*) as total_reconfig_refuse,
from release_rqd_cause p1, release_request_cause p2
;
-DEFINE{query_name 'release_cause';}
+DEFINE{query_name 'release_cause';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
Select gnb_id as GNB_ID, ($window*(TB+1))/1000 as TS,
$window/1000.0 as measurementInterval,
-DEFINE{query_name 'release_req_start';}
+DEFINE{query_name 'release_req_start';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
select timestamp_ms as timestamp,
non_temporal(timestamp_ms) as start_time,
where schemaId=801
;
-DEFINE{query_name 'release_req_success';}
+DEFINE{query_name 'release_req_success';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
select timestamp_ms as timestamp,
0ULL as start_time,
where schemaId=201
;
-DEFINE{query_name 'release_req_events';}
+DEFINE{query_name 'release_req_events';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
merge p1.timestamp : p2.timestamp
from release_req_start p1, release_req_success p2
;
-DEFINE{query_name 'release_req_success_time';}
+DEFINE{query_name 'release_req_success_time';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
select gUE_ID, gnb_id, TB,
UINT(max(end_time)-max(start_time)) as success_time
having max(end_time)>0 and max(start_time)>0 and max(end_time)>max(start_time)
;
-DEFINE{query_name 'release_req_success_stats';}
+DEFINE{query_name 'release_req_success_stats';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
select gnb_id as GNB_ID,
($window*(TB+1))/1000 as TS,
-DEFINE{ query_name 'rrcx_pdf_neigh_cell_csi'; }
+DEFINE{ query_name 'rrcx_pdf_neigh_cell_csi';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint;}
// rsrp, rsrq, sinr ranges are 0 .. 127
// for now divide into 5 bins.
group by timestamp_ms/$window as tb, physCellId
;
-DEFINE{ query_name 'rrcx_pdf_neigh_gnb_csi'; }
+DEFINE{ query_name 'rrcx_pdf_neigh_gnb_csi';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint;}
// rsrp, rsrq, sinr ranges are 0 .. 127
// for now divide into 5 bins.
;
-DEFINE{ query_name 'rrcx_pdf_neigh_cell_ssb'; }
+DEFINE{ query_name 'rrcx_pdf_neigh_cell_ssb';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint;}
// rsrp, rsrq, sinr ranges are 0 .. 127
// for now divide into 5 bins.
group by timestamp_ms/$window as tb, physCellId
;
-DEFINE{ query_name 'rrcx_pdf_neigh_gnb_ssb'; }
+DEFINE{ query_name 'rrcx_pdf_neigh_gnb_ssb';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint;}
// rsrp, rsrq, sinr ranges are 0 .. 127
// for now divide into 5 bins.
-DEFINE{ query_name 'rrcx_pdf_serv_cell'; }
+DEFINE{ query_name 'rrcx_pdf_serv_cell';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint;}
// rsrp, rsrq, sinr ranges are 0 .. 127
// for now divide into 5 bins.
group by timestamp_ms/$window as tb, physCellId
;
-DEFINE{ query_name 'rrcx_pdf_serv_gnb'; }
+DEFINE{ query_name 'rrcx_pdf_neighbor_cell';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
+PARAM{ window uint;}
+// rsrp, rsrq, sinr ranges are 0 .. 127
+// for now divide into 5 bins.
+
+select ($window*(tb+1))/1000 as TS, $window/1000.0 as measurementInterval,
+ physCellId as CELL_ID,
+ count(*) as cnt,
+ sum(GEQ(rsrp, 0)*LEQ(rsrp,21)) as rsrp_vbad,
+ sum(GEQ(rsrp,22)*LEQ(rsrp,36)) as rsrp_bad,
+ sum(GEQ(rsrp,37)*LEQ(rsrp,51)) as rsrp_medium,
+ sum(GEQ(rsrp,52)*LEQ(rsrp,66)) as rsrp_good,
+ sum(GEQ(rsrp,67)*LEQ(rsrp,127)) as rsrp_vgood
+from RRCXFER.nr_neighbor
+where schemaId = 4
+group by timestamp_ms/$window as tb, physCellId
+;
+
+
+DEFINE{ query_name 'rrcx_pdf_serv_gnb';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint;}
// rsrp, rsrq, sinr ranges are 0 .. 127
// for now divide into 5 bins.
from RRCXFER.serv_nr_cell
where schemaId = 1
group by timestamp_ms/$window as tb, gnb_id
+;
+
+DEFINE{ query_name 'rrcx_pdf_neighbor_gnb';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
+PARAM{ window uint;}
+// rsrp, rsrq, sinr ranges are 0 .. 127
+// for now divide into 5 bins.
+
+select ($window*(tb+1))/1000 as TS, $window/1000.0 as measurementInterval,
+ gnb_id as GNB_ID,
+ count(*) as cnt,
+ sum(GEQ(rsrp, 0)*LEQ(rsrp,21)) as rsrp_vbad,
+ sum(GEQ(rsrp,22)*LEQ(rsrp,36)) as rsrp_bad,
+ sum(GEQ(rsrp,37)*LEQ(rsrp,51)) as rsrp_medium,
+ sum(GEQ(rsrp,52)*LEQ(rsrp,66)) as rsrp_good,
+ sum(GEQ(rsrp,67)*LEQ(rsrp,127)) as rsrp_vgood
+from RRCXFER.nr_neighbor
+where schemaId = 4
+group by timestamp_ms/$window as tb, gnb_id
+
-DEFINE{ query_name 'rrcx_stats_neigh_cell'; }
+DEFINE{ query_name 'rrcx_stats_neigh_cell';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint;}
// rsrp, rsrq, sinr ranges are 0 .. 127
// to convert rsrp to dbm, subtract 157
sum( (FLOAT(rsrp)-157) )*sum( (FLOAT(rsrp)-157) )/count(*)
) / count(*) as stddev_rsrp,
INT(max(rsrp))-INT(157) as max_rsrp
-from RRCXFER.neighbor_beam_csi
-where schemaId = 5 and rsrp<128
+from RRCXFER.neighbor_beam_ssb
+where schemaId = 6 and rsrp<128
group by timestamp_ms/$window as tb, physCellId
;
-DEFINE{ query_name 'rrcx_stats_neigh_gnb'; }
+DEFINE{ query_name 'rrcx_stats_neigh_gnb';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint;}
// rsrp, rsrq, sinr ranges are 0 .. 127
// to convert rsrp to dbm, subtract 157
sum( (FLOAT(rsrp)-157) )*sum( (FLOAT(rsrp)-157) )/count(*)
) / count(*) as stddev_rsrp,
INT(max(rsrp))-INT(157) as max_rsrp
-from RRCXFER.neighbor_beam_csi
-where schemaId = 5 and rsrp<128
+from RRCXFER.neighbor_beam_ssb
+where schemaId = 6 and rsrp<128
group by timestamp_ms/$window as tb, gnb_id
;
-DEFINE{ query_name 'rrcx_stats_serv_cell'; }
+DEFINE{ query_name 'rrcx_stats_serv_cell';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint;}
// rsrp, rsrq, sinr ranges are 0 .. 127
// to convert rsrp to dbm, subtract 157
group by timestamp_ms/$window as tb, physCellId
;
-DEFINE{ query_name 'rrcx_stats_serv_gnb'; }
+DEFINE{ query_name 'rrcx_stats_neighbor_cell';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
+PARAM{ window uint;}
+// rsrp, rsrq, sinr ranges are 0 .. 127
+// to convert rsrp to dbm, subtract 157
+
+select ($window*(tb+1))/1000 as TS, $window/1000.0 as measurementInterval,
+ physCellId as CELL_ID,
+ count(*) as cnt,
+ INT(min(rsrp))-INT(157) as min_rsrp,
+ INT(quantile_of(rsrp, .05)) - INT(157) as pctl_05_rsrp,
+ INT(median_of(rsrp)) - INT(157) as median_rsrp,
+ INT(quantile_of(rsrp, .95)) - INT(157) as pctl_95_rsrp,
+ sqrt(
+ sum( (FLOAT(rsrp)-157)*(FLOAT(rsrp)-157)) -
+ sum( (FLOAT(rsrp)-157) )*sum( (FLOAT(rsrp)-157) )/count(*)
+ ) / count(*) as stddev_rsrp,
+ INT(max(rsrp))-INT(157) as max_rsrp
+from RRCXFER.nr_neighbor
+where schemaId = 4 and rsrp<128
+group by timestamp_ms/$window as tb, physCellId
+;
+
+
+DEFINE{ query_name 'rrcx_stats_serv_gnb';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint;}
// rsrp, rsrq, sinr ranges are 0 .. 127
// to convert rsrp to dbm, subtract 157
from RRCXFER.serv_nr_cell
where schemaId = 1 and rsrp<128
group by timestamp_ms/$window as tb, gnb_id
+;
+
+DEFINE{ query_name 'rrcx_stats_neighbor_gnb';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
+PARAM{ window uint;}
+// rsrp, rsrq, sinr ranges are 0 .. 127
+// to convert rsrp to dbm, subtract 157
+
+select ($window*(tb+1))/1000 as TS, $window/1000.0 as measurementInterval,
+ gnb_id as GNB_ID,
+ count(*) as cnt,
+ INT(min(rsrp))-INT(157) as min_rsrp,
+ INT(quantile_of(rsrp, .05)) - INT(157) as pctl_05_rsrp,
+ INT(median_of(rsrp)) - INT(157) as median_rsrp,
+ INT(quantile_of(rsrp, .95)) - INT(157) as pctl_95_rsrp,
+ sqrt(
+ sum( (FLOAT(rsrp)-157)*(FLOAT(rsrp)-157)) -
+ sum( (FLOAT(rsrp)-157) )*sum( (FLOAT(rsrp)-157) )/count(*)
+ ) / count(*) as stddev_rsrp,
+ INT(max(rsrp))-INT(157) as max_rsrp
+from RRCXFER.nr_neighbor
+where schemaId = 4 and rsrp<128
+group by timestamp_ms/$window as tb, gnb_id
/mc/gs-lite/bin/gsprintconsole_ves -C $VES_IP:$VES_PORT -U /vescollector/eventListener/v7 -V 7 `cat gshub.log` default rrcx_pdf_neigh_gnb_ssb window=$WINDOW &
/mc/gs-lite/bin/gsprintconsole_ves -C $VES_IP:$VES_PORT -U /vescollector/eventListener/v7 -V 7 `cat gshub.log` default rrcx_pdf_serv_cell window=$WINDOW &
/mc/gs-lite/bin/gsprintconsole_ves -C $VES_IP:$VES_PORT -U /vescollector/eventListener/v7 -V 7 `cat gshub.log` default rrcx_pdf_serv_gnb window=$WINDOW &
+ /mc/gs-lite/bin/gsprintconsole_ves -C $VES_IP:$VES_PORT -U /vescollector/eventListener/v7 -V 7 `cat gshub.log` default rrcx_pdf_neighbor_cell window=$WINDOW &
+ /mc/gs-lite/bin/gsprintconsole_ves -C $VES_IP:$VES_PORT -U /vescollector/eventListener/v7 -V 7 `cat gshub.log` default rrcx_pdf_neighbor_gnb window=$WINDOW &
/mc/gs-lite/bin/gsprintconsole_ves -C $VES_IP:$VES_PORT -U /vescollector/eventListener/v7 -V 7 `cat gshub.log` default rrcx_stats_neigh_cell window=$WINDOW &
/mc/gs-lite/bin/gsprintconsole_ves -C $VES_IP:$VES_PORT -U /vescollector/eventListener/v7 -V 7 `cat gshub.log` default rrcx_stats_neigh_gnb window=$WINDOW &
/mc/gs-lite/bin/gsprintconsole_ves -C $VES_IP:$VES_PORT -U /vescollector/eventListener/v7 -V 7 `cat gshub.log` default rrcx_stats_serv_cell window=$WINDOW &
/mc/gs-lite/bin/gsprintconsole_ves -C $VES_IP:$VES_PORT -U /vescollector/eventListener/v7 -V 7 `cat gshub.log` default rrcx_stats_serv_gnb window=$WINDOW &
+ /mc/gs-lite/bin/gsprintconsole_ves -C $VES_IP:$VES_PORT -U /vescollector/eventListener/v7 -V 7 `cat gshub.log` default rrcx_stats_neighbor_cell window=$WINDOW &
+ /mc/gs-lite/bin/gsprintconsole_ves -C $VES_IP:$VES_PORT -U /vescollector/eventListener/v7 -V 7 `cat gshub.log` default rrcx_stats_neighbor_gnb window=$WINDOW &
/mc/gs-lite/bin/gsprintconsole_ves -C $VES_IP:$VES_PORT -U /vescollector/eventListener/v7 -V 7 `cat gshub.log` default mc_connected_cnt window=$WINDOW &
/mc/gs-lite/bin/gsprintconsole_ves -C $VES_IP:$VES_PORT -U /vescollector/eventListener/v7 -V 7 `cat gshub.log` default mc_connection_stats window=$WINDOW &
/mc/gs-lite/bin/gsprintconsole_ves -C $VES_IP:$VES_PORT -U /vescollector/eventListener/v7 -V 7 `cat gshub.log` default mc_connects_cnt window=$WINDOW &
/mc/gs-lite/bin/gsprintconsole_ves -C $VES_IP:$VES_PORT -U /vescollector/eventListener/v7 -V 7 `cat gshub.log` default throughput_ue window=$WINDOW &
/mc/gs-lite/bin/gsprintconsole_ves -C $VES_IP:$VES_PORT -U /vescollector/eventListener/v7 -V 7 `cat gshub.log` default throughput_rollup window=$WINDOW &
/mc/gs-lite/bin/gsprintconsole_ves -C $VES_IP:$VES_PORT -U /vescollector/eventListener/v7 -V 7 `cat gshub.log` default throughput_gnb window=$WINDOW &
+ /mc/gs-lite/bin/gsprintconsole_ves -C $VES_IP:$VES_PORT -U /vescollector/eventListener/v7 -V 7 `cat gshub.log` default mod_req_failure_distribution window=$WINDOW &
fi
sleep 1
-DEFINE{query_name 'throughput_ue';}
+DEFINE{query_name 'throughput_ue';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
select ($window*(TB+1))/1000 as TS, e_RAB_ID, UE_ID, GNB_ID,
$window/1000.0 as measurementInterval,
// (((startTimeStamp & HEX'FF000000') >> 24) | ((startTimeStamp & HEX'00FF0000') >> 8) | ((startTimeStamp & HEX'0000FF00') << 8) | ((startTimeStamp & HEX'000000FF') << 24))
-DEFINE{query_name 'throughput_rollup';}
+DEFINE{query_name 'throughput_rollup';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
select TS, e_RAB_ID, GNB_ID,
$window/1000.0 as measurementInterval,
group by TS, e_RAB_ID, GNB_ID
;
-DEFINE{query_name 'throughput_gnb';}
+DEFINE{query_name 'throughput_gnb';
+ max_lfta_disorder '1'; max_hfta_disorder '1';
+}
PARAM{ window uint; }
select ($window*(TB+1))/1000 as TS, e_RAB_ID, GNB_ID,
$window/1000.0 as measurementInterval,
--- /dev/null
+#==================================================================================
+# Copyright (c) 2018-2019 AT&T Intellectual Property.
+#
+# 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.
+#==================================================================================
+
+[tox]
+minversion = 2.0
+envlist =
+ docs,
+ docs-linkcheck,
+
+skipsdist = true
+
+[testenv:docs]
+basepython = python3
+deps =
+ sphinx
+ sphinx-rtd-theme
+ sphinxcontrib-httpdomain
+ recommonmark
+ lfdocs-conf
+
+commands =
+ sphinx-build -W -b html -n -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/html
+
+ echo "Generated docs available in {toxinidir}/docs/_build/html"
+
+whitelist_externals = echo
+
+[testenv:docs-linkcheck]
+basepython = python3
+deps = sphinx
+ sphinx-rtd-theme
+ sphinxcontrib-httpdomain
+ recommonmark
+ lfdocs-conf
+commands = sphinx-build -W -b linkcheck -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/linkcheck